「回顾」猎户星空NLP技术进展及产品应用_java




「回顾」猎户星空NLP技术进展及产品应用_java_02

本次分享的主要内容包括以下四个方面:首先介绍了人机交互的相关背景;然后是猎户在NLP提供的能力和具体技术实现环节;最后介绍了猎户NLP的产品落地情况。


一、人机交互


首先来介绍一下人机交互的发展史,最初人们通过键盘输入命令行进行交互,随着苹果和windows推出图像界面,我们可以通过鼠标点击来实现人机交互,在ipad出现之后,大家可以通过触摸的方式来与机器进行交互,随后的iphone4s上出现了跨时代的产品siri,人们可以直接通过语音来实现人机交互,直接引爆了语音行业的革命。

「回顾」猎户星空NLP技术进展及产品应用_java_03

人机交互中语音交互的整个链路如下,主要可以分为两个部分:端和云,端上的主要工作包括一些信号层面的算法处理,云上主要进行与语音识别相关的一些自然语言处理,对话管理以及和资源相关的工作。首先我们通过麦克风来进行收音,然后通过回声消除和去噪过程将背景噪声以及机器自己产生的声音消除以取得一个干净的信号,由于现在多采用麦克风阵列,所以可以进行波束形成和声源定位。将端上获取的音频信号通过互联网传到云端之后,首先进行的第一步是ASR,即将音频信号转换成文本,以便于在后端的大脑层来进行决策。之后通过NLU理解说话人的意图以及用户说话中的关键信息。DST对话状态跟踪模块属于上下文功能,通过Policy Ranking决策出用户的意图以及相应的action,最后由NLG模块生成机器要表达的想法并通过TTS把文本转化为音频并利用speaker播放出来。

「回顾」猎户星空NLP技术进展及产品应用_java_04

但是在实际的语音交互中存在很多难点,主要可以分为五个方面:

1、用户使用的环境和口音(用户在使用过程中,环境噪声和口音给语音识别和前端信号处理带来了非常大的困难)

2、不同的垂直行业,对理解的差异化非常大 (在理解和交互层面,不同的垂直行业知识差别非常大,对于ASR和NLP如果没有相应的垂直行业知识预练,效果往往会比较差)

3、不同的硬件设备,对理解有不同的需求

4、语义理解和知识图谱等认知技术没有通用的框架

5、用户语言表达的多样性,随意性,隐喻,上下文等等


二、猎户NLP能力


猎户星空NLP团队的使命主要是通过NLP技术,提供语言理解和智能决策服务,为猎豹猎户相关智能硬件赋予大脑能力。

「回顾」猎户星空NLP技术进展及产品应用_java_05

目前,猎户星空NLP团队提供了这样一些能力矩阵:首先是理解,在得到用户的query后,对用户的意图做一个深层次的理解,挖掘出用户的意图,即用户想获取的信息,然后结合世界知识,垂直行业知识,企业知识生成一个综合的决策。此外,我们提供用户画像这样一个基础性的服务,不同的用户在交互中有不同的诉求,我们可以结合用户的信息来实现最终的交流目的。

「回顾」猎户星空NLP技术进展及产品应用_java_06

猎户NLP提供的云服务包括:智能交互服务、自然语言理解、智能对话、问答聊天系统、用户画像服务和机器翻译等。

「回顾」猎户星空NLP技术进展及产品应用_java_07

1、智能交互服务:NLP服务对外的平台架构服务,调用NLU,chat,QA,开放平台,第三方技能服务,做综合决策,并支持业务线配置,用户自定义技能的开放平台 

2、自然语言理解:理解用户说的每一句话,指导硬件做出正确的动作,比如:“我想听一首欢快的歌叫小苹果”,“北京明天可以洗车吗” 

3、智能对话:针对用户对机器的多轮交互,维护上下文状态,理解用户当前query在上文条件下的准确意图,执行正确的动作。

4、问答聊天系统:给出正确答案,比如豹小秘中:“猎豹移动的老板是谁”豹小秘回答:“猎豹移动的董事长兼CEO是傅盛” 对用户的闲聊问句,给出具备情感和亲和力的答案,增强用户粘性

5、用户画像服务:通过用户的交互行为,建模用户的特征,比如:有的用户喜欢听粤语歌,有的用户的活动时间在早上8点和晚上10点等等,用于个性化聊天和其他用户相关应用 

6、机器翻译:支持中英日韩的相互翻译;基于深度学习技术构建翻译模型进行准确的翻译。


三、猎户NLP技术


目前猎户NLP整体技术架构如下,总共分为三层,底层是模型算法层,提供用户画像、用户分布、数据统计、数据标注等任务,这些数据从产品流过来。在基础算法层之上我们搭建了服务架构层,通过服务架构层把所有底层算法能力以平台方式输出,业务方或需求方可以很好的通过平台去使用服务。最上层是产品应用层。

「回顾」猎户星空NLP技术进展及产品应用_java_08

接下来主要介绍技术实现的细节:


