对话系统中的自然语言生成(NLG)
源文连接:https://zhuanlan.zhihu.com/p/49197552
(此处只是为了我本人方便查看,我只关注深度学习的方法,想全面了解的建议看原文)
自然语言生成(NLG)在很多NLP领域或任务都有涉及,比如摘要生成、VQA(视觉问答) 、翻译、写诗词、写作文、写新闻、NBA等赛事报道、对话系统等。不同任务下的NLG也不一样,今天我们简单来聊聊对话系统中的NLG。
1 简介
对话系统按功能来划分的话,分为闲聊型、任务型、知识问答型和推荐型。在不同类型的聊天系统中,NLG也不尽相同。
1.1 闲聊
闲聊型对话中的NLG就是根据上下文进行意图识别、情感分析等,然后生成开放性回复;
1.2 任务型
.任务型对话中的NLG就是在NLU(领域分类和意图识别、槽填充)、DST、DPL的基础上,根据学习到的策略来生成对话回复,一般回复包括澄清需求、引导用户、询问、确认、对话结束语等。
1.3 知识问答型
知识问答型对话中的NLG就是根据问句类型识别与分类、信息检索或文本匹配而生成用户需要的知识(知识、实体、片段等),这类回复相比单纯的信息检索一般用户体验会更好,因为一般信息检索还需要用户根据搜索结果自己找所需信息。(更为具体的答案)
1.4 推荐型
推荐型对话系统中的NLG就是根据用户的爱好来进行兴趣匹配以及候选推荐内容排序,然后生成给用户推荐的内容。
2. 聊天系统中的NLG技术汇总
下面分别介绍一下对话系统中的不同NLG技术。
2.1. 传统方法
基于模版的NLG、基于树的NLG。
需要定义一堆模板和规则,然后映射到自然语言。
2.6. RNN-Based LM
可能很多人不了解sigdial这个会议,其实这个会议在dialogue领域真的是很不错的一个会议,也有很多高质量paper。这种方法结合了神经网络和语言模型,减少了很多人工,也可以对任意长的句子句子建模。
2.7. Semantic Conditioned LSTM
这篇paper在使用lstm时加入了semantic,整个网络包括原始的标准lstm和dialogue act cell。
2.8. Structural NLG
这种方法也用了句法树+神经网络,encode trees as sequences,然后用seq2seq来做句子生成。
2.9. Contextual NLG
这也是一篇sigdial的paper。这个方法其实也是seq2seq模型,好处是生成的回复会考虑上下文,比较适合多轮对话
2.10.Controlled Text Generation
这个方法是基于GAN的NLG。
2.11.Transfer learning for NLG
Wen et al., 2013.,Shi et al., 2015, Wen et al., NAACL 2016)
用迁移学习做NLG,可以解决目标领域数据不足的问题,也可以跨语言、个性化等。主要有三种打法:基于模型的迁移学习,底层网络在不同领域都一样,在上层根据不同领域做fine-tuning;
3.这几种NLG技术的对比
以上简单介绍了11种对话系统中的NLG技术,下面简单总结下它们的优势和劣势。