iclr 2022 Compositional attention: Disentangling search and retrieval

news2024/10/7 18:27:55

Mittal S, Raparthy S C, Rish I, et al. Compositional attention: Disentangling search and retrieval[J]. arXiv preprint arXiv:2110.09419, 2021.

目录

  • Mittal S, Raparthy S C, Rish I, et al. Compositional attention: Disentangling search and retrieval[J]. arXiv preprint arXiv:2110.09419, 2021.
    • Motivation
    • 主要贡献
    • Multi-head attention中的不足
      • Multi-head Attention as a rigid pairing of Searches and Retrievals
    • COMPOSITIONAL ATTENTION - DISENTANGLING SEARCH AND RETRIEVAL
      • Compositional Attention allow us to do what?
    • Experiments

Motivation

作者认为,在multi-head attention中存在redundant parameters的问题。比如在下面这张图中,对于retrieve location的操作在multi-head attention中进行了两次,这造成了参数的冗余。

为了解决这个问题,They propose Compositional Attention, where the search and retrieval operations can be flexibly composed: the key-query search mechanism is no longer bound to a fifixed value retrieval matrix, instead it is dynamically selected from a shared pool of value matrices accessible by several compositional attention heads. This results in increased flexibility and improved performance.

image-20230110123701600

主要贡献

这篇文章的主要贡献有三点:

  • 指出了multi-head attention中的不足
  • 提出了解决方法Compositional attention
  • 利用自己的方法解决了multi-head attention中出现的问题,并能够很好地解决OOD Generalization中出现的问题。
  • 讨论了一下Compositional attention的计算复杂度

Multi-head attention中的不足

Key-Value Attention: Given a set of queries and key-value pairs, key-value attention computes a scaled cosine similarity metric between each query and the set of keys. This similarity score determines the contribution of each value in the output for the corresponding query.

你看,在multi-head attention中,不也是先计算query与key之间的映射,然后再通过value进行检索的吗?为什么这样的方法就会造成信息的冗余呢?

我们可以先把multi-head attention分为两个阶段:search、 retrieval。

  • search过程指的是根据query+key的过程
  • retrieval指的是对value中的值进行组合的过程

Multi-head Attention as a rigid pairing of Searches and Retrievals

作者任务在mutil-head attention中存在两种类型的冗余:

  • Search Redundancy

    which leads to learning of redundant query-key matrices

  • Retrieval Redundancy

    which leads to learning of redundant value matrices

image-20230110140206525

要想实现c这种检测,value的向量是需要能够投影出来location的信息,q和k的向量需要映射为color的信息。这在原来的方法中是不能进行替换的,而是通过多头的方式来进行检查c这个任务,但这并不能 factorize knowledge more efficiently

虽然目前我还没有看完这篇文章,但是我猜测这篇文章的方法呢,是利用了多个value的投影,在这个retrieval的阶段,又多了一次选择,而不是仅仅通过mutli-head的方式进行选择。

🤡 除了限制了知识更有效的利用,使用这种rigid可能会限制知识的重新组合、导致冗余的参数并潜在的限制了OoD泛化。

COMPOSITIONAL ATTENTION - DISENTANGLING SEARCH AND RETRIEVAL

这篇文章中提出了一个全新的attention mechanism,释放了原来那种静态的search-retrieval并支持一种更灵活地、动态的mapping。具体上,为了做到这些,Compositional attention放弃了head这个概念。

image-20230110152233627

Compositional Attention allow us to do what?

解决了前面提到的fixed search-retrieval pairing的问题

We highlight that Compositional Attention disentangles search and retrieval and solves the redundancies of multi-head attention

a. 可以设置S和R,分别表示Search-Retrieval的数量

b. 可以动态地共享retrieval的结果给所有的search

c. 从假设上来讲,Compositional Attention的pair容量是相当于S*R个multi-head attention(fixed pair)

Experiments

后面就是一套实验,用来证明这篇文章的方法确实别Multi-head Attention要好。

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

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

相关文章

【Kettle报错】kettle7.0链接MySQL显示:No appropriate protocol

【Kettle7.0链接本地MySQL数据库报错】 1. 问题描述 报错问题:kettle7.0报错,提示No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 错误原因: Caused by: javax.net.ssl.SSLHandshakeException: No a…

Vue实现路由(Vue-router,参数传递,编程式路由导航)

目录 路由是什么? 怎么实现路由 第一步 创建一个文件夹 router ,里面创建一个index.js 内容是 第二步 在main.js中引入和应用 router 第三步 在Vue中 通过两个标签进行配置 跳转路由时的参数传递 query params query参数和 param参数的区别 编…

原型链和JSON

对象的封装、继承和多态 封装、继承和多态是面向对象编程的三大特征,在JavaScript中也可以使用这些特征来实现面向对象的的编程。 封装是指将对象的属性和方法封装在对象内部,只提供必要的接口给外部访问。封装可以让我们隐藏对象的实现细节,…

项目管理:制定项目进度计划的好处有哪些?

项目管理计划确定了项目执行、监控及结束项目的整个过程,在项目开始之前,如能制定清晰的计划,并让项目成员都了解项目的目标和自己的责任,会对项目的推进有很大的帮助。 制定项目进度计划的好处有哪些? 1、目标导向…

高级树结构之二叉查找树

