这篇论文要解决的问题,就是多实例学习会遗漏大量信息的问题。所以这篇论文用句子级别的注意力机制代替多实例学习,对于包含某实体对的所有句子,给每一个句子计算一个注意力得分,动态地降低标注错误的样本的得分,再进行加权求和,从而充分利用所有句子的信息。
多实例学习相当于硬注意力机制(Hard Attention),而我们耳熟能详的以及论文中用到的注意力机制是选择性注意力机制(Selective Attention)或者说软注意力机制(Soft Attention),所以多实例学习其实是选择性注意力机制的特殊情况(只有一个句子的权重为1,其他全为0)。
(二)模型介绍
模型主要分为两个部分:句子编码器和注意力层。
1、句子编码器
句子编码器就是上一篇论文中的PCNN或CNN网络结构,由卷积神经网络的输入层、卷积层、池化层、非线性映射层(或者说激活函数)构成。
文本特征同样用词嵌入和位置特征嵌入,池化层用普通的最大池化或者分段最大池化。
因此,本文的句子编码器部分输出的是一个句子经过最大池化并且非线性激活后的特征向量,用于输入到注意力层。这部分和上一篇论文基本相同,无须赘述。
2、注意力层
句子编码器的作用是抽取一个句子的特征,得到一个特征向量。如果外部文档库中包含某实体对的句子有n条,那么经过句子编码器的处理后,可以得到n个特征向量:x1, x2, ..., xn。在句子编码器和softmax层之间加一个选择性注意力层,那么处理的步骤如下:
第一步:计算句子的特征向量xi和关系标签r的匹配度ei,并计算注意力得分αi。公式中的r是关系标签的向量表示。
第二步:计算该实体对的特征向量s。该实体对的特征向量是所有句子的特征向量xi的加权之和,权重为每个句子的注意力得分αi。
第三步:经过softmax层得到该实体对关于所有关系的概率分布,概率值最大的关系为预测的关系标签。
3、误差反向传播
如果一个batch-size有s个实体对,那么用s个实体对的概率分布,计算交叉熵损失:
最后用梯度下降法求出梯度,并进行误差反向传播。
(三)实验细节
1、数据集和评估方法
数据集和上一篇论文一样,知识图谱是Freebase,外部的文档库是NYT(New York Times corpus)。划分数据集的做法也一致。
评估方法采用留出法,不再赘述。
2、词嵌入和参数设置
用NYT数据集训练Word2Vec,用网格搜索(Grid Search)确定参数。