Attention模型:我的注意力跟你们人类不一样

星标/置顶小屋,带你解锁

最萌最前沿的NLP、搜索与推荐技术

文 | 小轶


背景

截至今日,Badanau Attention的原文citation已达1.34w之多。2020年几乎所有主流NLP任务都需要借助attetion来实现。在深度学习全民炼丹的时代,attention是为数不多具有较强可解释性的机制。

在attention提出后的最初几年,大家都因其效果显著便不假思索地用于了自己的任务;许多paper也理所应当地在实验部分贴上各式各样的attention热图,用于解释模型的内部运作方式(例如下图)。

然而,attention的可解释性是否确实成立呢?直到最近两年,这一问题才开始受到关注。在这背后,其实还存在另外一个问题——什么是可解释性? 存在两个层面理解:
  1. 能够解释模型的工作原理,即可以从模型的中间结果,分析出其最终结果产生原因。

  2. 一种更高层次的要求是:模型具有类似于人的工作的“思维”过程。第1种只要求模型中间结果与最终结果存在某种固定的关联,而这里则还要求该关联与人的思维过程中是相似的。确实,如果模型的脑回路与我们迥然相异的话,我们又凭什么说自己能够解释它呢?

在attention的可解释性上,此前的相关研究还是单从模型本身出发 (model-driven),也就是只停留在了第1层上。比如去年NAACL上发表的这篇《Attention is not Explanation》,他们人为构造了的新attention向量,用于替换原始向量,发现模型结果完全不变。由此,他们否认了attention的可解释性。

今天要和大家分享的这篇paper——《Human Attention Maps for Text Classification: Do Humans and Neural Networks Focus on the Same Words?》,发表于ACL2020,是第一篇从人机比较的角度来讨论attention可解释性的工作。他们先请志愿者在YELP数据集上在做文本分类任务,要求志愿者标记出影响其分类结果的重点词句,作为人类attention(HAM, human attention map)。然后收集不同模型的attention(MAM, machine attention map)。并设计了一套评价指标,用于分析HAM与MAM之间的差异,给出了一些初步的insight。

这份工作最大的潜在contribution是这个HAM的数据集(已开源),YELP-HAT。它开辟了一种可能性:基于这个数据集,我们或许可以给attention添加一些supervised的控制来提高模型表现。在这方面,CV又一次走在了我们的前面。2016年时一个类似的CV方向数据,VQA-HAT,就已提出了(如下图所示)。该数据集标记了人类在做看图问答任务时的attention所在。之后有大量工作follow,研究如何通过添加supervision,使模型能够attend到关键的图片部分。

原文链接
https://www.aclweb.org/anthology/2020.acl-main.419.pdf

数据集链接
http://davis.wpi.edu/dsrg/PROJECTS/YELPHAT/index.html

Arxiv访问慢的小伙伴也可以在订阅号后台回复关键词【0817】下载论文PDF~

HAM vs MAM

这篇paper的思路很好把握:收集HAM数据集;生成MAM;设计HAM和MAM的比较体系;比较HAM和MAM,得出初步结论。接下来分这四个部分,为大家梳理paper内容。

收集HAM

作者团队请志愿者在YELP数据集上在做文本分类任务,要求志愿者标记出影响其分类结果的重点词句,作为HAM。每一篇文本都有三名志愿者进行重复标注。在下图中,蓝色的是两名志愿者的标注结果,红色是模型attention。可以看到,与MAM不同,人对一个词的attention非0即1的(binary)。

生成MAM

作者用三种模型跑了YELP任务,用于生成MAM。三种模型分别是:

  • RNN

  • BiRNN

  • Rationale mechanism,用基于规则的方式构造attention向量,旨在用supervised的方法模仿人的attention。

下图是三个模型和人类在YELP数据集上的表现(YELP-50/100/200是YELP数据集的三个子集,各子集中的文本平均长度依次递增)。

HAM与MAM的比较体系

作者设计了三个指标,从不同维度比较HAM与MAM的异同:

1. 行为相似度(Behavioral Similarity):HAM和MAM两个向量之间的AUC,比较了两者在词语选择上的异同。

2. 词性相似度(Lexical Similarity):先计算HAM和MAM所选词汇的词性分布情况,词性相似度即为两者之间的相关系数。

