雷锋网AI科技评论:IJCAI 2017即将举行,为此,雷锋网特邀请了部分录用论文作者对自己的作品进行详细解读,以供有兴趣的老师同学们了解作者的研究思路。本文原载于王永庆个人公众号“KingsGarden”,授权雷锋网转载,雷锋网(公众号:雷锋网)AI科技评论做了不改变原意的编辑。

另外,雷锋网即将在 8 月 12 日下午举行“GAIR大讲堂CVPR 上海交大专场”分享会,感兴趣的同学赶紧点击此链接了解活动详情。

王永庆,2017年中国科学院计算技术研究所工学博士毕业,现就职中国科学院计算技术研究所,任助理研究员。研究方向: 信息传播,社会计算,数据挖掘和机器学习。

论文题目:Cascade Dynamics Modeling with Attention-based Recurrent Neural Network

作者: Yongqing Wang, Huawei Shen, Shenghua Liu, Jinhua Gao and Xueqi Cheng

背景介绍

这篇文章是我们今年投稿于IJCAI并录用的文章,文章的背景是信息传播建模(Cascade Dynamics Modeling),切入点是如何将结构信息融合到序列建模(Sequence Modeling)中。

简单介绍下序列建模,这是一种挖掘序列内关联模式的技术手段,这种关联模式又可按序列内前后两元素间间距是否等长对应到两类具体的问题中:离散序列和时序序列建模。例如离散马尔科夫模型,连续时间马尔科夫模型等都是经典的序列建模模型。当然,这几年来受到神经网络的冲击,利用循环神经网络(RNN)处理序列建模问题也逐渐成为了这一领域的标杆。

为了能够产生迭代,提高序列建模的效率,一般认为,序列内部各元素的间的关系是顺序传递的。大家可以细想一下基于这种假设下序列建模所存在的问题:无法处理序列内各元素的结构信息。图1展示了传统序列建模中的这种假设与真实情况的矛盾。考虑结构信息后图1(a)中的事件(u3,t3)、(u4,t4)节点均不再顺序依赖于其前一个节点,如果继续采用传统序列建模的方式,那么建模势必会存在一定的偏差。在这里,我们将其称为序列建模中的跳跃依赖(Cross-dependence)问题。那么如何有效解决这一问题呢?

(a)    传统序列建模的传递依赖关系

(b)    考虑元素间结构信息后与传统序列建模假设的矛盾

图 1 传统序列建模假设与真实情况的矛盾

动机

让我们先来思考一下解决跳跃依赖问题的关键:如何在序列建模过程中加入对结构信息的考虑。但这种尝试至今没有真正成功过。例如,让我们来考虑下图1(a)中u4节点的可能依赖结构,一共存在∅, {u1}, {u2}, {u3}, {u1, u2}, {u1, u2}, {u1, u3}, {u2, u3}, {u1, u2, u3}这9种可能情况。假设目标节点的可能依赖节点数为K,那么这种可能的依赖结构一共是2K+1种。考虑结构信息后,会使得序列建模的计算复杂度呈几何级提升,而过大的计算开销又不会给最终的计算结果带来可观的效果提升。

那么是否存在一种既不会带来过多的计算开销,又能同时解决跳跃依赖问题的方法呢?有!我们提出了一种在循环神经网络框架下考虑序列中结构信息的建模方式—CYAN-RNN(Cascade dYnamics modeling with AttentioN based RNN)。简单介绍下循环神经网络:在循环神经网络中,序列元素顺序输入,通过激活函数变换成为对应输入的表示,并用于生成序列。一般地,我们认为所得的表示信息是对序列中对应输入的一种合理抽象。例如,在语言模型中,以单词作为输入,所得的即为单词语义的一种抽象。在信息传播中,以用户行为作为输入,所得的即为用户行为的一种合理抽象。那么如果我们将这些表示进行综合,共同作用于同一任务,所谓的结构,是否可以理解为当前任务对这些抽象表示的利用程度呢?

模型

