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节点,它代表社交媒体网站上的一个账户。

Person Node
图1. Person节点

Person之间每次对话都通过一个Conversation节点表示。该节点包含两个Person之间的对话交换。

Conversation Node
图2. Conversation节点

每次对话都与两个Person节点之间具有[HAD_A]关系。

Person节点和Conversation节点之间的关系

image::https://i.imgur.com/sDsVu5i.jpg [Person节点和Conversation节点之间的关系]

为了表示要点2,我们还有一个名为PublicEmails的节点,它将只保存一组有效的电子邮件ID。在现实世界中,这将是一项第三方服务,不会是社交媒体应用程序的一部分,因此,在我们的示例中,它只通过包含有效电子邮件的节点表示。

Public Email Node
图3. Public Email节点

与要点2类似,我们有一个名为MaliciousWords的节点,它将帮助我们表示要点6。

Malicious Words Node
图4. Malicious Words节点

Cypher和用法

在我们的示例中,我们大体上有两种类型的Person节点

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

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

此外,当前模型针对的是试图对女性进行攻击的男性Creep。

设置数据

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

Creepy指数

最初列出的要点可以在下面提到的两个查询中涵盖。第一个提到的查询计算Creepy指数。这个查询针对女性与男性之间的每次对话运行,并计算与总交换词语相比,恶意词语被使用的次数。Creep的意图从来不好,这体现在他与社交媒体朋友的对话类型中。他的对话主要围绕着性、毒品、奉承等,而且他使用这些词语的频率会比与朋友进行正常对话时更高。

Creepy指数
The Creepiness Index is the number of malicious words used per conversation.
用于计算朋友Creepy指数的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

潜在的Creep

第二个查询围绕着Creepy社交媒体资料的真实性。这个查询选择潜在的Creep。在这里,查询选择女性拥有的所有好友,他们是男性并且没有共同好友。该查询还会在获得的列表中检查以下内容

  • 该账户是否只有一个个人资料图片。

  • 共同好友数量。

  • 不是女性居住国家/地区的居民的好友百分比。

  • 潜在的Creep发送好友请求的时间距离账户创建日期不到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也可以被列入监视名单,因为他的CreepyConversationIndex较高,而且他进行的对话次数较少,目前还没有复发的迹象,但目前还不能将其标记为潜在威胁。

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

查询2输出和观察结果

Query2 的输出结果支持了我们从 Query1 中得出的结论。在这里我们看到Creep1 与其潜在目标几乎没有共同好友,而且其非本地好友的比例相对较高。他的电子邮件帐户未在任何其他公开可用的域名或任何专业社交网络上使用,加上诸如只有一个个人资料图片以及帐户创建与成为好友之间的时间间隔不到 10 天等因素,提供了更多证据表明Creep1 是恶意帐户,应该将其监控为潜在威胁。

Query2 Output and Observations
图 6. Query2 输出结果

结论

该模型目前处于起步阶段,尚未完全具备标记恶意帐户的能力。此外,该模型可以扩展到标记女性诱捕男性,也可以应用于完全不同的场景,例如恐怖主义活动、人口贩卖、卖淫等。规则集可能因场景而异,例如,令人毛骨悚然的对话指数在发达国家可能高于发展中国家,因为恶意词语可能被用作行话或正常对话的一部分。

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

正如 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.