《TensorFlow自然语言处理》—3.3.2 为学习词嵌入定义损失函数

举报
华章计算机 发表于 2019/07/21 21:53:30 2019/07/21
【摘要】 本节书摘来自华章计算机《TensorFlow自然语言处理》一书中的第3章,第3.3.2节,[澳] 图珊·加内格达拉(Thushan Ganegedara) 著 马恩驰 陆 健 译。

3.3.2 为学习词嵌入定义损失函数

即使是简单的现实世界任务,其词汇量也很容易超过10000个单词。因此,我们不能手动为大型文本语料库开发词向量,而需要设计一种方法来使用一些机器学习算法(例如,神经网络)自动找到好的词嵌入,以便有效地执行这项繁重的任务。此外,要在任何类型的任务中使用任何类型的机器学习算法,需要定义损失,这样,完成任务就转化为让损失最小化。让我们为找到好的嵌入向量定义损失。

首先,让我们回想一下在本节开头讨论过的等式:

 image.png

有了这个等式之后,我们为神经网络定义成本函数:

 image.png

记住,J (θ)是损失(即成本),而不是奖励。另外,我们想要使P (wj | wi)最大化。因此,我们需要在表达式前面加一个减号将其转换为损失函数。

现在,让我们将其转换对数空间,而不是使用点积运算符。将等式转换为对数空间会带来一致性和数值稳定性:

 image.png

这种形式的成本函数称为“负对数似然”。现在,因为有一个精心设计的成本函数,我们可以用神经网络来优化这个成本函数。这样做会迫使词向量或词嵌入根据单词含义很好地组织起来。现在,是时候介绍能用这个成本函数找到好的词嵌入的现有算法了。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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