2019版CS224N中文笔记(2)词向量的计算与评价
发布网友
发布时间:2024-10-06 13:17
我来回答
共1个回答
热心网友
时间:2024-10-27 00:22
本文为2019版CS224N中文笔记系列第二篇文章,主要探讨如何向计算机表示单词以及如何评估词向量的优劣。正文如下:
在上一讲中,我们知道计算机是以编码形式存储语言文字,如汉字“你”在UTF-8编码下是“你”,在Unicode编码下是“\u6211”。然而,这样的表示只有助于信息的存储,不利于信息的计算。因此,人们提出了多种方法表示单词,以方便信息处理和计算。
首先,我们简述了WordNet(词网)和Bag of words(词袋模型)。前者通过人为定义词与词之间的关系(如同义、反义、父子关系等),后者通过统计词在文本中出现的次数进行表示。尽管这两种方法有其用处,但都存在一定的局限性。
接着,我们介绍了Word vector(词向量),即每一个词用一串等长浮点数来表示(向量)。词向量的长度通常在100-300之间,希望词义相近的词其词向量欧式距离很近或夹角很小;词义相反的词,其词向量欧式距离很大或夹角很大。词向量还能捕获一定的语法和语义信息。
实现词向量的方法主要有HAL算法、LSA算法、神经网络自学成才法、迭代法。其中,HAL算法通过统计词出现的频率来表示词;LSA算法通过SVD降维减少维度,同时保留有用信息;神经网络自学成才法将词向量作为神经网络中的一层,通过训练学习词向量;迭代法通过不断迭代优化目标函数,以达到学习词向量的目的。
接下来,我们详细介绍了word2vec算法,包括CBOW和skip-grams两种模型。CBOW模型根据上下文预测中心词,skip-grams模型则相反。word2vec算法通过梯度下降法不断调整参数,使目标函数收敛至极小值,从而得到词向量。
为了解决word2vec算法计算量过大的问题,Glove算法提出了负采样方法。通过计算词向量的乘积,将多分类问题转化为二分类问题,从而减少计算量。同时,Glove算法结合了计数算法和直接预测算法的优点,训练速度快,效果良好。
在词向量的评价指标方面,我们有两种方法:Intrinsic评价和Extrinsic评价。Intrinsic评价是在中间任务上评价词向量的好坏,速度快,但不一定反映真实任务效果。Extrinsic评价是在真实NLP任务中使用词向量,但计算时间长,难以定位问题所在。此外,我们还探讨了Intrinsic评价中如何评价语义和语法信息,以及如何通过人主观打分评价词向量的相似度。
最后,我们提到词向量可以表示一词多义现象,并推荐了相关研究文献。词向量的表示方法和评价标准是NLP领域的重要组成部分,对后续的NLP任务具有关键作用。