背景介绍
阿里巴巴的生态系统下面有很多的计算平台,上面有各种各样的业务层,最中间是买家和卖家之间包括销售、支付等等之间的关系,外面建了一圈从娱乐到广告到金融到购物到物流等等各方面这样一个生态,中间有非常多的数据能够关联起来,所以对于阿里巴巴而言,这个图可以非常简练的概括我们在做什么,中间是最重要的数据,下面数据包含了最核心的也是阿里巴巴最早起家的来自于电商的数据,所以电商对于我们而言是非常重要的,后来又扩展出了金融、菜鸟物流、健康和娱乐,比如我们有大文娱事业群,去做了优酷土豆等各种各样的数据,数据当中包含了很多的文本。
比如阿里的电商平台里面有数十亿的商品,每一个商品都包含详细的标题、副标题、详情页、评价区,甚至问答区,这里面的信息构成了一个非常丰富的商品信息,还有上亿的文章,阿里在两年前开始进入内容时代,比如现在各种各样的内容营销、直播还有一些问答的场景圆桌等等,文章里面可以包含各种各样的标题、正文和评论等大量的数据,这只是电商的例子,还有金融、物流、健康、娱乐,加在一起还会有海量的数据,就会孕育出大量文本处理的工作需求。
自然语言处理是什么呢?
- 语言是生物同类之间由于沟通需要而制定的具有统一编码解码标准的声音(图像)指令。包含手势、表情、语音等肢体语言,文字是显像符号。
- 自然语言通常是指一种自然地随文化演化的语言。例如英语、汉语、日语等。有别于人造语言,例如世界语、编程语言等。
- 自然语言处理包括自然语言理解和自然语言生成。自然语言理解是将自然语言变成计算机能够理解的语言,及非结构化文本转变为结构化信息。
- NLP的 四大经典“AI 完全 ” 难题:问答、复述、文摘、翻译,只要解决其中一个,另外三个就都解决了。问答就是让机器人很开放的回答你提的各种各样问题,就像真人一样;复述是让机器用另外一种方式表达出来;文摘就是告诉你一篇很长的文章,让你写一个100字的文摘,把它做出来是非常难做的;翻译也是很困难的,英语思维方式和中文思维方式转换过来,中间会涉及到很多复杂的问题。
阿里巴巴需要什么样的自然语言处理技术?
阿里的生态是非常复杂的,我们不能用一个简单的自然语言处理技术去解决所有的问题,以往自然语言处理是比较简单的,甚至一个词表放上去就解决所有问题了,随着电商生态的扩展,就需要非常复杂的技术,所以我们需要完备且高性能的自然语言处理技术,高性能体现在算法精度还有执行效率,IDST的定位如下:
-引领技术前沿-赶超市场最佳的竞争者,完备和完善AliNLP平台的技术体系及服务能力;
-赋能核心业务-帮助核心业务快速成长,寻找和解决业务方的最痛点;
-创造商业机会-创造看似不可能的商业技术,深度理解语言,深度理解需求,变革产品体验。
AliNLP 自然语言技术平台
图为我们整个自然语言处理平台最核心的框图,底层是各种各样的基础数据,中间层包含基本的词法分析、句法分析、语义分析、文档分析,还有其他各种各样跟深度学习相关的一些技术;上层是自然语言处理能够直接掌控和变革的一些算法和业务,比如内容搜索、内容推荐、评价、问答、文摘、文本理解等等一系列问题,最上层我们直接支持大业务的单元,比如商品搜索、推荐、智能交互、翻译。商业翻译和普通机器翻译是不一样的,还有广告、风控、舆情监控等等。这个层次结构是比较传统的方式,为了让我们平台具有非常好的落地能力,右边有一列平台工程,专门解决如何让算法能够快速的用到业务里面去。
将核心框图细化,底层有各种各样的数据,比如实体库、源学辞典、词性标注库、词性关系库、句法树库、情感分析标注库,还有情感词典、资讯库、图谱等等。这些是词法分析,包括分词、词性、实体识别,拼写检查等一些基础的组件,句法分析有结构句法分析、依存句法分析、语义分布表示等等,还有语义分析,包含词义消歧、语义角色标注、主题模型、行为表示等。还有文档分析,比如普通的文档聚类、文档分类、事件挖掘、层次聚类和意图分类,其他部分就是我们尝试比较多的偏深度学习的一些自然语言算法。
右边的平台工程我们做了很多尝试。团队经过几年的发展,不停的去反思如何把我们的技术快速的跟业务对接起来,经过不停的尝试之后,我们做了很多的可视化、需求管理、用户中心、监控中心、系统运维,还有自动的标注平台、训练平台、评测中心等等,经过一系列的封装,才会使得平台越来越完善。
图为阿里AliNLP系统架构图,左边是算法模块,包括知识库、语料库、算法模型,中间是服务化平台,比如我们的服务分为在线服务和离线服务。离线服务有阿里巴巴最大的计算平台ODPS,里面做了很多这方面的UDF操作,在线有HSF和HTTP服务,可以很好的对接各种各样的相关服务方;中间有用户中心、监控中心、测试中心、系统运维等比较复杂的一套体系。右边是我们对接的一套生态平台,上面可以通过我们的接口层直接对接各种各样的应用。我们迭代了很多轮才出现这样的结构,现在大概支持30多个业务方,平均每天的调用量在数百亿规模。
AliNLP平台核心价值
AliNLP平台核心价值就是解耦。我们希望通过做这样一个平台,去面对整个阿里巴巴的生态系统:
- 算法超市。我们希望平台是NLP算法超市,业务方可以清晰看到分门别类的NLP算法;
- 工程小白。我们希望平台解决一切工程问题,算法工程师可以是工程小白只需专注算法研发;
- 系统生态。对于系统,以此为中心形成一个系统生态体系,从各个环节切入服务NLP算法和业务;
- 服务底线。对于产品运营,平台只做底层模型的服务输出,不直接对接业务。
经过各种各样的迭代、打磨、思考、反思,5月初会发布2.0版本,我们希望做持续的改进。我们平台中最核心的三个概念如下:
1.模型:最基本的算法逻辑复用单元,如果用算法超市的概念解释,模型就是原材料,模型是算法工程师的主要产出成果;
2.方案:是多个模型的组合,用于真正解决某一方向的具体问题,类似于待售的超市商品。方案是业务、算法的结合之处,我们负责“算法售卖”的同学会应用手头已有的模型通过不同的组合配置,产生出不同的商品供最终业务方的用户使用;
3.场景:是多个方案在线上部署的最终形态,是最终服务的提供者,是业务方真正使用我们的算法大礼包的地方。按目前的设计,不同的业务方可以在相互隔离的多个场景中使用算法服务。
只有理解这三个概念,才会知道平台怎么去很好的使用。
NLP算法举例
下面对我们的算法做一些比较简单的举例。
1.词法分析(分词、词性、实体):
–算法:基于Bi-LSTM-CRF算法体系,以及丰富的多领域词表
–应用:优酷、YunOS、蚂蚁金服、推荐算法、资讯搜索等
2.句法分析(依存句法分析、成分句法分析):
–算法:Shift-reduce,graph-based,Bi-LSTM
–新闻领域、商品评价、商品标题、搜索Query
–应用:资讯搜索、评价情感分析
3.情感分析(情感对象、情感属性、情感属性关联):
–算法:情感词典挖掘,属性级、句子级、篇章级情感分析
–应用:商品评价、商品问答、品牌舆情、互联网舆情
4.句子生成(句子可控改写、句子压缩):
–算法:Beam Search、Seq2Seq+Attention
–应用:商品标题压缩,资讯标题改写,PUSH消息改写
5.句子相似度(浅层相似度、语义相似度):
–算法:Edit Distance,Word2Vec,DSSM
–应用:问大家相似问题、商品重发检测、影视作品相似等
6.文本分类/聚类(垃圾防控、信息聚合):
–算法:ME,SVM,FastText
–应用:商品类目预测、问答意图分析、文本垃圾过滤、舆情聚类、名片OCR后语义识别等
7.文本表示(词向量、句子向量、篇章向量、Seq2Seq):
–Word2Vec、LSTM、DSSM、Seq2Seq为基础进行深入研究
8.知识库
–数据规模:电商同义词,通用同义词,电商上下位,通用上下位,领域词库(电商词、娱乐领域词、通用实体词),情感词库
–挖掘算法:bootstrapping,click-through mining,word2vec,k-means,CRF
–应用:语义归一、语义扩展、Query理解、意图理解、情感分析
9.语料库
–分词、词性标注数据,依存句法标注数据
有这样一句话叫“我要买秋天穿的红色连衣裙”,这句是电商领域中比较常见的,词法分析结果会把中间“我要”拆开。分词要分的很准,它不是每个单字都是一个词,比如秋天是一个词,连衣裙是一个词。下面这一层标签是对应的词性。上面这一层就是句子树型结构,它会比较深入的把句子比较深度的结构化。只有把它结构化之后才能导到数据库里面去,才能做后续的各种机器学习研究和应用,这种叫结构句法分析。
对于电商而言,光有句法分析是不够的,比如我要知道秋天的含义是说这是个适用季节,红色是一个颜色分类,连衣裙是一个产品,要做到这一步才会使得真正在电商里面用起来。
比如我们用的是通用领域依存分析器,我们针对商品标题决定某一个依存句法分析器,假设某一个商品标题写的是“我要买秋天穿的红色连衣裙”,只需要把“秋天”、“红色”、“连衣裙”这几个关键的成分标出来,“我要买”和“穿的”对电商而言是没有意义的,但会去做进一步的组合。
如果这个句子是一个query,对于某些核心成分一点都不需要,完全不用看,直接会把它输出“秋天”、“红色”、“连衣裙”三个串,中间依存关系标出就可以了。这样可以做很好的信息凝练。这是我们针对三种不同类型的文本做的很深入的底层自然语言处理分析。
这个例子是一个买家对于某一个商品写的一个评论,“虽然有点贵,不是很修身,但是颜色很亮,布料摸起来挺舒服的,图案也好看。挺喜欢的。”,上图是我们的情感分析结果,我们情感分析不但要知道整句的信息,比如说整句有蓝色、淡蓝色,淡蓝色表示情感是正向的,整个句子表达的是一个比较褒义的结果,但不是非常满意。
再下面我们做的更深入一点,比如说贵、修身、颜色等等,做了很细粒度的一个拆解,这种叫属性级的情感分析。情感词比如说“贵”它是一个形容词,贵表达的是相对的关系,有时候说黄金很贵,这时就是一个褒义。所以这个词语非常复杂,不同环境下褒贬不一。如修身,这个平台里面表达修身是一个很严重的反向关系,所以我们就把它识别出来是个很红色的关系,只要经过很深度的细致分析之后,后面可以做各种各样的玩法。
问大家3个问题解析如下:
- 无效问题过滤
–专业的外包同学标注无效问题,Active Learning筛选待标注样本
–分类采用LR+GBDT,定制特征
–无效问题会不断变种,算法和标注迭代推进
- 相似问题识别
–Doc2Vec然后计算相似度,人工评测
- 页面问答排序
–内容丰富度、点赞数、过滤词表匹配数等加权求和
–Detail页透出的一条问大家CTR 提升
内容资讯分析
针对内容我们需要做大量的分析,比如说底层我们有各种各样的数据库要汇总,中间有一些文本算法,比如说相关性、时效和质量、CTR预估、个性化、分类、打标、质量和去重等等,中间也有一些系统工程,还有服务体系。上面是业务场景,比如淘秘籍、微淘、淘宝头条、知识卡片、社区问答等等,会让你迅速进入一个很好的购物背景知识状态,使你做更好的购物决策。你可以在手机淘宝搜索结果页的第四个Tab里看到我们的淘秘籍产品。
思考
自然语言处理难在哪呢?它涉及到人的认知,知识<=>语言<=>思考<=>行动,左边专注到知识,右边专注到思考和行动。它是非常复杂的,最难的问题有两个:第一就是歧义,自然语言与计算机语言是完全不可调和的,计算机语言是精确的、可枚举的、无歧义的。第二是变化,变化是非常剧烈的。它的语法是群体一致,个体有差异,语言每天都在发生变化,新词总在不断的产生,无法穷举, 不同上下文不同含义,甚至随时间推移,词义也在发生变化,例如Apple->公司,甚至词性也在发生变化,如Google ->to google 。
那么,NLP怎么走?
我们未来会做什么,我们在一年之内会继续把AliNLP平台做的完备和完善,开放更多的能力,服务好阿里的各种生态系统。我们希望调用量能超过千亿,两年之内我们争取能够对外开放,普惠大众,更好的开放融合,调用量希望达到万亿,我们希望做的更美好!
上乘:阿里巴巴iDST 自然语言处理部总监,博士毕业于哈尔滨工业大学自然语言处理方向,曾在新加坡资讯技术研究院工作四年担任研究科学家负责统计机器翻译系统的研发和应用,2014年至今在阿里巴巴iDST担任资深专家,从零组建了自然语言处理部门,负责自然语言处理技术平台的研发和多项核心业务应用。
评论
查看更多