文献阅读笔记-Key-Value Memory Networks for Directly Reading Documents

文献阅读笔记-Key-Value Memory Networks for Directly Reading Documents

0-背景

在问答系统中直接从文本中获取答案要难于从KB(knowledge bases),这是由于文本一般都是非结构化的。虽然KB能提高训练的效果,但是KB存在太多的限制,比如设计的scheme不能够支持所有的答案类型,数据量稀少(比如Freebase的信息量远低于Wikipedia)等。即使目前的信息抽取技术能够逐渐提供更加丰富的信息,但是其准确性和可靠性依然不足。虽然说特定领域的KB能够满足一定的要求,但是无法扩大到回答涉及任何话题的一般性问题。
因此,本文Key-Value Memory Networks for Directly Reading Documents通过阅读文档直接回答问题,撇开对于KB的依赖。

1-详情

Kv- MN是基于Memory Network (MemNNs)的改造和扩展。
查询阶段(addressing)是基于key,读取(reading)阶段是基于value。前者是关于question的特征相似度匹配,后者是answer的特征相似度匹配。该模型可以归结为key-value变换模型,在模型求解过程可以使用标准的后向算法和SGD。

1-1 模型介绍

该模型定义了一个划分成大量矩阵槽(slot)的memory。这些slot可以对短/长的上下文进行encode。在测试阶段,输入的question对memory迭代(每一次迭代称为hop)地进行addressing和reading,以查询question对应的信息。每个迭代过程都是从memory中收集积累对于question有用的上下文信息。最后一次的迭代的上下文context信息和最新的一次query联合组成特征向量,从而实现在候选列表(整个实体集合)中预测出结果。

Key-Value MemNN模型结构如下:
在这里插入图片描述

memory slots定义: ( k 1 , v 1 ) , ( k 2 , v 2 ) , ( k 3 , v 3 . . . ( k N , v N ) (k_1,v_1),(k_2,v_2),(k_3,v_3...(k_N,v_N) (k1,v1),(k2,v2),(k3,v3...(kN,vN)
question: x x x
memory的addressing和reading由以下3个步骤组成:
(1)Key Hashing
对于question x, 在M个memory选择key至少与x有一个单词相同的N个组成子集(倒排索引),得到memory subset:
( k 1 , v 1 ) , ( k 2 , v 2 ) , ( k 3 , v 3 . . . ( k N , v N ) (k_1,v_1),(k_2,v_2),(k_3,v_3...(k_N,v_N) (k1,v1),(k2,v2),(k3,v3...(kN,vN)
(2)Key Addressing
计算上述选出的每个memory的概率值。
p i = S o f t m a x ( A ϕ X ( x ) ⋅ A ϕ K ( k i ) ) p_{i} = Softmax(A \phi_X(x) \cdot A \phi_K(k_i)) pi=Softmax(AϕX(x)AϕK(ki))
其中 ϕ X ( x ) \phi_X(x) ϕX(x) ϕ K \phi_K ϕK分别是x和key的D维bag-of-word表示,A是一个d×D的embedding matrix。
由上面式子可以看出是联合了question x的特征。
具体的 ϕ \phi ϕ特征映射函数,后续介绍。

(3)Value Reading
result o是memory中的value在上一步的概率下加权求和。
o = ∑ i p i A ϕ V ( v i ) o= \sum_i p_iA \phi_V(v_i) o=ipiAϕV(vi)
把embedding之后的question 记作q,则 q = A ϕ X ( x ) q=A\phi_X(x) q=AϕX(x),即paper中提到的query。
key Addressing和key Value是可以多次迭代的:
对query进行更新:
q i + 1 = R i ( q i + o i ) q_{i+1}=R_i(q_i+o_i) qi+1=Ri(qi+oi)
注意:每个hop的R都是不同的。
同时基于更新后的query对key addressing的结果进行更新
p i = S o f t m a x ( q j + 1 T A ϕ K ( k i ) ) p_i=Softmax(q_{j+1}^TA\phi_K(k_i)) pi=Softmax(qj+1TAϕK(ki))

通过迭代Key addressing与Value reading过程实现memory access process。

answering 作答:
最后第 H hop后得到 q H + 1 q_H+1 qH+1, 计算所有可能答案的分数:
a ^ = a r g m a x S o f t m a x ( q H + 1 T B ϕ Y ( y i ) ) \hat a = argmax Softmax(q_{H+1}^TB\phi_Y(y_i)) a^=argmaxSoftmax(qH+1TBϕY(yi))

这里 y i y_i yi是答案,将答案映射到embedding空间,与最后一次的q作softmax得到每一个答案的概率,取最大的那个作为输出。

1-2 Key-Value memory的选取

KB triple
key考虑为subject+relation,value为object,逆关系也考虑进去:
“Blade Runner directed_by Ridley Scott” v.s. “Ridley Scott !directed_by Blade Runner”。
使得问答方式更全面。
标准的MemN2N模型没有key-value,所以整个triple被encode之后存放在同一个memory slot中。
sentence Level
以句子为单位进行存储的时候,与end-to-end模型一样,都直接将句子以BOW(bag-of-words)表示存入memory。此时的key和value一样。每个memory slot存储一个句子,此时模型就退化为MemN2N。
Window Level
窗口长度W对原始wiki文章进行切分(只取以实体作为窗口中心的样本),然后将整个窗口的BOW表示作为key,该中心实体(word)作为value。因为整个窗口的模式与问题模式更像,所以用它来对问题相关性评分可以找到最相关的memory,而答案往往就是实体,所以将窗口中心的实体作为value对生成答案更方便。
Window + Center Encoding

Window + Title

2-实验

后续再补充吧。。。。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值