CoNLL 2018:基于人类注意力的序列分类
论文《Sequence classification with human attention》
代码:https://github.com/coastalcph/Sequence_classification_with_human_attention
这篇论文提出利用视觉跟踪语料库中的人类注意力,作为训练注意力模型时的一个归纳偏置(Inductive bias),也就是用human attention来正则化RNN的注意力函数。
归纳偏置主要是指机器学习算法在学习过程中对某种类型假设的偏好,也就是模型在遇到新的(之前没有见过的)输入的时候,更倾向于给出什么的输出/判断/预测。比如:一个典型的归纳偏置例子是奥卡姆剃刀,它假设最简单而又一致(最简单且会对所有样本产生正确的结果)的假设是最佳的。
一、研究动机
首先,研究发现,在人们阅读一段文本时,并不会关注所有文字,他们很有可能会省略一些根据上下文可预测的功能性词等,而关注一些内容词。这些因素导致了他们在每个单词的停留的持续时间是不同的。(比如 文本’I saws the show‘,'saw'和'show'的停留时间更长)
目前常用的文本注意力机制本质上就是在模仿人类阅读文本的机制(关注部分重要的单词),而在神经网络中训练注意力模型的时候,需要大量的数据作为支撑,如果注意力机制训练不够充分,将会对整体的模型训练效果产生严重的影响。
二、论文原理
在论文中,使用视觉跟踪语料库(eye-tracking corpora),即在文本上附加了阅读者阅读时的停留时间。提出了一个基于注意力机制的循环神经网络来处理序列分类任务,具体做法是在训练RNN的注意力层时,使其监督信号在标注文本和人类注意力信息之间来回交替。利用视觉追踪数据库中在每个单词的阅读停留时间来正则化RNN的注意力层。
三、模型介绍
- 首先,模型的输入为两个独立且不重合的数据集:
a)一组带分类标签的句子(每个句子都附加了类别的标签)
b)一组句子(句子的每个单词token都配有一个标量值,表示人类视线在这个token上停留的时间)
2. 本文提出用human attention来正则化RNN注意力机制,具体的训练过程为:
a) 每一次以相同的概率从序列分类数据集和 eye-tracking 两个数据集中随机选择一个数据,判断该数据属于哪一个数据集。
b) 训练过程
- 如果属于序列分类数据集,则判断该句子的类别,计算预测标签与真实标签的loss。
- 如果属于 eye-tracking 数据集,则输入循环神经网络,计算每个单词的attention值,然后计算神经网络的attention值与human attention权重的最小平方差。
3)公式
计算每个单词的word embedding特征及每个字符的character-level拼接为word representations,再输入Bi-LSTM中:
将每个隐藏层的输出计算token的attention权值:
对attention值正则化:
求得施加注意力权重后的序列特征,预测句子类别:
损失函数分为两部分,一个是sentence-level objective(预测类别与真实标签的损失),另一个为token-level objective(神经网络计算的机器注意力权重和human attention的最小平方误差),即利用human attention改善神经网络的注意力。
四、实验结果
五、总结
本文重点是在训练注意力网络中引入了一个human attention来改善注意力的准确性,另外训练过程可以在文本类别标签和人类注意力信息之间来回交替。