写点什么

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

  • 2019-09-09
  • 本文字数:2375 字

    阅读完需:约 8 分钟

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

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


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


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 个笔画构成的语义结构。



图 1 n 元笔画生成的例子


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


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



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



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



图 2 算法过程的举例


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


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



图 3 实验结果


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



图 4 不同词向量维度下的实验结果


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



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


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



图 6 案例分析结果


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


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


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


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/cu0vUuY1meRyTy9wtKMmnw


2019-09-09 09:251839
用户头像

发布了 150 篇内容, 共 37.2 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

netty系列之:让TLS支持http2

程序那些事

Netty 网络协议 HTTP 程序那些事 http2

Github爆款!Aura v2.0.0正式版来了…

Jackpop

java.lang.OutOfMemoryError:GC overhead limit exceeded

看山

Java OOM 10月月更

带你掌握java反序列化漏洞及其检测

华为云开发者联盟

Java 安全 漏洞

【Flutter 专题】24 易忽略的【小而巧】的技术点汇总 (三)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

币币交易APP系统开发费用(源码)

助力建设智慧社区,EMQ 映云科技服务美好生活

EMQ映云科技

物联网 mqtt 智慧社区

第一周学习总结

小何

Leetcode 题目解析:211. 添加与搜索单词 - 数据结构设计

程序员架构进阶

LeetCode Trie 算法题 10月月更

阿里IM技术分享(五):闲鱼亿级IM消息系统的及时性优化实践

JackJiang

架构设计 即时通讯 IM

JavaAgent查看动态生成类的源码

长河

这款手机浏览器,简直开挂了....

Jackpop

【LeetCode】最小操作次数使数组元素相等Java题解

Albert

算法 LeetCode 10月月更

场外OTC交易系统APP开发(案例)

全周期数据管控,为「快递大数据+」保驾护航

BinTools图尔兹

新手 Gopher 如何写出更健壮的 Go 代码

baiyutang

golang 10月月更

Python代码阅读(第41篇):矩阵转置

Felix

Python 编程 Code Programing 阅读代码

英特尔联合阿里巴巴深化从云到端全面技术合作,加速数智中国创新发展

科技新消息

主干开发你必须知道的7件事

华为云开发者联盟

产品 测试 团队 开发 主干开发

币币撮合交易软件系统开发(源码搭建)

边缘AI方案落地问题探讨

华为云开发者联盟

机器学习 AI 算法 边侧数据 边缘云

Prometheus 查询操作符(三) 聚合运算符

耳东@Erdong

Prometheus 10月月更

谈 C++17 里的 Command 模式

hedzr

设计模式 命令模式 Design Patterns c++17 Command Pattern

Vue进阶(幺肆贰):CSS-静态定位,相对定位,绝对定位,固定定位的用法和区别详解

No Silver Bullet

Vue 元素定位 10月月更

Spinnaker:云原生多云环境持续部署的未来

博文视点Broadview

阿里云盘:慌了....

Jackpop

场外OTC交易软件系统开发介绍(源码)

数字货币交易软件系统开发介绍(搭建)

【设计模式】第七篇 - 建造者模式-麦当劳套餐

Brave

设计模式 建造者模式 10月月更

滚雪球学 Python 番外篇之游戏世界,游戏也有 Hello World

梦想橡皮擦

10月月更

华为云GaussDB深耕数字化下半场,持续打造数据库根技术

华为云开发者联盟

Serverless 云原生 华为云 GaussDB 云数据库

蚂蚁金服公开最新基于笔画的中文词向量算法_文化 & 方法_Geek_cb7643_InfoQ精选文章