词表征 3:GloVe、fastText、评价词向量、重新训练词向量

原文地址:https://www.jianshu.com/p/ca2272addeb0

(四)GloVe

GloVe本质是加权最小二乘回归模型,引入了共现概率矩阵。

1、基本思想

图2.18 GloVe基本思想

GloVe模型的目标就是获取每个词的向量表示\(w\)。GloVe认为,\(w_i\)\(w_j\)\(w_k\)通过某种函数\(F\)的作用后呈现出来的规律和\(Ratio_{i,j,k}\)具有一致性,或者说相等,这样子也就可以认为词向量中包含了共现概率矩阵中的信息。

2、模型推导

图2.19 GloVe模型推导1
图2.20 GloVe模型推导2

3.word2vec vs GloVe

基于统计 word2vec GloVe
训练快;有效利用了统计信息。 更快;更易加词;
可以通过计算词向量间余弦相似度计算词间语义相似度;
可以和后续NN一起训练。
训练快;可以扩展;
因为考虑了很多统计资讯,即使在小数据库上、小向量上也能表现得很好。
捕捉词间语义相似度太初级;
大count与大重要性之间不相称。
主要收益于大corpus,未有效利用统计信息。

(五)fastText

fastText为子词嵌入模型。
假设子词长度为3个字符,例如,"where"的子词包括"<wh"、"whe"、"her"、"ere"、"re>"以及特殊子词即整词" "。给定一个词 \(w\),通常可以将子词长度在3到6之间的所有子词和特殊子词的并集 \(G_w\)取出,使用 \(\frac{1}{|G_w|}\sum_{g\in G_w}v_g\)代替Skip-Gram中的原始 \(v_c\),直接用线性分类器得到分类结果。线性分类器即为只有一层隐藏层且使用的是线性激活函数的NN。词典之外的新词的词向量可以使用fastText中相应的子词向量之和的平均来进行表示。
对于低频词生成的词向量效果更好,因为它们的字符级n-gram可以和其他词共享。对于训练词库之外的单词,仍然可以通过叠加它们的字符级n-gram向量来构建它们的词向量。

三、评价词向量

(一)内部评价

1、类比问题

\(w_A:w_B=w_C:w_x\),则
\(x=argmax_x\frac{(V_{w_B}-V_{w_A}+V_{w_C})^TV_{w_x}}{||V_{w_B}-V_{w_A}+V_{w_C}||}\)
要求内部评价与最终任务的表现有正相关关系。
优点是简单、计算速度快。

2、词相关性

将对应词向量的余弦相似度算出的词相关性与人类判别得分进行比较。

(二)外部评价

看词向量用于后续任务是否会带来好处。常复杂且慢。

四、重新训练词向量

我们用于外部评估的词向量是通过一个简单的内部评价来进行优化并初始化的。在许多情况下,这些预训练的词向量在外部评价中表现良好。但是,这些预训练的词向量在外部评价的表现仍然有提高的可能。然而,重新训练词向量存在着一定的风险,需要保证训练集足够大并能覆盖词汇表中大部分的单词。
通常使用词向量的方式:

  • random
    随机初始化词向量,随着网络一起训练;
  • static
    使用预训练的词向量,训练中保持不变;
  • non-static
    使用预训练的词向量,训练中一起调整;
  • multi-channel
    将static和non-static拼接起来,形成2通道词向量,static部分保持不变,non-static部分随网络一起调整。

猜你喜欢

转载自www.cnblogs.com/cherrychenlee/p/10800599.html