【论文摘要】Dialog State Tracking with Reinforced Data Augmentation

本文仅为个人对论文的一点理解,如果有不对的地方烦请指正

戳我看论文原文

论文背景

\quad 智能助手例如Alexa,Siri,Google Duplex的应用越来越广泛,它非常重要的任务是Dialog state tracking(DST),也就是追踪用户的目的,有了这些信息,智能助手再去决定如何与人类交流。

\quad 在slot-based dialog system中,对话的状态被视为槽位和值的组合,比如下面的例子。
在这里插入图片描述
\quad 目前该任务最好的方法采用神经网络,使用之前用户的语句、系统动作和其它相关信息作为输入,最终计算得到各个槽位不同值的概率。

\quad 但是目前DST领域训练数据较为稀少,于是改论文提出了一个针对DST任务的数据增强框架,目的是丰富数据,从而使在其上训练的模型获得更好的效果。

\quad 数据扰乱是一个增强数据集的好方法,这个技术在CV问题和语音识别问题中已经很常用了(改变图片一小部分像素、昏暗等等产生新的图片),但是我们却很难通过扰乱文本来增强数据,因为文本稍微的改变都可能让语义和流畅程度发生非常大的改变。

论文方法

\quad 论文设计了两个模块,其中一个是选择模块(论文种叫生成模块,但我认为叫选择模块更为贴切),负责选择生成新的训练样本;另一个是状态追踪模块,也就是解决该类型任务的一般模型。生成模块依据追踪模块结果的变化进行增强学习,追踪模块又可以通过学习生成模块生成的新数据不断变好。

\quad 状态追踪模块的目的是跟踪用户的目标,先预测每个槽位种不同状态的可能性大小,然后为每个槽位选择可能性最大的状态作为当前的预测,然后结合上一回合的预测值得到目前状态下的最终预测值,下图为论文中的示意图。

在这里插入图片描述
\quad 选择模块负责选择生成的新的训练数据,也就是这篇论文的主要部分所在。

\quad 论文把增强数据形式化为语段的替换问题,也就是句子的一段区间替换成另一段话。

\quad 一般的语段替换可以直接将语段替换成它的释义,但是这样产生的新数据大多无效而且noisy,最终会让追踪模块的效果变差,因此论文提出了让生成模型去学习甄别生成数据的能力。

\quad 原论文这部分说的有点分散,以下内容是我总结之后重新理出来的。

\quad 整体的替换规则是训练数据里面所有的一元组、二元组、三元组提取出来作为目标语段,然后为每个语段在PPDB数据库种查找替换语段作为备选,对于完整匹配某一个slot value的词段,它们的备选语段为该slot的其它candidates,并且替换之后更改整个语句该slot的标签为对应的candidates。

\quad 在具体生成新例子时,论文首先采集一个语句的Bag(每个语句包含句子信息、标签信息和目标替换语段信息),然后为Bag中的的每个句子使用选择模块从备选方案种找到一个最好的替换方案(备选方案的生成见上一段),最终生成一个全新的Bag,这样做M次,生成M个新的Bag。
在这里插入图片描述
\quad 选择模块的输入为一个向量(如上图),由原句送入状态追踪模块得到的encoding向量、新词组的平均embedding与原词组的平均embedding做一些运算的结果拼接组成。模块设计成一个两层的全连接网络,经过一个softmax各个备选生成语句的得分,选择一个得分最高的作为采样结果。
\quad 选择模块采取Policy Gradient方法进行强化学习。 Reward由两部分构成,先将每一个Bag送入当前效果最好的Tracker继续训练,如果Tracker在验证集上的效果变好,Bag级别的reward就是正的。对于句子级别,如果模型在某一个新生成的句子上的标签预测是错误的话,论文就称其为是“large-loss”的句子,这样的句子获得的收益的绝对值为c,其它预测正确的语句获得收益的绝对值为c/2,如果bag-level的收益为正数的话,句子级别的收益也为正数,否则句子级别的收益为负。

\quad 由此二者开始一轮一轮的交替训练,在训练过程中Tracker保留效果最好的一个模型,论文主要内容结束。

个人总结

\quad 论文提出了一种有点类似于GAN想法的数据增强方法,论文整体思路清晰,但是表述顺序不得不说有点迷惑,反反复复看了好几遍才看懂整体的方法QAQ,论文中一些方法还有待推敲,整体来说对我而言比较有启发性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章