1. 关于词向量

    词向量是计算机将自然语言符号化的重要手段,通过把词或短语映射成低维的实数向量,以向量间的距离来衡量词语的相似性,可作为词语特征进行各项任务,在机器学习算法和自然语言处理中有着广泛应用。

bert_base_chinese计算文本向量 文本词向量_词向量

    传统的语言模型(eg. Word2vec)是基于分布假设,使用无监督的方式,利用给定的语料库中词语的上下文共现信息,通过优化后的神经网络模型,有效地将词语转换成向量的形式。

bert_base_chinese计算文本向量 文本词向量_词向量_02

bert_base_chinese计算文本向量 文本词向量_Word_03

    词向量一般是基于大规模的无结构文本语料训练所得。无结构文本语料是指基于人工创建编辑,未经严格正确性验证的文本语料,例如维基百科和新浪新闻。通过训练这些语料得到的词向量,虽然在很多自然语言处理任务上都取得不错的效果,但也显示出其受限于原始语料的主题限制和不准确信息的问题。一方面,语料库中的很多低频词得不到足够的上下文信息以供训练, 另一方面由于自然语言的表述是多样的,语义上相似的词不一定具有相同的上下文,所以得到的词向量并不能反映词的内在联系。

2. 文本与知识库融合

    前面提到基于上下文训练得到的词向量具有一些不足,一个很自然的想法就是利用其它结构化的知识,作为监督,来辅助词向量的训练。文本与知识库融合,通过信息的共享,解决或改善各自的问题。在知识表示学习领域,一般是基于已有的三元组来训练实体和关系向量,可以利用实体的描述信息或者其他文本内容来辅助学习,从而提升知识表示的性能,解决新实体的表示问题[1-3]。那么如何将知识库信息融合到词向量的训练过程呢?

    HIT的同学在14年提出在训练语言模型cbow的同时引入外部知识[4],利用PPDB和WordNet中抽取的具有语义相似关系的词对,作为词语的约束,使得对应的词向量能学习到这种语义相似的信息。目标是最大化如下的似然函数,可以认为是一个简化版的cbow,已知目标词,来预测与其相关的其它词w∈R_wi。

bert_base_chinese计算文本向量 文本词向量_结构化_04

    微软的研究员则尝试将加入词的形态信息(前缀后缀等)、句法(POS)和语义信息(同义词等)到cbow中共同训练,以获得更高质量的词向量[5]。

 

bert_base_chinese计算文本向量 文本词向量_词向量_05

 

bert_base_chinese计算文本向量 文本词向量_词向量_06

    NKU的同学则基于 Skip-gram 模型,提出融合关系知识和分类知识的训练框架 RC-NET[6]。

bert_base_chinese计算文本向量 文本词向量_词向量_07

其中R-NET主要利用三元组信息,C-NET主要利用同义词信息进行约束,目标函数分别如下:

bert_base_chinese计算文本向量 文本词向量_结构化_08

bert_base_chinese计算文本向量 文本词向量_结构化_09

    USTC的同学在15年提出SWE模型[7],该模型基于Skip-gram,将词语间的关系(同义,上下位等)表示成不等式约束,目标函数是相似度s(wi,wk)与s(wi,wj)之差的hinge loss.

bert_base_chinese计算文本向量 文本词向量_词向量_10

    2016年IMS的同学尝试在Skip-gram模型基础上加入词汇对比信息共同训练,提出dLCE模型[8],使得训练得到的词向量能有效识别同义词和反义词。模型目标函数如下,前半部分是SGNS的目标函数,后半部分是同义词反义词约束。

bert_base_chinese计算文本向量 文本词向量_Word_11

3. 进一步尝试方向

    上述提到的模型,尝试基于Word2vec,以不同的方法融合不同的结构化信息,取得一定的效果。在调研过程,我们对上述模型进行分析,发现各模型各有千秋,但大部分只适合特定的任务,如SWE模型在wordsim任务上有提升,但在anology任务上却效果不佳,dLCE模型在同义反义识别任务上性能良好,但在wordsim任务中不同数据集却表现差异大(WS353,MEN3000,SIMLEX999)。这似乎是合理的,因为不同的模型的目标就是为了解决不同任务上的问题,比如为了解决同义反义识别问题,那通过模型使得同义词距离更近,反义词距离更远,达到了预定目标,但无法保证其它任务的性能。

     那有没有办法更好的融合这些结构化知识呢?使得训练得到的词向量更具有泛化能力,能有效识别同义词反义词,又能学习到上下文信息还有不同级别的语义信息。

     我们尝试提出一个新的模型LRWE,具体描述见下一节。