Press "Enter" to skip to content

【技术分享】蚂蚁反欺诈底层交互技术获NLP顶级大赛冠军

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

 

历经3个月的激烈角逐,2021语言与智能技术竞赛于近日发布了竞赛结果的榜单。

 

本次竞赛是由中国计算机学会(CCF)和中国中文信息学会(CIPS)联合主办,其三大任务赛题共计超过4300人次、3500支队伍报名参加,是目前中文NLP领域参赛人数最多的比赛之一。

 

据悉,此次蚂蚁安全实验室参加了三大任务赛题之一的“多技能对话比赛”, 其得分超越主办方基线近1倍,并最终获得冠军。

 

比赛选手之一的应缜哲向我们介绍到:“此次大赛考核的人机对话能力,同样也是蚂蚁反欺诈智能风险感知与响应系统中重要底层能力中的一部分。本次赛题的目标是要求机器人能高度流畅地与人类对话,同时准确地将知识融入交交流过程,并能推理对话逻辑,进行智能回应。但相对而言,蚂蚁反欺诈智能风险感知与响应系统在类似的环节里还要更进一步加入情感分析,并融入与用户的沟通中,从而克服用户情绪激动、刻意欺瞒等沟通难点。使得基于蚂蚁反欺诈智能风险感知与响应系统的“AI客服”能在短短的几分钟内成功用语音唤醒醒深陷骗局的用户。当前,“叫醒热线”中超9成劝阻电话已由AI客服承担。”

 

 

以下是参赛技术分享

 

千言多技能对话冠军方案

 

王昊天,应缜哲,孟昌华,王维强

 

蚂蚁集团

 

[email protected]

 

[email protected] [email protected]

 

[email protected]

 

摘要:这篇文章提供了一些多轮对话中提升对话效果的解决方案,主要包括4个部分:1、OOV处理:通过设定特殊字符实现生成不在词表中的词;2、输入处理:通过对知识重排序,保证在输入截断时能保留下需要的知识;3、目标推理:针对在推荐场景目标缺失导致模型推荐效果差的问题,通过人为定制目标供模型参考。4、输出筛选:提出一种基于词频的样本分数计算方法。基于这些方法,我们在2021语言与智能技术竞赛中的多技能对话中取得了第一名。

 

关键词: 多技能对话, 知识对话,推荐对话,画像对话,生成采样

 

01

 

比赛介绍

 

