论文《Efficient Estimation of Word Representations in Vector Space》阅读心得

本来应该将Tomas的三篇论文一起读完再写的,但是因为这段时间事情比较多,先写一篇后面的再补上。由于自己刚开始看论文理解能力不够,如有错误欢迎大家指出来,我再修改。

    本片论文作者是Tomas Mikolov,他在谷歌是研究的是word2vec,现在跑去了facebook,都很厉害啊!这篇主要讲了word2vec与之前的语言模型例如 NNLM等在语义语法上、训练速度上的比较。总结来说有一下几点:

(1)研究在句法与语义上词表示的质量
(2)与流行的神经网络模型(前馈和递归)相比,使用非常简单的模型结构训练高质量的词向量是可能的。因为计算复杂度低得多,可以从更大的数据集中计算非常精确的高维单词向量。
(3)使用DistBelief,能够在trillion words 基础上训练CBOW和skip-gram,训练词汇数量级变大
(4)受益于本论文的模型的应用在其他NLP上工作更好

(5)机器翻译实验也很有希望

(6)高质量的词向量是NLP应用的基石

1.介绍

      之前大部分语言模型将词作为单位,而词的表示使用的多是用在词典中的index,这样表示简单、健壮、易观察但没有体现相似性概念。而且存在局限:领域词汇表现不好,机器翻译词库少;之前使用的数据集多是hundred of /millions of。

      文本的目标:本文使用的数据集billions of/millions of words;

                           使得相似的距离尽可能相似(词的相似性最开始是用在找相似的词缀上的),而这个相似不仅限于句法上的相似而且包含语义上的相似;

                           保留词之间的线性规律

2.模型构建

        训练复杂度:E-训练周期;T:训练集的词个数;Q:根据模型结构而定(多是根据模型的参数进行定义)

         所有模型训练使用mini-batch同步梯度下降,Adagrad自适应的学习率

        训练环境:

               并行训练:framework--DistBelief

               并行的运行相同模型的多个副本,每个副本通过一个中央服务器更新梯度


        训练数据集:使用Google News corpus 有6B tokens,取前1m最频繁的词汇

2.1.Feedforward Neural Net Language Model (NNLM) 

input: N个1-V向量

input与project之间: 权重 N*D

模型复杂度:Q = N ×D +N ×D ×H +H ×V

     复杂度主要在project和hidden之间,因为投影层是稠密的

    N:输入前10个词,D:投影层神经元个数500-2000,H:隐藏层神经元个数500-1000,V:词汇表的大小,输出维度

    解决方法:分层的softmax,训练中使用不规范的模型避免归一化,使用二叉树表示词汇log(V),但是这种加速并不重要因为计算瓶颈在N*D*H,因此提出了一种结构没有隐藏层,只依赖于softmax

2.2 Recurrent Neural Net Language Model (RNNLM)

基于语言模型的循环神经网络RNNLM

优势:不需要制定上下文长度、理论上RNN比浅层NN有效表示复杂模式

RNN没有投影层,使用recurrent matrix连接隐藏层

允许形成短期记忆,因为可以基于当前输入和之前时间的隐藏层状态

2.3.word2vec

包含CVOW和skip-gram两种模型,前者由上下文输出当前词后者由当前词输出上下文,具体的后面再详细介绍。现在只看运行效果。可以得出在大量的数据熵训练高维度的词向量,结果向量可以回答词间的语义关系,像城市与所属的国家

3.模型评估

3.1.测试集

       作者使用了包含九种句法和五种语义上的词对作为测试依据,

               句法关系包括(1.动词到副词2.反义词3.比较级4.最高级5.现在分词6.国籍-国籍的形容词 瑞士-瑞士的 柬埔寨-柬埔寨的7.过去式8.复词9.动词复数形式)

              语法关系包括(1.常见的首都 雅典 希腊;奥斯陆 挪威 (首都-国家)2.所有的首都 阿斯塔纳 哈萨克斯坦;哈拉雷 津巴布韦3.货币 安哥拉 宽扎; 伊朗 (国家-货币)4.城市所在州 芝加哥 伊利诺伊州;斯托克顿市 加利福尼亚州 (城市-州)5.男女 兄弟 姐妹;孙子 孙女 (男-女))

         操作时是随意抽取同种词对任意组合例如:sister、brathor、women、men就是一种,只有当计算出来的词和正确答案完全一致才认为是正确的,例如得到woman(实际women)就不正确,同义词也被看作是错误的。注意由于由于模型没有任何关于词形态的信息,因此100%的正确是不可能的。

3.2.结论

        (1)如果使用更多的数据集和高维度的词向量会有更高的准确率,但是同时也耗费更多的时间。

         (2)使用两倍的数据训练效果和迭代三次的效果相似,而且速度还略微加速了

       其他的在本文刚开始的也提到了这里不再说一遍了。


猜你喜欢

转载自blog.csdn.net/xuqn0606/article/details/79842089