3. 情感词数量比(Context-dependency of Sentimental Polarity):这个指标的motivation源于作者发现:那些positive类的文本中也会出现negative的词汇,反之亦然。进行分类判别时,这类文本中positive和negative的词语往往都会被attend到。作者希望比较HAM和MAM所attend到的两类情感词所占比例是否相同。于是就设计了这个指标。

比较结果与初步结论

下面分别是用三个指标评估HAM和MAM间差距的实验结果(由于篇幅限制,行为相似度的实验结果只展示了部分)。

▲行为相似度(取值范围:0.5~1)
▲词性相似度
▲情感词数量比
在原文中这部分的表格和分析的文字占了很大的篇幅。主要结论包括以下三条:
  1. 三种指标上,与人类attention相似度最高的都是BiRNN。

  2. 当文本长度增加时,人与模型的attention差异变大。

  3. 人与模型的attention在词性相似度上差距不大;情感词数量比上,BiRNN也非常接近人类的表现;但从行为相似度评估结果来看,人与模型的差异还是比较大的。

小结

本文从人机比较的角度,探讨了attention机制的可解释性。最大的contribution在于提出了YELP-HAT这一人类attention数据集,为attention中引入supervision提供可能。个人感觉,原文中的实验结论还是比较初步的,但不乏继续follow、深入挖掘的价值。


文末福利

后台回复关键词【入群
加入卖萌屋NLP/IR/Rec与求职讨论群
有顶会审稿人、大厂研究员、知乎大V和妹纸
等你来撩哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/480102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态规划算法(Dynamic Programming)之0-1背包问题

文章目录1. 问题引入2. 动态规划求解0-1背包3. 复杂度4. 0-1背包升级版(带价值)5. 0-1背包升级版(带价值)DP解法1. 问题引入 前面讲了0-1背包的回溯解决方法,它是穷举所有可能,复杂度是指数级别的&#xf…

Java多线程系列(一):最全面的Java多线程学习概述

Java并发编程的技能基本涵括以下5方面: 多线程 线程池 线程锁 并发工具类 并发容器 多线程的4种创建方式 继承Thread 实现Runnable接口 实现Callable接口 以及线程池来创建线程 Java线程的生命周期 线程的创建 线程的就绪 线程的运行 线程的阻塞 线程的死…

论文浅尝 | 基于知识库的自然语言理解 01#

本文转载自公众号:知识工场。罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Science Lab)。他曾在…

推荐系统图算法实用干货汇总(含论文、代码、样例教程)

Hello,今天为朋友们推荐一个值得学习的公众号「浅梦的学习笔记」,小编目前在电商公司从事推荐系统相关的工作。主要分享关于「推荐系统,图算法,NLP&CV以及求职面试」等内容,欢迎关注一起学习和交流~文末可打包下载…

动态规划应用--双11购物凑单

文章目录1. 问题描述2. 代码实现1. 问题描述 双11购物节的时候,某宝给你很多张满300减50的优惠券,你想组合各种商品的价格总和>300,且金额总和越接近300越好,这样可以多薅点羊毛。 回溯算法效率太低,时间复杂度指…

商汤科技2020数据分析师0820笔试题目整理

2019年8月19日 问答题1:缺失值数据预处理有哪些方法?https://juejin.im/post/5b5c4e6c6fb9a04f90791e0c 处理缺失值的方法如下:删除记录,数据填补和不处理。主要以数据填补为主。 1 删除记录:该种方法在样本数据量十分…

Java多线程系列(八):ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

HashMap、CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构、原理、扩容机制深入谈过hashmap的实现原理以及在JDK 1.8的实现区别,今天主要谈CurrentHashMap的实现原理,以及在JDK1.7和…

论文笔记(Neural Graph Collaborative Filtering)

神经图协同过滤 论文链接:Neural Graph Collaborative Filtering, SIGIR’19 原理:在 user-item interaction graph 上使用 GNN 来学习 user 向量和item 向量,用户向量和项向量的内积来预测评分。 区别: 大部分论文使用 GNN 只是…

论文浅尝 | 基于知识库的自然语言理解 02#

本文转载自公众号:知识工场。罗康琦,上海交通大学计算机系2019届博士,研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位,现就职于京东数据科学实验室(Data Science Lab)。他曾在…

