读书人工智能

HGAT:假新闻检测的分层图注意力网络

2021-09-29  本文已影响0人  酷酷的群

论文标题:HGAT: Hierarchical Graph Attention Network for Fake News Detection
论文链接:https://arxiv.org/abs/2002.04397
论文来源:arXiv

一、概述

为了更有效地检测假新闻,有必要从不同的角度挖掘有意义的信息,而不是仅仅关注新闻内容。事实上,假新闻并不是以文章的形式独立存在的,网络社交媒体与新闻文章相关的新闻创作者(creators)和新闻主题(subjects)与文章共存。这些新闻创作者和新闻主题能够以一个更全面的视角描述新闻,以帮助我们能够更彻底地剔除假新闻。具体来说,对于新闻创作者,我们可以收集个人资料等补充知识。对于新闻主题,可以收集背景知识等相关信息来支持新闻检测。

新闻文章和其他相关部分可以建模为异构信息网络(heterogeneous information network,HIN)。HIN具有较强的表达丰富信息的能力,本文将假新闻检测问题描述为HIN中的节点分类问题。下图给出了一个面向新闻的异构信息网络(News-HIN)的示例:

News-HIN

基于HIN的假新闻检测问题的主要挑战在于以下3点:
①Hierarchy,异构网络中的表示学习是一个多层次的工作,因为节点内容的信息和模式(schema)的信息包含在不同的层次上;
②Heterogeneity,存在与新闻文章相关的各种类型的异构信息,统一学习HIN中的有效节点表示并不是一件容易的事情;
③Generalizability,为了保证所提出的模型对不同类型HIN的适用性,我们需要提出一个可扩展到各种学习设置的通用学习模型。

为了解决上述挑战,本文提出了HGAT来检测假新闻。HGAT包含两层attention机制,首先进行节点level的attention,将节点邻域内同一种类型的节点聚合成schema节点,然后进行schema-level的attention来聚合schema节点表示,最终使用学习到的表示进行假新闻检测。

二、概念

  1. 术语定义

News Articles代表发布在社交媒体或者公共平台上的新闻内容,使用集合N=\left \{n_{1},n_{2},\cdots ,n_{m}\right \}来表示,每一个n_{i}\in N都包含文本内容。

Subject通常是指新闻文章的中心思想,是新闻文章写作的主要目的,使用集合S=\left \{s_{1},s_{2},\cdots ,s_{k}\right \}来表示,每一个s_{i}\in S都包含文本描述。

Creator代表撰写News Articles的用户,Creator的集合表示为C=\left \{c_{1},c_{2},\cdots ,c_{n}\right \},每一个c_{i}\in C都包含个人资料信息,包括头衔,政党成员,和地理居住地点。

News articles,Subjects和Creators被建模成News-HIN异质图,包括三种节点和两种边。News-HIN被定义为\mathcal{G}=(\mathcal{V},\mathcal{E}),这里的节点集合V=C\cup N\cup S,边的集合\mathcal{E}=\mathcal{E}_{c,n}\cup \mathcal{E}_{n,s},包括Creators和News Articles之间的“Write”连接以及News articles和Subjects之间的“Belong to”连接。

为了更好地理解News-HIN并利用类型信息,有必要定义schema-level的描述。模型将使用News-HIN schema来学习不同类型的节点和连接的重要性。News-HIN的schema定义为S_{\mathcal{G}}=(\mathcal{V}_{T},\mathcal{E}_{T})\mathcal{V}_{T}\mathcal {E}_{T}代表节点类型和边类型,即\mathcal {V}_{T}=\left \{\phi _{n},\phi _{c},\phi _{s}\right \}\mathcal{E}_{T} =\left \{Write,Belongs\; to\right \}。PolitiFact数据集的schema如上图(b)所示。

  1. 问题定义

给定一个News-HIN\mathcal{G}=(\mathcal{V},\mathcal{E}),目标是学习一个分类函数f:N\rightarrow Y来将集合N分类到正确的类。要有效整合News-HIN中的各种异构信息,包括文本信息和网络结构信息。

三、方法

图注意力网络GAT参考链接:图注意力网络

HGAT包括node-level和scheme-level两层attention,架构图如下:

HGAT
  1. Node-level attention

Node-level attention能够学习每个News Article的邻域内同一类型的节点的重要性并且聚合这些邻域节点表示成一个集成表示作为一个schema节点。Node-level attention的输入为节点的初始特征向量(文本采用TF-IDF编码)。因为News-HIN中存在多种类型的节点,因而初始节点特征向量属于不同维度的特征空间,因此需要使用对特征向量进行维度转换,这里对不同类型的节点的特征向量进行维度转换采用的是不同的转换矩阵。具体过程如下:

