技术开发 频道

如何使用Neo4j和KeyLines检测假新闻

  【IT168 技术】最近几年,随着新媒体的发展,社交媒体上的低质、垃圾信息泛滥,“假新闻”(fake news)成为全球传播学界和媒体业界最关注的话题。“假新闻”的传播往往遵循这样的规律,从一开始带有偏见的故事到部分事实被偷梁换柱,最后逐渐演变成为彻头彻尾的谎言。

  假新闻除了是在向公众传播错误信息,甚至还会对公众舆论造成扭曲的影响。为了减少假新闻对我们日常生活的影响,检测新闻的真实性就成为了一件很重要的事情。本文就将为大家介绍如何利用图形分析和可视化技术帮助社交网站阻止假消息的传播。本文将使用Neo4j和KeyLines图形可视化工具包为全面的假新闻检测过程提供支持。

  为了简单起见,本文中所指的假新闻专指那些完全虚构或者毫无根据的文章。

  假新闻问题如何转变为图表问题?

  要检测虚假的消息,就要了解它是如何在帐户,帖子,页面,时间戳,IP地址,网站等之间传播。一旦我们将这些连接建模为图形,我们可以区分正常行为和异常活动。

  构建图形数据模型

  我们在检测欺诈行为时,往往会依赖可验证的人口统计数据,如真实姓名、地址或者信用卡详细信息,而检测假新闻时,就没有这么便利的条件,但是我们还是可以依靠一些社交数据,如

  ·帐户(或页面)

  ·年龄,历史,与其他帐户,页面和组的连接

  ·帖子

  ·设备指纹/ IP地址,时间戳,共享数,注释等等

  ·文章

  ·主机URL,WHOIS数据,标题,内容和作者

  有很多方法可以将该数据建模为图形。 我们通常首先将主要项目映射到节点:帐户,帖子和文章。 我们知道IP地址很重要,所以我们可以将它们添加为节点。 一切都添加为属性:

如何使用Neo4j和KeyLines检测假新闻
▲假冒新闻检测图形模型

  检测与调查

  假新闻传播者与正规欺诈者一样, 他们会调整自己的行为,以避免发现其使用机器人进行暴力攻击。

  所以仅仅依靠算法或手动检测是不够的, 我们需要一种结合自动检测和手动调查的混合方式:

如何使用Neo4j和KeyLines检测假新闻
▲Neo4j和KeyLines之间的假新闻检测过程模型

  自动检测:使用Neo4j图形数据库作为基于规则的自动检测过程的引擎。它隔离了与以前假消息(已知欺诈)相关联的行为模式的帖子和帐户。

  手动调查:同时,由KeyLines图形可视化工具提供的手动调查过程有助于发现新的行为(未知欺诈)。

  新的行为被反馈到自动化过程中,因此自动检测可以适应更加复杂的规则。

  用Neo4j检测假新闻

  一旦创建了数据存储,我们就可以运行复杂的查询来检测高风险内容和帐户。在查询速度方面,Neo4j图形数据库比传统的关系型数据库占有优势,传统关系型数据库需要几个小时的查询,它可能几秒钟就搞定了,而且可以使用直观和干净的Cypher查询来表达。

  例如,我们都知道假新闻、僵尸网络往往是在短时间内分享内容,所以它使用的账户连接很少,所以我们可以利用这个特点来运行Cypher查询:

如何使用Neo4j和KeyLines检测假新闻
▲用Keylines调查假新闻

  为了寻找未知的欺诈,我们需要手动寻找异常连接。

如何使用Neo4j和KeyLines检测假新闻

  视觉调查工具提供了一种直观的方式来发现可能表示虚假内容的异常连接。

  构建视觉图模型

  我们定义一个可视化图形模型,以便将数据从Neo4j加载到KeyLines中。

  加载源数据中的每个节点和链接并不是一个好做法,相反,我们应该关注故事的最小可行元素,然后再将其他属性添加为工具提示或节点。

  下面我们来看一下四个关键节点类型与突出高风险的数据点,如:

  新帐户

  已由用户举报的帖子。

  以前与假内容相关联的网址。

  视觉模型的构建应如下图:

如何使用Neo4j和KeyLines检测假新闻

  加载数据

  为了找到异常行为,首先我们要定义正常的行为。图形可视化是最简单直观的方法,如果我们把100个帖子ID加载到KeyLines中会发生什么?

如何使用Neo4j和KeyLines检测假新闻
▲将100个Facebook帖子的元数据加载到KeyLines中以识别异常模式

  合成数据集被简化,分享活动的速度比现实世界数据更低,但即使是在这个例子中,我们也可以分辨出正常和不寻常的行为:

如何使用Neo4j和KeyLines检测假新闻
▲正常的用户共享行为可视化

  普通帖子看起来类似于我们的数据模型 , 具有帐户,IP,帖子和文章。热门帖子可以附加到许多帐户,每个帐户都有自己的IP,图中没有红色字形的线性图表示低风险帖子。

  而其他结构在图中也是十分明显,下面我们就来看几个例子吧!

  监控新用户

  新用户被认为比已有用户具有更大的风险,因为他们没有历史数据,很难判断他们的意图,所以新用户字段,我们需要筛选出来。

如何使用Neo4j和KeyLines检测假新闻
▲这个结构就比较可疑,新用户共享标记的帖子连接到已知的假新闻文章

  识别异常分享行为

  此外,我们还可以利用图形视图来发现可疑的用户行为,如下图就是一个奇怪的结构:

如何使用Neo4j和KeyLines检测假新闻
▲调查异常结构

  从图中我们可以看到有一篇文章被相同IP的三个账号多次共享,通过扩展IP和文章节点,我们可以获得与链接相关联的帐户的完整视图。

  寻找新的假新闻域

  除了监控用户之外,社交网络还应监控与已知分享假消息的域的链接。我们在视觉模型中使用红色字形在域节点上表示了这一点,甚至我们还可以使用组合功能来合并相同域上的文章:

如何使用Neo4j和KeyLines检测假新闻

  使用组合来查看文章域中的模式

  下面这个图不仅仅是显示了个别的文章,而且显示了正在分享的网站,我们可以从中选择可疑域:

如何使用Neo4j和KeyLines检测假新闻

  本文用简化的数据可示例来展示了如何使用图形分析来打击假新闻,但是实际生活中打击假新闻可能并不是这么简单,它需要图形可视化技术和社交媒体相关的复杂数据连接在一起。

0
相关文章