CS224N_lecture02 Glove

Count based vs direct prediction

CS224N_lecture02 Glove_第1张图片
基于计数方法可以有效利用统计信息,并且捕获单词间的相似度,但是在单词的分析方面表现欠佳.

基于上下文窗口预测的方法如Skip-gram、CBOW等可以学习到单词相似度之外的复杂语义模式,但是无法很好利用共现统计信息.

Encoding meaning in vector differences

Glove 想要结合Count based 和 direct prediction的优势即既可以利用统计信息又可以很好的理解单词,其主要思想是共现概率的比值编码了含义成分.

Glove 需要构建 co-occurence Matrix ,其中:

  • X i j X_{ij} Xij 代表单词 j 出现在上下文单词 i 的次数
  • X i = ∑ k X i k X_{i}= \sum_{k}{X_{ik}} Xi=kXik 代表了任意 k 个单词出现在单词 i 上下文的次数
  • P i j = P ( j ∣ i ) = X i j / X i P_{ij} = P(j|i)=X_{ij}/X_i Pij=P(ji)=Xij/Xi 来代表着单词 j 在在单词 i 上下文出现的概率
    CS224N_lecture02 Glove_第2张图片

为什么说共线概率比值蕴含了单词的意义成分?比如我们想要区分 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 模型其中使用了 损失函数:
J = − ∑ i ∈ c o r p u s ∑ j ∈ c o n t e x t l o g Q i j J = - \sum_{i \in corpus}\sum_{j \in context} logQ_{ij} J=icorpusjcontextlogQij
但是对于 glove 需要乘以单词 i 和单词 j 出现在一起的次数,所以上式子更改为:
J = − ∑ i = 1 W ∑ j = 1 W X i j l o g Q i j J = -\sum_{i=1}^{W}\sum_{j=1}^{W} X_{ij} logQ_{ij} J=i=1Wj=1WXijlogQij
对于 Q i j Q_{ij} Qij 使用的是 softmax 分母计算量大所以使用 Least Squares Model 另 P i j ^ = X i j \hat{P_{ij}} = X_{ij} Pij^=Xij Q i j ^ = e x p ( u j T v i ) \hat{Q_{ij}} = exp(u_j^Tv_i) Qij^=exp(ujTvi) 丢弃了原有的归一化因子,然后上式子修改为:
J = ∑ i = 1 W ∑ j = 1 W X i j ( P i j ^ ) − Q i j ) ) 2 J = \sum_{i=1}^{W}\sum_{j=1}^{W}X_{ij}(\hat{P_{ij}}) - Q_{ij}))^2 J=i=1Wj=1WXij(Pij^)Qij))2
通常 X i j X_{ij} Xij 比较大,所以取log其结果为:
J = ∑ i = 1 W ∑ j = 1 W X i j ( l o g ( P i j ^ ) − l o g ( Q i j ) ) 2 = ∑ i = 1 W ∑ j = 1 W X i j ( l o g ( X i j ) − u j T v i ) ) 2 \begin{aligned} J & = \sum_{i=1}^{W}\sum_{j=1}^{W}X_{ij}(log(\hat{P_{ij}}) - log(Q_{ij}))^2 \\ & = \sum_{i=1}^{W}\sum_{j=1}^{W}X_{ij}(log({X_{ij}}) - u_j^Tv_i))^2 \\ \end{aligned} J=i=1Wj=1WXij(log(Pij^)log(Qij))2=i=1Wj=1WXij(log(Xij)ujTvi))2
权重 X i j X_ij Xij 不一定保证最优,所以引入 f 函数使其:
J = ∑ i = 1 W ∑ j = 1 W f ( X i j ) ( l o g ( X i j ) − u j T v i ) ) 2 J = \sum_{i=1}^{W}\sum_{j=1}^{W}f(X_{ij})(log({X_{ij}}) - u_j^Tv_i))^2 \\ J=i=1Wj=1Wf(Xij)(log(Xij)ujTvi))2CS224N_lecture02 Glove_第3张图片
Glove 的优点:

  • 训练快速
  • 可以扩展到大型语料库
  • 即使小的语料库,性能也很好

如何评估词向量

评估分为内部评估(Intrinsic Evaluation)和外部评估(Extrinsic Evaluation):

  • Intrinsic Evaluation
    • 在一个特殊\中间子任务上评估
    • 计算快速
    • 帮助去理解子系统
    • 需要和真实任务正相关决定有用性 Needs positive correlation with real task to determine usefulness
  • Extrinsic Evaluation
    • 对真实任务进行评估
    • 计算很慢
    • 无法确定是该子系统除了问题还是其它子系统除了问题,或者内部交互出问题
    • 如果替换子系统后系统系统性能提高了,那么可能改变是好的

参考文献

  • CS224N笔记(二):GloVe

  • 02 Word Vectors 2 and Word Senses

你可能感兴趣的:(CS224N)