基于上述的讨论,我们基本确定了一条解题思路:将当前所有可用的表示进行综合,通过对当前任务的理解,删选出合适的信息,并推理出可能的依赖结构。

图2给出了在RNN框架下综合所有可用表示进行序列建模的示意图。在考虑计算效率和有效性的前提下,我们决定采用注意力机制(Attention Mechanism)来实现这一架构。

  • 一方面因为注意力机制的实现及计算效率很高;

  • 另一方面,注意力机制也是目前在多个不同应用上被证明为能够较好地学习结构信息的一种机制。

图3给出了文中所实现的带注意力机制的循环神经网络结构图。注意力机制的关键是学习获得了注意力向量α。我们约束了向量中的所有元素之和∑i αi=1,这样所学得的注意力可用于表示对应表示的权重信息,进而反应可能的依赖结构。图3中的具体实现里还给出了一种基于覆盖机制(Coverage Mechanism)的架构图。这是考虑到在对序列顺序建模的过程中,可能会有部分的表示信息会被重复使用多次,进而忽略了序列中的其他表示信息。而覆盖机制在原有的注意力机制上额外添加了记忆信息,增加信息被重复使用的代价,进而在建模过程中提升所有表示信息的使用覆盖度。

图 2 在RNN框架下综合所有可用表示来做序列产生过程建模

图 3 CYAN-RNN的具体实现架构

实验结果

在实验部分我们列举三组实验用以表示CYAN-RNN框架的有效性。

  • 实验一:传播预测(预测下一激活用户和激活时间)

这组是标准的序列生成效果实验。输入为观测信息的传播记录,要求序列建模模型能够准确的还原观测信息。从图4的实验结果上来看,可以发现:CYAN-RNN在传播预测的实验效果上显著优于其他所有的对比方法。值得注意的是,在图4所示左部预测下一激活用户的任务上,传统的RNN模型(RMTPP)并不比一些简单的模型(不采用神经网络方式建模)效果要好(对比CT Bern和CT Jac),而引入结构信息的CYAN-RNN则对比传统方法在实验效果存在显著提升。

图 4 传播预测结果

  • 实验二:注意力机制和覆盖机制中的权值分配对比

这一部分实验主要用来验证覆盖机制中所添加的记忆信息是否能够有效提升所有表示信息的使用覆盖度。根据图5的实验结果对比可以发现,由于记忆信息的引入,在覆盖机制中(图5右)中的权值分配相较于注意力机制中(图5左)的权值分配更倾向于新出现的表示信息,因而所计算的权值也能够更为清晰的表示结构信息。

图 5 注意力机制和覆盖机制中的权值分配对比

  • 实验三:网络推断

这组实验主要用来验证我们从解题之初就存在的一个疑问:是否引入注意力和覆盖机制的循环神经网络架构就是对依赖结构的一种刻画呢?由于观测信息的产生过程限制我们很难精确到刻画具体的依赖关系,但我们可以利用推断所得的依赖结构去反推物理的关系网络结构,进而回答这一问题。

我们把从注意力机制和覆盖机制中学习所得的权重信息进行综合、删选,用于网络推断,并将错误的推断结果以红线标注于图6中。可以发现,无论是采用注意力机制的CYAN-RNN还是采用覆盖机制的CYAN-RNN(cov),其对关系网络的推断均存在一定的有效性,如此回答了我们这一疑问:注意力机制和覆盖机制能够刻画序列产生过程中的依赖结构。

图 6 网络推断结果

总结:这篇文章虽是以信息传播为背景的序列建模,但所提的跳跃依赖问题却普遍存在于序列建模的众多场景之中。在诸如语言模型的相关文中,我也有过一些尝试,发现这种采用注意力机制和覆盖机制的方式也同样有效。因此,读者若是有兴趣,可以到我的github上下载源码并在相关领域进行尝试:https://github.com/Allen517/cyanrnn_project。

另外,本工作的演示代码(IPython)详见: http://yongqwang.com/public/res_dat/UAI_demo.tar.gz

本文作者:奕欣

本文转自雷锋网禁止二次转载,原文链接

