《TensorFlow自然语言处理》—3.2.4 共现矩阵

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

3.2.4 共现矩阵

与独热编码表示不同,共现矩阵对单词的上下文信息进行编码,但是需要维持V×V矩阵。为了理解共现矩阵,请看两个例句:

  • Jerry and Mary are friends.

  • Jerry buys flowers for Mary.

共现矩阵看起来像下面的矩阵,我们只显示矩阵的上三角,因为矩阵是对称的如表3.1所示:

表3.1 共现矩阵示列

 image.png

 

然而,不难看出,因为矩阵的大小随着词汇量的大小而多项式地增长,维持这样的共现矩阵是有代价的。此外,上下文窗口扩展到大小大于1并不简单。一种选择是引入加权计数,其中,上下文中的单词的权重随着与中心单词的距离而衰减。

所有这些缺点促使我们研究更有原则、更健壮和更可扩展的推断单词含义的学习方法。

Word2vec是最近推出的分布式单词表示学习技术,目前被用作许多NLP任务的特征工程技术(例如,机器翻译、聊天机器人和图像标题生成)。从本质上讲,Word2vec通过查看所使用的单词的周围单词(即上下文)来学习单词表示。更具体地说,我们试图通过神经网络根据给定的一些单词来预测上下文单词(反之亦然),这使得神经网络被迫学习良好的词嵌入。我们将在下一节中详细讨论这种方法。Word2vec方法与先前描述的方法相比具有如下许多优点:

  • Word2vec方法并不像基于WordNet的方法那样对于人类语言知识具有主观性。

  • 与独热编码表示或单词共现矩阵不同,Word2vec表示向量大小与词汇量大小无关。

  • Word2vec是一种分布式表示。与表示向量取决于单个元素的激活状态的(例如,独热编码)局部表示不同,分布式表示取决于向量中所有元素的激活状态。这为Word2vec提供了比独热编码表示更强的表达能力。

在下一节中,我们将首先通过一个示例来建立对学习词嵌入的直观感受。然后,我们将定义一个损失函数,以便我们可以使用机器学习方法来学习词嵌入。此外,我们将讨论两种Word2vec算法,即skip-gram和连续词袋(CBOW)算法。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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