Toggle navigation
Mr.Strawberry's House
文章
网址导航
更多
甜品站
杂物间
新版博客
关于 快刀切草莓君
友情链接
妙妙屋开发日志
注册
登录
搜索
文章列表
分类 标签
归档
# KagNet 学习笔记 [KagNet](https://arxiv.org/abs/1909.02151): **Knowledge-Aware Graph Networks for Commonsense Reasoning**;笔记由 [@快刀切草莓君](http://zrawberry.com) 编写。 背景:简单地使用**预训练模型**进行推理,表现和人类水平存在巨大差距,且神经网络模型**缺乏透明性和可解释性**。 贡献:提出一种**文本推理框架**来回答常识问题,这个框架有效地利用了**外部的结构化常识知识图谱**进行**可解释的推理**;GCN - LSTM - HPA (hierarchical path-based attention mechanism) ## 1 Overview 常识问答以及 KagNet 的 workflow ### 1.1 Problem Statemtent 任务定义:根据需要常识的自然语言问题 $$q$$,从 N 个候选回答 $${a_i}$$中选择一个答案。 从 knowledge-aware 的角度出发,我们额外假设每一对问题 $$q$$ 和选择 $${a_i}$$ 可以从**外部知识图谱** $$G$$ 中“挖出”一个**模式图** $$g$$(schema graph),这个模式图对于评估选项的合理性有帮助。 <u>图1.1</u> <img src="https://i.loli.net/2020/11/03/fpd2Nkb7sx91W4a.png" alt="image-20201103141846544" style="zoom: 67%;" /> ### 1.2 Reasoning Workflow <u>图1.2</u> <img src="https://i.loli.net/2020/11/03/ri9wJFfgHNXMmtL.png" alt="image-20201103104358326" style="zoom:67%;" /> 如图1.2所示,框架接收成对的 QA,用 $$q$$ 和 $$a$$ 表示,知识图谱 $$G = (E, V)$$。 1. 框架首先从**知识图谱**中识别这里提到的**概念**,随后通过寻路算法构建**模式图** $$g$$ ,如图1.1 所示。 2. 挖掘出来的**模式图**接下来会被 Knowledge-aware graph 网络模块(**KagNet**)**编码**。 3. 再用**语言编码器** Language Encoder ,它可以是可训练的也可以是固定的特征抽取器,来将 **QA对** 表示为一个**陈述向量** statement vector 。 4. 这个**向量**会传入 $$GCN-LSTM-HPA$$ 结构,作为一个额外的输入,通过<u>基于路径的注意图建模</u>,获得一个**图向量 graph vector**。 5. 这个图向量最后会传递给一个简单的**多层感知机** **MLP**,对这个 QA对打分,获得一个 0~1 的标量。 6. 标量表示了推理的合理性,对同一个问题,评分追高候选答案即为最后的选择。 ## 2 Schema Graph Grounding 挖掘模式图有三个阶段:1.识别文中提到的概念,2.通过从知识图谱中取回路径构建模式图,3.修剪噪声路径 ### 2.1 Concept Recognition 到 ConceptNet 中匹配问题和答案中的 token,得到 提到的概念集合 $$C_q$$ 和 $$C_a$$ 。 简单的识别方法:**准确地匹配句子中的 n-grams 和 $$V$$中的概念**,例如 问题 “Sitting too close to watch tv can cause what sort of pain?”,通过匹配可以得到 $$C_q$$ “{sitting, close, watch tv, watch, tv, sort, pain, etc.}”。(这个方法取回的概念不一定很好,如何从有很多噪声的知识资源中高效地取回上下文相关的知识仍然是一个值得思考的问题) 使用规则对简单方法的增强:1.对**词形化** lemmatization 的词进行软匹配;2.**停用词**过滤;3.通过**路径裁剪**和**注意力机制**应对噪音 ### 2.2 Schema Graph Construction **ConceptNet** - 一个大的三元组$$(h, r, t)$$集合,例如 (ice, HasProperty, cold) - h 和 t,头和尾,是 $$V$$ 中的概念 - 作者从原始的 42 种关系种选择了 17 种关系,来增加知识图谱的密度。 **Sub-graph Matching via Path Finding** - 要找到最小范围的子图,同时又涵盖了所有的问题和回答概念,这是一个 NPC 问题。 - 一个直观但高效的方法:对每个问题概念和回答概念,找到它们之间小于 k 个概念的路径。 - 如果存在边连接 $$C_q$$ 和 $$C_a$$ 则加入到子图中。 ### 2.3 Path Pruning via KG Embedding 1. 利用 知识图谱嵌入预训练概念嵌入 $$V$$ 和关系类型嵌入 $$R$$ ;Knowledge graph embedding (KGE),类似TransE。 2. 评估一个路径的质量:将路径分解成三元组集合,可以用KGE方式的打分函数来直接评估。 3. 一个路径的分数为路径上所有三元组分数的乘积,根据经验设定一个阈值来剪枝。 ## 3 Knowledge-Aware Graph Network KAGNET的主要结构如下图所示。 1. 先用图卷积网络对模式图进行编码,以适应预训练的 concept embedding。 2. 利用 LSTMs 来对 $$C_q$$ 和 $$C_a$$ 之间的路径进行编码,捕获多种关系信息。 3. 应用基于路径的层级注意力机制,完成 GCN-LSTM-HPA 架构;在建模关系子图的时候考虑到问题和回答概念之间的路径。 <img src="https://i.loli.net/2020/11/03/WgBqxPftu6MACbO.png" alt="image-20201103164502305" style="zoom:50%;" /> ### 3.1 Graph Convolutional Networks GCN 通过**池化节点的邻接节点**来更新节点向量,从而对图结构数据进行编码。 应用 GCN 主要是为了:1.根据上下文**优化概念向量**;2.捕获**模式图的结构模式**用来泛化。 尽管以及通过**预训练**获取了概念的向量,这个表示仍然需要进行**调整以适应他们特定的模式图的上下文**,例如 close 的多义性。 使用 GCN 用概念向量的邻接节点来更新他们,对于**消歧义** disambiguation 和**情景化** contextualized 概念的 embedding 有帮助,同时也会为**推理提供潜在的信息**。例如,更近和紧密连接的问题和回答概念在特定上下文中意味着更高的合理性。 关系 GCNs 通常过参数化模型,同时没能高效地利用多跳关系信息。我们因此将 GCNs 应用在 plain version 的模式图上(无标记,无方向,忽略关系的类型)。具体地说,<u>模式图中的概念向量用预训练嵌入来初始化</u>;随后利用一个<u>非线性激活函数,池化邻接点特征来更新它们。</u> 根据第 l 层来更新第 l+1层 $$ h_i^{l+1} = \sigma(W^{(l)}_{self}h_i^{(l)}+\sum_{j∈N_{i}}\frac{1}{|N_i|}W^{(l)}h_i^{(l)}) $$ ### 3.2 Relational Path Encoding 在 GCNs 的最顶层输出上加上基于 LSTM 的路径编码器,来捕捉模式图中的关系信息。 表示图 represent graphs,表示问题概念 $$C_q$$ 和回答概念 $$C_a$$ 之间的路径,第i个问题概念 $$c_i^{(q)}$$ 和第j个回答概念的第k条路径表示为 $$P_{i,j}[k]$$,它是一个三元组的序列: $$P_{i,j}[k] = [(c_i^{(q)}, r_0, t_0),...,(t_{n-1}, r_n, c_j^{(a)})]$$。 关系使用**关系向量**表示(预训练关系 embedding),**概念向量**是 GCNs 的输出 $$h^{(l)}$$,因此每个三元组被表示为三个相应向量的表示。 我们将 LSTM 网络用于编码这些三元组向量序列,将最开始和最后的隐状态进行拼接,得到问题向量和回答向量的潜在关系$$R_{i,j}$$,即所有路径。 ```latex R_{i,j} = \frac{1}{|P_{i,j}|}\sum_kLSTM(P_{i,j}[k]) ``` $$R_{i,j}$$可视为问题向量到回答向量的潜在关系。通过如下的公式,可以得到模式图 $$g$$ 的向量表示: ```latex T_{i,j} = MLP([s;c_q^{(i)};c_a^{(j)}]) ``` ```latex g = \frac{\sum_{i,j}[R_{i,j}; T_{i,j}]}{|C_q| × |C_a|} ``` 输入 MLP 的是 statement vector、问题向量和回答向量的拼接,MLP 输出的 $$T_{i,j}$$ 包含了上下文中潜在的推理信息(语义空间);而$$R_{i,j}$$ 表示的是模式图中的关系信息(符号空间),**两者拼接后进行平均池化**,得到图向量 $$g$$。再通过一个MLP,可以得到当前 qa 对的分数,即$$score(q,a) = sigmoid(MLP(g))$$ 使用语言编码器,编码问题和答案得到 statement vector。对 "question [SEP] answer"编码,[CLS]向量也会被使用。 ### 3.3 Hierarchical Attention Mechanism 上面表述的是 GCN-LSTM-mean 架构,最后使用了平均池化。这个做法存在一个问题,不同的 path 和不同的 concept 在推理中的地位是不同的,它们应该分配不同的权重。为了解决此问题,引入了 Hierarchical path-based Attention Mechanism,这种注意力机制分为 path-level 和 concept-pair-level。 **Path - level** 学习一个参数矩阵 $$W_1$$用来计算注意力: $$ \alpha_{(i,j,k)} = T_{i,j}W_1LSTM(P_{i,j}[k]) $$ $$ \hat\alpha_{(i,j,·)} = Softmax(\alpha_{(i,j,·)}) $$ $$ \hat R_{i,j} = \sum_k{\hat\alpha_{(i,j,k)}·LSTM(P_{(i,j)}[k])} $$ LSTM 出来的是第一个和最后一个时间步的 hidden **Concept pair - level** 接着用类似的办法获得概念对上的注意力: $$ \beta_{(i,j)} = sW_2T_{i,j} $$ $$ \hat \beta_{(·,·)} = Softmax(\beta(·,·)) $$ $$ \hat g = \sum_{i,j}\hat \beta_{(i,j)}[\hat R_{i,j}; T_{i,j}] $$ 如此便得到了完整的 GCN-LSTM-HPA 结构。总而言之,KagNet是一个GCN-LSTM-HPA 结构的图神经网络模块,它对关系图和上下文进行建模,涵盖了符号知识空间和语言语义空间。 ## 4 Experiments <img src="https://i.loli.net/2020/11/05/R2PDI9YxBnm31MK.png" alt="image-20201105151625574" style="zoom: 67%;" /> [CLS] 的使用 ## 5 Conclusion > We propose a knowledge-aware framework for learning to answer commonsense questions. The framework first constructs schema graphs to represent relevant commonsense knowledge, and then model the graphs with our KA GNE T module. The module is based on a GCN-LSTM-HPA architecture, which effectively represent graphs for relational reasoning purpose in a transparent, interpretable way, yielding a new state-of-the-art results on a large-scale general dataset for testing machine commonsense. Future directions include better question parsing methods to deal with negation and comparative question answering, as well as incorporating knowledge to visual reasoning. ## Question List GCN:Semi-supervised classification with graph convolutional networks. KGE:TransE Knowledge graph embedding by translating on hyperplanes A simple neural network module for relational reasoning. NIPS https://www.bilibili.com/video/BV1XC4y1h74m
文章信息
标题:KagNet Note
作者:快刀切草莓君
分类:自然语言处理
发布时间:2020年11月3日
最近编辑:2020年11月5日
浏览量:1355
↑