GraphGists

基于社交媒体模式分析的人格预测

简介

2015年8月10日,Coby Persin在YouTube上传了一段视频,标题是社交媒体的危险(儿童掠食者社会实验)女孩版!。在这段视频中,他扮演一个15岁的年轻男孩(Jason),向三名分别14岁、13岁和12岁的女孩发送了好友请求。然后他与这些女孩聊了3-4天,之后请求与这些女孩见面。他本应与其中一名女孩在公园见面,另一名女孩在她家里见面,最后一名女孩同意由他的(Jason的)哥哥接她,以便他们在其他地方见面。你需要观看视频才能知道发生了什么。

这段视频启发了我们,我们在网上搜索得越多,就越发现此类事件发生的频率比我们预期的要高。我们希望建立一个模型,分析人们在社交媒体上的行为模式,并在发现相似模式时提醒相关人员。

问题陈述

在我们的示例中,我们尝试通过在数据库上运行脚本来找出表现出这种行为的账户。在此示例中,我们试图过滤掉表现出此类倾向的男性。定义此类活动的关键特征包括:

  1. 该账户只有一个展示图片。

  2. 用于创建账户的电子邮件并非用于任何公开通信,并且在任何专业网络(如LinkedIn等)上均不可用。

  3. 犯罪者和受害者没有共同朋友。

  4. 犯罪者的朋友通常是具有相似特征的人,他们通常居住在国外。

  5. 犯罪者使用的账户是最近创建的,创建日期通常在发送好友请求前不到一周。

  6. 犯罪者与受害者之间的对话通常围绕性、毒品、金钱、电话号码、裸露等内容展开,并且使用这些词汇的频率比受害者与她朋友聊天时要高得多。

上述模型中列出的点大致可以分为图问题和非图问题。问题3和4代表图问题,因此这些数据表示为节点和关系;其余问题可以归类为非图问题,表示为节点上的属性。

模型:节点与关系

该模型围绕一个表示社交媒体网站账户的“人”节点展开。

Person Node
图1. “人”节点

人与人之间的每次对话都通过一个“对话”节点表示。此节点包含两个人之间的对话交流。

Conversation Node
图2. “对话”节点

每个对话都与两个“人”节点之间存在[HAD_A]关系。

“人”节点与“对话”节点之间的关系

image::https://i.imgur.com/sDsVu5i.jpg [“人”节点与“对话”节点之间的关系]

为了表示第2点,我们有另一个节点叫做“公共电子邮件”,它只包含一组有效的电子邮件ID。在真实世界场景中,这将是一个第三方服务,而不是社交媒体应用程序的一部分,因此在我们的示例中,它仅由一个包含有效电子邮件的节点表示。

Public Email Node
图3. “公共电子邮件”节点

类似于第2点,我们有一个名为“恶意词汇”的节点,它将帮助我们表示第6点。

Malicious Words Node
图4. “恶意词汇”节点

Cypher与用法

在我们的示例中,主要有两种类型的“人”节点:

  • 社交媒体网站的普通用户。

  • 利用社交媒体进行恶意活动的人。在我们的示例中,所有这些人名都以Creep开头。

此外,当前模型的目标是试图接近女性的男性Creeps。

设置数据

下面的查询将所有必需的节点和关系插入数据库中。

“可疑度指数”

最初列出的要点可以通过以下两个查询来实现。第一个查询计算“可疑度指数(Creepiness Index)”。该查询针对女性与男性之间的每一次对话运行,并计算恶意词汇的使用次数占总词汇交换次数的比例。可疑者的意图从来都不好,这反映在他与社交媒体朋友的对话类型上。他的对话大多围绕性、毒品、奉承等,他对这些词汇的使用频率会比与朋友进行普通对话时更高。

