关于人工智能:检索式对话系统在美团客服场景的探索与实践

47次阅读

共计 17165 个字符,预计需要花费 43 分钟才能阅读完成。

在传统的客服、IM 等场景中,坐席须要破费大量工夫答复用户的各种征询,通常面临答案查问工夫长、问题反复、时效要求低等挑战。因此,应用技术手段辅助坐席疾速、精确、高效地答复用户的各类问题十分有必要。咱们设计并迭代了一套基于检索式对话零碎的框架,以举荐回复的形式,基于对话上文为坐席提供候选回复,进步坐席效率进而晋升用户体验,在美团泛滥业务上均获得了显著的成果。

1 背景与挑战

对话零碎始终是人工智能钻研的热门畛域之一,近年来随着深度学习技术的倒退,人工智能在对话零碎上呈现了不少的突破性停顿。然而,因为自然语言的复杂性,目前的智能对话零碎还远远达不到能够间接代替人类的境地。因而在一些简单的业务场景中,目前的智能对话零碎如何更好的去辅助人类做到人机协同,晋升沟通效率,也成为了当今钻研的一个热点以及理论落地方向。

作为一家连贯用户和商户的生存服务电子商务平台,美团在平台服务的售前、售中、售后全链路的多个场景中,用户向商家都存在有大量的问题征询状况,如在线坐席 CHAT、商家 IM 等。因而咱们心愿利用对话零碎,以举荐回复的形式,基于对话上文为客服提供候选回复,来帮忙商家晋升答复用户问题的效率,同时更快地解决用户问题,改善用户征询体验。一般来说,对话零碎能够大抵分为三类:

  1. 工作型:个别为受限域,以实现特定畛域的特定工作为目标,支流办法是基于无限状态机(FSM)的可配置化 TaskFlow,而基于强化学习、监督学习等基于数据驱动的对话治理办法在理论利用中尚不成熟,利用场景如售后退款等流程明确的智能机器人。
  2. 问答型:受限域或凋谢域,次要是答复特定畛域的信息征询或凋谢畛域的知识性问题,支流办法包含图谱问答(KBQA)、社区问答(CQA)、文档问答(MRC)等单轮问答,也可能波及多轮问答,利用场景如酒店、游览等畛域的售前征询。
  3. 闲聊型:个别为凋谢域,无特定目标,在凋谢畛域内让对话有意义地进行上来即可,支流办法是基于检索的召回排序二阶段办法或基于生成的端到端模型,利用场景如聊天机器人。

其中,工作型和问答型零碎具备较高的准确性,然而须要针对细分畛域进行不同水平的适配与优化,在大范畴利用上须要较高的老本。本文次要关注基于检索式计划的对话零碎,其准确性略低,然而老本较小并且畛域迁移性好,非常适合用于如话术举荐等人机协同等场景。

在后文中,咱们次要以话术举荐利用为例,即依据对话上下文为坐席 / 商家提供候选回复,来介绍检索式对话零碎在美团客服场景的摸索与实际。以下内容会分为五个局部:第一局部介绍零碎的整体架构与指标体系;第二和第三局部别离介绍召回和排序模块的工作;第四局部展现一些具体的利用示例,最初一部分则是总结与瞻望。

2 架构与指标

检索式对话零碎的整体架构如下图 1 所示,能够划分为五层:

  1. 数据与平台层:离线对坐席 / 商家与用户的历史对话 Session 进行荡涤、解决,建设自动化流程,日更新话术索引库。同时,利用对话平台构建知识库,既能够用在智能客服中,也能够用作话术举荐。
  2. 召回层:给定对话上文及其它限度条件,从话术索引库和知识库中召回后果,包含文本、向量、标签、常识等多路召回。
  3. 排序层:针对召回模块返回的后果汇合,进行排序打分,包含规定排序、文本相关性模型排序以及 CTR 预估排序。
  4. 策略层:针对排序模块返回的后果列表,进行重排序或者拒推,例如非沉闷商户拒推,举荐列表蕴含正确答案而商家长期无驳回行为则升高举荐概率;多样性答案抉择,尽量抉择语义及表达形式不同的答案,防止举荐过于类似的答案;个性化场景策略,针对场景特色定制策略。
  5. 应用层:次要用于人工辅助场景,包含在线回复征询时的话术举荐和输出联想,以及离线填答智能客服知识库时的答案举荐供应。

同时,为了更正当地领导零碎相干优化,咱们设计了一套离线到在线的指标体系,以话术举荐为例,如下图 2 所示,具体来说可分为三个局部:

  1. 离线主动指标:次要计算的是 Top- N 举荐话术与坐席 / 商家下一句实在回复的语义相关性,咱们采纳了文本相关性的 BLEU、ROUGE 指标,以及排序相关性的 Recall、MRR 指标。
  2. 离线人工指标:上述离线主动指标计算比较简单,无需人工参加,但存在肯定的局限性。为此咱们进一步进行了离线人工满意度评估,通过人工打分来判断零碎举荐回复是否满足以后对话回复上下文,并计算了离线人工指标与离线主动指标的相关性,后果示意离线人工指标与离线主动指标根本成正相干,且 ROUGE 指标相对来说更为主观而且与人工指标相干水平更高。
  3. 线上业务指标:此局部指标是零碎线上成果的重点观测指标,间接实在反映话术举荐成果(在咱们的屡次 AB 试验中,也证实了离线主动指标 ROUGE 与线上驳回率指标呈正相关性)。

