zoukankan      html  css  js  c++  java
  • Learning Dynamic Context Graphs for Predicting Social Events

    论文主体

    paper:"Learning Dynamic Context Graphs for Predicting Social Events".

    code:https://github.com/amy-deng/DynamicGCN

    动机

    • 对社会动荡等社会事件的预测是一个重要而具有挑战性的问题
    • 为便于人类分析与理解,需要在准确预测的同时,提供支持预测结论的证据/线索

    基本假设

    • 随着社交媒体的迅速发展,词语的使用往往具有短期的稳定性。对各个时间片内的文本进行采样可以把握词语使用的变化。

    数据来源

    数据预处理

    • 给定一个城市,以及一个感兴趣的日期t,收集在之前连续K天(t − k → t − 1)已发布的相关文章作为原始输入。
    • 如果目标事件在t天发生,我们将此样本注释为正样本((y_{c,t} = 1));否则,如果在第t天以及前三天都没有事件,我们将此实例标记为负样本((y_{c,t} = 0))
    • 对每一个样本,我们对历史文章进行清洗(去除停用词,忽略频率大于0.8的高频词,删除出现次数少于5次的低频词以确保模型的通用性)后根据TF-IDF采样抽取n个关键词,只保留词干,并对这些关键词根据PMI以天为步长建立一系列的单词关系图,通过相应的邻接矩阵[(A_{t-k}),...,(A_{t-1})]来表示,每个矩阵都是(n*n)。图中节点为单词,边的权重按照PMI进行计算,并且PMI的计算限定在t时间内的文章中。一般而言,正PMI值表示语料库中单词的高度语义相关性。因此,我们仅在具有正PMI值的单词对之间添加加权边。

    [A_t[i, j] = egin{cases} PMI_t(i, j) & PMI_t(i, j) > 0 \ 0 & otherwise end{cases}\ PMI_t(i, j)= logfrac{d(i,j)}{d(i)d(j)/D} ]

    • 我们对单词图中的每一个节点进行词嵌入,得到单词的向量表示,以此作为单词的初始特征。
    • 输入层的数据主要是一系列的图的邻接矩阵,以及每一个词的潜入向量表示。
    • 输入文件结构
      • 以泰国为例,我们收集了从2010年到2016年总共7年的数据,重点关注泰国首都曼谷这个城市,以确保训练实例instances数量和事件数量之间的平衡。集会、暴力抗议和通道阻塞是其中最常见的抗议事件。对综合冲突预警系统(ICEWS)的事件数据中,可以对城市和类别进行过滤,我们集中在事件的一个主要类别,抗议protest,。
      • Thailand:19,410 #documents、27,281 #vocabulary、1,883 #sample、 715#pos、 1,168#neg
      • K=7
      • emb_100 词向量文件 (27281, 100)
      • .idx / .tidx 用于训练/测试的词向量索引文件 (1600, 579) (283, 549)
      • .x / .tx 用于训练/测试的时间图输入文件 (283, 7, 549, 549) 每一个(549, 549)都用稀疏矩阵存储动态图
      • .y/ .ty 训练/测试的标签 (1600, 1) (283, 1)

    网络结构

    • 输入层——动态GCN——TE时间编码层——非线性激活层
    • 采用类似于RNN的模式进行循环变化

    抽取事件上下文图

    • 根据训练好的模型,根据一定规则从输入的动态图中提取重要的节点,构建子图来表示上下文
    • 提取节点:使用模型最后一层GCN得到(h_{i,t}),以及每个单词节点i的权重矩阵(w_i),两者相乘得到的I,服从高斯分布,按照阈值范围(µ,µ +2σ]抽取符合的节点。
    • 构建子图:分别在每个时间提取输入动态图的同构子图。子图中边缘的权重是两个端点节点的指标值之和。

    关注 GitHub 项目:https://github.com/joeat1/GNN_note/

  • 相关阅读:
    微信小程序设置web-view的业务域名
    第61节:Java中的DOM和Javascript技术
    第61节:Java中的DOM和Javascript技术
    小程序获取时间格式
    小程序获取时间格式
    小程序弹出框详解
    小程序弹出框详解
    Python自定义包引入【新手必学】
    Go语言底层知识总结【新手必学】
    Python代码编写规范,你真的会吗?
  • 原文地址:https://www.cnblogs.com/joeat1/p/13228809.html
Copyright © 2011-2022 走看看