1.word2vec
学习词向量的框架。
适用条件:
1.有一个很大的语料库
2.每一个单词被表示成一个向量。
3.文本中每一个位置t都有一个中心单词c,以及文本单词o(其实就是除中心单词为临近的几个单词)
4.用c与o之间的相似性计算给定c在o中的出现的可能性(这里适用一个单词在一个特定句子出现的概率来表示单词的含义,也就是我们中文中用句子来解释一个字的意思,而不需要像词典中单独表示)
5.不断调整词向量,使得所有位置的概率积最大。
图片及部分公式来源:CS224n课程课件
图片来源https://www.bilibili.com/video/BV1mb411e769?p=1https://www.bilibili.com/video/BV1mb411e769?p=1
比如文本中有n个word,则似然函数为
求函数的最大值,但是为了方便,可以转换一下函数为
引入log主要是可以将连积运算改为连和运算,一个小技巧可以简化运算,加入负号就可以将最大值函数改为最小值函数,除以T主要是减少文本的数量对结果的影响。
如何运算P
表示单词w是一个中心单词,表示单词w为一个文本单词
对每一个中心单词c计算
引入exp运算是保证概率为正,分子是点积,用于计算两个向量之间的相似性,使整个分布概率进行归一化
如何表示
表示所有的参数集合,d维向量,V个单词,每个单词分别作为中心词o,以及其他文本词c,所以是2dV大小的矩阵。
如何求解目标函数
梯度下降法
参数主要分为两类两类。
原始目标函数可变为:
同理