text: key-value记忆网络
  为了避免其固有的困难，用于使用知识库(KB)解决问答(QA)问题，这已被证明是有效的。
  不幸的是，KB通常会受到过于严格的限制，因为架构不能支持某些类型的答案，而且太稀疏。
  本文提出了键值记忆网络，通过在寻址和记忆缓存读操作的输出阶段使用不同的编码，使得阅读文档更加可行。
  问答(QA)一直是自然语言处理中的长期研究问题，第一个系统试图通过直接阅读文档来回答问题。
  Freebase等大型知识库(KB)的开发帮助将信息组织成结构化形式，通过将问题转换为可用于查询此类数据库的逻辑表单，促使最近QA的进展。
  不幸的是，KB具有内在的局限性，例如它们不可避免的不完整性和固定的模式，它们不能支持所有类型的答案。
  由于用于填写KB中缺失信息的信息提取(IE)既不准确也不够可靠，而原始文本资源和维基百科等文档的集合将始终包含更多信息。
  因此，即使KB可以满足封闭域问题，它们也不可能扩展到可以回答关于任何主题的一般问题。
  从这个观察开始，在这项工作中，我们研究通过直接阅读文档来回答问题。
  直接从文本中检索答案比从KB中获取答案更难，因为信息的结构要差得多，表达的更间接和模糊，并且通常分散在多个文档中。
  这解释了为什么使用令人满意的KB(通常仅在封闭域中可用)比原始文本更受欢迎。
  为了减小使用KB和直接读取文档之间的差距，我们仍然缺乏适当的机器学习算法。
  本文提出了键值记忆网络KV-MemNN，是原始记忆网络的扩展形式，并可以使用任何知识源。
  KV-MemNN首先将事实存储在键值结构化记忆缓存中，然后再对其进行推理，以便预测答案，从而完成QA。
  记忆缓存使得模型学习使用键来寻址相关的记忆块，随后返回其对应的值。
  该结构允许模型编码所考虑任务的先验知识，并利用键和值之间可能的复杂变换，同时仍然通过随机梯度下降使用标准反向传播进行训练。
  键值记忆网络
  记忆网络(MemNNs)模型已经证明对于各种文档阅读和问答应用任务(如阅读儿童书籍并回答他们的问题，对模拟故事做复杂推理，利用KB回答问题)非常有用，键值记忆网络对该网络进行了扩展。
  这给予(1)从业者更大的灵活性来编码关于他们任务的先前知识; (2)通过键值变换使模型表达力更强。
  键应该设计为具有帮助将其与问题匹配的功能，而值应该设计成具有帮助将其与响应(答案)相匹配的功能。
  该模型的一个重要特性是整个模型可以通过键值变换进行训练，同时仍然通过随机梯度下降使用标准反向传播。
  两种模型的高级视图如下:一个定义了一个内存，这是一个可能非常大的插槽阵列，可以编码长期和短期的上下文。
  在测试时，给出一个查询(例如，QA任务中的问题)，其用于迭代地寻址和从记忆缓存读取(这些迭代也被称为“跳”)，寻找相关信息来回答问题。
  在每个步骤中，将从记忆缓存收集的信息累积地添加到原始查询中以构建下一轮的上下文。
  KV-MemNN 模型如下图:
  在KV-MemNN中，把每个记忆存储槽定义成向量对(ki,vi)来表示问题x。
  相关的寻址和读取操作如下:
  键哈希
  该问题可用于预选可能较大的数组的一小部分，可以从中选出大小为N的记忆存储槽子集作为倒排索引来实现，其中，键与问题至少共享一个词。
  当然，也可以使用更复杂的检索方案。
  键寻址
  寻址过程中，每个候选记忆块通过将key与问题进行比对会分配一个相关概率值，如下公式
  值读取
  在最后的读取步骤中，通过使用寻址概率获取其加权和来读取存储器的值，如下公式
  然后重复访问存储器(具体地，仅寻址和读取步骤，而不是散列)，在每一跳上使用不同的矩阵Rj。
  键寻址过程可以用来更新query，然后进行下一步，如下。
  这样做的动机是可以将新证据组合到查询中，以便在后续访问中关注并检索更多相关信息。
  最后，在固定数量H跳之后，控制器的结果状态用于计算可能输出的最终预测:
  \tilde{a}=argmax_{i=1,...
  yi是预估的候选输出。
  键值记忆
  KB Triple
  知识库的三元组，我们考虑的表示很简单:键由左侧实体(主语)和关系组成，值是右侧实体(对象)。
  除此之外，我们将KB加倍并考虑反向关系。
  为了表示文档，可以将其分成句子，每个存储器槽编码一个句子。
  键和值都将整个句子编码为一个词袋。
  由于在这种情况下键和值是相同的，这与标准的MemNN相同，并且这种方法已经在几篇论文中使用。
  窗口级
  文件被分成W字的窗口; 在我们的任务中，我们只包括中心词是实体的窗口。
  Windows使用词袋表示。
  MemNN的窗口表示已被证明以前运作良好。
  但是，在Key-Value MemNNs中，我们将整个窗口，并将值编码为键，仅将中心字编码成值，这在MemNN架构中是不可能的。
  这是有道理的，因为整个窗口更可能与问题(作为关键字)匹配，而中心的实体更适合作为答案的匹配(作为值)。
  窗口+中心词编码
  不是将窗口表示为纯粹的词袋，而是将窗口中心与窗口的其余部分混合，我们也可以使用不同的方法对它们进行编码。
  在这里，我们将字典的大小D加倍，并使用第二个字典对窗口的中心和值进行编码。
  这应该有助于模型选择窗口中心的相关性(与答案更相关)与其中任何一侧的单词相比(与问题更相关)。
  窗口+标题
  文档的标题通常是与其包含的文本相关的问题的答案。
  出于这个原因，我们还考虑一个表示，其中键是单词窗口，如前所述，但值是文档标题。
  我们还保留了窗口级表示中的所有标准(窗口，中心)键值对。