EMNLP 2018 | 从对话生成和文本风格转化看文本生成技术

2018-10-25 12:40

本文将介绍腾讯 AI Lab 发表于 EMNLP 2018 的两篇论文,论文关注的是文本到文本生成研究领域中的文本风格转化及对话生成任务。其中,在文本风格的论文中,作者提出了一个新的序列编辑模型旨在解决如何生成与给定数值相匹配的句子的研究问题。而关于对话生成的论文中,作者提出了一个新的对话模型用于抑制对话生成模型中通用回复的生成。

引言

随着近年来端到端的深度神经网络的流行,文本生成逐渐成为自然语言处理中一个热点研究领域。文本生成技术具有广阔的应用前景,包括用于智能对话系统,实现更为智能的人机交互;我们还可以通过自动生成新闻、财报及其它类型的文本,提高撰文者的工作效率。

根据不同的输入类型,文本生成可以大致划分为三大类:文本到文本的生成,数据到文本的生成以及图像到文本的生成。每一类的文本生成技术都极具挑战性,在近年来的自然语言处理及人工智能领域的顶级会议中均有相当多的研究工作。

本次将介绍腾讯 AI Lab 在文本到文本生成研究领域中关于文本风格转化及对话生成的两篇论文。其中,文本风格的论文中,我们提出了一个新的序列编辑模型旨在解决如何生成与给定数值相匹配的句子的研究问题。而关于对话生成的论文中,我们提出了一个新的对话模型用于抑制对话生成模型中通用回复的生成。以下我们将分别介绍两篇论文。

1

QuaSE: 量化指导下的序列编辑

在这篇由腾讯 AI Lab 主导,与香港中文大学(The Chinese University of Hong Kong)合作完成的论文中,作者提出一种新的量化指标引导下的序列编辑模型,可以编辑生成与给定的量化指标相匹配的句子,未来可以扩展到诸如 CTR 引导下的新闻标题和摘要生成、广告描述生成等业务场景中。

研究问题

论文的主要任务是给定一个句子以及其对应的分数,例如 Yelp 平台上的用户评价“The food is terrible”以及其评分 1,然后我们设置一个目标分数,让模型能够生成与目标分数相匹配的句子,并且原句的主要内容在新的句子中必须得以保持。例如,给定数值 3,生成“The food is OK”。给定数值 5,生成“The food is extremely delicious”。

任务的挑战和特点主要有以下几方面:

1. 给定的数值可以是连续的,例如 2.5, 3.7, 4.1 等,意味着很难像机器翻译一样能够有人工标注的成对出现的训练样本;

2. 模型需要具有甄别句子中与数值相关的语义单元的能力;

3. 根据数值进行句子编写时,必须保持原句的主要内容。

模型框架

▲图1. QuaSE模型框架

图 1 为我们提出的模型 QuaSE 的框架,包含单句建模以及序列编辑两个部分的建模。左半部分为单句建模,其中 X 和 R 是观测值,分别表示句子(例如用户对餐厅的评价)以及其对应的数值(例如用户评分)。Z 和 Y 是隐变量,是对句子内容以及句子数值相关属性的建模表示。

受 Variational Auto-Encoders(VAE)模型的启发,对于隐变量 Z 和 Y 的建模是通过生成模型的方式实现。我们设计了两个 Encoder(E1 和 E2)和一个 Decoder (D),X 以 Z 和 Y 为条件进行生成。

模型的优化目标是使得生成的句子 X' 能够最大限度的重建输入句子 X。同时,由于优化目标积分计算困难等原因,我们采用变分的方法探寻优化目标的下界。单句建模的优化目标为:

此外,我们还设计了一个回归函数 F 来学习隐变量 Y 和数值 R 的映射关系。

对于序列编辑过程的建模,我们首先构建了一个伪平行句对数据集。例如,对于句子 x=“I will never come back to the restaurant.” 我们找到其伪平行句子为 x'=“I will definitely come back to the restaurant, recommend!” 其中 x 和 x' 对应的数值分别是 1 和 5。

对于句子编辑的建模主要包含三个部分:

1. 建立句子 x 到句子 x' 的内容变化与数值变化之间的关系。原句 x 到目标句 x' 的变化肯定是增加或者减少了某些词,从而使得在数值这个属性上产生变化,即 y 到 y' 的差别。对于这个变化映射我们设计了第一个目标函数 L_diff;

2. 我们提到 x 和 x' 必须在主要内容方面继续保持一致,例如必须都是在描述“restaurant”。所以我们引入第二个目标函数 L_sim 来使得 z 和 z' 尽量的相似;

3. 我们知道生成过程是给定 z 和 y 来生成 x (p(x|z,y)),那么改写的过程可以是给定 z 和 y' 来生成 x' (p(x'|z,y')),也可以同时是给定 z' 和 y 来生成 x (p(x|z',y)),这是个双向过程。所以对于这两个生成过程我们引入了第三个损失函数 L_d-rec。