因而在后续离线试验中,咱们次要以文本相关性指标,尤其是 ROUGE 指标作为离线的外围观测指标。

3 召回模块

召回阶段的次要指标是依据以后对话的上下文 Context 召回若干条相干的回复 Response,这里的 Context 就相当于传统检索系统中的 Query,Response 就相当于 Doc。但与传统检索系统不同的中央在于,话术举荐中的每条举荐回复,都对应一个历史的对话上下文,而咱们这里召回的外围也在于,利用以后上下文去检索一些类似的历史对话上下文,而后用这些上下文对应的回复作为召回后果。因而,这里的重点就在于如何利用以后上下文检索类似的对话历史上下文。

在召回阶段,咱们采纳了基于本文 & 基于向量 & 基于常识的多路召回计划。其中,常识的起源次要包含商家结构化信息(KBQA)以及商家个性化知识库(QABOT),次要模式是上文最初一句的单轮问答。上面会重点介绍文本及向量召回。

针对上述对话多样性、商户个性化及工夫迁移性等问题,在设计文本及向量召回索引时,咱们划分了两类索引并引入日更新机制:

  1. 商户 / 坐席历史索引:商户或坐席过来一个月的对话历史日志所抽取失去的 Context-Response 对,话术合乎商家 / 坐席的业务场景及谈话习惯,精准个性化召回。
  2. 通用高频话术索引:次要包含通用及高频的 Context-Response 对,如问好、感激等等场景,用于兜底,可大大晋升覆盖率。
  3. 索引日更新机制:借助离线数据表生产平台和在线索引查问平台,保障对话日志的回流和索引的日更新。

因而,在理论的话术举荐中,对商户 / 坐席而言,举荐答案的起源是该商户 / 坐席自身历史话术或通用高频话术,既局部缓解了个性化及工夫漂移问题,也防止了因举荐不合格或违规话术引发客诉。

3.1 文本召回

对于文本召回,在对历史对话建设索引时,最粗犷的计划是间接把历史对话上下文间接拼接成一长串文本建设索引,而后线上利用 BM25 进行召回。这种做法次要存在两个较大的缺点:

  1. 没有思考到对话的顺承个性,即对话的下一句回复通常与最近几句对话历史更为相干。
  2. 把所有对话历史进行拼接导致内容较为芜杂,不利于准确检索。

针对这两个问题,咱们对对话历史上下文索引的建设进行了优化。具体来说,咱们将整个对话历史划分为:

  1. 短期对话上文:个别为上文最初一句蕴含残缺语义的话,中文分词后去停用词建设倒排索引。
  2. 长期对话上文:个别为上文除最初一轮外前 N 轮对话,中文分词后去停用词通过 TF-IDF 等办法开掘 Top- M 关键词入索引库。
  3. 机器人对话上文:次要为进线标签等,能够减少对话初期的背景信息。

如下图 3 所示,针对不同的对话上文采纳不同的信息抽取及建模形式,核心思想在于对于短期上文保留尽量多的信息,保障召回时的相关性,对于长期上文中的信息进行筛选过滤,只保留外围信息,晋升召回的精准性。

此外,咱们针对话术库构建的次要工作集中于扩充数据规模和晋升数据品质两局部:

  1. 扩充数据规模:时间跨度上,咱们比照了利用过来半个月 / 一个月 / 两个月的对话历史的现实下限成果,发现一个月相比半个月晋升较大但两个月相比一个月简直无晋升,故而最终选定应用过来一个月的对话历史日志;文本频率上,晚期仅抉择答案呈现频率大于 1 的问答对,前期增加所有问答对发现成果有较为显著的晋升。
  2. 晋升数据品质:次要是荡涤过滤乐音数据,包含不限于链接、卡片、脏文本等。这里如果采取较为严格的过滤计划,线上成果反而降落,揣测是召回排序计划自身具备去噪成果,而离线严格过滤反而会损失可用数据。

3.2 向量召回

近年来,随着深度学习的炽热倒退,分布式语义示意(Distributed Representation)成为人们钻研的一个热点。分布式语义示意通过将文档的语义压缩到一个浓密向量空间,无效的缓解了数据稠密性的问题,同时联合一系列向量检索计划(如 FAISS)还能够实现对文档的高效检索。

