(2019ACL)ProgressiveSelf-SupervisedAttentionLearningfor Aspect-LevelSentimentAnalysis

众所周知,注意力机制是nlp领域的一个重要技术,旨在针对具体任务,为每一个单词分配其应相应的权重。然而注意力的分配却是个大问题,有些在文本中频繁出现的单词容易被过度关注,从而导致在某些句子中被错误地分配到巨大的权重(本不应被关注),而这极有可能导致情感预测错误。

问题:NN和传统注意力机制容易过度关注apparent pattern而忽视inapparent pattern.

 word “small” occurs frequently with negative sentiment, the attention mechanism pays more attention to it and directly relates the sentences containing it with negativesentiment. This inevitably causes another informative context word “crowded” to be partially neglected in spite of it also possesses negative sentiment. 

small是明显pattern,它掩盖了其他应该被分配注意力的不明显pattern

解决方法:自监督调节注意力机制,直觉为:预测对的文本被关注的词应该更关注,预测错的文本被关注的词应该被忽视。

具体做法(摘要):重复地进行情感预测,每次选取最被关注的word,作为active/misleading word,之后遮盖住该词继续迭代训练。active word是预测正确的样本中最被关注的词,misleading word是预测错误样本中最被关注的词。最后在传统训练目标上增加正则项,即两种词模型分配的权重与理想被分配权重的欧氏距离(misword理想权重是0,activeword理想权重为1/num(active word))使得模型关注active word忽视misleading word。

 

算法流程如下所示,

其中Sa(x)表示active word的集合Sm(x)表示misleading word的集合,首先这两个集合是空集,模型迭代K次,每次遍历一遍数据集D,先生成aspect向量(9),之后把上述两个集合中的词mask掉并生成新的表征(10,11),之后使用新的表征进行预测同时记录attention权重(12),之后计算信息熵(13)。

关于信息熵,了解决策树理论的朋友会比较清楚,它表示一个概率集合的混乱程度。比如一道题有ABCD四个选项,其中选A的概率为1,其他三个是0,信息熵就是0;反之啥也不会四个概率都是0.25,信息熵就很大。算法为信息熵设定了一个阈值,论文中根据不同模型取了3.0和4.0,小于这个阈值时认为有明显的被关注词语,将其根据预测结果放入Sa(x)或者Sm(x)之中。随后将被mask的句子放入新数据集D(k)继续循环,这样等循环结束时大多数样本都被选出了一个词丢进集合里,作为这个像本挖掘出来的监督信息。最后使用装有被mask特殊词句子的集合D(k)训练模型并继续迭代(防止某个词被过度关注),K次迭代之后,每个句子最多有K个词被装入了集合里面。

最后,我们把所有完整的样本连同每个样本所带有的监督信息(Sa(x),Sm(x)),装入集合Ds,并使用Ds训练加有正则项的模型,得到最终的模型参数。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值