文章目录一 二叉查找树简介二 创建和插入操作三 查找操作3.1 查找思路3.2 代码实现四 删除操作4.1 情况讨论4.2 代码实现五 完整代码5.1 二叉查找树的结构5.2 完整代码内容一 二叉查找树简介 二叉查找树【二叉搜索树或是二叉排序树】 左子树中所有结点的值,均小于其…

(十一)devops持续集成开发——jenkins流水线发布一个docker harbor仓库版的前端vue项目

前言 本节内容,我们使用jenkins的流水线功能发布一个docker harbor私服仓库版的前端vue项目,延续前一节的内容,这里需要我们事先安装好一个docker harbor仓库用来存放我们项目的镜像,前端项目依然是通过nginx基础镜像构建&#x…

关于时间复杂度什么是时间复杂度

文章目录简介常见的Big-Oh简介 精确的考虑程序运行时间会使得寸步难行,而且毫无意义,所以可以用一种“概量”的概念来衡量运行时间,称之为“时间复杂度”。 时间复杂度的定义: 在一个完全立项状态下的计算机中,我们定…

【Sql Server】数据库的表变量和临时表的区别,并通过变量表随机生成姓名

作者:小5聊 简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑 公众号:有趣小馆,一个有趣的关键词回复互动功能 效果 1、表变量 1.1、表变量基本信息 1)表变量本质是一个变量 是SQ…

《啊哈算法》第一章典例+解析+代码

目录 一,计数排序 二,冒泡排序(Bubble Sort) 三,快速排序(Quick Sort) 四,桶排序(Bucket Sort) 五,小哼买书 从无到有掌握最基础的算法 多学…

react hooks 封装一个countDown 倒计时组件

开发技术 react , hooks , ts , taro 需求分析 需要一个可以按天,时,分和秒来进行倒计时的组件。 简单使用 注:主要逻辑请看 useCountDown import CountDown from /components/countDown; import { useEffect, useState } from react; i…

东宝商城项目(二)——flask-script模块、flask-migrate模块和项目日志配置

学习flask-script模块的使用 1、什么是flask-script flask-script是flask的一个扩展模块,Flask-Script的作用是可以通过命令行的形式来操作Flask。 2、安装flask-script pip install flask-script 3、flask-script的使用 例如有这样一种需求: 我们…

李彦宏开年定调“百度式创新”:反馈驱动,坚定技术

今天在百度热搜看到这么一条置顶话题,让我印象深刻:读懂中国经济的信心所在。 站在2023年起点,无论你是阳了、没阳,还是阳康了,之于个人、企业组织,都太需要信心和激励了。 点进去后是一篇来自《人民日报 …

小程序直播加速抢占电商流量先机

临近春节,到了购置年货的时候,相信有不少小伙伴被淘宝、拼多多、抖音等各大平台的直播卖货吸引。近年来,大家逐渐发现视频直播的影响力已经渗透到各行各业,通过直播带来的流量,不少商家赚得盆满钵满。视频直播这块流量…

Autosar MCAL-GPT配置及使用

文章目录前言GPTGptChannelConfigSetGptChannelIdGptChannelModeGptChannelTickFrequencyGptChannelTickValueMaxGptEnableWakeupGptNotificationGptChannelClkSrcRefGptAssignedHwUnitGptConfigurationOfOptApiServicesGptDeinitApiGptEnableDisableNotificationApiGptTimeEla…

系列33 Flow_Model

Introduction 在上一小节中讲到了Latent Variable Model(LAM),VAE。其主要思想就是将隐变量扩充为高维连续的分布,来增强模型的表达能力。而LAM模型中的核心困难是计算不出来,因为,而的维度过高算不出来。而…

GAN Step By Step -- Step7 WGAN

GAN Step By Step 心血来潮 GSBS,顾名思义,我希望我自己能够一步一步的学习GAN。GAN 又名 生成对抗网络,是最近几年很热门的一种无监督算法,他能生成出非常逼真的照片,图像甚至视频。GAN是一个图像的全新的领域&#…

2022 OceanBase 年度报告|用技术让海量数据的管理和使用更简单!

尊敬的各位客户、合作伙伴和开发者: 从 2020 年 6 月 1 日 OceanBase 开启商业化至今,我们一起走过了 900 多天。 从 0.5 到 3.x,我们花了近十年时间,而从 3.x 到 4.x 只用了不到两年,这是 OceanBase 和客户、伙伴、…

C++ 开发环境其实挺难搞的(上)

所谓工欲善其事,必先利其器,我将用两节课的内容向大家介绍 C 的开发工具及开发环境的一些知识。 Visual Studio 诞生至今已有 25 年以上的历史,功能强大,用的人非常多,社区的朋友戏称它为宇宙最强大的 IDE&#xff0c…

LeetCode 147. 对链表进行插入排序

🌈🌈😄😄 欢迎来到茶色岛独家岛屿,本期将为大家揭晓LeetCode 147. 对链表进行插入排序,做好准备了么,那么开始吧。 🌲🌲🐴🐴 一、题目名称 二、…

ECC原理和RocketChip Cache ECC实现

一、ECC原理说明ECC(Error Correcting Code)全称为错误纠正码,用于对存储器的数据进行完整性检查和纠正,主要用在SRAM、DDR、NAND等存储器设备上。ECC可以对数据进行单比特的纠错和多比特的检错,其原理基于汉明码编码而来。下图是ECC编码的主…