基于DTI内T分布托攻击检测
论文:
Detection of Shilling Attack Based on Tdistribution on the Dynamic Time Intervals in
Recommendation Systems
上一篇我们讲到通过保证用户行为特征可信来抵御推荐系统托攻击,还有一种方法是剔除fake data,比如这一篇基于动态时间间隔的T分布,它的假设条件是攻击一定是在很短的时间间隔里注入大量的fake data。
为了方便理解后边的算法,介绍一些基本的概念,I是项目集合,U是用户集合,H’是用户对项目的评级行为,评级记录是每个项目都有一个评级的记录,比如在某时间,某用户对该项目进行了评级,项目评级时间间隔序列是评级行为的时间序列,gap是两个评级行为的时间间隔,midT是gap的一半,时间窗口是根据IRTGS产生的一系列时间窗口,window size是一个时间窗口里包含的评级个数。
DTI是划分时间窗口的方法,每一次都从窗口的中间进行划分直到满足这个条件就不再划分,记下的中间位置就是划分的每个时间窗口。算法如图所示:
最后划分得到的结果如图所示,图中fake data都被划分到了同一时间窗口内。
接下来就是重要的T分布,T分布就是根据小样本来估计呈正态分布且方差未知的总体的均值,文章中的样本总体是指两个时间窗口内的Item评级数目的分布。公式(1)和(2)是计算评级的均值,公式(3)和(4)是对均值的修正,是计算该评级在整个窗口的均值,公式(5)和(6)是在一个时间窗口内计算方差。T分布的随机变量个数是自由度,而随机变量是评级分数,因为计算均值是一个约束条件,所以自由度为m+n-2,下图
是不同自由度置信度为95%的边界值,当计算完两两时间窗口的T分布之后,会得到图10中的矩阵,将矩阵中高于对应自由度边界值的位置赋值为1,其余为0,如果某个窗口1的总数比所有窗口得1得总数得平均值要高,那么这个窗口就为可以窗口,并且进一步判断这个窗口内的评级时间间隔与总评级时间间隔得均值,如果时间间隔过于频繁,并且评分都很高,则判定为该窗口为攻击窗口,并且把窗口内小于评分均值和大于评分均值得评分记录都剔除掉。
这是整个T分布得伪代码。论文是通过剔除fake data的方法抵御攻击的。