写点什么

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

  • 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:251690
用户头像

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

关注

评论

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

浅谈 Apache Flume 数据接入的实现原理以及问题分析处理方式

移动云大数据

flume

火山引擎DataTester:一个爆款游戏产品,是如何用A/B测试打磨出来的?

字节跳动数据平台

大数据 游戏 AB testing实战 12 月 PK 榜

bat脚本常用命令及测试

@下一站

软件开发 BAT 12月日更 12月月更

理解DALL·E 2, Stable Diffusion和 Midjourney的工作原理

Baihai IDP

人工智能 AI 工具 AIGC 文转图

2022-12-04:给定一个由 ‘[‘ ,‘]‘,‘(‘,‘)’ 组成的字符串, 请问最少插入多少个括号就能使这个字符串的所有括号左右配对, 例如当前串是 “([[])“,那么插入一个‘]‘即可满足

福大大架构师每日一题

算法 rust 福大大

架构实战营 1-6 学生管理云平台实战随堂测验

西山薄凉

「架构实战营」

AngularJS进阶(二十二)实现时间选择插件

No Silver Bullet

AngularJS 12月月更 AngularJS时间插件

工作中常用的设计模式--策略模式

lpe234

Java 后端 设计模式 策略模式 spring-boot

足球比赛中的数据科学

CnosDB

数据库 时序数据库 开源社区 CnosDB infra

2023最新版EasyRecovery软件下载安装教程

茶色酒

EasyRecovery EasyRecovery15 easyrecovery2023

MetaTown:一个可以自己构建数字资产的平台

华为云开发者联盟

区块链 华为云 12 月 PK 榜 数字资产平台

极客时间架构训练营作业-模块一

张建闯

架构实战营

企业如何应对开源软件供应链安全问题?

安势信息

开源 开源安全 软件供应链安全 开源安全与治理 清源CleanSource SCA

架构实战营 1-5 学生管理系统实战随堂测验

西山薄凉

「架构实战营」

踩坑之旅:配置 ROS 环境

eng八戒

机器人 ROS 移动机器人 机器人开发

鸿蒙开发实例 | 可复用列表项的ListContainer

TiAmo

华为 华为云 12月月更

底层逻辑-理解Go语言的本质

面向加薪学习

golang go语言 源代码 golang 面试 Go源代码

CorelDRAW2023中文版专业矢量软件更新介绍

茶色酒

CorelDRAW 2022 CorelDraw2023 CorelDraw

极客时间 - 运维进阶训练营 - 第六周作业

dog_brother

AngularJS进阶(二十五)requirejs + angular + angular-route 浅谈HTML5单页面架构

No Silver Bullet

AngularJS 12月月更 requirejs angular-route

AngularJS进阶(二十四)AngularJS与单选框及多选框的双向动态绑定

No Silver Bullet

AngularJS 12月月更 单选 多选

4.如何做好架构设计

程序员小张

「架构实战营」

编码开发如何开展API安全实现

穿过生命散发芬芳

12月月更

架构训练营模块1作业

附加信息

架构训练营

mysql优化之 performance Schema常用查询sql

@下一站

MySQL 优化 12月日更 12月月更

架构实战营 - 微信业务架构图 & “学生管理系统”毕设架构设计

huiwen

架构实战营

CDH+Kylin三部曲之一:准备工作

程序员欣宸

大数据 kylin 12月月更

TDengine3.0:解决高基数问题的时序数据库设计思路

TDengine

数据库 tdengine 时序数据库

【愚公系列】2022年12月 微信小程序-组件模板和组件样式

愚公搬代码

12月月更

Python:灵活的开发环境

eng八戒

Python Python自动化办公

会议报道 | 第二届百家医院单细胞中心联盟年度峰会圆满落幕

联营汇聚

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