针对话术举荐场景,在文本召回的根底上减少向量召回作为补充次要有以下两点思考:

  1. 减少短期上文的泛化性:文本召回仅仅是词粒度的匹配,引入向量示意能够大大加强示意和匹配的泛化性。
  2. 加强长期上文的示意:文本中的长期上文仅应用关键词进行示意,语义显著失真,通过向量召回的办法能够更加无效地示意和利用长期上文。

具体来说,向量召回即给定对话上文(Context,Q),检索失去答案汇合(Response,A),一个最根本的问题就是召回形式的抉择(QQ vs QA),最终咱们选了 QQ 的形式来进行检索召回,即构建 Context-Response Pair 对,将 Context 示意为向量后检索召回索引中类似的历史 Context,再应用这些历史 Context 对应的历史 Response 作为召回后果。

这样抉择的外围起因在于:Context 与 Response 之间并非单纯的语义类似或相干关系,更多的是一种顺承推理的关系,难以用基于类似度或间隔的向量检索计划来间接解决,通过引入历史 Context 作为其中的 ” 桥梁 ”,能够让建模变得更加简略。

举一个简略的例子,如果 Context 是“谢谢”,那么向量检索返回的汇合中大多都是此类表示感谢语义的句子,然而咱们应该召回回复感激的“不客气”之类的句子。在理论试验和业务中,咱们也进行了一系列的比照,发现 Context-Response(QA)召回形式成果远差于 Context-Context(QQ)形式。

3.2.1 示意模型

对于如何表征文档,咱们简略介绍三类典型的模型框架:

  1. BoW:词袋向量模型 (Bag-of-Words Embedding) 是文档向量示意的一个根底模型,在大规模无监督对话语料中通过 Word2vec[1]、Glove[2] 等算法计算出每个单词的向量示意,文档的向量示意能够通过文档中所有词语的向量进行组合来失去,比较简单无效的办法是均匀池化(Average Pooling)。
  2. BERT:大规模无监督预训练显著地晋升了深度学习在自然语言解决畛域的实用性和通用性,BERT[3]和 MLM(Mask Language Model)作为典型的模型及工作,在对话畛域内大规模数据预训练后,能够取得词语的上下文相干表征向量,最终文档的向量仍然可由均匀池化取得。
  3. DualEncoder:双塔模型 [4] 是大规模文本类似度计算或者说向量召回中最为经典的模型之一,以上述预训练之后的 BERT 作为根底模型来表征 Context 与 Response(参数共享),最终文档的示意是 [CLS] 地位的向量。

总结来看,BoW 的局限之处在于对每个单词仅有一种示意,漠视不同上下文情境下词语的多义性;BERT 缓解了 BoW 的这一问题,思考了词的上下文特色;DualEncoder 在 BERT 的根底上,不再应用均匀池化的形式来表征文档,而是间接在文档级别进行训练,更好地建模了文档外部的长程依赖关系,同时思考了对话自身的特色。因而,咱们最终抉择了双塔模型,如下图 4 所示:

3.2.2 数据采样

双塔模型的一个根本问题是如何结构高质量的正样本对,在话术举荐的场景这个问题并不简单,不过存在两种抉择:

  1. Context-Response Pair:经由历史对话日志开掘失去的样本对,及给定上文和其对应的回复。
  2. Context-Context Pair:借助商户 Context 与 Response 的对应关系,同一 Response 对应的 Context 汇合互为正例,通过这种关系伪造获取 Context 及其对应 Context。

咱们抉择了形式一,这是因为对话中 Context 与 Response 只管存在肯定的多样性,然而总体上来说相比搜寻零碎中的 Query-Document 还是具备很强的对应关系,Response 自身提供了足够的监督信息来辨别不同的 Context。

此外,负例采样是向量召回中最重要的问题,一般来说典型的采样办法有以下三种[19]

  1. 预约义采样:在数据筹备阶段事后依据某些规定或条件采样负例,在模型训练过程中单个正例对应的负例汇合不变。局限于资源等问题,一般来说负例个数不会太多。
  2. Batch 内采样:模型训练过程中,Batch 内除以后正例及其对应样例之外的其它样例都可视作负例。相比于预约义采样,Batch 内随机采样使得每轮训练时同一正例对应不同的负例,并且能够设置较大的负例个数,能够更加简略高效地利用数据。
  3. 难负例采样:除了简略负例之外,为了晋升模型对难负例的辨认成果以及对细节的学习能力,个别会联合场景特色开掘局部难负例作为补充。

不论是学术界文章还是工业界实际,都显示 Batch 内简略负例 + 难负例的组合成果最好,教训比例大抵在 100:1。因而,咱们最终也根本参考了这种设置[5],如下图 5 所示,其中对于难负例的采样,咱们尝试了如下两种形式:

  1. 基于 Context 的 BM25 难负例开掘(CBM):建设 Context 索引,通过 BM25 召回类似的 Context,并在对应的 Response 汇合中筛选难负例。
  2. 基于 Response 的 BM25 难负例开掘(RBM):建设 Response 索引,通过 BM25 召回类似的 Response,并在召回的 Response 汇合中筛选难负例。

