• 回答数

    3

  • 浏览数

    283

小可爱vivi
首页 > 期刊论文 > 词向量本科毕业论文

3个回答 默认排序
  • 默认排序
  • 按时间排序

张小凡09

已采纳

GloVe:Global Vectors for Word Representation,它是一个基于 全局词频统计 的词表征工具。通过GloVe计算出的词向量捕捉到了词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。我们通过对向量的运算,比如欧氏距离或cos相似度,可以算出词之间的语义相似性。

由语料库构建一个共现矩阵(Co-occurrence Matrix) X,矩阵中的每一个元素 代表单词 和上下文单词 在特定大小的上下文窗口内共同出现的次数。这里GloVe做了额外的工作,它根据两个单词在上下文窗口的距离d,提出了一个衰减权重 ,也就是说距离越远的两个单词所占总计数的权重越小。

原论文作者给出的loss function长这样: 其中 和 是最终求解的词向量, 和 是两个标量(作者定义的偏差), 是权重函数,V是词典的大小(共现矩阵的维度V x V)。这里我们知道GloVe模型没有使用神经网络做训练。

下面来说说权重函数 。在一个语料库中,存在很多单词他们在一起出现的次数是很多的,那么我们希望权重函数 满足以下几点: a. 这些单词的权重要大于那些很少在一起出现的单词,所以这个函数是非递减的; b. 我们不希望这个权重过大,当到达一定程度之后不再增加; c. 如果两个单词没有在一起出现,也就是 ,那么它们应该不参与到loss function的计算中来,也就是 要满足 。

综合以上,作者选择了如下的分段函数:

作者在实验中取的 , 。

这么看来GloVe像是一种无监督训练方法,因为不需要提供标注。但其实它还是有标注的,标注就是 ,向量 和 是需要不断更新的学习参数,所以本质上还是监督学习,基于梯度下降。

最终学习得到的是两个向量 和 ,因为 是对称的,所以从原理上 和 也是对称的,他们唯一的区别是初始化的值不一样,而导致最终的值不一样。所以这两者其实是等价的,都可以当成最终的结果来使用。但是为了提高鲁棒性,最终选择两者之和作为verctor(两者初始化不同,相当于加了不同的随机噪声,所以能提高鲁棒性)。

上面我们了解了GloVe模型训练词向量的过程,但是我们还有一个很大的疑问,loss function是怎么来的,为什么是这个形式?

首先我们先熟悉几个符号定义:

作者从ratio中发现了一些规律,看下表:

看最后一行,我们可以用这个比值观察出两个单词 和 相对于单词 哪个更相关。

比如,ice和solid更相关,而stram和solid明显不相关,于是发现 比1大很多;gas和steam更相关,而与ice不相关,所以 远小于1;当都有关或都无关的时候,两者比例接近1.

所以,以上结论可以说明 通过概率的比例而不是概率本身去学习词向量可能是一个更恰当的方法 。

于是乎,作者开始了表演:

假设我们已经有了词向量 ,并且用这些词向量通过某种函数计算ratio能够得到同样的规律的话,就意味着我们词向量与共现矩阵具有很好的一致性,也就是说我们的词向量中蕴含了共现矩阵中蕴含的信息。翻译成数学表达式: ,我们的目标应该是使得表达式两端尽可能地接近。所以,得出代价函数: 有个问题,模型中有3个单词,也就是说我们的计算复杂度是N x N x N,有点复杂。下面来做一些优化:

下面把公式做进一步变形: 因此,只要让分子分母对应相等即可: 。因为分子分母形式相同,所以可以把两者统一考虑,我们有: 。

两边取对数:

loss function可以化简为:

到这里,我们成功把计算复杂度从N x N x N降到N x N。

但是这里出现了新的问题,我们看两个式子: 与 ,两个等式的左边不等,但是右边却相等。

好了,继续脑洞。将代价函数中的条件概率展开: ,添加偏置项并将 放到偏置里面去,所以有: 最后,出现频率越高的词对应的权重应该越大,所以在代价函数中添加权重项:

315 评论

王家姑娘0122

Glove词向量出自于论文《Glove:Global Vectors for Word Representation》

Glove的全称是Global Vectors for Word Representation,中文意思是全局词向量,它是一个基于 全局词频统计(count-based&overall statistics) 的 词表征(word representation) 工具。 跟word2vec一样,它可以把一个单词表示成一个由实数组成的向量,向量可以捕捉单词之间的一些语义特性,如相似性(similarity)、类比性(analogy)。并且通过对向量的运算,如欧几里得距离或cosine相似度,可以计算两个单词之间的 语义相似性。

3.构造loss function: 这个损失函数是最简单的mean square loss,只不过在此基础上增加了一个权重函数 ,它的作用在于:对于在一个语料库中经常一起出现的单词(frequent occurrence),

文中,作者采用了符合上述条件的分段函数:

文中的所有实验, 的取值都是 的取值都是 。

虽然很多人声称Glove是一种无监督(unsupervised learning)的学习方式,即不需要人工标注数据,但实际上它还是有标签的,这个标签就是 ,而向量 和 就是要不断更新学习的参数。因此,本质上它的训练方式和监督学习的训练方式没有什么不同,都是基于梯度下降的。

训练的具体做法是:采用AdaGrad的梯度下降算法,对矩阵 中的所有非零元素进行随机采样,学习率设置为,在vector size小于300的情况下迭代50次,其他大小的vector size迭代100次,直至收敛。

因为 是对称的,所以最终学到的两个词向量 和 应该也是对称的,等价的,只不过由于初始值不一样,导致最终的值不一样。为了提高鲁棒性,最终选择两者之和 作为最终的词向量(两者的初始化不同相当于加了不同的随机噪声所以能提高鲁棒性)。

