用词向量得句向量的无监督方法

  • 时间:
  • 浏览:0
  • 来源:极速快3_快3平台登陆_极速快3平台登陆

       词向量技术是NLP领域中并不是基础的技术,词向量将一一三个白 多多多多词语转换为固定维度的向量,通过正确处理向量关系让NLP中语义计算的任务得以实现。

       亲戚朋友都知道一句话是由一一三个白 多多多多个词语组成的,词向量技术什么都什么都将单个词语转成固定维度的向量,这麼 缘何得到多个词语组成的一句话的向量了?这是一一三个白 多多多多好现象,毕竟实际环境中才能 正确处理的文本是一一三个白 多多多多个一句话,而非一一三个白 多多多多个词语。为了让读者了解用词向量生成句向量的具体步骤,本文将介绍如下几种词向量生成句向量的无监督学习手段,它们分别是:累加法、平均法、TF-IDF加权平均法以及SIF嵌入法。

       累加法是得到一句话向量最简单的土措施,假设有原来一句文本:

There is no royal way to geometry.

——Euclid(欧几里得)

       这句是古希腊著名数学家欧几里得的名言,其中文意思是“通往几何并这麼 皇家大道”。NLP正确处理一段文本首先才能 将一段文本进行去停用词正确处理,英语中常见的停用词有be动词、介词、连词等,经过去停用词正确处理后上述文本可得下面的词语距离:

       {there, no, royal, way, geometry}

       本文采用相应的词向量词典(GoogleNews-vectors-negative1000.bin)和python的gensim来得到词向量,可得上述单词的如下词向量(本文篇幅有限,用5维的词向量来演示)

There [ 0.1, 0.2, 0.3, 0.4, 0.5]
No [ 0.2, 0.3, 0.4, 0.5, 0.6]
Royal [ 0.3, 0.4, 0.5, 0.6, 0.7 ]
Way [ 0.4, 0.5, 0.6, 0.7, 0.8 ]
Geometry [0.5, 0.6, 0.7, 0.8, 0.9]

       累加法的做法是将一句话中所有非停用词的词向量叠加,肯能一句话有n个非停用词,则一句话的词向量通过下面的手段获得:

       Vsentence = Vword1 + Vword2 + …… + Vwordn

       根据此土措施都才能得到” There is no royal way to geometry.“ 的一句话向量为:

       Vsentence = Vthere + Vno + Vroyal + Vway + Vgeometry

                     = [ 0.1, 0.2, 0.3, 0.4, 0.5] + [ 0.2, 0.3, 0.4, 0.5, 0.6] + … + [0.5, 0.6, 0.7, 0.8, 0.9]

                     = [1.5, 2.0, 2.5, 3.0, 3.5]

       平均法和累计法土措施类事 ,同样才能 将一一三个白 多多多多一句话中所有的非停用词向量叠加起来,但最后才能 加叠加起来向量处以非停用词的个数。一句话的词向量通过下面的手段获得:

       Vsentence = (Vword1 + Vword2 + …… + Vwordn) / n

       根据此土措施都才能得到” There is no royal way to geometry.“ 的一句话向量为:

       Vsentence =( Vthere + Vno + Vroyal + Vway + Vgeometry) / 5

                     = ([ 0.1, 0.2, 0.3, 0.4, 0.5] + [ 0.2, 0.3, 0.4, 0.5, 0.6] + … + [0.5, 0.6, 0.7, 0.8, 0.9]) / 5

                     = [1.5, 2.0, 2.5, 3.0, 3.5] / 5

                     = [0.3, 0.4, 0.5, 0.6, 0.7]

       TF-IDF加权平均法才能 利用到TF-IDF技术,TF-IDF技术是并不是常用的文本正确处理技术。TF-IDF模型常用评估一一三个白 多多多多词语对于一一三个白 多多多多文档的重要程度,一个劲 应用于搜索技术和信息检索的领域。一一三个白 多多多多词语TF-IDF值与它在文档中出現频数成正比,与它在语料库中出現的频率成反比。TF-IDF由TF词频(Term Frequency)和IDF逆向文件频率(Inverse Document Frequency)相乘而得。对于词语ti来说:

       其中ni,j是词语ti在个人发生的文档j中出現频数,Σknk,j是文档j中所有所有词语对应数

之和,|D|表示训练语料库中文档的总数,| j:ti∈dj|表示训练语料库中带有词语ti的文档总数。