试验结果表明,CBM 会带来肯定晋升而 RBM 则是负向成果,揣测是 RBM 办法召回的样例与实在回复的字面类似度较高,实质上是假负例而责难负例,导致了模型成果的降落。

3.2.3 多样性表征

因类目场景及商户特色所导致的多样性问题利用上述构建索引的准则曾经失去了缓解,这里次要关注的是对话自身语义上的多样性,即给定一段 Context,可能存在多个语义点,存在多样性的回复。具体来说,又能够分为两方面:

  1. 多个 Context 对应一个 Response:在 Context 蕴含多轮历史对话的情景下尤其显著。
  2. 一个 Context 对应多个 Response:Context 中蕴含多个主题或者说语义点,针对不同的语义点,存在不同的回复。即使是类似语义的回复,在表达形式上也会有所差别。

针对第一类多样性,在 Context 召回类似 Context 的设置下并不存在显著问题。然而在理论的试验中,咱们发现将同一个 Response 对应的 Context 汇合做均匀池化获取均值向量,以此合并多条记录到一条记录并以该均值向量作为 Context 示意,能够无效晋升召回后果汇合的文本相关性指标,咱们称之为语义纯化。

揣测均匀池化的形式去除了每个 Context 向量上附着的乐音,仅保留与对应 Response 最为相干的语义向量局部,故而晋升了召回成果。

针对第二类多样性,相似的问题或者思维在对话回复抉择、电商举荐、文本检索中有过相干的工作:

  1. 弱交互[6]:对话回复抉择工作,一般来说,交互模型的成果远好于双塔模型,然而交互模型的推理速度较慢。本文通过设计多个 Poly Codes 或间接选取 First-M、Last- M 个 Context Hidden States 将 Context 表征为多个向量,从而引入弱交互性质,相比双塔模型能够无效晋升成果,相比交互模型能够大幅晋升推理速度,不过其次要利用是在粗排模块,而非向量召回模块。
  2. 多趣味[7]:电商场景的举荐工作,本文将举荐零碎视作一个序列化举荐工作,即依据用户点击 Item 历史揣测下一个用户可能感兴趣的 Item。作者认为单个向量难以表征用户历史的多趣味,通过动静路由(Dynamic Routing)与自注意力(Self-Attentive)从历史中抽取 K 个向量示意不同的趣味点,不同的趣味点向量独立召回不同的 Items,而后设计聚合模块对召回的 Items 进行从新分组和排序,聚合时除了类似度分数还能够思考引入 Diversity 等更多的性质。
  3. 多向量[8]:浓密文档检索,作者认为简略的双塔模型可能造成文档表征重大的信息损失,因此利用迭代聚类(Iterative Clustering)的办法将文档示意为 K 个向量,即类簇中心点。在建设索引时保留文档的 K 个 vector,检索时召回 K * N 个后果并通过重排序保留 N 个后果。

能够看出,多样性(多向量表征)的外围问题在于如何表征获取 K 个向量,联合话术举荐的场景,给定一个 Context,可能存在多个适合的 Response,依据 Context 不同的复杂程度,可能存在不同数目的 Response。咱们心愿将 Context 表征为多个向量,现实状况下每个向量表征了一种可能的语义点,然而咱们并不心愿为每个 Context 生成固定数量的向量,不同的 Context 视其难易水平应该对应不同数目的向量。因而,咱们针对对话自身的结构特征和轮次信息,提出了一种简略的对话特定的多向量生成办法:

具体来说,Context 和 Response 输出 BERT 编码器后,获取一个 Context Vector Set 即,以及一个 Response Vector 即。在离线训练时,咱们采取 Scaled Dot Attention 的形式来获取 Context 最终表征向量,而后与 Response Vector 计算 Score,如下所示:

在线上推理时,对 Context Vector Set 中的每个 Vector 进行并行检索,而后通过重排和聚合获取最终后果。

4 排序模块

排序模块是在上一步召回模块的根底上,联合以后的对话上下文对每个召回的答案进行打分排序。在召回阶段,为了可能更高效率的进行检索,咱们通常采纳的是双塔架构模型,这种模型 Context 与 Response 信息交互的水平低,成果绝对也较差。而在排序阶段,召回的候选集通常曾经管制到了几十条,能够利用交互式架构模型,来更好的学习 Context 与 Response 之间的相关性,从而晋升话术举荐的准确性。

典型的交互模型如下图 7 所示,个别采纳 BERT 作为编码器,通过将 Context 与 Response 进行拼接当做模型输出,最初模型输入 0 - 1 之间的打分作为排序后果[9]。本场景对应了学术上一个经典工作,即对话回复抉择(Conversational Response Selection),咱们后续重点介绍预训练、负采样、建模形式、比照学习、特色融入等方面的工作。

4.1 对话预训练

