加载中…
个人资料
冯志伟文化博客
冯志伟文化博客
  • 博客等级:
  • 博客积分:0
  • 博客访问:727,344
  • 关注人气:1,291
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

词向量及其在自然语言处理中的应用(七)

(2021-02-04 21:45:15)
标签:

冯志伟

人工智能

术语学

语言学

自然语言处理

词向量及其在自然语言处理中的应用(七)

词向量及其在自然语言处理中的应用(七)      

冯志伟

词向量相似度的余弦计算

 

         为了定义两个目标单词vw之间的相似性,我们需要取这两个单词的词向量并计算词向量之间的相似度。迄今为止,最通常的相似度的计算方法是使用词向量之间夹角的余弦(cos来进行的。

         这个“余弦”在自然语言处理中被广泛地应用来计算词向量的相似性。余弦的根据是线性代数中的点积dot product),有叫做内积inner product):

                  

         词向量之间相似度的大多数计算都是根据点积来进行的。点积之所以被用来计算相似性,是由于当处于同样维度中两个词向量具有很高的值的时候,点积的值也很高。而处于不同维度的词向量具有零值(它们是正交的词向量),那么,点积也为零,这表明这些词向量压根儿就没有相似性。

         但是,这种原始的点积在计算相似性时存在一个问题:它更喜欢长的词向量。词向量长度可定义为:

                                                       

         如果词向量越长,则点积就越大,在每一个维度中的值也就越大。高频单词的词向量较长,因为高频词倾向于与更多的单词共现,因而与这些单词具有较高的共现值。所以,高频词的原始点积将会比较大。然而,尽管如此,还有一个问题;我们更加希望相似度告诉我们两个单词究竟怎样相似,而不管它们的出现频度是多少。

         改善这种点积表示的最为简单的办法是把词向量长度归一化,也就是用两个词向量的长度来除点积的值,得到归一化点积normalized dot product)。这个归一化点积恰好等于这两个词向量的夹角的余弦,根据点积的定义,两个词向量 之间的点积为:

                                                                                                                                                                                              

                                                         

这样一来,两个词向量 之间的余弦相似度可以使用如下公式来计算:

                                      

    在某些应用中,我们对于每一个词向量都要进行预先的归一化,也就是用其长度来除词向量,形成一个单位向量unit vector)。因此,我们可以用词向量长度  来除词向量  ,计算出单位向量。对于单位向量来说,点积与词向量的余弦是相同的。

         这个余弦的值从1(指向同样方向的词向量)经过0(正交的词向量)到 -1(指向反方向的词向量)。不过,原始频率或PPMI的值是非负的,所以,这些词向量的余弦的值的范围是0 1之间.

         现在我们使用图6中单词-上下文共现矩阵的粗略计数,来计算余弦的值,看一看单词apricotdigital在意思上与单词information的接近程度。


                   单词-上下文共现矩阵(略)

 对于单词apricot和单词information,我们有:

           

           

           对于单词digital和单词information,我们有:

            

          


         所以得到:

由于0.58>0.16 ,所以,这样的模型可以判定,information digital更加接近,而与apricot不太接近。这样的结果符合我们的语言直觉。图7是这种情况的可视化表示。

 


 

         apricotdigitalinformation语义接近程度的可视化表示(略)

        

         从图7可以看出在使用上下文单词datalarge的计数定义的二维空间中三个单词(apricot, digital, information)的词向量,digitalinformation之间的夹角小于apricotinformation之间的夹角,说明与apricot相比较,digital更接近于information。这与我们的语言直觉是相符的。两个词向量越相似,它们的余弦值就越大,而夹角就越小,当两个词向量之间的夹角最小时( ),它们的余弦值最大(1);其他夹角的余弦都小于1

         8显示了Sweden这个国家的词向量与一些国家的词向量之间的余弦距离(cosine distance),也就是余弦值。可以看出,SwedenNorway, Denmark等北欧国家的余弦值都是0.7以上,说明这些国家与Sweden相似度高,与Sweden最为接近,而其他国家的余弦值都比0.7低,说明这些国家与Sweden的相似度比较低,离开Sweden比较远。这与我们的语言直觉也是相符的。

            

              Sweden的词向量与一些国家的词向量之间的余弦距离比较(略)


         2006年,Rohde等使用层次聚类的方法从词嵌入(embedding)中把名词自动地分为4类:身体类(wrist, ankle, tooth等),动物类(dog, cat, bull等),城市类(Chicago, Atlanta, Tokyo等),国家地区类(China, Russia, France等),并加以可视化表示。这些词嵌入使用了一个大小为 的窗口,14,000维,删除了157个封闭类的单词。与PPMI不同,这些词嵌入使用平方根通过正关联对于每一个单元(cell)进行计算(词对之间的关联为负值时,用0来替换)。这里的可视化表示使用了层次聚类,关联起来的每一类单词之间具有的很高的相似度。例如,wristanklehandfoot,等等(Rohde et al , 2006)。图9使用向量聚类的方法来显示单词之间的相似程度,聚类的结果符合我们的语言直觉。

                  

                          名词层次聚类的可视化表示(略)

 

 

2013年,美国机器学习研究者T. Mikolov等发现,如果用单词King的词向量减去单词Queen的词向量,再加上单词Woman的词向量,就能得到单词Man的词向量。类似地,如果用单词Paris的词向量减去单词France的词向量,再加上单词German的词向量,就能得到单词Berlin的词向量(Mikolov et al., 2013)。这样的计算结果与我们对于这些单词的语言直觉不谋而合。如图10所示。

 

 

                   

                     10 词向量的计算结果与我们的语言直觉不谋而合(略)


         Mikolov等在词嵌入的向量空间中,根据单词的词向量的数值,还发现了如图11所示的非常有趣的单词偶对关系。例如,在单词偶对关系France – Paris中,还有Italy : Rome, Japan : Tokyo, Florida: Tallahassee,表示的是某地区与该地区中心城市的关系;在单词偶对big – bigger中,还有small : larger, cold : colder, quick : quicker,表示是的是形容词基本形式与该形容词比较级形式的关系;等等Mikolov et al., 2013。这样的结果说明了词向量与我们的语言直觉也是相符的。

                    11   词嵌入的向量空间中显示的单词偶对关系(略)

         这些关于词向量的计算结果表明,词向量与人们对于语言词汇的直觉是很接近的,生动地揭示了词向量与语言意义之间的紧密联系,这是非常令人振奋和激动的科研结果。

 

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有