另外值得注意的是,肯能词语ti找不到语料库中这麼 (1)式中| j:ti∈dj|为0,这麼 会导致 分析IDFj中分母为0,则无法计算出IDFj值。什么都什么都才能 改进为如下:

       TF-IDF加权法不仅才能 得到一句话中每个非停用词的词向量,还才能 得到一句话中每个非停用词的TFIDF值。每个非停用词的TF要素还好计算,IDF要素就要看用户使用哪个语料库,肯能是做query检索,这麼 IDF要素对应的语料库什么都什么都所有query一句话;肯能是做文本自类事 聚类,这麼 IDF要素对应的语料库什么都什么都全体待分类一句话。有过后通过如下手段得到TF-IDF加权的的一句话向量:

       Vsentence = TFIDFword1 * Vword1 + TFIDFword2 * Vword2 + …… + TFIDFwordn * Vwordn

       假设” There is no royal way to geometry.“ 是做query检索,这麼 计算IT-IDF对应的语料库什么都什么都全体query一句话。若全体query一句话一共有1000个; 其中1000个query一句话带有词语there, 63个query一句话带有词语no, 7个query一句话带有词语royal, 7一一三个白 多多多多query一句话带有词语way, 9个quer一句话y带有词语geometry。这麼 这句话中每个非停用词的TF-IDF数如下所示:

       There: 1/(1+1+1+1+1) * log(1000/(1+1000) = 0.098

       No: 1/(1+1+1+1+1) * log(1000/(1+65) = 0.083

       Royal: 1/(1+1+1+1+1) * log(1000/(1+7) = 0.10005

       Way: 1/(1+1+1+1+1) * log(1000/(1+72) = 0.629

       Geometry: 1/(1+1+1+1+1) * log(1000/(1+9) = 0.41000

       什么都什么都这句话的IT-IDF加权据向量为:

       Vsentence = TFIDFthere * Vthere + TFIDFno * Vno + …… + TFIDFgeometry * Vgeometry

                     =0.098[0.1,0.2,0.3,0.4,0.5]+0.083[0.2,0.3,0.4,0.5,0.6]+…+0.41000*[0.5,0.6,0.7,0.8,0.9]

                     = [0.147, 0.166, 1.2625 , 1.887, 1.61]

       ISF加权平均法和TF-IDF加权平均法类事 ,ISF加权计算来源于普林斯顿大学的论文A latent variable model approach to pmi-based word embeddings. ( https://openreview.net/forum?id=Sy K00v5xx),按照论文作者说法,此土措施都才能很好的根据每个词词向量得到整个一句话的据向量。SIF嵌入法才能 利用主成分分析和每个词语的estimated probability, SIF嵌入法具体操作如下所示:



图1 SIF一句话向量嵌入生成



       首先整个算法的输入有:

       (1) 每个词语的词向量

       (2) 语料库中全体一句话

       (3) 可调参数a

       (4) 每个词语estimated probability

       整个算法的输出为:

       一一三个白 多多多多一句话向量

       算法的具体步骤是:

       (1) 得到初步句向量

       遍历语料库中每个一句话,假设当前一句话为s, 通过如下计算式子得到当前一句话s的初步句向量:

\[\frac{{\rm{1}}}{{\left| s \right|}}\sum\nolimits_{w \in s} {\frac{a}{{a + p\left( w \right)}}{v_w}} \]

       即加权求平均的过程,每个词语向量乘以系数a/(a+p(w)后叠加,最后叠加向量处以一句话s中词语的个数,对于可调参数a论文中作者使用0.001和0.0001一一三个白 多多多多。P(w)是词语在全体语料库中unigram probability,即词语w词频处以语料库所有词语词频之和。

       (2) 主成分计算

       全体初步句向量进行主成分分析,计算出全体初步句向量第一主成分u

       (3) 得到目标句向量

       通过如下计算时对初步句向量进行二次正确处理,得到目标句向量

       此论文作者也在Github上公开了源代码,感兴趣的读者都才能自行下载做实验,Github代码

       本文主要介绍了并不是无监督手段来根据词向量生成一一三个白 多多多多一句话的句向量,除了无监督手段外,实际环境中还有用到监督土措施来生成一一三个白 多多多多一句话向量,类事 训练一一三个白 多多多多CNN的文本分类器,取最后一一三个白 多多多多隐藏层的输出作为一句话向量,感兴趣的读者都才能google来进一步学习。

参考文献

       [1] Arora S, Liang Y, Ma T. A simple but tough-to-beat baseline for sentence embeddings[J]. 2016.