parallel attention -- AOA &Bi-DAF
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了parallel attention -- AOA &Bi-DAF相关的知识,希望对你有一定的参考价值。
参考技术A parallel attention是双向注意力机制中的一种,在阅读理解中是passage和query 计算attention常用的方法,相比于单向注意力机制,信息融合能够表达得更好。下面从两个框架AOA &Bi-DAF分别介绍parallel attention的思想,先从简单的开始。
AOA(Attention-over-Attention)
在AOA中,query和document都是经过双向GRU编码过的,输出向量分别是 和 。query每一个timestep都会和document的每一个timestep,就会得到一个score矩阵A。假如query的长度为J,document的长度为T,那么这个矩阵就是T*J维。矩阵A的每个元素A[ij]是一个score,score是通过query某一时刻的输出向量与document某一时刻输出向量的点积。
对于矩阵A,分别从行和列方向进行softmax。从列方向softmax后,得到的仍然是T*J维的矩阵,矩阵中元素从score变成了权重,每一列表示document的每一个单词对query的某个单词的相似性或者重要性。从行方向softmax后,得到的仍然是T*J维的矩阵,每一行表示query的每一个单词对document某个单词的相似性或者重要性。还要再进行重要的一步,从列方向上平均,得到一个J维的向量。为什么要做average呢?其实只是为了维度计算,并没有太多的内涵,并且一定程度损失了信息。
最终,T*J维矩阵和J维的向量相乘,得到一个T维的向量。这个T维的向量是想与document长度保持一致,后面AOA想干嘛干嘛,不重要了。重要的不是AOA框架,而是这个二维注意力机制的思想。
Bi-DAF(Bidirectional Attention Flow)
相比于AOA,Bi-DAF的结构更复杂了,复杂之处体现在:一是用了两层embedding,二是LSTM结构重复使用了几次,三是attention的机制不一样。Attetion Flow Layer才是这个架构的重点。
与AOA一样,Attetion Flow Layer首先计算有个关于score的相似矩阵A,假设J*T维(为啥不是T*J,下面有说明👇),然后分别从行和列两个方向进行softmax。元素A[ij]的计算方式:
为了避免理解混乱,值得注意的是,在AOA架构图中的相似矩阵是T*J维的,Bi-DAF架构图从感官上看,(h1,h2,..,hT)这个T维放在列方向上,所以Bi-DAF架构图中实际是J*T维的。AOA和Bi-DAF图中两个相似矩阵维度不一样,实质没啥区别。
从列方向上softmax,得到J*T维的矩阵,这个矩阵在图中是context2query,每一列表示document的每一个单词对query的某个单词的相似性或者重要性。从行方向上softmax,得到J*T维的矩阵,然后取每一行的最大值再进行softmax,得到一个J维向量,再将这个J维向量原模原样重复T次,得到J*T维的矩阵,这个矩阵的每一列都是一样的,在图中是query2context。这里和AOA做一下对比,AOA是取得average,但并没有重复T次。他们相同之处在于query to context方向上的注意力计算方式相同,都是做了聚合。
通过对AOA和Bi-DAF两个框架的attention机制的介绍,对parallel attention 有了基础的认识。其实就是通过计算一个score的相似矩阵,然后从行和列方向并列计算注意力权重。
Android、AOA2、USB 同步音频接口(流)
【中文标题】Android、AOA2、USB 同步音频接口(流)【英文标题】:Android, AOA2, USB Isochronous Audio Interface ( Streaming ) 【发布时间】:2015-02-01 00:21:38 【问题描述】:环境:
三星 Galaxy 5,Android 4.4.2 Windows 桌面 (x64) USB 连接到 Android 设备 WinUsb实施
根据this link,我正在尝试从我的三星 G5 设备接收 USB 同步音频(流),我将设备切换到附件模式,同时使用请求 58 将音频模式设置为 44100x2x16。
设备已成功切换到附件模式,显示为“0x2D05 - 附件 + 音频 + adb”。
我成功连接到同步端点 (#0x83) 并开始读取同步数据包/帧。
然而,虽然数据包被成功接收,但没有负载......
问题
除了上述之外,我还应该设置什么吗?我应该向端点和/或音频接口发送任何 USB 控制命令吗?
【问题讨论】:
【参考方案1】:Isochronous USB Audio实际工作如上,启动设备,切换到AOA2,连接Isochronous Endpoint,开始读取。
只有在设备上播放音频时才存在实际有效负载,因此不会流式传输静音数据包(当设备上没有音频时会发送空数据包)。
上面提到的还有一个警告,使用 adb.exe 并执行以下操作时音频流停止:
adb shell screencap
这似乎是 Android v4.4.2 或 Samsung Permutation 的错误,原因可能是由于 USB 高流量,或者是由于操作系统音频路由问题。
问题报告@https://code.google.com/p/android/issues/detail?id=82014
更新: 使用“Nexus 5”,这实际上有效,这意味着问题是三星特有的......
【讨论】:
以上是关于parallel attention -- AOA &Bi-DAF的主要内容,如果未能解决你的问题,请参考以下文章