这次我们来研究一下SDlib中如何实现关系注入的。
首先我们打开relationAttack.py,进行理解:
Init函数:对各值进行初始化
getReciprocal函数:
这里是要获得目标用户关注spammer的概率,但是我不知道为什么要这么做。
generateSocialConnections:
将关系注入数据集,然后讲关系输出出来。
Farmlink函数:
以RandomRelationAttack为例,打开RandomRelationAttack.py
简单分析一下,第一个双重循环,循环读取攻击文件,循环读取攻击的项目,如果随机数小于0.01,(其实就是选择了比例就是百分之一),就与购买了目标项目的用户进行链接。(链接方式就是,首先是攻击者去关注曾经给目标项目评分过的用户,然后根据概率判断用户是否会反过来也关注攻击者)
第二个双重循环,与上述类似,不过就是换成了其他用户。
图一