论文笔记-基于神经网络的推理

论文:A simple neural network module for relational reasoning(2017)

github代码: https://github.com/siddk/relation-network

这一篇很简单,回顾下 DeepMind 2017 年发表的关系推理方面的工作,Relational Networks(RNs)。

关系推理的传统方法有基于符号的方法(symbolic approaches)和基于统计的方法(statistical learning)。基于符号的方法存在着 symbol grounding 的问题,在小任务(small task)和输入变化(input variations)的问题上也不够鲁棒,学习能力不强;而基于统计的方法像深度学习,虽然泛化能力强,但是对数据稀疏但关系复杂的问题也是束手无策。DeepMind 2017年出的这篇论文提出的Relation network(RN),是用于关系推理(relational reasoning)的一个神经网络模块(NN module),能直接加载到已有的神经网络架构中。与 GNN 等网络结构相比,更为简单和灵活,即插可用(plug-and-play),在一些关系推理的测试上的准确率已经超过了人类。

Structure

RN 的网络结构是真的很简单(不然也不会说是”simple neural network”),以至于通篇下面一个公式就可以概括,核心就是利用神经网络来找出任意 pairwise 对象之间的潜在关系。

Inputs:

MLPs:

: 使用一个全连接的神经网络来量化 o_i 和 o_j 的关系,任意两个对象之间的关系使用同一套参数

: 考虑所有组合的关系,相当于考虑一个完全连接图,在这个图上计算各个边的权重,把重要的关系凸显出来,f 函数就计算了这个重要关系的集合

用在自然语言处理里,就是把每个句子当做一个对象,每个句子与句子的 pair 用 g 计算关系,再把所有关系加权和放到最终的预测网络里。

小结一下,RNs有以下三个特点:

可以学习推理。这里 RNs 计算了所有的两个对象之间的关系,当然也可以只计算部分两个对象之间的关系,这里的“部分”需要预定义

数据效率更高(data efficient)。RNs 使用一个 gθ 函数来计算所有的关系,任意两个对象之间的关系使用同一套参数,泛化能力更强

作用在一个集合上。对输入和输出都是与顺序无关的(input/output invariation)

Tasks

简单提一下和 NLP 有关的任务。

VQA

RN 在 VQA 任务上的结构也很简单,CNN 处理图像,LSTM 编码 question,然后两两配对的 spatial cell(红蓝;黄红;蓝黄…)和 question embedding 拼接,后面接几个 FC 层,最后 softmax 得到某个 answer word。

Word-embedding: dim32; LSTM: dim128

: 3-layer MLP, dim256-256-29, RELU

: 综合所有组合,implicitly 提取有用的组合预测最终答案

bAbI

RN 在 bAbI 测试集上的结构,每个问题之前的最多 20个句子作为 support set,使用 LSTM-dim32 把 support set 连同每个句子在 set 里的相对位置编码转化为 RN 的 object set,同时使用另一个 LSTM-dim32 的 encoding state 表示问题。

在 joint training 也就是 20 个任务一起训练一个 QA 模型的情况下,通过了 18/20 bAbI test。与 DNC 比较发现,DNC 在 path finding 任务上表现不错,但在 basic induction 上误差达到 55.1%,而 RN 达到了 2.1% 的误差水平。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180312G07V1O00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券