目前,预训练语言模型(如 BERT、GPT 等)曾经广泛应用于许多 NLP 工作。泛滥文章证实了,哪怕不应用额定的数据,仅在畛域相干的数据持续预训练(Domain-Adaptive Pretraining)仍然能够带来性能成果的晋升,例如 Masked Language Model(MLM)、Sentence Order Prediction(SOP)等通用预训练任务。并且也能够进行工作特定的预训练(Task-Specific Pretraining),使得预训练模型提前学习到相干工作的信息与模式。同时,预训练任务大都是自监督工作,也能够在多任务学习(Multi-Task Learning)的框架下用作主工作的辅助性工作进行联结训练。

针对检索式对话零碎,尤其是对话回复抉择这一工作,能够从下列两个角度登程设计预训练任务:

(1)对话层级:建模不同层级(Token-Level/Sentence-Level/Session-Level)的构造。

  • Token-Level 的工作大多是通用 NLP 工作。最简略的 Language Model(LM)工作,基于上文预测下一个单词。BERT 的 Masked Language Model(MLM)工作,依据句子中其余的词来预测被 Mask 的词。XLNet 的 Permutation Language Model(PLM)工作,将句子中的 Token 随机排列后用自回归的办法训练预测开端的 Tokens。
  • Sentence-Level 的工作泛滥,能够无效表征对话中的句间关系,通过非凡设计后也能够建模对话的一致性等性质。BERT 中的 Next Sentence Prediction(NSP)预测句子对是否是同一文档的高低句关系。Next Sentence Generation(NSG)[10]工作在给定上文时生成对应的回复。Sentence Reordering Task(SRT)将对话中句子打乱程序后预测正确的程序。Incoherence Detection(ID)随机替换对话中的一句话并预测哪句话被替换了。Consistency Discrimination(CD)是面向谈话人角色的一致性判断,建模指标为来自同一谈话人的句比照来自不同谈话人的句对类似度分数更高,使模型更多地去捕获两个话语之间在主题、谈话共性和格调之间的相似性,而不是话语之间地连贯性和语义相关性。在本场景中,咱们试验了 NSG 工作,心愿生成式工作能够对检索式工作有所增益。
  • Session-Level 的工作较少,Next Session Prediction(NSP)[11]预测两个片段是否是相邻的两个轮次,计算对话中两段 Session 之间的匹配水平,相当于是 Next Sentence Prediction 的对话改进版。

(2)对话性质:建模流畅性(Fluency)、一致性(Coherence)、可读性(Readability)、多样性(Diversity)、特异性(Specificity)等性质。

以一致性和特异性为例,文章 [12] 借助 N 元逆文档频率(n-NIDF,n-gram Normalized Inverse Document Frequency)为每个正例进行打分,而后通过均方差损失函数(MSE,Mean-Square Error)进行学习建模。

在本场景中,咱们并未应用额定的语料,仅仅在 BERT 根底上持续进行预训练,次要试验了 MLM、NSG、NSP 工作别离建模 Token、Sentence、Session 层级的性质,均有肯定晋升。

4.2 负例采样

一般来说,在搜寻举荐场景中,正样本为点击样本,负样本为曝光未点击样本。然而对话的场景有所不同,以商家 IM 中的话术举荐为例,正样本的结构并不艰难,因为不管线上是否有点击行为,通过对话日志关联,总是能够获取到实在的回复。而负样本却不能单纯地设置为曝光未点击,依据举荐列表的数据起源能够把可能的负样本划分为下列三类,如下图 8 所示:

  1. 曝光列表(View,False or Hard Negatives):曝光未点击,上一版精排模型的排序 Top- 3 后果汇合,存在精排模型偏置。
  2. 召回列表(Retrieval,Hard or Common Negatives):召回模块返回的样例汇合,线上精排模型的输出选集,存在召回模型偏置。
  3. 随机话术(Random,Easy Negatives):该商户过来一个月发送过的句子汇合,以及商户所属二级类目发送的高频句子汇合。

试验表明将曝光未点击样例作为负例的成果极差,揣测是因对话多样性导致其中蕴含过多假负例。仅从 Retrieval 汇合采样与 Retrieval + Random 联结采样的成果相差不大,不过后者更加稳固,对召回汇合散布漂移问题具备更强的鲁棒性。

4.3 学会排序

针对排序的工作的建模个别有以下两种思维:

  1. 二元相对论[13]:非黑即白,候选回复要么是相干的要么就是不相干的,次要工作在于如何结构难负例。作者应用 DialogueGPT 类预训练生成模型来伪造假负例,通过对话流变形(Flow Distortion)和上文扰动(Context Destruction)的形式获取批改过的对话,输出到模型生成对应的回复,最初抉择困惑度分数(Perplexity Score)最高的回复以防止假负例问题。常见的建模形式为 Pointwise。
  2. 多元相对论[14]:秩序关系,重视回复品质的多样性,次要工作在于如何结构数据建模更细粒度的好坏关系。作者应用生成(Generation)或者检索(Retrieval)的形式来结构所谓的灰度数据(Grayscale),并心愿模型学习“Ground Truth Response > Greyscale Response > Random Sampled Response”的渐进关系,最终损失函数同时建模“Ground Truth > Random”、“Ground Truth > Retrieval > Random”、“Ground Truth > Generation > Random”三类秩序关系。常见的建模形式为 Pairwise。