1、自然语言理解


任务:理解用户说的话,输出结构化语义表示。目前自然语言处理的难点包括用户说话的多样性、口语歧义、语义边界模糊、修改语义复合语义以及上下文相关联等。

「回顾」猎户星空NLP技术进展及产品应用_java_09

基于此任务目前我们的技术框架如下:

「回顾」猎户星空NLP技术进展及产品应用_java_10

中间部分是线上服务,输入是query/ASR解码路径/context/用户信息/语境等内容,首先在基础NLP工作中进行query预处理/词法分析/句法分析/实体识别和消歧/短语识别/实体纠错/指代消解等。之后进行领域意图分类,利用浅层语法分析结果判断用户在哪个领域以及他在这个领域中到底在问哪个方面的问题,接下来进行语义槽抽取模块,在当前领域下对用户query的槽位进行抽取,对领域和槽位进行综合管理得出用户真正的意图做一个结构化的输出。对于线上服务存在很多离线工作需要完成,右侧是离线数据标注和挖掘,线上的设备会积累大量的线上日志,线上日志具有两个作用:1)随机抽取一些样本来做一个每日的效果监控,本质上是对用户提供服务,所以要对用户实际体验层的效果进行监控。2)通过active learning筛选出系统最薄弱的环节,对最薄弱环节的数据进行人工标注后混入训练模型,可以明显提升效果。左侧是开放平台,开放平台希望能够通过用户自定义的一些数据、词典配置属于自己的领域。

首先介绍数据部分,数据主要分为两个部分,一是词典资源数据,二是线上数据,在这里需要强调的一点是对于NLU这部分词典资源数据的清洗是非常重要的,我们一般直接拿过来的数据无论是音乐的数据还是有声节目的数据都带有非常大的噪声。这部分工作会消耗大量的人力,而且非常重要,如果资源清洗的不好,所有的线上NLU效果都会变差,必须通过规则对数据进行大量清洗。此外,我们要对资源进行分级,因为无论是多媒体资源、歌曲、视频还是有声节目,资源名之间都会有大量的冲突和复用情况,我们需要确定该资源属于常用资源还是有歧义的资源,以及有些资源会与常用语例如星期天有冲突。

「回顾」猎户星空NLP技术进展及产品应用_java_11

在得到数据之后我们开始做自然语言理解,目前是基于CFG搭建的一个端到端的语义理解引擎,支持通配、量词,上下文等。直接输出领域、意图和槽位。端到端的文法语义理解用于领域在冷启动阶段的语义解析,NLU的新需求大多基于此进行快速开发。在积累了大量的线上数据之后,唯一的途径是通过数据标注加模型训练来提升效果。

「回顾」猎户星空NLP技术进展及产品应用_java_12

「回顾」猎户星空NLP技术进展及产品应用_java_13

首先我们将领域分类模块替换为模型,这里我们基于LSTM做了一个模型层面的意图和领域分类模型,输入是两维特征:字向量和实体识别特征,作为所有意图分类模型基础输入。模型由一个双向的LSTM加一个单向的LSTM构成,最后通过softmax做一个领域的选择。意图分类同样基于此模型,在领域分类上准确率可以达到93%,在意图分类上准确率可以达到96%。

「回顾」猎户星空NLP技术进展及产品应用_java_14

槽位抽取分为两种,一是基于pattern的抽取,二是基于模型的抽取,模型采用比较成熟的双向LSTM加CRF,线上总体准确率可达92%。

双向LSTM内层特征可以做一些共享和互补,这对系统的整体效果是有帮助的,我们借鉴了一些公开的论文做了一个联合学习模型,将slot抽取和意图分类最终做了一个统一的损失函数输出,获得一个统一的模型。联合学习模型在全局进行意图分类和槽位抽取,槽位抽取采用CRF做最终打标,意图分类也是softmax,但在最上层将两个loss进行相加,相加之后反向传播所有的误差来更新模型的参数。

「回顾」猎户星空NLP技术进展及产品应用_java_15

相对于意图分类和槽位抽取模型,联合学习模型取得了较大的效果提升。

「回顾」猎户星空NLP技术进展及产品应用_java_16


2、智能问答


我们还有智能问答这个方向,本质上是用户提出问题,回复正确的答案,技术点包括问句分析,通过对用户query的理解解析出query是在做哪些方向数据库的查询。此外还有知识库构建和答案生成。实现方法有三种:1)基于检索式QA系统;2)基于知识图谱的QA系统;3)文档阅读理解。

「回顾」猎户星空NLP技术进展及产品应用_java_17

检索式问答的难点有两个:知识库构建和句子相似度计算,包括有难以建立准确全面的知识库,相似query不同义以及同义query差别大等。

「回顾」猎户星空NLP技术进展及产品应用_java_18

目前我们线上跑的系统主要是基于检索式的智能问答系统,query进来后先进行normalization,根据离线构建的知识库构建出与用户最相似的query,做语义相似度计算,经过rank后得到answer。此外,由于ASR存在许多识别错误,我们会做一些拼音层面的模糊匹配,实体相关的模糊反查这样一些工作。

