【论文笔记】Knowledgeable Reader_ Enhancing Cloze-Style Reading Comprehension with External Commonsense Kg
Abstract和介绍
论文特点:引入了external commonsense knowledge, encode as key-value memory,并把知识和context representation(document-to-question)来answer;
数据集是Common Nouns dataset;CBT(common and named entities)
知识来源:CN5All,CN5WN3
任务类型是 cloze-style;
但我个人认为,做完形填空这种答案比较依赖context的任务类型,用kb的意义不是很大。
未来
由于attention机制(关注问题),我们可以调查不同的数据集和领域需要什么类型的kg sources.
Tighter intergration of attened kg 和更强的推理方法。
简称
Commonsense knowledge我简称CKG
Knowledge-base简称KB
Context representation简称CR.
Cloze-style RC + commonsense kb示例如下图,注意这里回答的问题是common nouns questions.
论文中的knowledge可以是CKG 或者factual backward knowledge。它们是在上下文里没有很好地被表示的entites and events(common nouns, named entities),但是它们可以在KB里被找到,比如 ConceptNet,Freebase, domain-specific KBs,因此定义一个神经模型来encodes memory中预先被选择的external KG,从而用于丰富CR。(涉及到key-value memory + KB检索了)
本论文的贡献:
- 提出了一种能整合KG到简单有效RC model 的方法(AS Reader)
- 探索了两种CKG:WordNet, ConcepNet,这种类型的KG对于回答common nouns questions很重要,也轻微提高了named entities的效果。
- Knowledge facts可以直接添加进 text-only representation,来丰富CR.
(现在工作的利用CKG要从KB里retrieved,然后添加到CR里。)
模型简述
2个组件:knowledge Retrieval , knowledgable reader
Knowledge retrieval:fact retrieval, facts集合{f1,f2,...fp} 可能与story, question and candidate answers相关。
Knowledgable reader:知识增强的神经模型。包括:
the story context tokens:{d1,...dm}
Question tokens:{q1,...qn}
Answer candidate:{a1,..ak}
Relevant background kb facts{f1,f2,...fp}
需要encode每个fact,然后使用attention在他们之中选择和每个story和question的token相关的facts。
具体
Knowledge retrieval
使用ConcepNet的子集OMCS,每个fact都是一个三元组:fi=(subject, relation, object)(主谓宾)
检索相关kg
Instance(D, Q, A1..10),检索出最相关的commonsense background facts.
首先,检索包含lemma的fact三元组,每个fact作为node添加weight value:
包含AD的lemma:4
包含Q的lemma:3
包含D的 lemma:2
所以权重在不同interactions可以根据这样的原则确定: A+A > A+Q > A+D > D+Q > D+D.
通过加权subject和object的从而获得包含对应lemma的fact的weight;
根据这些weight排序kg triples
实验tips
- 限制model的内存,可以从所有候选项中选择不同大小的最高事实数(P)进行实验,p∈{50,100,200}
- 每个候选答案fact的数量一样
- 避免answer candidate和kg srouce里的词频bias
- Candidates a.如果为ai已经添加了fact,则aj不再添加相同的fact。
用kg memory拓展the Attention Sum Reader(single-hop RC)
Nural model:叫做Knowledgeable Reader,
Kg Reader(context + knowledge), explict memory with the key-value approch.
模型具体结构
Base Attention Model. 看论文了解这个模型。
Word Embeddings Layer 查找embedding representation ei=Emb(wi)来表示输入的document和question的token wi。
Context Representations.
Ctx代表context-encoded representation。
上面的BiGRU是缩写,具体如下:
Question Query Representation.
构造下面的单向量r来检索在pl处的placeholder的token表示
Answer Prediction
动机:
1.kg fact编码到一个向量空间作为plain tokens
2.保存了三元组的方向
3.我们使用关系类型作为过滤主题信息以初始化对象的方式
Querying the Knowledge Memory
用单个加权fact表示的累加来抽取memory里的kg,
这之后document和question的csi(kn), csi(ctx)在同一向量空间!
Combine Context and Knowledge (ctx+kn)
Answer Prediction
数据和任务描述
CBT的common nouns 和 named entities,
20个句子,第21个是文件(包含挖掉的placeholder),然后选择document的10个候选词。
知识来源
Open Mind Common Sense part of ConceptNet 5.0(CN5All),有630k个fact triples.
CN5WN3,是WordNet 3 关于CN5All和 CN5Sel的子集,它去掉了wordnet的一些relations。
实验和结果
有不同的模型参数,
Facts的数量
Key-value的选择策略:Subj/Obj and Obj/Obj,前者更好些
Answer selection components: Full model——使用ctx和ctx+kn的组合来rank answers
超参数
其他
gating function
比如lstm里用sigmoid的遗忘门,输出门等
Single turn model:read the document once
Multi-turn reading:代表: GA Reader
Memory network记忆网络在nlp中
记忆网络有各个组件:
I(input feature map): 用于将输入转化为网络里内在的向量。我的理解就是在一个向量空间里的嵌入。
G(generalization):更新记忆。比如把对话组里的每一句话的向量空间,简单地插入记忆数组M:Mh(x)=I(x)。(m:记忆卡槽list)。
O(output feature map): 记忆+输入,把合适的记忆提取出来,返回一个向量。每次获得一个向量,代表了一次推理过程。
(如果是多层记忆网络,也就是对单层记忆网络循环多次,具体就是单层的输出o+输入问题的向量表示q,经过矩阵映射作为下一层输入)
R(response):将向量转化为所需格式,比如文字or answer.
O和R会有打分函数s
Key-value memory
Key-value Memory-network可以适用于KB和wiki数据文本资源。因为输入模块在数据处理上与memory network, end-to-end memory network不同。
单层Key-value memory network
Memory slot
存储记忆向量,记忆向量比如:输入的bow向量+位置向量。
Key-value
Key-value模型在求每个问题的时候会进行key hashing(理解为IR,信息检索)预处理操作,比如从KB source里选择出与之有关的记忆,然后所有记忆都被存储在key-value memory中。Key负责寻址look up,也就是对memory与question相关程度进行评分,而value负责reading,也就是对记忆的值进行加权求和得到输出。
key-value memory
key hashing
IR,信息检索,从wiki or KB中检索出与问题相关的内容,然后存入key-value memory
Key-Addressing
是end-to-end中的input memory作用,也就是计算memory对于question的相关程度评分,
Value reading
根据上一步的评分,对memory加权求和得到答案信息。
动态记忆网络DMN
在分成4个模块:input\question\episodic memory\answer module,其中有用到attention机制,GRU,来QA。
Feedforward Neural Network,FNN
前馈神经网络也经常称为多层感知器(Multi-Layer Perceptron,MLP)。 前馈神经网络其实是由多层的Logistic回归模型(连续的非线性函数)组成,由多层的感知器(不连续的非线性函数)组成。