自然语言处理在开放搜索中的应用
简介:构建搜索引擎的时候,都会遇到很多效果优化的问题,其中很多都和自然语言处理相关。本文通过结合开放搜索中NLP技术要点进行解读和分析。
自然语言智能(NLP)
自然语言智能研究实现人与计算机之间用语言进行有效通信。它是融合语言学、心理学、计算机科学、数学、统计学于一体的科学。它涉及到自然语言和形式化语言的分析、抽取、理解、转换和产生等多个课题。
人工智能可以分为几个阶段
• 计算智能,指依靠计算强大的算力和海量数据的存储能力,可以在部分领域超越人类的表现。代表例子就是谷歌的alphago,凭借谷歌TPU的强大算力以及结合类似蒙特卡洛树搜索、强化学习等算法,能够在围棋的巨大搜索空间中计算出好的决策路径,战胜人类,这是计算智能; • 感知智能,是指从无结构化数据中识别出重要的要素。比如给一个query,分析出包含的人民、地名、机构名等; • 认知智能,是在感知之上,能够理解其中要素的含义以及进行一些推理。比如“谢霆锋是谁的儿子 谁是谢霆锋的儿子”两句话。词和实体都差不多,但语义差别很多。这是认知智能要解决的问题; • 创造智能,比如计算机指能够理解语义的基础上,创造出符合常识、语义、逻辑的句子。比如自动写出行云流水的小说、创造娓娓动听的音乐 能够无违和跟人自然聊天等 自然语言处理研究覆盖了感知智能,认知智能,创造智能这样的学科,是实现完整人工智能的必要技术
自然语言智能发展趋势
-
深度语言模型突破式发展, 引领重要自然语言技术取得进展;
-
公有云NLP技术服务从通用功能走向定制化服务;
-
自然语言技术逐步与行业/场景紧密结合, 产生更大价值;
阿里集团NLP平台能力
image从下到上分为了NLP数据、NLP基础能力、NLP应用技术和上层应用。 NLP数据是很多算法的原料,累了包括语言词典、实体知识词典、句法词典、情感分析等词典等。阿里NLP基础技术包含了词法分析、句法分析、文本分析、深度模型。在这之上,是NLP垂直的技术 包括问答 对话技术 反垃圾 地址解析等。这些技术的组合,就支持了很多应用。 其中搜索是NLP能力非常密集的一个应用
开放搜索中NLP应用和典型技术
image• 基础设施包含了阿里云基础产品,以及基于阿里生态搜索场景打磨出的多个搜索自研系统,比如HA3、RTP、Dii等; • 管控基础平台,保证我们离线数据采集、管理、训练等; • 算法模块,我们分为两块,一块是查询分析相关,包含多粒度分词、实体识别、纠错改写等;另一个块是相关性和排序相关,包括文本相关性、CTR CVR预估、LTR 等; (其中橙色背景的表示是跟NLP相关) 开放搜索的目标是要打造一站式、开箱即用的智能搜索服务,所以我们会把这些算法能力,以行业模板、 场景化、周边服务的形式开放给用户。
开放搜索NLP分析链路
搜索的发起,往往是一个搜索关键词触发,比如用户搜索“ aj1北卡兰新款球鞋”
[图片上传失败...(image-b959c7-1603160394415)]
跨领域分词 我们在开放搜索开放了一系列的领域的分词模型 分词挑战
-
各个领域不断新增的未登录词或者叫新词,往往会大大降低分词效果;
-
为新用户定制分词模型,从标注到训练的整个过程,成本都比较高; 解决思路
-
结合统计特征,比如互信息、左右上等构建一个成词模型,可以基于用户数据快速构建一份领域词典;
-
结合源领域分词模型和目标领域的词典,我们基于远程监督技术可以快速构建一个目标领域分词器;
(上图为自动跨领域分词框架) 用户只需要提供给我们一些自己业务的语料数据,我们就可以自动的得到一个定制化的分词模型,这不仅大大提升了效率,同时也更快满足客户的需求。 通过这个技术,我们可以在各个领域获得比开源通用分词,更好的效果
image命名实体识别 命名实体识别(NER),例如从query中提取人名 地名 时间等。 挑战与困难 NER在NLP领域研究非常多同时也面临很多的挑战,尤其在中文上由于缺乏天然分隔符,面临边界歧义、语义歧义、嵌套歧义等困难。
解决思路
• 下图右上角是我们在开放搜索中使用的模型架构图; • 在开放搜索中,很多用户都积累了大量词典实体库。为了充分利用这些词典,我们提出了一种在bert之上,有机融合知识的graphNer框架。从右下角的表格可以看出,在中文上能取得最好的效果;
image拼写纠错 开放搜索分为4个纠错步骤包含了挖掘、训练、评估和在线预测。 主要的模型根据统计翻译模型和神经网络翻译模型两套系统,同时在性能、展示样式和干预上有一套完备方法。
image语义匹配 深度语言模型的出现给很多NLP任务带来了跨越式的提升,尤其是在语义匹配等任务上。 达摩院在bert上也提出了很多创新,提出了自研的StructBert。主要创新点在于在深度语言模型训练中,增加了字序/词序的目标函数 和更多样的句子结构预测目标函数,进行多任务学习。但是这样的通用的structbert是无法试用给开放搜索里成千上万个客户,成千上万个领域的。我们需要做领域适配。所以我们提出了语义匹配3阶段范式。 可以快速的为客户定制适合于自己业务的语义匹配模型。
image(具体的流程如图)
NLP算法产品化
算法模块产品化的系统架构,包含了离线计算、在线引擎以及产品控制台。 图中浅蓝色的部分是NLP在开放搜索上开放的算法相关功能,用户可以直接在控制台体验和使用。
image作者:工程师U
本文为阿里云原创内容,未经允许不得转载。