每天五分钟自然言语处理NLP:经过one-word模型来了解word2vec
作者头像
  • 爱分析
  • 2020-07-30 21:25:41 6

本文重点

在接下来的内容中,我们将简要介绍word2vec,并讨论其两种实现方式:CBOW和Skip-gram。在详细介绍这两种方法之前,我们先来了解一下一个基础模型——one-Word模型。

one-Word模型介绍

在这个模型中,输入和输出都只有一个单词,这意味着我们关注的是语境中相邻单词之间的语义关系。例如,如果我们的训练数据包含句子“我 爱 自然 言语 了解”,那么我们可以将“(自然, 言语)”这对词作为模型的一组输入和输出。

在这个模型中,输入是“自然”,输出是“言语”。该模型结构包括两个全连接层,输入层表示第一个词,输出层表示第二个词。所有词都采用One-Hot编码,编码后的维度为V,即字典中的词汇总数。模型中间有一个隐藏层h,维度为N,这与最终生成的word2vec向量维度相同。

我们的目标是将高维的One-Hot编码映射到一个低维空间N,并能够准确表达词汇的语义信息。

计算过程

模型首先接收一个V维的One-Hot向量X,然后通过矩阵W进行转换,得到h=W^TX。由于X是One-Hot向量,因此X与W相乘相当于从W中选取特定一行并赋值给h。接下来,h再通过矩阵W'进行转换,得到u=W'^Th。u的维度恢复为V,最后通过y^=softmax(u),我们可以利用交叉熵损失函数进行训练。

通过训练,我们最终会获得两个矩阵W和W',其中W被视为中心词的词向量,W'被视为上下文词的词向量。通常我们会使用W矩阵作为词向量矩阵。这就是通过one-Word模型学习词向量的过程。

CBOW和Skip-gram

CBOW和Skip-gram

既然我们要学习CBOW和Skip-gram模型,那么为什么还要学习one-Word模型呢?这是因为两者之间存在紧密联系。one-Word模型可以简单地看作通过前一个词预测后一个词,从而得到词向量。但在自然语言中,决定一个词语义的因素不仅仅是前后文中的一个词,而是时间窗口内更多的词。为了解决这个问题,我们需要增加模型的复杂度,提供两种解决方案:一种是通过上下文预测中间词(CBOW),另一种是通过中间词预测上下文词(Skip-gram)。

CBOW和Skip-gram

总结

CBOW和Skip-gram模型通过引入更多上下文单词,从而达到更好的训练效果。这两种模型的思想实际上是互为镜像的。CBOW模型将多个单词作为输入,共同预测一个目标单词;而Skip-gram模型则将一个目标单词作为输入,预测多个上下文单词。通过这两部分的学习,相信读者已经对CBOW和Skip-gram有了初步了解,后续我们将详细解释这两个模型。

    本文来源:图灵汇
责任编辑: : 爱分析
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
word2vec模型言语经过分钟了解每天自然处理word
    下一篇