联合咱们以后的场景,这两类办法的典型对比方下图 9 所示,区别在于将召回汇合视作难负例还是灰度数据。

试验结果表明,在 Pairwise 设置下 Logistic 模式的损失成果优于 Hinge 模式,并且 GT > Retrieval > Random 加强无效。同时,Pointwise 和 Pairwise 建模形式无相对的高下高低之分,成果好坏取决于场景和数据个性。事实上在线坐席 CHAT 场景中 Pairwise 更好,商家 IM 场景中 Pointwise 更好,联结建模(Pointwise+Pairwise or Pointwise->Pairwise)成果略有晋升。

4.4 比照学习

在剖析排序谬误的过程中,咱们发现存在 Context 或 Response 大量扰动导致最终分数变动较大的情景,典型的例子如短 Response 增加或删除句尾符号导致预测标签变动。而比照学习的领导准则是通过主动结构类似实例和不类似实例学习一个示意模型,使得类似的实例在投影空间中比拟靠近,而不类似的实例在投影空间中距离比拟远。因而,为了缓解上述问题,咱们心愿借助比照学习的思维使得模型的输入后果更为稳固统一,具体来说,输入的向量示意尽可能靠近,输入的概率分布尽可能统一。

针对向量示意,咱们对 Context[16]和 Response[17]别离进行了数据加强,或者说增加了不扭转语义的扰动,心愿加强之后样例与原始样例在示意空间上尽可能靠近,并且远离对应的负例,如下图 10 所示:

具体来说:

(1)Context 端数据加强:根本准则是不显式扭转 Context 的最初一句话,因为最初一句话的语义最为重要。

  • Context 为单句,不进行显式扭转,增加 Dropout。
  • Context 蕴含商家或用户间断谈话情景,进行 Sentence Re-ordering 操作(角色信息很重要,不会调换不同角色说的话的地位)。
  • 其它多轮情景,随机抉择一句,进行 Sentence Token Shuffling 操作(针对中文,咱们利用 Jieba 分词后再打乱重组,防止字级别打乱重组乐音过多)。

(2)Response 端数据加强:根本准则是尽量不扭转语义,不引入过多乐音。

  • 句子长度小于 5,随机进行 Dropout 或者 Operate punctuations(增加删减句尾标点符号)操作。
  • 句子长度大于 5,随机抉择 Random Deletion 或 Random Swaping,每个地位 20% 概率进行替换或删除。

此外,对于如何设置比照负例也有两种形式:

  1. Batch 角度:Batch 内其它样本都作为比照负例,目标是优化向量散布,改善 Bert 产生的向量各向异性和散布不平均。
  2. Pair 角度:仅仅将同 Pair 内的负例作为比照负例,目标是拉远正例和负例的向量。

试验结果表明,Context 加强形式下比照负例为 Batch 维度更好,而 Response 加强形式下比照负例为 Pair 维度更好。

除了向量维度之外,针对概率分布,咱们采取了 R -Drop[18]办法来限度同一数据两次 Dropout 下输入的分数是统一的。因为咱们的输入后果是二分类概率,所以除了 KL 散度之外,还能够应用 MSE 函数计算损失。试验后果均有肯定晋升而 KL 散度成果更好。

4.5 个性化建模

上文的工作次要都集中在文本语义相关性上,然而没有思考不同商户 / 坐席等的个性化偏好问题。学术上惯例的做法是利用一个谈话人模型将每个角色编码为一个向量,而后将该向量输出到生成模型中以限度和产生个性化回复[20]

只管咱们能够效仿该计划为每个商户学习一个向量以影响精排模型的排序成果,然而,在咱们的场景中(以商家 IM 为例),日沉闷商家数为数十万并且每天都可能有新商户呈现,出于成果和性能的思考该计划并不适合。

因而,咱们采取了一种非常简单然而极为无效的建模计划,该计划基于一个显著的直觉,即在语义相干正当的回复候选汇合中商户 / 坐席更偏好本人已经说过的话。具体来说,排序模块的输出(候选回复汇合)除了文本问答对之外,还存在着泛滥的非文本特色,如该候选回复的起源,咱们心愿通过这些特色的建模来体现不同维度的个性化。以商家 IM 话术举荐为例,咱们次要思考三种类型的特色:

  1. 商家个性化特色:对于精排模型输出汇合的样例,关注答案是否来源于商户历史,即商家是否说过这句话。
  2. 商品个性化特色:在征询过程中,除了纯文本信息之外,还存在商品、团购等卡片信息,这类信息为“多少钱”、“适用人群”等问题提供了束缚和限度。
  3. 工夫个性化特色:局部问题如“营业时间”、“经营项目”存在时效性和周期性。针对时效性问题,同样的问题下答案工夫越近越好;针对周期性问题,上一周期的同时段的答案最好。