可疑度指数
The Creepiness Index is the number of malicious words used per conversation.
计算朋友“可疑度指数”的Cypher查询
MATCH (n:Person {sex:"female"})-[r:FRIENDS_WITH]-(m:Person {sex:"male"}), (m)-[:FRIENDS_WITH]-(x), (pubEmails:PublicEmails)
OPTIONAL MATCH (n)-[:FRIENDS_WITH]-(f:Person)-[:FRIENDS_WITH]-(m)
WITH n, m,count(distinct f) as fof_count,
size(collect(x)) as total,
size( [other in collect(x) where other.country <> n.country]) as aliens,
size([w in collect(pubEmails) WHERE m.userid = w ]) as listedinPublic,
r
RETURN n.userid as target, m.userid as potentialSuspect,fof_count as noOfMutualFriends,toFloat(aliens*100)/total as percentofNonLocalFriends , (listedinPublic=0) as emailNotListed, (m.numberOfPics=1) as singleProfilePic, (toFloat(r.friends_since) -  toFloat( m.accountcreationdate)) < toFloat("864000000") as friendsLessThan10Days order by target,fof_count asc, percentofNonLocalFriends desc

潜在可疑者

第二个查询围绕可疑社交媒体资料的真实性展开。该查询选择潜在的可疑者。在这里,查询选择女性的所有男性朋友,这些朋友没有共同的朋友。该查询还在获得的列表中检查以下几点:

  • 该账户是否只有1张头像。

  • 共同朋友数量。

  • 非女性居住国家朋友的百分比。

  • 潜在可疑者发送好友请求的时间距账户创建日期不到10天。

  • 用于创建账户的电子邮件是否用于任何公开可用领域或任何专业社交网站。

用于区分虚假账户和真实用户账户的Cypher查询
MATCH (n:Person {sex:"female"})-[r:FRIENDS_WITH]-(m:Person {sex:"male"}), (m)-[:FRIENDS_WITH]-(x), (pubEmails:PublicEmails)
OPTIONAL MATCH(n)-[:FRIENDS_WITH]-(f:Person)-[:FRIENDS_WITH]-(m)
WITH  n, m,count(distinct f) as fof_count,size(collect(x)) as total,
size( [other in collect(x) where other.country <> n.country]) as aliens  ,
size([w in pubEmails.emails where m.userid = w]) as listedinPublic,r
RETURN n.userid as target, m.userid as potentialSuspect,fof_count as noOfMutualFriends,toFloat(aliens*100)/total as percentofNonLocalFriends , (listedinPublic=0) as emailNotListed, (m.numberOfPics=1) as singleProfilePic, (toFloat(r.friends_since) -  toFloat( m.accountcreationdate)) < toFloat("864000000") as friendsLessThan10Days order by target,fof_count asc, percentofNonLocalFriends desc

查询1输出与观察结果

从下面的查询输出中,我们可以看到账户Creep1CreepFriend6显示了较高的可疑对话指数(CreepyConversationIndex)值。Creep1对另一位女性也表现出类似的行为,因此可以将此账户标记为潜在威胁。

CreepFriend6也可以置于监控之下,因为他的可疑对话指数很高,并且他的对话次数较少,目前没有重复发生的迹象,但目前尚不能标记为潜在威胁。

Query1 Output and Observations
图5. 查询1输出

查询2输出与观察结果

查询2的输出强化了我们从查询1中获得的发现。在这里,我们看到Creep1与他的潜在目标之间几乎没有或根本没有共同朋友,并且他的非本地朋友百分比较高。他的电子邮件账户未用于任何其他公开可用领域或任何专业社交网络,再加上只有一张头像以及账户创建和添加朋友之间的时间间隔不到10天等因素,提供了更多证据表明Creep1是恶意账户,应作为潜在威胁进行监控。

Query2 Output and Observations
图6. 查询2输出

结论

该模型目前尚处于初级阶段,尚未完全具备标记恶意账户的能力。此外,该模型还可以扩展用于标记试图接近男性的女性,也可用于完全不同的背景,例如恐怖活动、人口贩卖、卖淫等。规则集可能因背景而异,例如,“可疑对话指数”在第一世界国家可能高于第三世界国家,因为恶意词汇可能被用作行话或正常对话的一部分。

该模型不会使社交媒体完全安全,也无法根除此类活动,但肯定有助于降低此类活动的风险。

正如C.J. Roberts所说
People often believed they were safer in the light, thinking monsters only came out at night. But safety – like light – is a façade.
© . All rights reserved.