Message Passing Attention Networks for Document Understanding
https://github.com/giannisnik/mpad.
1.Motivation
将MP(message passing)架构应用于文本表示学习。
2 Message Passing Neural Networks
对于一个图
G
G
G=(
V
V
V,
E
E
E),考虑节点
v
v
v∈
V
V
V,在
t
t
t
+
+
+
1
1
1时刻,一个massage 向量由节点
v
v
v的邻居计算得出:
然后,通过将其当前特征向量
h
h
h
t
^t
t
v
_v
v与消息向量
m
m
m
t
^t
t
+
^+
+
1
^1
1
v
_v
v相结合来计算节点
v
v
v的新表示
h
h
h
t
^t
t
+
^+
+
1
^1
1
v
_v
v:
消息按时间步长传递。每一步都由MP的不同层实现。因此,迭代对应于网络深度。最终的特征向量
h
h
h
T
^T
T
v
_v
v是基于从以
v
v
v为根高度为
T
T
T的子树中的所有节点的消息传播。
如果需要图级特征向量,例如用于分类或回归,则应使用必须对排列不变的
R
R
R
E
E
E
A
A
A
D
D
D
O
O
O
U
U
U
T
T
T函数
3 Message Passing Attention network for Document understanding (MPAD)
3.1 Word co-occurrence networks
将文档表示为一个滑动窗口大小为2的词共现网络,表示为 G G G=( V V V, E E E)。文档中的每个唯一单词由 G G G中的一个节点表示,如果在发现两个节点在一起(在窗口范围内),则添加一条边。 G G G是有向加权的:边方向和权重分别捕获文本流向和共现次数。
在 G G G中,同一个句子中的连续单词为邻居。这些节点通过公共邻居连接在一起。
也就是说,长度为2的路径对应于二元模型。长度超过2的路径可以对应于传统的n-grams,也可以对应于宽松的n-gram,即从不同句子中共现。
Master node.
图 G G G还包括一个特殊的文档节点,它通过单位权重双向边链接到所有其他节点。
这里是否会因为图太过密集导致信息传递混乱,甚至丢失?
3.2 Message passing
A
A
A
G
G
G
G
G
G
R
R
R
E
E
E
G
G
G
A
A
A 函数:
其中
H
H
H
t
^t
t∈
R
R
R
n
^n
n
×
^×
×
d
^d
d为节点特征(在
t
t
t=0时,
d
d
d等于预训练单词嵌入的维数。),
A
A
A∈
R
R
R
n
^n
n
×
^×
×
n
^n
n是
G
G
G的邻接矩阵,由于
G
G
G是有向的,所以
A
A
A是非对称的。此外,设置
A
A
A的对角线为零,不考虑节点本身的特征,只考虑其传入邻居的特征。因为
G
G
G是加权的,所以
A
A
A的行表示节点
v
i
v_i
vi上传入边的权重。
D
D
D∈
R
R
R
d
^d
d
×
^×
×
d
^d
d为度矩阵(度矩阵是对角阵,对角上的元素为各个顶点的度。顶点
v
i
v_i
vi的度表示和该顶点相关联的边的数量。),
M
M
M
t
^t
t
+
^+
+
1
^1
1∈
R
R
R
n
^n
n
×
^×
×
d
^d
d表示massage矩阵。
接下来使用GRU聚合:
忽略偏置有:
3.3 Readout
在消息传递和执行 T T T次迭代的更新之后,就可获得包含最终顶点表示的矩阵 H H H T ^T T∈ R R R n ^n n × ^× × d ^d d。设 G G G − ^- −为无特殊节点(主节点)及其相邻边的图,则矩阵 H H H − ^- − T ^T T∈ R R R ( ^( ( n ^n n − ^- − 1 ^1 1 ) ^) ) × ^× × d ^d d为对应的表示矩阵。
随后将应用于
H
H
H
−
^-
−
T
^T
T的self-attention与最终文档节点表示的连接作为
R
R
R
E
E
E
A
A
A
D
D
D
O
O
O
U
U
U
T
T
T函数:
H H H − ^- − T ^T T首先传递到由矩阵 W W W T ^T T A _A A∈ R R R d ^d d × ^× × d ^d d参数化的稠密层,然后通过点积比较密集层 Y Y Y T ^T T∈ R R R ( ^( ( n ^n n − ^- − 1 ^1 1 ) ^) ) × ^× × d ^d d与可训练向量 v T v^T vT∈ R d R^d Rd(随机初始化)的输出注意力权重向量 α α α。最后加权得到文档的整体表示。
这里与poly-encoder 同样设置了不同的v,但是结果却相反,poly-encoder 的v增大结果编号,本文报告了不好的结果。
Master node skip connection
h h h T ^T T G _G G∈ R R R 2 ^2 2 d ^d d通过连接 u T u^T uT和最终主节点表示获得。即主节点向量绕过了注意机制。这种选择背后的原因是,作者期望特殊文档节点学习关于文档的高级摘要,例如它的大小、词汇等。因此,通过使主节点绕过注意力层,直接将关于文档的全局信息注入到它的最终表示中。
Multi-readout
随着迭代的进行,虽然节点特征捕获越来越多的全局信息。但是保留更多的本地信息可能也是有用的。因此本文并不是将读出函数仅应用于
t
t
t =
T
T
T,而是将其应用于所有时间步长并连接结果,最终获得
h
h
h
G
_G
G∈
R
R
R
T
^T
T
×
^×
×
2
^2
2
d
^d
d:
3.4 Hierarchical variants of MPAD
本文提出了MPAD的几个变体,在所有这些方法中,文档中的每个句子表示为一个单词共现网络,并通过应用如前所述的MPAD来获得它的嵌入。
MPAD-sentence-att.
句子嵌入是通过自我关注来简单组合的。
MPAD-clique
构建一个完整的图,其中每个节点代表一个句子。然后,将该图输入到MPAD,舒适化节点为句子的embedding加权平均。
MPAD-path
不是一个完整的图,本文根据文本的自然流动建立一个路径。也就是说,如果两个节点所代表的两个句子在文档中相互跟随,则这两个节点通过有向边连接。
4 Experiments
4.1datasets
实验参数设置
MP iterations (T=2)
d = 128
window of size 2
所有层:ReLU activation
learning rate of 0.001
dropout 0.5