传统的NLP,表示词语一般是通过离散数据表示。One-Hot

词的向量表示

这样表示的问题这两个向量是正交的,没有办法比较相似度。

怎么办?解决办法:将其编码成可以比较相似度的向量。

怎么编码呢?

我们知道语言的词跟词之间是有一定关联性的,能不能利用这些关联性设置我们的词向量来编码我们的词语。

Word2Vec方法简介:

他是一种训练词向量的一种框架。

  1. 我们有大量语料数据,其中每一个单词在语料中编码成一个向量。
  2. 遍历语料每一个位置,我们设置窗口(中心词c,以及外围词o)
  3. 我们用词向量c,o的相似度,计算c存在条件下o出现的概率。
  4. 不断调整向量的值,知道最大化这个概率。

词的向量表示

目标函数:

我们优化的目标是词的向量表示(所有向量的表示),T代表的是总语料,m代表窗口大小。P代表条件概率。

目标函数的含义:设置一个窗口,这个窗口遍历所有的语料文本,每个窗口下面都会有中心词,每个窗口该c词及o词情况下,寻找一种词向量表示,使得窗口条件概率最大。

词的向量表示

条件概率计算方法:(v表示中心词向量,u代表的是o词向量,V代表总语料)

词的向量表示

词的向量表示

词的向量表示代表的是模型所有参数,一个非常大的向量。每一个词有两个向量。

词的向量表示

确定了目标函数,那我们需要优化目标函数

梯度下降的方法:

词的向量表示

如果用梯度下降方法做的话,中间涉及到遍历计算整个语料库,实际上会有非常大的计算开销。

随机梯度下降

词的向量表示

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章: