Facebook 50%用户是虚假账号?我觉得可以更高!
0x00 背景
今天下午看新闻时,无意看到一条关于facebook虚假帐号(fake account)消息:

一下子就被这标题吸引了眼球,因为作为一个第三方机构,能够对facebook这样如此海量的帐号中的fake account进行测量,并得出这样一个比较具体的结果。非常非常好奇是怎么做到的,数据都是怎么来的。于是,在CCN原文中找到了这份75页的研究报告,地址:https://www.plainsite.org/realitycheck/fb.pdf。
0x01 探索
等待下载报告的时候,脑海中已经很兴奋,想着到底会是什么渠道获取到的数据,会是爬虫吗?如果是爬虫,会是怎么样牛逼的爬虫,判断虚假帐号的模型是怎么样的?
报告下载完成后,看到这样75页的长度报告还是很畏惧的:

虽然每天都阅读不少的英文,不过大多都是推文和简短的新闻,最多十分钟就可以看完一篇。这种论文风格的文章看起来还是比较费劲的。
坚持看完前几页后,隐约觉得事情有一点不对,怎么是在说作者自己的创业史以及扎克伯格的facebook创业史??

此时有点看不下去了,便看了看报告的目录,以及在文章中寻找50%或者fifth(y)的字眼,然后找到了关键段落了。此时报告已经来到了54页了!

0x02 结论
对此时的上下文进行了阅读后,我发现了这作者简直是个逻辑鬼才!!!其得出facebook 20亿月活用户中有一半是假的的结论,有一个很关键的点:
facebook中存在多个同名并且头像和简介相同的帐号,所以存在的虚假账号比facebook官方公布的多。其举的一个例子是" jack nicas"这个名字,给出了下图:

可是我去搜索这个人,得出的结果是这样的:
难道我们不是用的同一个facebook???

当然facebook中的确存在这样的帐号,比如搜索"Jack Mark",会出来一堆同姓名的人:

但是他们的头像和信息并不相同啊!!!
依靠这个观点,作者神逻辑来了!
Facebook月活用户和处理掉的虚假帐号数量是公开的,下图是facebook每个季度处理的虚假账号数量,其中2017 Q4是694m(m指的是百万),2018 Q1是583m。

所以从2017 Q4到2018 Q3,facebook处理掉的虚假账号数量为694m+583m+800m+754m=2.841 bilion。
Facebook在2018 Q3的月活用户为2.271 bilion。
然后神奇的算法出来了!!!

2.841 / (2.841+2.271) = 55%
得到这个55%后,作者手动减了5%作为误差,然后就是标题中50%了。

