如果问我哪个是最方便、最好用的词向量模型,我觉得应该是word2vec,但如果问我哪个是最漂亮的词向量模型,我不知道,我觉得各个模型总有一些不足的地方。且不说试验效果好不好(这不过是评测指标的问题),就单看理论也没有一个模型称得上漂亮的。

本文讨论了一些大家比较关心的词向量的问题,很多结论基本上都是实验发现的,缺乏合理的解释,包括:

如果去构造一个词向量模型?

为什么用余弦值来做近义词搜索?向量的内积又是什么含义?

词向量的模长有什么特殊的含义?

为什么词向量具有词类比性质?(国王-男人+女人=女王)

得到词向量后怎么构建句向量?词向量求和作为简单的句向量的依据是什么?

这些讨论既有其针对性,也有它的一般性,有些解释也许可以直接迁移到对glove模型和skip gram模型的词向量性质的诠释中,读者可以自行尝试。

围绕着这些问题的讨论,本文提出了一个新的类似glove的词向量模型,这里称之为simpler glove,并基于斯坦福的glove源码进行修改,给出了本文的实现,具体代码在Github上。

为什么要改进glove?可以肯定的是glove的思想是很有启发性的,然而尽管它号称媲美甚至超越word2vec,但它本身却是一个比较糟糕的模型(后面我们也会解释它为什么糟糕),因此就有了改进空间。

内容概览:

1 对语言进行建模
1.1 从条件概率到互信息
1.2 互信息的可加性
1.3 插播:番外篇

2 描述相关的模型
2.1 几何词向量
2.2 机场-飞机+火车=火车站
2.3 模型的形式
2.4 忘记归一化

3 模型的求解
3.1 损失函数
3.2 互信息估算
3.3 权重和降采样.
3.4 Adagrad

4 有趣的结果
4.1 模长的含义
4.2 词类比实验
4.3 相关词排序
4.4 重新定义相似.
4.5 关键词提取
4.6 句子的相似度.
4.7 句向量


转载到请包括本文地址:http://kexue.fm/archives/4667/

如果您觉得本文还不错,欢迎点击下面的按钮对博主进行打赏。打赏并非要从中获得收益,而是希望知道科学空间获得了多少读者的真心关注。当然,如果你无视它,也不会影响你的阅读。再次表示欢迎和感谢!