业界通用的特色建模形式是 Wide & Deep 模型,咱们因为可用特色较少,所以采取了一种简化的联结建模的形式。

具体来说,咱们采取了一种简略的类双塔的模式来别离建模文本特色和非文本个性化特色,如下图 11 所示:

这是一种无交互的建模形式,实质上来说最终的打分相当于文本相关性打分加非文本特色打分,并且因为非文本特色的维度都很小(2-5),因而实际上线时能够不扭转基线模型构造,仅须要通过非文本特色分数微调即可。理论试验中,商家个性化特色影响范畴最广,成果最好;工夫个性化特色也有肯定成果;商品个性化影响范畴较小,然而在波及到相干类型信息时有肯定晋升。

5 利用实际

5.1 离线试验成果

为精准反映模型迭代的离线成果,咱们针对召回及精排模型别离结构了一批 Benchmark。召回模块次要思考 Top- 6 召回后果的 BLEU、ROUGE- 2 指标,后果如下表所示:

能够看到,基于 BM25 的短期上文召回成果优于基于长期上文的词袋向量模型,而 BERT 思考了词的上下文特色,晋升微小;双塔模型则建模了对话自身的特色,成果进一步晋升。在双塔模型根底上,引入难负例会带来肯定晋升,而引入对话多样性表征则带来显著晋升。

精排模型次要思考 Top- 1 排序后果的 BLEU、ROUGE2、RECALL 指标,后果如下表所示:

能够看到,引入 Pairwise 学习并不能带来齐全的正向收益,对话预训练则带来了稳固晋升,比照学习加强大大晋升了所有指标。非文本特色融入在文本相关性指标上有肯定晋升,并且显著晋升了排序相关性指标,阐明该办法十分无效解决了在语言表达模式相似状况下商家个性化偏好问题。

5.2 商家 IM 话术举荐

商家 IM 是商家与用户在交易流程中的在线即时通讯工具,在获取所需商品和服务过程中,用户有被动表述问题征询信息的诉求,并通过 IM 向商家发动发问。以到综业务为例,大部分商家因为没有装备专门客服等起因,回复能力有余,回复欲望较低,效率有余,导致回复率较低,回复不及时,夜间无回复,容易造成客资散失。针对这一问题,咱们建设面向商家的智能助手,商家在线时提供话术举荐辅助人工能力,升高客服输出老本,晋升回复率,最终晋升用户服务体验,如下图 12 所示:

5.3 在线坐席 CHAT 输出联想

在线坐席为平台客服,次要解决用户购买产品或服务后的征询问题。在这些场景中,存在着以下问题:聊天过程中常常回复类似甚至雷同的话术,须要反复输出,效率低下;新人坐席因为业务相熟水平还不够,对于一些用户的问题不晓得该如何回复。为了缓解这些问题,咱们话术举荐及输出联想性能来进步对话效率,其中输出联想相比话术举荐次要是多了客服已输出前缀的限度,如下图 13 所示:

5.4 知识库答案供应

商家 IM 中,除了商家在线时提供话术举荐辅助人工能力之外,咱们也在商家离线时提供智能客服主动回复能力,解决夜间无人值守的问题。其中首要的步骤就是帮忙商家建设自定义知识库,在用意体系构建实现之后,除了存在默认答案的通用用意之外,局部特定用意仍须要商家手动填写答案。

在此过程中,咱们依据用意中的问法为商家提供了举荐答案,加重填写老本,晋升填答效率,以晋升答案覆盖率,如下图 14 所示:

6 总结与瞻望

检索式对话零碎是一个简单的零碎,包含离线数据流程、在线召回排序、共性场景策略等多个算法模块,其整体框架早已成熟,不过针对其中细分模块的优化依然是钻研和实际的重点。

通过一年多的技术摸索与利用实际,咱们不仅在多个业务中落地,并且构建了一套可疾速推广复用的检索式对话零碎。只管以后的零碎曾经达到了较高的满意度,根本笼罩解决了征询场景中的闲聊、常识等类型问题,然而针对零碎自身以及征询场景的解决方案仍然有很多摸索优化的方向,包含但不限于:

  1. 检索与生成联合:只管生成式模型不适宜作为次要解决方案,然而能够作为召回的补充起源或者是排序的打分器,并且在特定场景可能端到端模型更为适宜。
  2. 多模态交互:以后次要的交互模式是基于文本的,将来能够摸索在业务场景和模型层面都反对语言、图片等的多模态交互。
  3. 全自动托管:以后的模式仍须要人工客服每轮进行协同点击干涉,心愿在特定细分场景建设全自动托管对话机器人,解决闲聊、问答、工作等类型问题,实现征询流程。

7 作者简介

子健、瑞年、冠炜、翔宇、超博、炎根、杨帆、广鲁等,均来自美团平台 / 语音交互部。

