[ICLR2017] Bi-Directional Attention Flow for Machine Comprehension

本文只给出了Context2Query和Query2Context部分的理解
[ICLR2017] Bi-Directional Attention Flow for Machine Comprehension_第1张图片
两部分只是对相似性矩阵 S \bold{S} S ∈ \in R T ∗ J \mathbb{R}^{T*J} RTJ 进行进一步处理, 我觉得有书写错误,如果看Figure 1可知应该修改为 S \bold{S} S ∈ \in R J ∗ T \mathbb{R}^{J*T} RJT
Context-to-Query Attention:
[ICLR2017] Bi-Directional Attention Flow for Machine Comprehension_第2张图片
这一部分主要针对该绿色小图而言,context中某个词与query中哪个词相关,形象点的表示如图:
[ICLR2017] Bi-Directional Attention Flow for Machine Comprehension_第3张图片
Query-to-Context Attention:
query中某个词与Context中哪个词最相关
[ICLR2017] Bi-Directional Attention Flow for Machine Comprehension_第4张图片
但其实我觉得这个做法有点牵强,对与Context-to-query中对列求softmax相比,该部分的操作是对 h t h_t ht列进行Max操作后,也就是针对question 中的{ u 1 u_1 u1, u 2 u_2 u2, …, u J u_J uJ}中保留与 h t h_t ht最相关的以 u j u_j uj, 针对每一列都如此操作后,得到一个维度为T的向量,对此向量进行softmax, 这怎么就是Query2Context了呢?不理解不理解,有理解的快来帮帮我

如果按照我对Query2Context的理解,应该是针对 u j u_j uj对{ h 1 h_1 h1, h 2 h_2 h2, …, h T h_T hT},也即是每一行都进行softmax, 这才是真正的Query2Context, 才是题目里所说的双向attention流呼应,不过这样做的引入了新的维度J, 在计算上会很麻烦。请赐给我聪明才智让我快速懂了吧?果然读书少就是不能理解这么高深的论文呀

参考文献:
https://zhuanlan.zhihu.com/p/53626872
https://blog.csdn.net/chazhongxinbitc/article/details/78825704

你可能感兴趣的:(PaperNotes)