Word Embedding
23 May 2017-
A Neural Probabilistic Language Model
三层的神经网络来构建语言模型,同样也是 n-gram 模型
-
Natural Language Processing (Almost) from Scratch
论文主要目的并不是在于生成一份好的词向量,甚至不想训练语言模型,而是要用这份词向量去完成 NLP 里面的各种任务, 比如词性标注、命名实体识别、短语识别、语义角色标注等等。
公布的词向量与其它词向量相比主要有两个区别:
- 词表中只有小写单词。也就是说他把大写开头的单词和小写单词当作同一个词处理。其它的词向量都是把他们当作不同的词处理的。
- 词向量并不直接是上述公式的优化结果,而是在此基础上进一步跑了词性标注、命名实体识别等等一系列任务的 Multi-Task Learning 之后,二次优化得到的。也可以理解为是半监督学习得到的,而非其他方法中纯无监督学习得到的。
-
Three new graphical models for statistical language modelling
一共提了 3 个模型。从最基本的 RBM 出发,一点点修改能量函数,最后得到了“Log-Bilinear”模型。
-
A scalable hierarchical distributed language model
“hierarchical log-bilinear”模型,使用了一个层级的结构做最后的预测
-
Statistical Language Models based on Neural Networks
用循环神经网络,真正充分地利用所有上文信息来预测下一个词,而不像前面的其它工作那样,只能开一个 n 个词的窗口,只用前 n 个词来预测下一个词。
-
Improving Word Representations via Global Context and Multiple Word Prototypes
第一个创新是使用全文信息辅助已有的局部信息,第二个创新是使用多个词向量来表示多义词。
- word2vec
- glove
- Conclusion & Renference
名称 | 语料规模 | 词向量 | 特点 | 资源 |
---|---|---|---|---|
C&W | English Wikipedia + Reuters RCV1共 631M + 221M 词 | 130000 词 , 50 维 | 不区分大小写;经过有监督修正;训练了 7 周 | 链接 |
C&W - Turian | Reuters RCV1 63M 词 | 268810 词 25、50、100、200 维 | 区分大小写;训练了若干周 | 链接 |
M&H - Turian | Reuters RCV1 | 246122 词 50、100 维 | 区分大小写;用GPU训练了7天 | 链接 |
Mikolov | Broadcast news | 82390 词 80、640、1600 维 | 不区分大小写;训练了若干天 | 链接 |
Huang 2012 | English Wikipedia | 100232 词 50 维 | 不区分大小写;最高频的6000词,每词有10种表示 | 链接 |
这么多模型,本质是非常相似的。都是从前若干个词的词向量通过线性变换抽象出一个新的语义(隐藏层),再通过不同的方法来解析这个隐藏层。模型的差别主要就在隐藏层到输出层的语义。Bengio 2003 使用了最朴素的线性变换,直接从隐藏层映射到每个词;C&W 简化了模型(不求语言模型),通过线性变换将隐藏层转换成一个打分;M&H 复用了词向量,进一步强化了语义,并用层级结构加速;Mikolov 则用了分组来加速。
Holger Schwenk 在词向量和语言模型方面也做了一些工作。