AAAI 2018 论文 | 蚂蚁金服公开最新基于笔画的中文词向量算法

导读:词向量算法是天然语言处理领域的基础算法,在序列标注、问答系统和机器翻译等诸多任务中都发挥了重要做用。词向量算法最先由谷歌在2013年提出的word2vec,在接下来的几年里,该算法也经历不断的改进,但大可能是仅适用于拉丁字符构成的单词(好比英文),结合中文语言特性的词向量研究相对较少。本文介绍了蚂蚁金服人工智能部与新加坡科技大学一项最新的合做成果:cw2vec——基于汉字笔画信息的中文词向量算法研究,用科学的方法揭示隐藏在一笔一划之间的秘密。算法

a67b3efeb497cbeacfed4a507b5c9cd0b5debdfa

做者: 曹绍升 陆巍 周俊 李小龙函数

 

AAAI大会(Association for the Advancement of Artificial Intelligence),是一年一度在人工智能方向的顶级会议之一,旨在聚集世界各地的人工智能理论和领域应用的最新成果。该会议固定在每一年的2月份举行,由AAAI协会主办。测试

 

第32届AAAI大会-AAAI 2018将于2月2号-7号在美国新奥尔良召开,其中蚂蚁金服人工智能部和新加坡科技大学合做的一篇基于汉字笔画信息的中文词向量算法研究的论文“cw2vec: Learning Chinese Word Embeddings with Stroke n-grams”被高分录用(其中一位审稿人给出了满分,剩下两位也给出了接近满分的评价)。咱们将在2月7日在大会上作口头报告(Oral),欢迎你们一块儿讨论交流。编码

 

单个英文字符(character)是不具有语义的,而中文汉字每每具备很强的语义信息。不一样于前人的工做,咱们提出了“n元笔画”的概念。所谓“n元笔画”,即就是中文词语(或汉字)连续的n个笔画构成的语义结构。人工智能

 

d38fe414acd2929a32eca9da7d55b90c5b728310

▲图1 n元笔画生成的例子翻译

 

如上图,n元笔画的生成共有四个步骤。好比说,“大人”这个词语,能够拆开为两个汉字“大”和“人”,而后将这两个汉字拆分红笔画,再将笔画映射到数字编号,进而利用窗口滑动产生n元笔画。其中,n是一个范围,在上述例子中,咱们将n取值为3, 4和5。设计

 

在论文中咱们提出了一种基于n元笔画的新型的损失函数,以下:3d

4198e6313a98cddb8addc4981cfa30bb24969aa7

其中,W和C分别为当前词语和上下文词语,σ是sigmoid函数,T(w)是当前词语划窗内的全部词语集合,D是训练语料的所有文本。为了不传统softmax带来的巨大计算量,这篇论文也采用了负采样的方式。C'为随机选取的词语,称为“负样例”,λ是负样例的个数,而eae218002407bfa4f52be431973a789d98148a22则表示负样例C'按照词频分布进行的采样,其中语料中出现次数越多的词语越容易被采样到。类似性sim(·,·)函数被按照以下构造:blog

d7f02f3b9405ccd5efb935d4407ec1000c511172

其中,ad29e3dee54d57b3d3df0cb450b97de358ecf0d0为当前词语对应的一个n元笔画向量,而42c178c639b8bb33183300107d8f57bb32d5d83e是其对应的上下文词语的词向量。这项技术将当前词语拆解为其对应的n元笔画,但保留每个上下文词语不进行拆解。S(w)为词语w所对应的n元笔画的集合。在算法执行前,这项研究先扫描每个词语,生成n元笔画集合,针对每个n元笔画,都有对应的一个n元笔画向量,在算法开始以前作随机初始化,其向量维度和词向量的维度相同。ip

 

5f99eecdac6f562a4a1f825fdeff7967df3047f7

▲图2 算法过程的举例

 

如上图所示,对于“治理 雾霾 刻不容缓”这句话,假设此刻当前词语刚好是“雾霾”,上下文词语是“治理”和“刻不容缓”。首先将当前词语“雾霾”拆解成n元笔画并映射成数字编码,而后划窗获得全部的n元笔画,根据设计的损失函数,计算每个n元笔画和上下文词语的类似度,进而根据损失函数求梯度并对上下文词向量和n元笔画向量进行更新。

 

为了验证这项研究提出的cw2vec算法的效果,在公开数据集上,与业界最优的几个词向量算法作了对比:

 

e2f3d6a52b37118b23cf6cfeb5bcd57a040b18a1

▲图3 实验结果

 

 

上图中包括2013年谷歌提出的word2vec的两个模型skipgram和cbow,2014年斯坦福提出的GloVe算法,2015年清华大学提出的基于汉字的CWE模型,以及2017年最新发表的基于像素和偏旁的中文词向量算法,能够看出cw2vec在word similarity,word analogy,以及文本分类和命名实体识别的任务中均取得了一致性的提高。同时,这篇文章也展现了不一样词向量维度下的实验效果:

 

 

a8322c65da27c63bf76fa506c8d79c7d7f77d412

▲图4 不一样词向量维度下的实验结果

 

 

上图为不一样维度下在word analogy测试集上的实验结果,左侧为3cosadd,右侧为3cosmul的测试方法。能够看出这项算法在不一样维度的设置下均取得了不错的效果。此外,也在小规模语料上进行了测试:

 

 

c3ac60aae4f1d31f06cac567ee85e4ae2b36b5d3

▲图5 小训练数据下的实验结果

 

 

上图是仅选取20%中文维基百科训练语料,在word similarity下测试的结果,skipgram, cbow和GloVe算法因为没有利用中文的特性信息进行增强,因此在小语料上表现较差,而其他四个算法取得了不错的效果,其中cw2vec的算法在两个数据集上均取得的了最优效果

 

 

8aaf982d3ba9ec2fccfbeb6ac9aa86cc3cf7fff6

▲图6 案例分析结果

 

 

为了更好的探究不一样算法的实际效果,这项研究专门选取了两个词语作案例分析。第一个是环境相关的“水污染”,而后根据词向量利用向量夹角余弦找到与其语义最接近的词语。GWE找到了一些和“污”字相关的词语,好比“污泥”,“污渍”和“污垢”,而JWE则更增强调后两个字“污染”GloVe找到了一些奇怪的相近词语,好比“循环系统”,“神经系统”。CWE找到的相近词语均包含“水”和“污”这两个字,猜想是因为其利用汉字信息直接进行词向量增强的缘由。此外,只有cw2vec找到了“水质”这个相关词语,分析认为是因为n元笔画和上下文信息对词向量共同做用的结果。第二个例子,特别选择了“孙悟空”这个词语,该角色出如今中国的名著《西游记》和知名日本动漫《七龙珠》中,cw2vec找到的均为相关的角色或著做名称。

 

做为一项基础研究成果,cw2vec在蚂蚁和阿里的诸多场景上也有落地。在智能客服、文本风控和推荐等实际场景中均发挥了做用。此外,不仅仅是中文词向量,对于日文、韩文等其余语言也进行相似的尝试,相关的发明技术专利已经申请近二十项

 

咱们但愿可以在基础研究上追赶学术界、有所建树,更重要的是,在具体的实际场景之中,可以把人工智能技术真正的赋能到产品里,为用户提供更好的服务。

阅读原文https://yq.aliyun.com/articles/376139

相关文章
相关标签/搜索