CS224N_lecture02 Glove
Count based vs direct prediction
基于计数方法可以有效利用统计信息,并且捕获单词间的相似度,但是在单词的分析方面表现欠佳.
基于上下文窗口预测的方法如Skip-gram、CBOW等可以学习到单词相似度之外的复杂语义模式,但是无法很好利用共现统计信息.
Encoding meaning in vector differences
Glove 想要结合Count based 和 direct prediction的优势即既可以利用统计信息又可以很好的理解单词,其主要思想是共现概率的比值编码了含义成分.
Glove 需要构建 co-occurence Matrix ,其中:
- 代表单词 j 出现在上下文单词 i 的次数
- 代表了任意 k 个单词出现在单词 i 上下文的次数
-
来代表着单词 j 在在单词 i 上下文出现的概率
为什么说共线概率比值蕴含了单词的意义成分?比如我们想要区分 ice 和 stream 两种状态,那么之间的关系可以用共现概率的比值来进行描述,令 x = solid,那么计算其出现在 ice 的上下文的概率,以及其出现在 stream 的上下文的概率. 可以看到两者概率都很小,这很难解释两者意义,以及区别,但是通过计算两者比值得到8.9一个很大的值,这就可以反映出solid出现在 ice 周围的概率远大于 stream 周围的概率,所以 solid 经常用来描述 ice.而 fashion 则比值接近 1,说明其与 water 和 fashion 的没有什么关系。 相比较单纯的co-occurrence probability,实际上co-occurrence probability的相对比值更有意义。
回顾 skip-gram 模型其中使用了 损失函数:
但是对于 glove 需要乘以单词 i 和单词 j 出现在一起的次数,所以上式子更改为:
对于 使用的是 softmax 分母计算量大所以使用 Least Squares Model 另 丢弃了原有的归一化因子,然后上式子修改为:
通常 比较大,所以取log其结果为:
权重 不一定保证最优,所以引入 f 函数使其:
Glove 的优点:
- 训练快速
- 可以扩展到大型语料库
- 即使小的语料库,性能也很好
如何评估词向量
评估分为内部评估(Intrinsic Evaluation)和外部评估(Extrinsic Evaluation):
- Intrinsic Evaluation
- 在一个特殊\中间子任务上评估
- 计算快速
- 帮助去理解子系统
- 需要和真实任务正相关决定有用性 Needs positive correlation with real task to determine usefulness
- Extrinsic Evaluation
- 对真实任务进行评估
- 计算很慢
- 无法确定是该子系统除了问题还是其它子系统除了问题,或者内部交互出问题
- 如果替换子系统后系统系统性能提高了,那么可能改变是好的