人工智能-自然语言处理(1)

人工智能-自然语言处理(1)

本章将介绍一些不同的方法,这些方法将我们正在使用的单词转换为可操纵和进行计算的向量。

one-hot

第一种方法是将单词表示为向量的最简单,最古老的方法:

一种简单的理解方法是您拥有10,000个不同单词的数据集。您可以将其编码为10,000维向量,其中每个维代表10,000个单词中的一个。我们将所有值设置为0,除了代表所选单词的尺寸(设置为1)。

下面的小例子,如果我们有4个单词{‘car’,‘what’,‘be’,‘at’},我们可以通过以下方式将它们表示为4d向量:

[1,0,0,0] =‘汽车’

[0,1,0,0] =‘什么’

[0,0,1,0] =‘be’

[0,0,0,1] =‘at’

将单词表示为向量的一种热门方法并不是一个好主意,因为它确实使我们了解了不同单词之间的关系,这是我们经常需要的。例如,我们不能说“汽车”与“在”有多相似。

结果,它实际上仅作为一种存储原始数据的方式有用。

word2vec

我们希望有一种更好的方式来创建向量,以便在两个不同向量之间进行点积运算时,结果将告诉我们两个单词的相似程度。
为此,我们将研究单词的上下文。当我们说一个单词的上下文时,它仅表示在其旁边找到的单词。

我们将提出一种将每个单词表示为向量的方法,以便于正确预测上下文中出现的其他单词。请记住,上下文只是指在其旁边出现的单词。

我们将通过建立一个模型来做到这一点,该模型将学习将单词转换为向量的最佳方法。这将通过最小化损失函数来完成。在这种情况下,损失函数将告诉我们对于给定的输入单词,我们可以如何很好地预测上下文单词。

我们将如何使用word2vec来执行此操作。在word2vec中,有几种算法可以完成我们上面描述的操作。
一种叫做跳过文法,另一种叫做连续词袋。我们将主要看一下skip-grams算法。

Skip-grams(直接预测模型)

人工智能-自然语言处理(1)

在上面的示例中,我们有一个中心词(在本例中为“ banking”),并尝试在某个窗口大小内预测在中心词窗口中出现的词(在本例中为:“ turning”,“ into” ',‘危机’,‘作为’)。
skip-grams将选择单词向量,以便在给定某个中心单词的情况下,我们最大化预测正确上下文单词的可能性。

人工智能-自然语言处理(1)

Skip-grams图模型概述:
人工智能-自然语言处理(1)

如何在上图中找到红色,中心词和输出词表示形式矩阵?
答:我们的优良工具梯度下降+反向传播!
使用这些word2vec嵌入的结果是,我们能够将相似的单词组合在一起,并且如果我们对它们进行了降维处理,这些组合甚至可以转移到2D空间。

总结:

遍历语料库中的每个单词(正文)
预测每个单词的周围单词
这将一次捕获一个单词的同时出现