经典论文阅读- Key-Value Memory Networks for Directly Reading Documents

Key-Value Memory Networks for Directly Reading Documents

Abstract: Directly reading documents and being able to answer questions from them is an unsolved challenge. To avoid its inherent difficulty, question answering (QA) has been directed towards using Knowledge Bases (KBs) instead, which has proven effective. Unfortunately KBs often suffer from being too restrictive, as the schema cannot support certain types of answers, and too sparse, e.g. Wikipedia contains much more information than Freebase. In this work we introduce a new method, Key-V alue Memory Networks, that makes reading documents more viable by utilizing different encodings in the addressing and output stages of the memory read operation. To compare using KBs, information extraction or Wikipedia documents directly in a single framework we construct an analysis tool, WIKIMOVIES, a QA dataset that contains raw text alongside a preprocessed KB, in the domain of movies. Our method reduces the gap between all three settings. It also achieves state-of-the-art results on the existing WIKIQA benchmark.

Intro

做什么:

QA(Question answering)是自然语言处理中的一个长期研究问题。一种解决方式是建立大型知识库(KB, Knowledge Bases),将信息组织成结构化的形式,在通过将问题转换为可用于查询此类问题的逻辑形式来专注于回答问题。但是KB存在局限,例如不可避免的不完整性和无法支持所有答案的固定模式。本文尝试过直接阅读文档来研究QA问题。

怎么做:

本文提出Key-Value 记忆网络 (KV-MemNN),这是一种新的神经网络架构,它概括了原始记忆网络,并且可以与任一知识源一起工作。 KV-MemNN 通过首先将事实存储在键值结构内存中来执行 QA,然后对它们进行推理以预测答案。内存的设计使模型学会使用键来处理与问题相关的内存,随后返回相应的值。这种结构允许模型为所考虑的任务编码先验知识,并利用键和值之间复杂的转换,通过随机梯度下降使用标准反向传播进行训练。

相关工作:

早期的 QA 系统基于信息检索,旨在返回包含答案的文本片段,但在问题复杂性和响应覆盖范围方面存在局限性。大规模知识库的创建导致了基于语义解析的一类新 QA 方法的发展,可以为复杂的问题返回精确答案。然而,由于 KB 数据的稀疏性,主要挑战从寻找答案转移到开发有效的信息提取方法以自动填充 KB。

Key-Value Memory Networks

键值记忆网络是基于记忆网络开发的。
键值对记忆是上下文(例如要读取的知识库或文档)在记忆中存储方式的概括。查找(寻址)阶段基于键记忆,而读取阶段(给出返回结果)使用值记忆。
贡献包括:
(i)为从业者提供了更大的灵活性来编码有关其任务的先验知识;
(ii) 通过键和值之间的非平凡转换,模型中的更有效功率。键的设计应具有有助于将其与问题匹配的功能,而值应具有有助于将其与响应(答案)匹配的功能。
该模型的一个重要特性是整个模型可以通过键值变换进行训练,同时仍然通过随机梯度下降使用标准反向传播。
在这里插入图片描述

如图所示,在测试时,会给出一个查询(例如 QA 任务中的问题),该查询用于迭代寻址并从内存中读取(这些迭代也称为“跳跃”),以寻找相关信息来回答问题。在每个步骤中,从内存中收集的信息累积地添加到原始查询中,以构建下一轮的上下文。在最后一次迭代中,最终检索到的上下文和最近的查询被组合为特征来预测来自候选列表的响应。

将记忆定义为向量对 ( k 1 , v 1 ) . . . , ( k M , v M ) (k_1,v_1)...,(k_M,v_M) (k1,v1)...,(kM,vM), 问题为 x x x,记忆的寻址与查询包括三个步骤:

  1. Key Hashing:
    问题可以用来预筛选很大可能的数组中的一个小子集。这通过使用的倒转的索引来发现一个一个大小为N的子集KaTeX parse error: Expected group after '_' at position 6: (k_{h_̲_1},v_{h_1}),..…, 其中每个键值与问题在1000个词里有至少一个相同。
  2. Key Addressing:
    通过将问题与每个键进行比较,为每个候选记忆分配一个相关概率:
    p h i = S o f t m a x ( A Φ X ( x ) ⋅ A Φ K ( k h i ) ) p_{h_i} = Softmax(AΦ_X(x) · AΦ_K(k_{h_i})) phi=Softmax(AΦX(x)AΦK(khi)) 其中 Φ ⋅ Φ· Φ是维度 D D D的特征图, A A A 是 a d × D d × D d×D矩阵。
  3. Value Reading:
    在最后的读取步骤中,通过使用寻址概率获取它们的加权和来读取存储器的值:
    o = ∑ i p h i A Φ V ( v h i ) o =\sum_i p_{h_i}AΦ_V (v_{h_i}) o=iphiAΦV(vhi)
迭代过程

内存访问过程由“控制器”神经网络使用 q = A Φ X ( x ) q = AΦ_X(x) q=AΦX(x) 作为查询进行。收到结果 o o o 后,查询更新为 KaTeX parse error: Double subscript at position 3: _q_̲2 = R_1(q + o) 其中 R 是一个 d × d d × d d×d 矩阵。然后重复内存访问(具体来说,只有后两个步骤),在每一跳 j j j 上使用不同的矩阵 R j R_j Rj。相应地转换键值寻址方程以使用更新后的查询:
p h i = S o f t m a x ( q j + 1 ⊤ A Φ K ( k h i ) ) p_{h_i} = Softmax(q_{j+1}^{\top} AΦ_K(k_{h_i})) phi=Softmax(qj+1AΦK(khi))
这样做的动机是可以将新证据组合到查询中,以便在后续访问中关注和检索更多相关信息。最后,在固定数量的 H 跳之后,控制器的结果状态用于计算对可能输出的最终预测:
a ^ = a r g m a x i = 1 , . . . , C S o f t m a x ( q H + 1 ⊤ B Φ Y ( y i ) ) \hat{a} = argmax_{i=1,...,C}Softmax(q_{H+1}^{\top} BΦ_Y (y_i)) a^=argmaxi=1,...,CSoftmax(qH+1BΦY(yi))
其中 y i y_i yi 是可能的候选输出,例如知识库中的所有实体。整个网络是端到端训练的,模型通过在 a ^ \hat{a} a^ 和正确答案 a a a 之间使用最小化标准交叉熵损失来学习执行迭代访问以输出所需目标 a a a

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值