这个图一共采用了三个指标:语义准确度,语法准确度以及总体准确度。那么我们不难发现Vector Dimension在300时能达到最佳,而context Windows size大致在6到10之间。

如果本身语料比较小,微调没什么作用,或者自己直接训练没有很强的算力,直接使用采用大数据进行预训练的glove词向量也会有比较好的效果。

128 评论

37856552ah

词向量,顾名思义,就是使用向量来表达词。最常见的表达方式就是"one-hot",其向量维度为整个语料库中词的总数,每一维代表语料库中的一个词(出现为1,不出现为0)。假设语料库为:

那么该语料库的字符集为:{I, like, deep, learning, NLP, enjoy, flying},其对应的"one-hot"表达方式为:

“one-hot”表达方式的最大问题在于其只能表达词本身是否出现,而无法表达词与词之间的关系。为了解决此问题,便有了使用相邻词来表达词本身的方式。

基于窗口的共现矩阵是对词与词相邻关系的最直接表达。还是以上面的语料库为例,假设窗口大小为1(即以每一个词为中心,向左/右延伸长度为1),那对应的共现矩阵为:

由于共现是双向的,所以上述矩阵是对称的。随着语料库变大,该共现矩阵将会变的非常巨大,于是便需要通过SVD(Singular Value Decomposition)进行降维,相关理论在此不进行展开。但共现矩阵还是存在很多问题,如无法处理新词等。

另外一种基于词相邻关系的表达方式就是word2vec(Mikolov et al. 2013),其主题思想是通过每一个词本身来预测其相邻的词。

回顾一下大部分机器学习模型的训练过程,先设定 Objective Function ,然后随机设定初始状态,再通过 Gradient Descent 进行迭代,逐步逼近最优解。 word2vec 模型本质上也一样,还是从 Objective Function 入手

第一个 Sigma 表示从头到尾过一遍语料库中的每一个词,第二个 Sigma 表示对于每一个词,过一遍其窗口内的所有词(除自己外)。最后一部分表示基于中心词预测其窗口内上下文的概率。如果基于本文开头的简短语料库,设定窗口大小为1,将 Objective Function 展开就会是这个样子

从 Objective Funection 的具体形式,可以看出 word2vec 与先前表达方式的本质区别,在这里引用一段英文资料的解释:

接下来,我们需要弄清楚 p 究竟是什么。首先,我们的目标是得到语料库中每一个词的向量表示方法,所以相应的变量应该是词向量;然后,在上述 Objective Function 中,语料库中每一个词既有可能做为中心词,也有可能做为上下文,为了区分这两种情况,我们会对每一个词分别维护两个向量。

继续,我们已经有了两个向量,那么最简单直接的想法就是 Cosine Similarity ,但它的结果区间是从-1到1,需要把它转化成0到1的概率区间,于是原论文中使用了 Softmax 函数。

至此,我们完成了最简单版本 word2vec 模型的 Objective Function 。接下来是迭代过程,迭代过程相对比较简单,分别两个向量进行求导,然后对语料库中每一个实例进行迭代

关于上述公式中的求导过程,感兴趣的同学可以看看 斯坦福的公开课 ,自己也在纸上演算了一遍:

上述 word2vec 推导只是原论文中最简单的模型,后续我会针对复杂模型单独进行整理分析。

上面,我们已经梳理了基于共现矩阵与 word2vec 的词向量表达方式。相比而言,基于共现矩阵的词向量表达方式训练速度快、充分利用了统计信息,主要用于计算词与词的相似度;而 word2vec 词向量表达方式训练速度相对较慢,并没有充分利用统计信息,但能表达出更加复杂的信息。 GloVe 模型结合了两者的优势,训练速度比 word2vec 更快,其效果与 word2vec 相当,甚至更好一些。其 Objective Function 为:

其中 P 为两个词在原语料库中的共现次数, f 为共现次数与权重的函数关系, Objective Function 的主体思想为:

基于上面的思想,便有了下述 f 函数形式:

这个 是斯坦福的官方链接,包含了论文以及实现,感兴趣的同学可以试试。

210 评论

相关问答

  • 毕业论文关键词数量

    这是根据字数要求来选择的,一般三千字论文注释是五个,五千字是十个,六千字是十五个,八千字就是二十个以上了,一般字数越多注释要求也就越多,您的论文的具体是什么题目

    满堂红李娜 3人参与回答 2023-12-09
  • 本科毕业论文向量自回归模型

    模型有三个层次: 第一个层次,简单的图表和指标,一般的问卷调查结果的展示都会采取这种方式,生动形象。 第二个层次,描述性统计,分析数据分布特征。 第三个层次,计

    nellie0223 2人参与回答 2023-12-08
  • 图论本科毕业论文方向

    图像处理是利用计算机对图像信息进行加工以满足人的视觉心理或者应用需求的行为,应用广泛,多用于测绘学、大气科学、天文学、美图、使图像提高辨识等。学术堂在这里为大家

    上海草根 4人参与回答 2023-12-06
  • 诗词方向的毕业论文

    天天通融通融同仁堂他他他仍然仍然仍然让他人仍然突然让他让他突然突然仍然突然让他仍然推塔

    苏州小诸葛 4人参与回答 2023-12-11
  • 向量毕业论文

    学好数理化,走遍天下都不怕。写好数学论文的前提是需要有拟定一个优秀的数学论文题目,有哪些比较优秀的数学论文题目呢?下面我给大家带来2022最新数学方向 毕业

    初记装饰 2人参与回答 2023-12-07