关于跨语言问题生成的学习
本文基于Cross-Lingual Training for Automatic Question Generation(IITB)整理。水平有限,不足之处请指出。
第一章问题生成
1.1 问题生成简述
问题生成 (Question Generation),说得通俗些,就是主动提问。
输入一段文本,神经网络将输出一段基于这段文本的问题,并且这是一个端到端的问题,不需要规定任何中间过程。
例如输入一段文本:
我们国家的所有教育形式由不同知识系统组成。
网络会输出:
什么是教育形式?
1.2 研究的问题
对文本的问题生成目前仍是一个重大挑战,特别是在训练样本有限的时候。基于seq2seq模型的QG方案在处理像英语这样拥有数以千计训练样本的语言时表现出色,但多数语言并没有如此多的数据样本。因此,需要一种方案,通过现有语言的训练数据来为一种新语言建立QG模型。
1.3 问题的方案
论文作者使用了一个共享的encoder-decoder结构,这个结构包含了针对两种语言的两个编码器和两个解码器,并将进行两个阶段的训练——无监督学习和监督学习。
第二章无监督学习
在无监督学习中,作者将第一语言(印度语或汉语)和第二语言(英语)作为数据,通过降噪自编码器和反向翻译进行预训练。
2.1 降噪自编码器(denoising autoencoding)
降噪自编码器(DAE)所做的是将句子中的单词打乱、重组,来防止模型只是简单地复制词汇来实现提问,借助共享的encoder-decoder结构,将模型充分与各种语言结合。
2.2 反向翻译(back translation)
除了DAE之外,作者还使用了反向翻译(BT):将第二语言翻译为第一语言,再将翻译得到的第一语言翻译回第二语言,以此来更新encoder和decoder的权重。需要指出的是,作者在两种语言的每一步训练中都使用了DAE与BT。
第三章监督学习
如前文所述,QG问题定义为一个端到端的问题,即给定一个输入句子,输出是一个语法正确、语义一致的相关问题,并且使用的是与输入相同的语言。
所以在监督学习阶段下,每一个encoder都会收到一个句子x作为输入,然后decoder会生成一个问题,并且这个是根据先前所预测的结果以及输入x来预测的。
总的而言,就是用之前无监督学习所得的权重作为初始值,再在监督学习阶段进行权重的微调。
第四章结构上的细节
4.1 位置掩码(positional masks)
作者采用了带有方向的self-attention机制,使网络能够保存之前的信息,以此具有记忆功能,并采用了类似于transformer的三角函数来进行位置编码。
4.2 权重共享(weight sharing)
由于不同语言的个别句子在向量中会极为相似,为了体现出两种语言在学习时的独立性,encoder和decoder的前两层会独立训练,只有后两层才会共享权值。
第五章总结
这个模型使用的处理方法都比较经典,但这种跨语言处理的思路却值得借鉴。在数据预处理上,该模型采用了无监督学习的方式,通过DAE来增强不同语言的特征,并通过反向翻译使得模型能在少样本的情况下有效地增加训练数量。在监督学习的过程中,模型也加入了记忆功能,进一步强化了对有限样本的有效学习。