Word embedding
词嵌入模型
机器学习模型"看到"数据的方式与我们(人类)的方式不同。
我们的模型需要特征的向量。此类向量或词嵌入是可以馈送到模型中的单词的表示形式。
离散表示:One-hot vectors
对于词汇表中的第 i 个单词,向量在第 i 个维度上有 1,在其余维度上有 0。
缺点:向量无法表示单词的特征,无法通过向量获取相似词的意义
分布语义
经常出现在类似上下文中的单词具有相似的含义
因此,我们需要将有关单词上下文信息放入单词表示中
基于计数的方法
我们必须把有关的信息放入词向量中
根据全局语料库统计信息手动放置此信息
- 构造一个词语-上下文矩阵
- 降低其维数
评估单词的相似度:余弦相似度
简单:共发生计数(Co-Occurence Counts)
将上下文定义为L大小的窗口中的每个单词。
词-上下文对 N ( w , c ) N(w,c) N(w,c)的矩阵元素是w在上下文c中出现的次数
正积分互信息(PPMI)
P P M I ( w , c ) = m a x ( 0 , P M I ( w , c ) ) PPMI(w,c)=max(0, PMI(w,c)) PPMI(w,c)=max(0,PMI(w,c))
P M I ( w , c ) = log P ( w , c ) P ( w ) P ( c ) = log N ( w , c ) [ ( w , c ) ] N ( w ) N ( c ) PMI(w,c)=\log \frac{P(w,c)}{P(w)P(c)}=\log \frac{N(w,c)[(w,c)]}{N(w)N(c)} PMI(w,c)=logP(w)P(c)P(w,c)=logN(w)N(c)N(w,c)[(w,c)]
LSA(潜在语义分析):理解文档
采用tf-idf
文档向量之间的余弦相似性可用于测量文档之间的相似性。
Word2Vec
通过教词向量预测上下文来学习词向量。
Word2Vec 是一个参数为词向量的模型。这些参数针对特定目标进行了迭代优化。客观迫使词向量"知道"单词可以出现的上下文:向量被训练来预测相应单词的可能上下文。正如你从分布假设中记得的那样,如果向量"知道"上下文,它们"知道"单词的含义。
Word2Vec是一种迭代方法。其主要思想如下:
- 拿一个巨大的文本语料库;
- 使用滑动窗口浏览文本,一次移动一个单词。在每个步骤中,都有一个中心词和上下文词(此窗口中的其他单词);
- 对于中心词,计算上下文词的概率;
- 调整向量以增加这些概率。
目标函数:负对数似然
Word2Vec:给定中心词的m大小的窗口中预测上下文单词 w t w_t wt
Likelihood: L ( θ ) = ∏ t = 1 T ∏ − m ≤ j ≤ m , j ≠ 0 P ( w t + j ∣ w t , θ ) L(\theta)=\prod \limits_{t=1}^T\prod\limits_{-m \le j \le m, j\ne 0}P(w_{t+j}|w_t, \theta) L(θ)=t=1∏T−m≤j≤m,j=0∏P(wt+j∣wt,θ)
Loss: J ( θ ) = − 1 T log L ( θ ) J(\theta)=-\frac{1}{T}\log L(\theta) J(θ)=−T1logL(θ)
然后是中心词c(c - 中心)和上下文词o(o - 外词) 上下文词的概率为
P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w \in V} exp(u_w^Tv_c)} P(o∣c)=∑w∈Vexp(uwTvc)exp(uoTvc)
s o f t m a x ( x i ) = e x p ( x i ) ∑ j = i n e x p ( x j ) softmax(x_i)=\frac{exp(x_i)}{\sum\limits_{j=i}^nexp(x_j)} softmax(xi)=j=i∑nexp(xj)exp(xi)
采用梯度下降进行优化,一个单词一次一次的进行更新
更快训练:负采样
我们考虑的上下文向量不是所有单词,而是只考虑当前目标和几个随机选择的单词。
每个单词只有几个"真实"的上下文。因此,随机选择的单词很可能是"负面的",即不是真实的上下文。
Word2Vec根据单词的经验分布随机抽样负面示例。让U(w)是单词的单边分布,即U(w)是单词的频率w在文本语料库中。Word2Vec 修改此分布,以便更频繁地对不太常用的单词进行采样:它按比例采样 U 3 4 ( w ) U^{\frac{3}{4}}(w) U43(w)
Word2Vec有两种变体:Skip-Gram和CBOW。
Skip-Gram是我们迄今为止考虑的模型:它预测给定中心词的上下文单词。阴性采样的 Skip-Gram 是最受欢迎的方法。
CBOW(连续词袋)从上下文向量的总和中预测中心词。这个简单的词向量总和称为"词袋",它给出了模型的名称。
Glove
GloVe模型是基于计数的方法和预测方法(例如,Word2Vec)的组合。模型名称GloVe代表"全局向量",这反映了它的想法:该方法使用来自语料库的全局信息来学习向量。