最后,单句建模和编辑建模可以融合成一个统一的优化问题通过端到端的方法进行训练。

实验分析

我们使用 Yelp 上的用户评论和打分数据进行实验,实验分为两个部分。

第一个实验主要是为了验证给定任意数值的句子编辑能力。我们通过 MAE 和 Edit Distance 两个指标来衡量句子编辑的性能。实验结果如表 1 所示:

▲表1. Yelp数据集上的任意数值指导下的句子改写

从表 1 中可以看出我们的模型编辑的句子质量更高,编辑后的句子的预测数值与给定的目标数值更接近。而且能够保持原句的主要内容。

为了更加形象的说明句子编辑的效果,我们抽样了一些样本进行展示,如表 2:

▲表2. 序列编辑的示例展示

另外,我们注意到有相关做文本风格转换的研究工作可以进行句子双向生成,即给定负向情感句子生成正向情感句子,或反之。

所以,为了与该类模型比较句子编辑的效果,我们设计了第二个实验与之对应,即从数值 1 的句子生成数值 5 的句子,或相反。我们用准确率来评价改写的好坏。实验结果如表 3 所示:

▲表3. 双向文本风格转换效果

实验结果说明我们的模型在双向文本风格转换实验中可以获得更高的准确率。

此外,生成的句子质量很难以进行客观评测,所以我们引入了人工评测的结果来衡量句子内容保持度以及句子质量的高低。人工评测结果如表 4 所示:

▲表4. 人工评测结果

可以看出我们的模型可以最大程度保持原句的内容,并且句子依然保持很好的流畅度。

2

基于统计重加权减少通用回复

在这篇由腾讯 AI Lab 主导,与武汉大学、苏州大学合作完成的论文中,作者提出一种适用于开放领域对话系统的新型神经对话模型(Neural Conversation Model),旨在解决生成模型中容易产生通用回复(如“我不知道”,“我也是”)的问题。

论文方法

神经生成模型在机器翻译中的成功应用,即神经机器翻译(Neural Machine Translation, NMT),激发了研究人员对于神经对话模型的热情。目前,最常用的神经对话模型为序列到序列(Sequence-to-sequence, Seq2Seq)模型:给定一个输入序列及输出序列,模型的参数用于优化 negative log likelihood:

然而在开放领域的对话中,我们经常发现对于一个输入 x,如“你吃饭了吗?”,若干意思完全不一致的回复都是可以被接受的,如“刚吃完。”,“还没呢,还不饿。”,“不急。你呢?”等等,因此从 x 到 y 是一对多的映射关系。甚至,同一个回复经常可以适用于多个输入,因此是从 x 到 y 是多对多的映射关系(如图 1 所示)。

▲图1. 机器翻译及对话语料中从输入到输出的映射关系对比

然而,Seq2Seq 模型的目标函数学习的是一个从 x 到 y 的一对一的映射关系,并且优化的目标函数由大量的预测高频词/短语的损失项所组成,导致最终收敛的模型易于生成高频词及他们的组合,生成通用回复。

因此,本文在损失函数项中引入权重,使得 Seq2Seq 模型能优化更为多样化的损失项。其中,我们发现若输出为(包含)高频序列,以及输出序列长度过短或过长,此输出序列的损失项优化都容易导致通用回复,因此我们设计了有效的方法对这些损失项乘以一个较小的权重。有兴趣的读者可以阅读我们的论文及具体的权重计算方式。

实验分析

我们从各大中文社交网站(如微博等)中爬取并筛选了 700 万高质量的对话句对进行实验。其中,我们保留了 500 个输入作为测试集,并且聘请了 3 个评测人员对各种对话生成模型的生成回复进行了包括句子通顺度(Fluency)与输入句子的相关性等方面的评测。

同时,我们也对比了多种权重设计方式的有效性,包括只使用句子频次(Ours-RWE)、只使用句子长度(Ours-RWF)以及句子频次、长度均使用(Ours-RWEF)。结果如表 1 所示。从中,我们可以看到,我们的方法在保持较高的句子通顺度的时候,有效地提高了回复的相关性。

我们还另外保留了 10 万个输入作为另一个较大的测试集。在这个测试集上,我们统计了各种对比模型中产出几个常见的通用回复的频次。结果见表 2。由此表可见,我们提出的方法极大程度地减少了生成的通用回复。

最后,我们在表 3 中给出一些具体的生成回复。由此我们可以更为直观地感受到所提出的方法确实能够生成质量较高的回复。

▲表1. 人工标注结果

▲表2. 通用回复生成频次对比

▲表3. 生成结果对比

点击以下标题查看更多论文解读:

改写句子和减少对话生成通用回复相关推荐

  1. IJCAI 2018:中科院计算所:增强对话生成一致性的序列到序列模型

    IJCAI 2018:中科院计算所:增强对话生成一致性的序列到序列模型 文章来源:企鹅号 - 读芯术 你和"懂AI"之间,只差了一篇论文 号外!又一拨顶会论文干货来袭! 2018年 ...

  2. 《预训练周刊》第41期: 知识型对话生成、语境学习、通用控制器学习

    No.41 智源社区 预训练组 预 训 练 研究 观点 资源 活动 周刊订阅 告诉大家一个好消息,<预训练周刊>已经开启"订阅功能",以后我们会向您自动推送最新版的&l ...

  3. 【NLP】一文速览 | 对话生成预训练模型

    作者 | 惠惠惠惠惠惠然 整理 | NewBeeNLP 大规模预训练言模型在生成式对话领域近年来有非常多的工作,如百度PLATO系列(PLATO[1]/PLATO-2[2]/PLATO-XL[3]), ...

  4. 一文速览 | 对话生成预训练模型

    作者 | 惠惠惠惠惠惠然 整理 | NewBeeNLP 大规模预训练言模型在生成式对话领域近年来有非常多的工作,如百度PLATO系列(PLATO[1]/PLATO-2[2]/PLATO-XL[3]), ...

  5. 微软亚洲研究院论文解读:基于动态词表的对话生成研究(PPT+视频)

    本文为 12 月 27 日,北京航空航天大学博士生.微软亚洲研究院实习生--吴俣在第 21 期 PhD Talk 中的直播分享实录. 本次 Talk 的主题是基于动态词表的对话生成研究.首先,吴俣博士 ...

  6. 对话生成:seq2seq模型原理及优化

    对话生成模型 一.寿险的人机对话业务介绍 二.Seq2Seq 对话模型原理 三.基于主题规划和文本属性控制的 Seq2Seq 模型优化 四.Seq2Seq 模型在寿险业务的实践介绍 五.视频及资料获取 ...

  7. 深度强化学习用于对话生成(论文笔记)

    一.如何定义一个好的对话 尽管SEQ2SEQ模式在对话生成方面取得了成功,但仍出现了两个问题(图1): 通过使用最大似然估计(MLE)目标函数预测给定会话上下文中的下一个对话转角来训练SEQ2SEQ模 ...

  8. AAMAS 2023|三思而后行:一个类人的用于情感对话生成的两阶段对话代理

    ©作者 | 钱宇珊.王博等 来源 | 社媒派SMP 论文标题: Think Twice: A Human-like Two-stage Conversational Agent for Emotion ...

  9. CCL2022自然语言处理国际前沿动态综述——开放域对话生成前沿综述

    开放域对话生成前沿综述 --CCL 2022 自然语言处理国际前沿动态综述 文章目录 总体概览 1 基础任务 1.1 对话多样性代表工作 1.2 对话安全性的代表性工作 2 知识融入 2.1 基于常识 ...

最新文章

  1. 工业以太网交换机选机攻略
  2. arcgis制作空间变化图怎么做_听说如果做数据分析不用GIS,会被开?
  3. linux5.5 里dns,RedHat 5.5搭建各种DNS服务器(3)
  4. php yii2 路径问题,yii2常用路径获取
  5. java中为什么要使用代理
  6. 【Flink】Flink source后全过滤数据导致监控数据为0
  7. iBATIS date MySQL_LocalDateTime与mysql日期类型的交互(基于mybatis)
  8. 交换机端口mtu值最大_交换机 MTU
  9. 随想录(简单的windows驱动代码)
  10. 【Unity Shaders】Lighting Models —— 灯型号Lit Sphere
  11. lamp php的ssl,ssh支持
  12. Vue:vue中axios发起http请求报错net::ERR_CERT_DATE_INVALID
  13. creator 生成bmfont字体文件
  14. mysql 管理工具 绿色_飘云MySQL管理工具(MySQL数据库管理助手)V1.1 最新版
  15. Handler native层实现原理
  16. z世代消费力白皮书_2019 Z世代消费力白皮书,洞悉2.6亿年轻人消费倾向
  17. 土方回填施工方案范本_土方回填施工方案.doc.docx
  18. 微信小程序的广告方式有哪些
  19. vue 使用 :class 根据不同状态值设置状态文字颜色不同
  20. java dispatcher详解_Java Web开发详解:RequestDispatcher接口

热门文章

  1. 游戏建模好上手吗?相信伯乐吗?
  2. 泊松积分、伽马函数——公式干货总结
  3. 【3D人脸】Open3D学习笔记 一
  4. idea连接数据库创建实体类
  5. 外贸日历|2月海外营销日历
  6. 高通 Android 12/13 去掉耳机音量安全弹窗
  7. 视觉SLAM理论与实践学习笔记
  8. Spring 中使用了哪些设计模式?
  9. par函数cex参数-控制文字和点的大小
  10. Golang中path/filepath包