定义:meaning(韦氏词典)——对meaning的定义的解释
常见的解决方案:使用例如WordNet,一个包含同义词集和上位词(“is a” 关系)列表的同义词典;
在传统的NLP中,我们把单词看作离散的符号:旅馆、会议、汽车旅馆——一种地方主义的表现(localist representation);
单词可以通过独热向量来表示:
motel = [0 0 0 0 0 0 0 0 0 0 0 1 0 0 ]
hotel = [0 0 0 0 0 0 1 0 0 0 0 0 0 0 ]
这存在一个问题,语言是有很多单词的,例如英语,实际上英语的单词是无限的,我们可以在现有单词的基础上衍生出更多的单词。
向量维数=词汇量(例如500000)。如果想要表示合理的大小词汇,需要很大的向量。还有一个更大的问题,理解关系和词语的意义。举个例子,在网络搜索中,如果用户搜索“西雅图汽车旅馆(Seattle motel)”,我们希望匹配包含“西雅图旅馆(Seattle hotel)”的文档。,酒店和汽车旅馆几乎是一回事。但如果使用上面讲到的独热编码,这两者之间是没有相似的关系的·。在数学上,这两个向量是正交的。
解决办法
我们将为每个选择的单词构建一个密集的向量,使其与出现在类似上下文中的单词的向量相似,例如可以将单词banking表示为向量 [ 0.286 , 0.792 , − 0.177 , − 0.107 , 0.109 , − 0.543 , 0.349 , 0.271 ] [0.286,0.792,-0.177,-0.107,0.109,-0.543,0.349,0.271] [0.286,0.792,−0.177,−0.107,0.109,−0.543,0.349,0.271]这是一个密集向量,其中所有数字都是非零的。这个例子中词向量的维度为九维,但是在实际应用中,需要使用更大的维度,一般情况下使用的维度可能是50维,300维,也可能是1000维,2000维,4000维。
提示:词向量是一种称为词嵌入或词表示的形式,它们是一种分布式表示;
每个单词都有一个词向量,那么就会有一个向量空间,可以在其中放置所有的单词。这个向量空间整体上不是可读的。但我们将其中一些维度进行可视化操作时,我们可以看到单词之间的一些关系。
Word2vec(Mikolov2013年提出)是一个学习词向量的框架;
想法:
上图中的公式 P ( u p r o b l e m s ∣ v i n t o ) P(u_{problems}|v_{into}) P(uproblems∣vinto)是公式 P ( p r o b l e m s ∣ i n t o ; u p r o b l e m s , v i n t o , ∣ t h e t a ) P(problems|into;u_{problems},v_{into},|theta) P(problems∣into;uproblems,vinto,∣theta)的缩写
对于每个位置 t = 1 , . . . , T t=1,...,T t=1,...,T,给定中心词 w j w_j wj,预测固定大小m的窗口内的上下文单词。 似 然 函 数 = L ( θ ) = ∏ t = 1 T ∏ − m ≤ j ≤ m ( j ≠ 0 ) P ( w t + j ∣ w t ; θ ) 似然函数=L(\theta)=\prod _{t=1}^T\prod_{-m\leq j\leq m(j\neq 0)}P(w_{t+j}|w_t;\theta) 似然函数=L(θ)=t=1∏T−m≤j≤m(j=0)∏P(wt+j∣wt;θ) θ \theta θ是所有要优化的参数,目标函数 J ( θ ) J(\theta) J(θ)是(平均)负对数似然: J ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≤ m ( j ≠ 0 ) l o g P ( w t + j ∣ w t ; θ ) J(\theta)=-\frac{1}{T}\sum_{t=1}^T\sum_{-m\leq j \leq m(j\neq 0)}log P(w_{t+j}|w_t;\theta) J(θ)=−T1t=1∑T−m≤j≤m(j=0)∑logP(wt+j∣wt;θ)最小化目标函数等于最大化预测精度,我们的目标是最小化目标函数。
对于softmax,有: s o f t m a x ( x i ) = e x p ( x i ) ∑ j = 1 n e x p ( x j ) = p i softmax(x_i)=\frac{exp(x_i)}{\sum _{j=1}^nexp(x_j)}=p_i softmax(xi)=∑j=1nexp(xj)exp(xi)=pi