文本表示(二)c&w模型

文本表示(二)

c&w模型

在前面提到的神经网络语言模型中,词向量只是一个副产品,并不是核心任务(它主要训练了一个用来度量语言流畅程度的模型,其中词向量是它中间产品),而且神经网络模型中的矩阵运算操作会极大的降低模型的训练效率。

所以如果目标只是学习词向量的话,可以没必要采用语言模型的方式,而可以直接从分布式假说的角度来设计模型和目标函数,c&w模型就是直接以学习和优化词向量为最终任务的。

模型定义

  • 给定训练语料中的任意一个n元组(n=2C+1):(wi,C)=wiC...wi1wiwi+1...wi+C(w_i,C)=w_{i-C}...w_{i-1}w_iw_{i+1}...w_{i+C}
  • 如果将中心词wiw_i随机的替换成词汇表中的任意其他词wiw^{\\'}_i,得到一个新的n元组(wi,C)=wiC...wi1wiwi+1...wi+C(w^{\\'}_i,C)=w_{i-C}...w_{i-1}w^{\\'}_iw_{i+1}...w_{i+C}
  • 那么(wi,C)(w_i,C)一定比(wi,C)(w^{\\'}_i,C)更加合理,即如果对每个n元组进行打分那么(wi,C)(w_i,C)一定比(wi,C)(w^{\\'}_i,C)的分数高:s(wi,C)>s(wi,C)s(w_i,C)>s(w^{\\'}_i,C)

如图,是一个简单的前馈神经网络,目的是计算n元组的得分,并从得分区分文本是来自真实的训练文本还是随机生成的文本。真实的训练文本中的n元组(wi,C)(w_i,C)为正样本,随机生成的文本(wi,C)(w^{\\'}_i,C)为负样本。
文本表示(二)c&w模型

  • 首先,对于s(wi,C)s(w_i,C),将wiC...wi1wiwi+1...wi+Cw_{i-C}...w_{i-1}w_iw_{i+1}...w_{i+C}中的每一个词从词向量矩阵L中获取对应的词向量,并进行拼接作为第一层h0h_0