《TensorFlow自然语言处理》—3 Word2vec——学习词嵌入

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

CHAPTER 3

第3章

Word2vec——学习词嵌入

在本章中,我们将讨论NLP中一个至关重要的主题—Word2vec,这是一种学习词嵌入或单词的分布式数字特征表示(即向量)的技术。学习单词表示是许多NLP任务的基础,因为许多NLP任务依赖于能够保留其语义及其在语言中的上下文的单词的良好特征表示。例如,单词“forest”的特征表示应该与“oven”非常不同,因为这些单词在类似的上下文中很少使用,而“forest”和“jungle”的表示应该非常相似。

Word2vec被称为分布式表示,因为单词的语义由表征向量的全部元素的激活状态表示,而不是由表征向量的单个元素表示(例如,对于一个单词,将向量中的单个元素设置为1,其余设为0)。

我们将从解决这一问题的经典方法开始,到在寻找良好的单词表示方面能提供先进性能的基于现代神经网络的方法,逐步介绍词嵌入方法。我们在如图3.1所示的2D画布上可视化(使用t-SNE,一种用于高维数据的可视化技术)从一组单词学习到的单词嵌入。如果仔细观察,你会看到相似的单词互相之间距离较近(例如,中间集群的数字)。

t分布式随机邻域嵌入(t-SNE)

这是一种降维技术,它可将高维数据投影到二维空间。这使我们能够想象高维数据在空间中的分布情况,它非常有用,因为我们无法轻易地在三维之外进行可视化,你将在下一章中更详细地了解t-SNE。

 image.png

图3.1 用t-SNE可视化学到的词嵌入

3.1 单词的表示或含义是什么

“含义”本身是什么意思这更像是一个哲学问题,而不是技术问题。因此,我们不会试图找出这个问题的最恰当答案,而是接受一个折中的答案,即意义是一个单词所表达的想法或某种表示。由于NLP的主要目标是在语言任务中达到和人类一样的表现,因此为机器寻找表示单词的原则性方法是有用的。为了实现这一目标,我们使用可以分析给定文本语料库并给出单词的良好数字表示(即词嵌入)的算法,它可以使属于类似上下文的单词(例如,one和two,I和we)与不相关的单词(例如,cat和volcano)相比有更相似的数字表示。

首先,我们将讨论实现这一目标的一些经典方法,然后继续介绍目前采用的更复杂的方法,后者使用神经网络来学习这些特征表示,并具有最好的性能。


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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