Facebook中的确存在还没有处理掉的虚假用户,但是你这个算法也真是太牛逼了!!!你为什么不把facebook之前处理的虚假用户都给算上???这样完全得出一个更高的比列,60%?70%?或者直接99%吧??
0x03 后记
最近看了不少这样的标题党,不光是这样的报告,还有一些华而不实的工具,就是介绍和命令行看起来很炫酷的那种!
吐槽归吐槽,但是老外这包装能力真是让人跪了,熟话说,"打不过就加入",教练我想学这个!!!
by:会飞的猫
Facebook 50%用户是虚假账号?我觉得可以更高!的更多相关文章
- 管理员技术(四): 配置NTP网络时间客户端、 创建一个备份包、 配置用户和组账号、配置一个cron任务
一. 配置NTP网络时间客户端 目标: 本例要求配置虚拟机 server0,能够自动校对系统时间.相关信息如下: 1> NTP服务器位于 classroom.example.com ...
- loadRunner之参数化,对用户名和密码进行参数化,并打印输出---实际操作:用户登录的账号用随机值来登录
录制脚本,对用户名和密码进行参数化: Action() { web_url("WebTours", "URL=http://127.0.0.1:1080/WebTours ...
- .NET通过PowerShell操作ExChange为用户开通邮箱账号
最近工作中一个web项目需要集成exchange邮箱服务,注册用户时需要动态创建邮箱用户,终于在http://www.cnblogs.com/gongguo/archive/2012/03/12/23 ...
- win7系统标准用户恢复administrator账号方法
一次误操作,把管理员账号给禁用了,满眼的泪花~~~~~~~~~ 标准用户,什么都干不了,怎么办呢????? 度娘一下,各种奇葩答案,就是解决不了 呵呵,最后找到了解决方法: 1.开机后BIOS过后,按 ...
- 阿里云dataworks数据工场用户使用子账号
如果您是第一次使用子账号登录数加平台和使用DataWorks,您需要获知以下内容: 该子账号所属主账号的企业别名. 该子账号的用户名和密码. 该子账号的AccessKey ID和AccessKey S ...
- 用HttpSessionListener统计在线用户或做账号在线人数管理
使用HttpSessionListener接口可监听session的创建和失效 session是在用户第一次访问页面时创建 在session超时或调用request.getSession().inva ...
- 让用户使用第三方账号(如亚马逊账号)接入AWS IoT系统
我们想象这么一个IoT应用场景:厂商A使用AWS IoT来开发物联网解决方案,那么A把设备卖给用户的时候,需要使用户能够登入AWS IoT系统来控制其购买的A的设备,也就是说给用户分配适当的权限.下面 ...
- GraphQL漏洞案例之获取Facebook任意用户的朋友列表和部分支付卡详细信息
Facebook有一个GraphQL endpoint,只能由Facebook的某些应用程序使用.需要用户(或页面)access_token来查询GraphQL endpoint. 这里可以将Face ...
- 50个jQuery代码段帮你成为更好的JavaScript开发者
1. 如何创建嵌套的过滤器: 允许你减少集合中的匹配元素的过滤器,只剩下那些与给定的选择器匹配的部分.在这种情况下,查询删除了任何没(:not)有(:has)包含class为“selected”(.s ...
随机推荐
- Android平台调用Web Service:线程返回值
接上文 前文中的遗留问题 对于Java多线程的理解,我曾经只局限于实现Runnable接口或者继承Thread类.然后重写run()方法.最后start()调用就算完事,可是一旦涉及死锁以及对共享资源 ...
- PHP的curl查看header信息的功能(包括查看返回header和请求header)
PHP的curl功能十分强大,简单点说,就是一个PHP实现浏览器的基础. 最常用的可能就是抓取远程数据或者向远程POST数据.但是在这个过程中,调试时,可能会有查看header的必要. 如下: ech ...
- 如何在Windows平台下安装配置Memcached
Memcached是一个自由开源的,高性能,分布式内存对象缓存系统. Memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一 ...
- Qt 编程指南 3 信号和槽沟通
https://qtguide.ustclug.org/ 1 信号和槽 所谓信号槽,简单来说,就像是插销一样:一个插头和一个插座.怎么说呢?当某种事件发生之后,比如,点击了一下鼠标,或者按了某个按键, ...
- 转载 c# automapper 使用(一) https://www.cnblogs.com/caoyc/p/6367828.html
一.最简单的用法 有两个类User和UserDto 1 public class User 2 { 3 public int Id { get; set; } 4 public string Name ...
- docker 仓库搭建
阿里云服务器: 127.0.0.1(客户端) 127.0.0.2(私有服务器) 127.0.0.2作为私有仓库使用 1.下载镜像 [root@insure ~]# docker pull regist ...
- Java并发(四)线程池使用
上一篇博文介绍了线程池的实现原理,现在介绍如何使用线程池. 目录 一.创建线程池 二.向线程池提交任务 三.关闭线程池 四.合理配置线程池 五.线程池的监控 线程池创建规范 一.创建线程池 我们可以通 ...
- windows7系统下配置开发环境 python2.7+pyqt4+pycharm
python2.7 链接:https://pan.baidu.com/s/1lPI9AF9GCaakLXsMZLd5mQ 提取码:5xt6 pip 链接:https://pan.baidu.com/s ...
- Selenium:利用select模块处理下拉框
在利用selenium进行UI自动化测试过程中,经常会遇到下拉框选项,这篇博客,就介绍下如何利用selenium的Select模块来对标准select下拉框进行操作... 首先导入Select模块: ...
- MySQL(十三)事务处理和字符集
一.事务处理 事务处理(transaction processing):是一种机制,用来维护数据库的完整性,管理必须成批执行的MySQL操作,以保证数据库不包含不完整的操作结果. 这样可以保证一组操作 ...