《TensorFlow自然语言处理》—3 Word2vec——学习词嵌入
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。
图3.1 用t-SNE可视化学到的词嵌入
3.1 单词的表示或含义是什么
“含义”本身是什么意思这更像是一个哲学问题,而不是技术问题。因此,我们不会试图找出这个问题的最恰当答案,而是接受一个折中的答案,即意义是一个单词所表达的想法或某种表示。由于NLP的主要目标是在语言任务中达到和人类一样的表现,因此为机器寻找表示单词的原则性方法是有用的。为了实现这一目标,我们使用可以分析给定文本语料库并给出单词的良好数字表示(即词嵌入)的算法,它可以使属于类似上下文的单词(例如,one和two,I和we)与不相关的单词(例如,cat和volcano)相比有更相似的数字表示。
首先,我们将讨论实现这一目标的一些经典方法,然后继续介绍目前采用的更复杂的方法,后者使用神经网络来学习这些特征表示,并具有最好的性能。
- 点赞
- 收藏
- 关注作者
评论(0)