8 参考文献

  • [1] Mikolov, Tomas, et al. “Efficient estimation of word representations in vector space.” arXiv preprint arXiv:1301.3781 (2013).
  • [2] Pennington, Jeffrey, Richard Socher, and Christopher D. Manning. “Glove: Global vectors for word representation.” Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP). 2014.
  • [3] Devlin, Jacob, et al. “Bert: Pre-training of deep bidirectional transformers for language understanding.” arXiv preprint arXiv:1810.04805 (2018).
  • [4] Reimers, Nils, and I. Sentence-BERT Gurevych. “Sentence Embeddings using Siamese BERT-Networks. arXiv 2019.” arXiv preprint arXiv:1908.10084 (1908).
  • [5] Liu, Yiding, et al. “Pre-trained language model for web-scale retrieval in baidu search.” Proceedings of the 27th ACM SIGKDD Conference on Knowledge Discovery & Data Mining. 2021.
  • [6] Humeau, Samuel, et al. “Poly-encoders: Transformer architectures and pre-training strategies for fast and accurate multi-sentence scoring.” arXiv preprint arXiv:1905.01969 (2019).
  • [7] Cen, Yukuo, et al. “Controllable multi-interest framework for recommendation.” Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2020.
  • [8] Tang, Hongyin, et al. “Improving document representations by generating pseudo query embeddings for dense retrieval.” arXiv preprint arXiv:2105.03599 (2021).
  • [9] Whang, Taesun, et al. “An effective domain adaptive post-training method for bert in response selection.” arXiv preprint arXiv:1908.04812 (2019).
  • [10] Mehri, Shikib, et al. “Pretraining methods for dialog context representation learning.” arXiv preprint arXiv:1906.00414 (2019).
  • [11] Xu, Ruijian, et al. “Learning an effective context-response matching model with self-supervised tasks for retrieval-based dialogues.” Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 35. No. 16. 2021.
  • [12] Li, Junlong, et al. “Task-specific objectives of pre-trained language models for dialogue adaptation.” arXiv preprint arXiv:2009.04984 (2020).
  • [13] Qiu, Yao, et al. “Challenging Instances are Worth Learning: Generating Valuable Negative Samples for Response Selection Training.” arXiv preprint arXiv:2109.06538 (2021).
  • [14] Lin, Zibo, et al. “The world is not binary: Learning to rank with grayscale data for dialogue response selection.” arXiv preprint arXiv:2004.02421 (2020).
  • [15] Burges, Chris, et al. “Learning to rank using gradient descent.” Proceedings of the 22nd international conference on Machine learning. 2005.
  • [16] Zhang, Wentao, Shuang Xu, and Haoran Huang. “Two-Level Supervised Contrastive Learning for Response Selection in Multi-Turn Dialogue.” arXiv preprint arXiv:2203.00793 (2022).
  • [17] Li, Yuntao, et al. “Small Changes Make Big Differences: Improving Multi-turn Response Selection in Dialogue Systems via Fine-Grained Contrastive Learning.” arXiv preprint arXiv:2111.10154 (2021).
  • [18] Wu, Lijun, et al. “R-drop: Regularized dropout for neural networks.” Advances in Neural Information Processing Systems 34 (2021): 10890-10905.
  • [19] Karpukhin, Vladimir, et al. “Dense Passage Retrieval for Open-Domain Question Answering.” Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP). 2020.
  • [20] Li, Jiwei, et al. “A Persona-Based Neural Conversation Model.” Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). 2016.

招聘信息

语音交互部负责美团语音和智能交互技术及产品研发,面向美团业务和生态搭档,提供对语音和书面语数据的大规模解决及智能响应能力。通过多年研发积攒,团队在语音辨认、合成、书面语了解、智能问答和多轮交互等技术上已建成大规模的技术平台服务,并研发包含外呼机器人、智能客服、语音内容分析等解决方案和产品,在公司丰盛的业务场景中宽泛落地;同时咱们也非常重视与行业的严密单干,通过美团语音利用平台已与第三方手机语音助手、智能音箱、智能车机等诸多合作伙伴发展对接,将语音生存服务利用提供给更多用户。

语音交互部长期招聘自然语言解决算法工程师、算法专家,感兴趣的同学能够将简历发送至[email protected]

浏览美团技术团队更多技术文章合集

前端 | 算法 | 后端 | 数据 | 平安 | 运维 | iOS | Android | 测试

| 在公众号菜单栏对话框回复【2021 年货】、【2020 年货】、【2019 年货】、【2018 年货】、【2017 年货】等关键词,可查看美团技术团队历年技术文章合集。

| 本文系美团技术团队出品,著作权归属美团。欢送出于分享和交换等非商业目标转载或应用本文内容,敬请注明“内容转载自美团技术团队”。本文未经许可,不得进行商业性转载或者应用。任何商用行为,请发送邮件至 [email protected] 申请受权。

正文完
 0