《TensorFlow自然语言处理》—3.2.4 共现矩阵
3.2.4 共现矩阵
与独热编码表示不同,共现矩阵对单词的上下文信息进行编码,但是需要维持V×V矩阵。为了理解共现矩阵,请看两个例句:
Jerry and Mary are friends.
Jerry buys flowers for Mary.
共现矩阵看起来像下面的矩阵,我们只显示矩阵的上三角,因为矩阵是对称的如表3.1所示:
表3.1 共现矩阵示列
然而,不难看出,因为矩阵的大小随着词汇量的大小而多项式地增长,维持这样的共现矩阵是有代价的。此外,上下文窗口扩展到大小大于1并不简单。一种选择是引入加权计数,其中,上下文中的单词的权重随着与中心单词的距离而衰减。
所有这些缺点促使我们研究更有原则、更健壮和更可扩展的推断单词含义的学习方法。
Word2vec是最近推出的分布式单词表示学习技术,目前被用作许多NLP任务的特征工程技术(例如,机器翻译、聊天机器人和图像标题生成)。从本质上讲,Word2vec通过查看所使用的单词的周围单词(即上下文)来学习单词表示。更具体地说,我们试图通过神经网络根据给定的一些单词来预测上下文单词(反之亦然),这使得神经网络被迫学习良好的词嵌入。我们将在下一节中详细讨论这种方法。Word2vec方法与先前描述的方法相比具有如下许多优点:
Word2vec方法并不像基于WordNet的方法那样对于人类语言知识具有主观性。
与独热编码表示或单词共现矩阵不同,Word2vec表示向量大小与词汇量大小无关。
Word2vec是一种分布式表示。与表示向量取决于单个元素的激活状态的(例如,独热编码)局部表示不同,分布式表示取决于向量中所有元素的激活状态。这为Word2vec提供了比独热编码表示更强的表达能力。
在下一节中,我们将首先通过一个示例来建立对学习词嵌入的直观感受。然后,我们将定义一个损失函数,以便我们可以使用机器学习方法来学习词嵌入。此外,我们将讨论两种Word2vec算法,即skip-gram和连续词袋(CBOW)算法。
- 点赞
- 收藏
- 关注作者
评论(0)