Word2vec 词嵌入模型

举报
可爱又积极 发表于 2021/10/27 13:35:01 2021/10/27
【摘要】 2013 年,Mikolov等人提出神经网络分布式词向量 Word2vec 模型,随后谷歌公司把该模型发布,该方法的提出让预训练词向量在 NLP 领域大放异彩。Word2vec 本质上是一种无监督的学习方法,因此不受语料数量的限制,极大的减少了自然语言处理任务中人工标注的工作量。Word2vec 网络是包含三层全连接层的神经网络,分别是输入层、隐藏层、输出层(softmax 层),Word2...

2013 年,Mikolov等人提出神经网络分布式词向量 Word2vec 模型,随后谷歌公司把该模型发布,该方法的提出让预训练词向量在 NLP 领域大放异彩。Word2vec 本质上是一种无监督的学习方法,因此不受语料数量的限制,极大的减少了自然语言处理任务中人工标注的工作量。Word2vec 网络是包含三层全连接层的神经网络,分别是输入层、隐藏层、输出层(softmax 层),Word2vec 词向量能将词汇投射到自定义设置长度的高维向量空间之中,这些向量可以有效的保存词
汇的语义信息,例如:同义词的词向量之间的距离会非常接近。该方法的核心思想就是词汇的语义是由上下文决定的,根据该思路,2013 年 Mikolov 等人设计了
两种 Word2vec 模型,即 CBOW 模型和 Skip-Gram 模型。
1 CBOW 模型
CBOW 模型是通过窗口内上下文对目标词汇的预测中学习到词嵌入向量表达,其网络结构如图1 所示。举例说明,我们的窗口大小赋值为 2,特定的词为,即需要模型预测的词向量,那么窗口内的词有 4 个,目标词前后各 2 个,分别为,这 4 个词就是 CBOW 模型的输入。CBOW 模型的训练思路就是依据上下文来寻找最有可能出现的目标词汇,其条件概率计算方法如下所示。

在输入层,先将每个词进行 one-hot 编码,将词汇转换为向量形式,然后从输出层的 embedding look-up table 中找到词嵌入的值;在隐藏层,需要把输入层中的
词向量相加求取平均值;在输出层,通过 softamx 激活函数把隐藏层中的平均词向量与隐层到输出层的权重进行点积操作,得到预测结果,该结果为词典中每一个
词汇成为目标词的概率。

图1  CBOW 模型

2 Skip-Gram 模型
Skip-Gram 模型与 CBOW 模型的思路相反,通过目标词汇对上下文的预测中学习到词嵌入向量的表达。Skip-Gram 模型训练思路就是依据输入的目标词汇来寻
找最有可能出现的上下文,Skip-gram 网络结构见图2。

图 2 Skip-Gram 模型结构图
如图 2 所示,Skip-Gram 模型输入是目标词tw ,其他设置和 CBOW 模型中的设置相同,输出为上下文中的词汇,优化目标可以用下表示:

Skip-gram 模型训练步骤如下:首先把输入层的词汇向量与输入层到隐层的权重进行点积运算,然后通过 softmax 函数来计算上一步中获得的点积运算的数值,
由于 Skip-gram 模型是预测上下文,所以需要 2*窗口值次计算,输出 2*窗口个多项式分布,其计算方法如下:

其中,Wic, 表示从隐藏层到输出层第 c 次预测第 i 个单词。hc,i表示第 c 次预测时输出层的第 i 个神经元的输入值。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。