真实世界的人机交互同时涉及到多种对话技能,比如知识对话、推荐对话等。在人机对话中如何自然地融合多个对话技能,从而有效地提升用户体验,是一个重要的挑战。为了应对这个挑战,主办方延续了千言-多技能对话(https://luge.ai)的任务设定,并且添加了画像对话以丰富该数据集[5] [6] 。

 

比赛主要从三个方面评测开放领域对话模型的能力:

 

1.知识对话:是否可以在对话过程中充分利用外部知识,并且在生成对话回复的过程中引入外部知识。

 

2.推荐对话:是否可以在对话过程中基于用户兴趣以及用户的实时反馈,主动对用户做出推荐。

 

3.画像对话:是否可以生成流畅的、与角色信息一致的对话回复。

 

1.1

 

子任务1:知识对话

 

样例:

 

合理利用 相关知识,根据给出的两个对话目标进行对话。

 

 

Fig. 1. 知识对话示例

 

评价指标:

 

1. 丰富度(0-2):评价回复句子本身的信息丰富程度

 

2. 话题一致性(0-2):评价输出回复句子回复输入上文的合适程度,是否话题契合、逻辑正确等

 

3. 知识准确率(0-2):评价回复句子所用知识的准确率

 

1.2

 

子任务2:推荐对话

 

样例:

 

根据给出的场景、画像、知识、目标以及用户的实时反馈,向用户完成相关推荐。

 

 

Fig. 2. 推荐对话示例

 

评价指标:

 

1.丰富度(0-2):评价回复句子本身的信息丰富程度

 

2.话题一致性(0-2):评价输出回复句子回复输入上文的合适程度,是否话题契合、逻辑正确等

 

3.知识准确率(0-2):评价回复句子所用知识的准确率

 

4.推荐成功率(0-2):评价最终推荐目标完成的程度

 

1.3

 

子任务3:画像对话

 

样例:

 

进行与画像信息一致的闲聊对话。

 

 

Fig. 3. 画像对话示例

 

评价指标:

 

1. 丰富度(0-2):评价回复句子本身的信息丰富程度

 

2. 话题一致性(0-2):评价输出回复句子回复输入上文的合适程度,是否话题契合、逻辑正确等

 

3. 画像一致性(0-2): 当前对话回复中的画像信息是否和给定画像信息一致

 

02

 

模型方案

 

目前在开放域对话上效果较好的模型有Microsoft DialogGPT、Google Meena、Facebook Blender、PLATO等,在本次比赛中我们选用了PLATO-2[1]模型,该模型基于UnifiedTransformer[2]结构,包含16亿参数,使用了12亿个中文开放域多轮对话数据集进行训练,同时利用离散隐藏变量增加输出的多样性以及课程学习来提高训练效率,具体见下图:

 

 

Fig. 4. PLATO-2

 

在该框架的基础上,我们对模型的输入、训练、输出做了一系列改进。

 

2.1

 

OOV处理

 

在训练模型的时候,我们发现有很多在文本里频繁出现的字符在模型的Vocab文件里没有出现,因此对所有在文本里出现的字符进行统计,将出现次数大于100次的字符保存下来,替换成Vocab文件里一次都没有出现过的字符。

 

除了一些频繁出现的字符以外,还存在大量的只出现过一次的生僻字符,只用Vocab文件里的字符替换是替换不完的,这些字符的存在会导致模型在infer的时候后续相关的字符也一起乱掉。因此,我们对模型的词表embedding数量进行修改,额外定义了128个特殊字符,对一个样本里的所有字符依次进行遍历,当存在生僻字符时,依次使用特殊字符进行替换。处理结果如下:

 

 

Fig. 5. OOV处理结果示例

 

通过训练,可以使模型学习到特殊字符的位置信息进行相应的预测。在预测结束后,所有的替换字符与特殊字符都会反向映射回来,如下图。

 

 

Fig. 6. 模型预测处理

 

2.2

 

输入优化

 

每个任务的数据集都提供了大量的知识,但是模型在使用这些知识的时候,可能会重复使用一个知识。针对这个情况,每当模型使用了一个知识,我们就将该知识从输入中删除。同时,如果用户对某个知识进行提问,即使用过也会加在输入中。

 

此外,由于模型输入的最大长度是512,在推荐任务中,有60%左右的样本都会超出最大长度导致被迫截断。为了不损失有用信息,我们主动对输入进行了一轮排序和筛选:首先对输入知识进行分类,如A1、A2、A3;B1、B2、B3等,之后对每一类知识进行一次排序,一方面考虑知识长度,长度太长或者太短的知识分数会降低,另一方面考虑文本情绪,比如在歌曲或者电影中会存在很多评论,为了给用户推荐,需要尽量选择一些正面的评论,因此我们通过一个情绪判别模型对相关的知识进行打分。最终综合两个分数,将知识重新排序为A1、B1、C1、A2、B2、C2……这样在进行截断时可以保证能保留下足够多样且优质的知识进行使用,如下图。此外,在训练过程中,下一句回复中使用的知识都会强制放在截断之前的位置,指导模型主动使用知识。

 

 

Fig. 7. 输入优化结果示例

 

2.3

 

目标推理

 

在推荐任务中,训练数据集会给出一个完整的的目标流程,比如:

 

[1] 问 日期 ( User 主动 问 日期 , Bot 根据 『 参考 知识 』 的 『 聊天 日期 』 回答 , 然后 User 满足 并 好评 ) –> [2] 关于 明星 的 聊天 ( Bot 主动 , 从 『 张学友 』 生日 开始 聊 , 根据 给定 的 明星 信息 聊 『 张学友 』 相关 内容 , 至少 要 聊 2 轮 , 避免 话题 切换 太 僵硬 , 不够 自然 ) –> [3] 电影 ( Bot 主动 , Bot 使用 『 金鸡2 』 的 某个 评论 当做 推荐 理由 来 推荐 『 金鸡2 』 , User 切换 话题 : User 现在 更 喜欢 『 张国荣 』 的 音乐 。) –> [4] 音乐 推荐 ( Bot 主动 , Bot 使用 『 有心人 』 的 某个 评论 当做 推荐 理由 来 推荐 『 有心人 』 , User 接受 。需要 聊 2 轮 ) –> [5] 音乐 ( Bot 主动 询问 是否 播放 , User 同意 后 , Bot 播放 音乐 『 有心人 』 ) –> [6] 再见

 

但是在测试数据中只给了开头和结尾,比如:

 

[1] 问 日期 ( User 主动 问 日期 , Bot 根据 『 参考 知识 』 的 『 聊天 日期 』 回答 , 然后 User 满足 并 好评 ) –> …… –> [5] 播放 音乐 ( Bot 主动 询问 是否 播放 , User 同意 后 , Bot 播放 音乐 『 有心人 』 ) –> [6] 再见

 

为了保持一致性,需要将训练数据集中间部分的目标也进行删除。但是这种处理方式会导致模型在实际推荐时有些混乱,尤其是推荐过程中涉及明星切换的情况。因此,根据每个样本给出的知识,我们写了一个函数来定制一个完整的目标流程,并且在训练的时候也使用完整的目标进行训练,最终使推荐成功率达到了满分。

 

以涉及关于明星的聊天的目标为例,目标流程定制框架如下,具体链路由样本中给出的知识类别决定。若目标种类与知识种类太多,也可以训练一个模型来生成目标。

 

 

Fig. 8. 目标推理结果示例

 

2.4

 

输出筛选

 

由于greedy search 和 beam search会更倾向于产生较短的输出,为了保证输出的多样性与信息丰富度,业界常用的做法主要是基于topK和topP[4]的随机采样方法。在得到随机采样结果后,通常是选取一个分数最高的作为最终输出, 但是在实际测试中,我们发现效果不是很好,为此,我们提出了一种基于词频的SampleScore样本筛选方法,伪代码如下:

 

 

Fig. 9. 输出筛选伪代码

 

03

 

总结

 

在这篇文章中,我们介绍了我们在2021语言与智能竞赛中的对技能对话的冠军解决方案:通过替换特殊字符,解决模型无法生成不在词表中的词的问题;通过输入筛选以及重排序,解决当输入过长有用信息被截断的问题;通过给定的知识人为定制一个完整的目标解决模型推荐效果差的问题;通过设计一种新的SampleScore计算方法来挑选更合适的输出。

 

基于这些方法,在人工评测中我们的推荐对话和画像对话均是最好的,其中推荐成功率达到了满分。

 

参考文献

 

[1]  Bao S, He H, Wang F, et al. Plato-2: Towards building an open-domain chatbot via curriculum learning[J]. arXiv preprint arXiv:2006.16779, 2020.

 

[2]  Dong L, Yang N, Wang W, et al. Unified language model pre-training for natural language understanding and generation[J]. arXiv preprint arXiv:1905.03197, 2019.

 

[3]https://github.com/isnowfy/snownlp

 

[4]Holtzman A, Buys J, Du L, et al. The curious case of neural text degeneration[J]. arXiv preprint arXiv:1904.09751, 2019.

 

[5]Wenquan Wu, Zhen Guo, Xiangyang Zhou, Hua Wu, Xiyuan Zhang, Rongzhong Lian, and Haifeng Wang. 2019. Proactive human-machine conversation with explicit conversation goal. In ACL.

 

[6]Zeming Liu, Haifeng Wang, Zheng-Yu Niu, Hua Wu, Wanxiang Che, Ting Liu. 2020. Towards Conversational Recommendation over Multi-Type Dialogs. In ACL.

 

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注