h_{n_{i}}^{'}=M^{\phi _{n}}\cdot h_{n_{i}};h_{c_{i}}^{'}=M^{\phi _{c}}\cdot h_{c_{i}};h_{s_{i}}^{'}=M^{\phi _{s}}\cdot h_{s_{i}}

这里M^{\phi _{n}}\in \mathbb{R}^{F\times F^{\phi _{n}}},h_{n_{i}}\in \mathbb{R}^{F^{\phi _{n}}}\phi _{c},\phi _{s}类型的节点同理。F是要映射到的维度,每个类型的节点特征向量都被映射到F维特征空间。

对于每个News Article节点n_{i}\in N,它的邻域节点属于N\cup S\cup C,node-level attention将为每种类型的邻域节点学习重要性权重。我们让T\in \left \{N,S,C\right \}T中的节点都有相同的类型\phi _{t},然后对于n_iT中的邻域节点,node-level attention将学习重要性e_{ij}^{\phi _{t}},代表节点t_j \in Tn_i的重要性:

e_{ij}^{\phi _{t}}=attention(h_{n_{i}}^{'},h_{t_{j}}^{'};\phi _{t})

这里attention也就是一个单层前馈神经网络,使用LeakyReLU激活函数(与GAT设置一样)。attention对于所有同一类型\phi _{t}的邻域节点是共享的。masked attention机制保证了网络的结构信息被利用,也就是说只有当t_{j}\in neighbor_{n_{i}}且属于类型\phi _{t}才会被用来计算e_{ij}^{\phi _{t}},否则attention权重将为0。接着我们利用softmax函数标准化e_{ij}^{\phi _{t}}得到\alpha _{ij}^{\phi _{t}}

\alpha _{ij}^{\phi _{t}}=softmax(e_{ij}^{\phi _{t}})

schema节点T_{n}通过以下方式聚合得到:

T_{n_{i}}=\sigma \left (\sum _{t_{j}\in neighbor_{n_{i}}}\alpha _{ij}^{\phi _{t}}\cdot h_{t_{j}}^{'}\right )

与GAT类似,node-level attention也可以执行multi-head attention,使用K代表head的数量:

T_{n_{i}}=||_{k=1}^{K}\sigma \left (\sum _{t_{j}\in neighbor_{n_{i}}}\alpha _{ij}^{\phi _{t}}\cdot h_{t_{j}}^{'}\right )

||代表拼接操作。注意这里被聚合的表示包括h_{n_{i}}^{'}

最终每个目标节点n_i将得到三个schema节点N_{n_{i}},C_{n_{i}},S_{n_{i}},对应3种不同类型的邻域。

  1. Schema-level attention

通过node-level attention,我们将News Article节点的邻域聚合为几个schema节点。从本质上讲,它相当于将来自相同类型的邻域节点的信息融合到schema节点的表示中。接下来要做的是通过schema节点的表示来学习News Article节点的表示。不同的schema节点包含类型信息,这要求我们区分节点类型的重要性。这里我们采用schema-level attention来自动学习schema node的重要性,最终使用学习到的重要性权重来融合schema节点表示。

为了获得充分的表达能力来学习注意力权重,这里采用一个线性变换来处理schema节点的表示,线性变换的参数为W\in \mathbb{R}^{F^{'}\times KF}schema也是一个单层前馈神经网络,采用sigmoid激活函数,用来进行attention操作。对于schema节点T_{n_{i}},其重要性表示为w_{i}^{\phi _{t}}

w_{i}^{\phi _{t}}=schema(WT_{n_{i}},WN_{n_{i}})

然后同样使用softmax函数进行标准化:

\beta _{i}^{\phi _{t}}=softmax(w_{i}^{\phi _{t}})=\frac{exp(w_{i}^{\phi _{t}})} {\sum _{\phi \in \mathcal {V} _{T}}exp(w_{i}^{\phi})}

最后进行聚合得到n_i的表示r_{n_{i}}

r_{n_{i}}=\sum _{\phi _{t}\in \mathcal {V}_{T}}\beta _{i}^{\phi _{t}}\cdot T_{n_{i}}

下图展示了两层attention的过程:

两层attention
  1. 损失函数

最后就是采用一个分类器来对每个News Article节点表示r_{n_{i}}进行分类。损失函数采用交叉熵损失函数,二分类就是用binary的交叉熵损失。

整个HGAT的算法如下:

HGAT

四、实验

数据集采用PolitiFact数据集。对于新闻报道,PolitiFact在网站上提供了原始内容、事实核查结果和全面的事实核查报告。平台根据内容将它们分类为不同的主题和话题(也就是本文中的subject)。每篇文章的标注为{True, Mostly True, Half True, Mostly False, False, Pants on Fire!}之一,可以用来进行多分类以及二分类,本文进行了多分类和二分类实验。二分类时{True, Mostly True, Half True}作为一类,{Mostly False, False, Pants on Fire!}作为一类。数据集统计情况如下:

数据集

二分类实验结果:

二分类实验结果

多分类实验结果:

多分类实验结果

对比是否去除schema-level attention的结果(去除的方式是将schema-level attention的权重设置为\frac{1}{3}):

消融实验
上一篇 下一篇

猜你喜欢

热点阅读