论文地址:https://www.aaai.org/ocs/index.php/AAAI/AAAI18/paper/viewFile/16131/16076
GitHub:https://github.com/qianliu0708/SENSE
收录于:AAAI 2018
如何正确有效的表示一个词(word)的语义是NLP中一个很基础也是很重要的一个任务,即如何利用词的语义信息得到一个词向量(word embedding)对于NLP下游的任务十分关键。基于语料库的方法主要考虑了词的同现(co-occurrence)信息,导致具有相似上下文的词通常具有相似的词向量。此外也有模型使用文本、知识图谱(knowledge bases)等做为外部的信息源来指导词向量的学习,但是它们更多的只考虑了KBs中词对(word-pairs)之间的关系,并没有完全的探索KBs的结构信息。而作者认为除了可以使用词对的关系外,KBs中组织良好的词结构信息能够在捕捉词的语义时传递更有效、更稳定的知识。因此作者在本文中提出了一种基于语义结构的词嵌入方法(SENSE),并引入了**概念合并(concept convergence)和词散度(word divergence)**来展现词嵌入学习过程中的语义结构。在实验部分,作者在词相似性、词类比、文本分类和查询扩展方面做了实验,证明了所提出的模型达到了state-of-the-art。
通过考虑KBs中直接连接你或是间接连接的词来对词的语义建构进行建模通常会提供更可靠、更稳定的信息。如上图所示,篮球和足球向上都属于球类(concept convergence),但是它们在某些属性上取值并不相同,因此在图中并不直接相连(word divergence)。本文的主要贡献为:
- 提出了一种新的基于KBs中可靠、稳定的语义结构的词嵌入学习方法
- 设计了保留语义结构的原则,即在语义结构的上层将词合并到同一概念,在语义结构的同一层次上将词语分离
- 在语义性能测试、文档检索和文本分类方面进行了广泛的实验,结果表明该方法明显优于现有方法
Semantic Structure-based Word Embedding
给定语料库C和知识图谱G ,SENSE的目标是为语料库中的每个词w学习一个d维的向量xw∈Rd。任何以层次结构方式捕获词之间关系的知识图谱都可以用来生成语义结构,如WordNet(本文所选用)、Freebase、PPDB等。例如下图就是WordNet中的一种层次结构
如果将知识图谱定义为一个有向图G=(V,E),顶点集V表示图谱中的词,边集E表示顶点对之间的语义联系。顶点的结构信息和双亲顶点、兄弟顶点、孩子顶点的结构信息有关。
在自然语言中,在语义结构上直接相连的词之间应该共享相同的属性,例如????和????都属于犬科动物,那么犬科动物就是一个代表狗和狼共同属性的概念,即子单词(child words)趋向于接近父单词(parent word)。因此有:
concept convergence:上一次的词是下一级词的概念,所有在较低层的词的中心都趋向于合并到其较高层次的词。
The upper level is regarded as the concept of its lower level. The center of all words in the lower level tends to converge to their upper level word.
此外,语义结构中兄弟顶点的词是间接联系的且处于同一层中,因此有:
Word divergence:同一层次的词具有不同的属性,它们往往趋向于发散
Words in the same level hold distinctive attributes, and they tend to be diverged.
word2vec中使用了非常高效的对数线性模型来生成高质量的单词嵌入,它应用一个在语料库上移动的滑动窗口,中心词是目标词,其他词是上下文词。与之相关的以下两种模型:
- CBOW model:使用上下文词的平均/和作为输入来预测目标
- Skip-gram model:使用目标单词作为输入来预测每个上下文单词
模型的目标函数可简单表示为如下的形式:
而SENSE的思想是:训练得到的词向量Xw不仅可以很好的预测w的上下文的词,同时也可以对前面所提出的两个假设进行建模。因此,基于WordNet以下的两个特点,SENSE在WordNet上使用同义词集(synsets)的粒度对语义结构进行建模
- 每个词至少有一个同义词集,因此词和同义词集之间存在着多对多的关系
- 每个同义词集在WordNet中至少含有一个父顶点
给定一个词w,它对应的同义词集的集合w为S={w1,…,wk},其中wi表示w的一个同义词集。接着对于wi利用三个级别的特征来捕获不同粒度的语义结构:
- Ⅰ:P(w)={p1,…,p∣P∣}表示w上一级的词集,其中pi∈V,<pi,w>∈E
- Ⅱ:D(pi,w)={u1,…,u∣D∣} 表示根据上一级的不同将w同一层次的词划分的不同的∣P(w)∣子集,其中u∈V ,<pi,u>∈E
- Ⅲ:C(w)={v1,…v∣C∣} 表示w下一集的词集,v∈V ,<pi,v>∈E
根据上述的假设concept convergence可知,w应该接近它下一级的中心词,因此训练目标为最大化下面的函数:
Lc=S(w)∑cos⎝⎛xw,∣C∣1v∈C(w)∑xv⎠⎞
其中cos(.,.)表示相似度计算函数,这里使用的是常用的余弦相似度度量:
cos(xwa,xwb)=∣xwa∣⋅∣xwb∣xwaT⋅xwb
而w与它同一层次的词之间的距离应增大,因此另一个训练目标为最小化如下的函数:
Ld=S(w)∑pi∈P(w)∑u∈D(pi,w)∑cos(xw,xu)
将上述整合到一个统一的框架中,得到新的优化目标是
L=Θmax(Lcontext+αLc−βLd)
如果预测的词w在知识图谱中具有语义结构,则**相应的语义结构建模优化过程,优化过程如下:
∂xw∂L∂xv∂L∂xu∂L=α∂xw∂Lc−β∂xw∂Ld=S(w)∑(α∂xw∂cos(xw,x)−βpi∈P(w)u∈D(pi,w)∑∂xw∂cos(xw,xu))=α∂xv∂Lc=S(w)∑α∂x∂cos(xw,x)=−β∂xu∂Ld=S(w)∑pi∈P(w)∑u∈D(pi,w)∑−β∂xu∂cos(xw,xu)
其中∂xu∂cos(xw,xu)的优化过程为:
∂xi∂cos(xi,xj)=−∣xi∣2Sij⋅xi+∣xi∣⋅∣xj∣xj
模型的复杂度可以和Word2Vec相媲美。整个算法的伪代码如下所示:
实验
Word Similarity and Word Analogy
对比的基准模型如下所示:
- 基于语料库的模型:CBOW、Skip-gram、GloVe
- 基于知识图谱的增强模型:RCM、Retrofit、Jointreps
实验所使用的语料库为Wikipedia corpus,它包含1600万个单词和71291个不同的单词。benchmark的数据集:
-
MC (30 word-pairs)
-
MEN (3000 word-pairs)
-
RG (65 word-pairs)
-
VERB (143 word-pairs)
-
WS (353 word-pairs),
-
WS-sim
-
WS-rel
实验结果如下所示:
从中可以看出:
- KBs可以提高嵌入词的性能,但如何提取和建模语义信息的方法直接影响嵌入词的性能。SENSE方法明显优于所有的基线方法,这意味着通过概念合并和词发散来建模语义结构是合理和有效的
- 在嵌入学习过程中对结构信息建模的强大功能可以显著的提升在word similarity上的效果
- 与局部共现信息相比,全局计数信息在语义推断方面更准确。而且语义结构比词对之间的关系更可靠、更稳定,结构信息可以从全局的角度捕捉词的潜在关系
Text Classification
实验所用的数据集为[20NewsGroup](http://qwone.com/ jason/20Newsgroups/.) ,它包含来自20个不同新闻组的18,846个文档,训练集大小为11,314,测试集大小为7,532。基准模型为BOW、 LDA、TWE、GloVe、Word2Vec、Retrofit 和PV,实验结果如下所示,显示了多个分类的度量指标
Query Expansion
这是一个信息检索的任务,所用数据集为Reuters Corpus Volume 1 (RCV1),它包含806,791个文档,实验结果如下所示:
如何使用和NLP相关的资源的信息来处理NLP中的问题,是一个值得持续思考的问题~