#Paper Reading# Link Prediction by De-anonymization: How We Won the Kaggle Social Network Challenge

论文题目:Link Prediction by De-anonymization: How We Won the Kaggle Social Network Challenge
论文地址:http://arxiv.org/abs/1102.4374

论文大体内容:
作者使用去匿名算法,voting策略,machine learning的方法赢得了kaggle的一场Flickr链接预测的比赛。

1、kaggle上的比赛[1]是这样的:给定的训练集中有7,237,983条边(Flickr上用户的互相关注,已匿名处理),然后给8,960个边,让你判断这条边的发生可能性(即是否可能存在边的两个顶点(两个用户)互相关注)。

2、作者自己另外爬取了两个时间段的Flickr数据,分别是mid-December 2010和mid-January 2011,经处理后形成了一个有7,041,554条边的social network。并且作者比较了自己爬取的social network以及kaggle上的训练集组成的social network,发现彼此间的余弦相似度有95.6%,说明两个social network相似度非常高,这也使得后面的方法可以成功。

3、作者的去匿名的算法(de-anonymization algorithm,DA算法)来源于另一篇论文[2],步骤主要有seed identification和propagation。由于data的结点数太大,所以作者先均匀随机从两个social network中选取小部分的结点,而且发现随机抽样的可信度特别高,top30结点中有27个(90%)相同。

4、使用kaggle上的test set进行seed identification和propagation后,发现DA算法能否覆盖test set中79.7%的数据,去掉map后有多个选项以及一些不太好的结果,最后能够以98.7%的准确率覆盖57.0%的test set edge内容。

5、作者希望优化seed identification的结果,而其中涉及到图匹配的问题(inexact graph matching),这是一个NPC问题,所以使用了模拟退火(Simulated annealing)的方法。

6、由于DA算法并不能覆盖全部test set数据,所以作者提出一种voting的策略,思想是这样的,在DA中,存在一个test数据点,对应多个作者爬取的flickr数据点(候选去匿名的点)。在这种一对多的情况中,如果a的候选点C(a)与b的候选点C(b)都存在edge,也就是有|C(a)|*|C(b)|种edge存在,那么a,b就可以voting确定是存在edge的,同理如果都不存在edge,那么a,b也voting出不存在edge。这种处理后,能在DA的基础上再覆盖test set的18.7%的edge内容,准确率是98.1%。

7、剩下的test set不覆盖内容,作者使用了Machine Learning的方法,使用包括Adamic/Adar, Jaccard, localized random walks, node degrees等在内的25种feature跑了一个random forest classifier,覆盖了剩余的24.3%的test set edge数据,AUC[2](用于评价二元分类器的表现,范围[0,1],值越大越好)为0.881。

8、最后将上面三种方法合并,结果是AUC有0.981,从而赢得了kaggle这场比赛的第一名。

9、思考,作者使用DA的方法,不是传统的做法,感觉是另辟蹊径,有点cheat的嫌疑。但这点创新也是很好的,毕竟一般不会有人去想match真实的数据。所以链接预测可以不再仅根据图本身来搞,也可以利用网络上大量的公开的信息,毕竟,这是一个大数据的时代!

参考资料:
[1]、https://www.kaggle.com/c/socialNetwork
[2]、http://arxiv.org/pdf/0903.3276.pdf
[3]、http://alexkong.net/2013/06/introduction-to-auc-and-roc/


以上均为个人见解,因本人水平有限,如发现有所错漏,敬请指出,谢谢!

你可能感兴趣的:(link,reading,Paper,Predict)