工业解密:百度地图背后的路线时长预估模型!

星标/置顶小屋,带你解锁最萌最前沿的NLP、搜索与推荐技术编 | YY无论你是苦逼学生(公交地铁狗)、职场萌新(打车狗)还是有钱大佬(有车一族),只要站在了北上广深的土地上,就…

动态规划应用--“杨辉三角”最短路径 LeetCode 120

文章目录1. 问题描述2. DP算法代码3. LeetCode 120 三角形最小路径和1. 问题描述 对“杨辉三角"进行一些改造。每个位置的数字可以随意填写,经过某个数字只能到达下面一层相邻的两个数字。 假设你站在第一层,往下移动,我们把移动到最底…

Java多线程系列(九):CountDownLatch、Semaphore等4大并发工具类详解

之前谈过高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景 ,以及高并发编程系列:ConcurrentHashMap的实现原理(JDK1.7和JDK1.8) 今天主要介绍concurrent包的内容以及4大并发工具类。 Java并发工具包 1.并发工具类 …

快手 算法工程师 0825 笔试题

4 求解一元一次方程的解 #include <cstdio> #include <iostream> #include <string.h> #include <cstring> #include <algorithm> using namespace std; int x0,n0,xr0,nr0; int flag 0; void Adds(string a,char op) { if(flag0) {if(a…

论文笔记(Neural Collaborative Filtering)

神经协同过滤 论文链接&#xff1a;Neural Collaborative Filtering, WWW’17 原理&#xff1a;融合 GMF 和 MLP 1. 摘要 虽然最近的一些研究使用深度学习作为推荐&#xff0c;但他们主要是用深度学习来建模辅助信息&#xff0c;例如 item 的文本描述。在表示协同过滤的关键…

玩转算法第七章-二叉树与递归

二叉树与递归 二叉树的前序遍历 leetcode 104 将两个递归函数映射到max函数中去 思考题&#xff1a;leetcode 111 leetcode&#xff1a;226 扩展题&#xff1a;leetcode 100 leetcode&#xff1a;101 第一个是&#xff0c;第二个不是 leetcode 222&#xff1a; leet…

POJ 2965 开冰箱的门(回溯)

文章目录1. 题目1.1 题目链接1.2 题目大意1.3 解题思路2. 代码2.1 Accepted代码1. 题目 1.1 题目链接 http://poj.org/problem?id2965 1.2 题目大意 有一个4*4的符号矩阵&#xff08;和-&#xff09;&#xff0c;改变一个元素的符号&#xff0c;它所在的行和列的其他元素也…

论文浅尝 | 基于知识库的自然语言理解 03#

本文转载自公众号: 知识工场。罗康琦&#xff0c;上海交通大学计算机系2019届博士&#xff0c;研究方向为自然语义理解和知识图谱。2012年获得华中科技大学软件工程学士学位&#xff0c;现就职于京东数据科学实验室&#xff08;Data Science Lab&#xff09;。他曾在AAAI&#…

Java多线程系列(七):并发容器的原理,7大并发容器详解、及使用场景

之前谈过高并发编程系列&#xff1a; 高并发编程系列&#xff1a;4种常用Java线程锁的特点&#xff0c;性能比较、使用场景 高并发编程系列&#xff1a;CountDownLatch、Semaphore等4大并发工具类详解 高并发编程系列&#xff1a;4大JVM性能分析工具详解&#xff0c;及内存…

MSRA提出通用文档预训练模型LayoutLM,通往文档智能之路!

星标/置顶小屋&#xff0c;带你解锁最萌最前沿的NLP、搜索与推荐技术随着数字化进程的加快&#xff0c;文档、图像等载体的结构化分析和内容提取成为关乎企业数字化转型成败的关键一环&#xff0c;自动、精准、快速的信息处理对于生产力的提升至关重要。以商业文档为例&#xf…

tensorflow--GPU

一、查看 tensorflow 是否使用了GPU进行计算 import tensorflow as tf sess tf.Session(configtf.ConfigProto(log_device_placementTrue)) 运行程序&#xff0c;日志若包含 gpu 信息&#xff0c;则使用了 gpu。 二、使用指定GPU 方式一&#xff1a;代码&#xff1a; imp…