「回顾」猎户星空NLP技术进展及产品应用_java_19

「回顾」猎户星空NLP技术进展及产品应用_java_20

从细节来说分为三个部分:

1)离线模型训练;

2)在线的query分析和相似度计算;

3)QA库的构建。


3、用户画像


我们还有用户画像这个模块,在离线积累大量的BI数据和用户行为数据,数据处理后通过标签的归一,机器学习的一些建模方法把相关的BI数据构建出用户的多维度特征,最终拿用户画像这个基础service在上层做一个语义理解以及内容推送,广告系统的一个应用。

「回顾」猎户星空NLP技术进展及产品应用_java_21

用户画像根据设备id和声纹来唯一指定一个用户,例如音箱在家庭场景下可能会有多个使用者,所以通过设备id和声纹两个信息来唯一描述音箱的一个属性。因为我们会依据用户主动query及点播情况来刻画用户,我们描述的主要是一些相关的有声内容的维度以及一些用户的基本信息,比如用户的地点、性别、职业等。用户交互的频度,用户每个query的分析统计情况,她的资源完成情况,在每种类型下资源的耗时情况,以及每种耗时会在置信度上计算一个权重,用户收藏内容的情况,用户使用音箱时的时间分布,对于不同的人群,使用音箱的时间分布是不一样的。

「回顾」猎户星空NLP技术进展及产品应用_java_22

在用户画像这个service单元之后我们的应用包括:

1)内容自动化推送;

2)NLU综合决策;

3)内容串起fm,music;

4)用户大数据统计。

「回顾」猎户星空NLP技术进展及产品应用_java_23


4、聊天系统


聊天系统基本上是模仿人类的风格,对自然语言的文本,做出相应的回复。目前我们的聊天系统具有两个特色:

1)支持不同的业务线,每个业务线都有一套人设,现在我们有萌妹型、大叔型以及职场型等人设。

2)用户感情及机器感情,将机器看做是一个人,内部装有机器情感引擎。用户在交流过程中是有情感的,例如用户可能会说:“今天我不开心。”机器人会回复:“不开心,那我们出去玩吧!”但是如果用户在不断地谩骂机器人,机器人就会接受用户的每个query并且在每一个情感维度上去做一个权重的累积,如果用户一直谩骂下去机器就会在一定程度上不再理你或者进行反击。

「回顾」猎户星空NLP技术进展及产品应用_java_24

最后,给出NLP方向的一些实用建议:


1)冷启动阶段只能文法规则先上 

2)一定关注线上真实用户的数据情况,关注badcase 

3)一定要增加运营干预手段 

4)一定要强化对资源数据的清洗和挖掘理解 

5)线上数据标注+模型,提升整体性能 


四、猎户NLP相关产品

「回顾」猎户星空NLP技术进展及产品应用_java_25

目前猎户星空NLP能够支持的一些相关产品应用包括有:

豹小秘:五星级服务接待机器人,能够完成前台接待、主动问候、人脸跟随、视频通话、拍照合影、远程控制等多种功能。

豹豹龙:豹豹龙是一只来自于“猎户星座 参(shēn)宿(xiù)四号星球”的9岁小恐龙,具备超凡的听觉、视觉和运动细胞,同时性格温顺而又具有爱心。他利用猎户星空流传下来的先进科技帮助地球小朋友变得更聪明!

豹小贩:会行走的自动贩卖机,利用人脸识别、动态跟踪等进行分析判断,利用云端数据库处理,智能分析真实需求,提供智能服务。

豹咖啡:豹咖啡是依托猎户机械臂技术的机器人咖啡亭,使用“香格里拉酒店”同款咖啡豆,保留新鲜豆粒精华,运用Arm OS精确模拟WBC咖啡大师手法,利用基于深度学习的视觉识别技术智能抓取、精准判断,只需一键点单,就能让机械臂为你做一杯好咖啡。

小豹AI音箱:首创主动交互,听声识人,AI私教,还有100+生活小功能。

小豹翻译棒:支持中英、中日、中韩一键翻译,满足国人75%出境游需求。


作者介绍:

韩伟,猎户星空自然语言处理平台技术负责人。研究包括:语义理解,智能问答,机器翻译,多轮对话,聊天系统等技术方向,相关技术在豹小秘,豹豹龙,小豹智能音箱,小雅智能音箱,小豹AI翻译棒等多个智能硬件上落地。


——END——



社区介绍:

DataFun定位于最“实用”的数据科学社区,主要形式为线下的深度沙龙、线上的内容整理。希望将工业界专家在各自场景下的实践经验,通过DataFun的平台传播和扩散,对即将或已经开始相关尝试的同学有启发和借鉴。DataFun的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。

DataFun社区成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过一百位的业内专家参与分享,聚集了万余大数据、算法相关领域从业者。

「回顾」猎户星空NLP技术进展及产品应用_java_26