中科院计算所王永庆详解IJCAI 17录用论文:如何用注意力机制RNN进行信息传播建模?|IJCAI 2017...相关推荐

  1. 注意力机制详解系列(三):空间注意力机制

  2. 注意力机制详解系列(二):通道注意力机制

  3. 注意力机制详解系列(四):混合注意力机制

  4. PE文件详解(教程1-7)

    PE文件详解(教程1-7) ========================================= PE教程1: PE文件格式一览 PE 的意思就是 Portable Executable ...

  5. python 线程安全的数据类型_详解python多线程、锁、event事件机制的简单使用

    详解python多线程.锁.event事件机制的简单使用 发布时间:2020-09-25 02:04:12 来源:脚本之家 阅读:117 作者:君惜 线程和进程 1.线程共享创建它的进程的地址空间,进 ...

  6. 无人机航测流程详解:航线规划、像控点布设、CC刺点建模及CASS成图

    无人机航测是传统航空摄影测量手段的有力补充,具有机动灵活.高效快速.精细准确.作业成本低.适用范围广.生产周期短等特点,在小区域和飞行困难地区高分辨率影像快速获取方面具有明显优势,随着无人机与数码相机 ...

  7. PackageManagerService启动详解(二)之怎么通过packages.xml对已安装应用信息进行持久化管理?

    PKMS启动详解(二)之怎么通过packages.xml对已安装应用信息进行持久化管理? Android PackageManagerService系列博客目录: PKMS启动详解系列博客概要 PKM ...

  8. 『中级篇』Dockerfile详解(17)

    一般的,Dockerfile 分为四部分:基础镜像信息.维护者信息.镜像操作指令和容器启动时执行指令. ####官网学习 https://docs.docker.com/engine/referenc ...

  9. 详解CAN总线:CAN总线通信优先级机制

    目录 1.数据帧和遥控帧的优先级 2.标准格式和扩展格式的优先级 在详解CAN总线:CAN总线报文格式-数据帧文章中,讲解到仲裁段.仲裁段用于写明需要发送到目的CAN节点的地址.确定发送的帧类型(当前 ...

最新文章

  1. wdcp php5.3 pdo_mysql,WDCP常用组件(memcache、mysqli、PDO_MYSQL、mysql innodb、libmcrypt、php zip)的安装方法...
  2. RabicMQ基本概念
  3. uniapp定义全局变量方法
  4. php引用数据库实例,PHP单例模式实例,连接数据库对类的引用
  5. Json工具类 - JsonUtils.java
  6. c++自底向上算符优先分析_PHP程序员从入门到佛系第十弹:PHP 运算符
  7. 洛谷 P1024 一元三次方程求解
  8. android4.2 高用zing拍照后,返回其它页面操作时,主线程关掉或程序退出的问题解决...
  9. openstack instance bootmgr is missing 问题 修复
  10. mybatis源码学习方式
  11. C/C++ 格式化读取和读取一行
  12. Win Server2003常见问题的解决然方案
  13. 10大改变世界的未来科技
  14. fpga控制vga显示彩色图片
  15. 计算机硬件配件怎么查,如何查看计算机主板型号?主板型号在哪里[方法]
  16. 计算机应用基础165791,[2018年最新整理]人大网大计算机应用基础试题答案.doc
  17. android 极光推送解绑,app集成极光推送笔记(angular js)
  18. 2017最新苹果 APPLE ID注册流程
  19. 计算机二级易错知识点 2021 8.8
  20. 用html画布做扇形,jquery canvas 画扇形

热门文章

  1. ‘M-BM-‘ character
  2. 【C++】-- 友元
  3. 基于Linux实现的聊天室小程序
  4. b、B、KB、MB、GB 的关系?
  5. 1060 5G/1065 版显卡安装TensorFlow/CUDA
  6. 【华为上机真题】分子弹
  7. 【SSL 1458】zzzyyds(DP)
  8. bugku 二维码题目 多种方法解决、闪的好快、乌云邀请码
  9. 一款轻量级、可快速上手的开源后台系统
  10. 2022年秋招提前批总结(海尔智家)