公开/公告号CN103678709A
专利类型发明专利
公开/公告日2014-03-26
原文格式PDF
申请/专利权人 中国科学院自动化研究所;
申请/专利号CN201310746814.5
申请日2013-12-30
分类号G06F17/30(20060101);
代理机构11021 中科专利商标代理有限责任公司;
代理人宋焰琴
地址 100190 北京市海淀区中关村东路95号
入库时间 2023-12-17 01:00:24
法律状态公告日
法律状态信息
法律状态
2017-02-22
授权
授权
2014-04-23
实质审查的生效 IPC(主分类):G06F17/30 申请日:20131230
实质审查的生效
2014-03-26
公开
公开
技术领域
本发明涉及机器学习和模式识别领域,特别是机器学习中基于协同 过滤的推荐系统攻击检测问题。
背景技术
近年来,随着网络的飞速发展,人们每天都会面临大量的信息。面 对成千上万的信息,人们疲于从中发现自己感兴趣的有价值的信息,推 荐系统的出现可以使人们从海量的信息中解脱出来。推荐系统是一种信 息过滤技术,它能够从大量的信息中筛选出用户感兴趣的有价值的内容 并提供给用户,从而使用户从纷杂繁多的信息中解脱出来。常用的推荐 系统技术有基于内容的推荐系统、基于协同过滤的推荐系统和混合推荐 系统,其中最流行的是基于协同过滤的推荐系统,本发明中的算法和框 架也是面向协同过滤技术的推荐系统。
基于协同过滤的推荐系统收集并汇聚用户偏好信息,依托用户和项 目的相似性度量对用户可能的偏好项目进行个性化预测。基于协同过滤 的技术又可以分为最近邻协同过滤和基于模型的协同过滤。最近邻协同 过滤利用最相似的若干个用户或项目的偏好来计算目标用户对目标项 目的偏好程度,然后再向目标用户推荐其最感兴趣的项目;基于模型的 协同过滤不直接操作已有偏好信息而得到预测值,而是使用已有偏好信 息去训练模型再基于模型对项目进行偏好程度预测。虽然基于协同过滤 的推荐系统能够比较准确的向用户推荐其可能感兴趣的项目,但是它比 较容易受到用户概貌注入攻击的影响。因为协同过滤算法是利用用户和 项目的相似性度量来发现用户可能感兴趣的项目,所以通过人为的制造 大量与很多用户相似的虚假用户概貌信息并将其注入推荐系统,就能够 对基于协同过滤的推荐系统产生严重的影响。由于需要大量与正常用户 概貌相似的虚假用户概貌信息以及希望在较短的时间内影响目标项目, 很多攻击用户往往会一起行动从而形成攻击用户组,又因为组攻击需要 一定的成本,所以一组攻击用户常会去攻击多个目标项目,这些被攻击 的目标项目就组成了目标项目组。现有的工作大多集中检测单个的攻击 用户,鲜有工作能够检测攻击用户组和目标项目组。
在真实的应用场景中,一组攻击用户一起攻击一组目标项目这样的 组攻击行为是普遍存在的,例如电子商务中的专业差评集团和电影推荐 网站上的专业水军公司等等。虽然这类组攻击行为在实际中是广泛存在 的,但是却很少有工作研究如何检测组攻击行为,即同时检测攻击用户 组和被该组攻击用户攻击的目标项目组。基于时序数据的推荐攻击检测 算法通过深入分析组攻击行为的特点,提炼出三个组攻击检测特征,这 三个特征分别是从偏好程度值、偏好程度时间和偏好程度分布的角度来 描述组攻击行为的。我们实验也证明了基于时序数据的推荐系统攻击检 测算法不仅能够检测最可能的攻击用户组,而且还可以检测被该组攻击 用户攻击的目标项目组。
发明内容
已有的研究工作大多集中在利用用户-项目偏好程度数据的一些统 计特征来检测单个攻击用户,它们没有考虑偏好程度数据的时序特性, 且不能用来检测组攻击行为。本发明提出了一种基于时序数据的推荐攻 击检测算法。该检测算法通过深入研究组攻击行为的特点,然后从偏好 程度值的角度、偏好程度时间间隔的角度和偏好程度分布的角度分别提 取了“组偏好程度值比例”、“组偏好程度时间间隔特征”和“组平均 熵”特征,使用这三个组攻击检测特征能够很好的检测攻击用户组和对 应的目标项目组。
本发明提出的一种基于时序数据的推荐系统攻击检测算法,包括步 骤:
步骤S1:利用用户-项目偏好程度数据集和频繁项集挖掘技术,得 到候选的多个用户组和候选的多个项目组;
步骤S2:为每对用户组和项目组计算描述组攻击行为在偏好程度 值上特性的组偏好程度值比例特征;
步骤S3:将项目组中各项目的所有偏好程度按操作时间的先后顺 序进行组织,形成时序的偏好程度数据;
步骤S4:为每对的用户组和项目组计算组偏好程度时间间隔特征, 捕获组攻击行为的时间间隔特性;
步骤S5:为用户组计算组平均熵特征,从一组用户偏好程度分布 的角度来检测组攻击行为;
步骤S6:为每一用户组,选择其对应最大的组偏好程度值比例特 征和最大的组偏好程度时间间隔特征,并依次利用上述三种特征对用户 组进行排序,得到三个有序的用户组序列;
步骤S7:利用排序聚集技术综合所述三个有序的用户组序列,得到 一个整体有序的用户组序列,从而得到最可能的攻击用户组;
步骤S8:通过组偏好程度值比例特征得到与所述最可能的攻击用户 组对应的最有可能被攻击的目标项目组。本发明提出的基于时序数据的 推荐系统攻击检测算法通过深入研究组攻击行为的特点,提出三个组攻 击检测特征,这三个特征分别是从偏好程度值的角度、时间间隔的角度 和偏好程度分布的角度来检测组攻击行为,从而使得该检测算法不仅能 够检测最可能的攻击用户组,同时还能检测被该组攻击用户攻击的目标 项目组,在真实的场景中有着重要的应用价值。上述方法不仅能够检测 攻击用户组还能同时检测目标项目组,在组攻击数据集上有很好的检测 效果。
附图说明
图1是本发明中基于时序数据的推荐系统攻击检测方法流程图;
图2是利用本发明提出的攻击检测方法进行实验1的性能比较图;
图3是利用本发明提出的攻击检测方法进行实验2的性能比较图。
具体实施方式
下面详细说明本发明技术方案中所涉及的各个细节问题。应指出的 是,所描述的实施例旨在便于对本发明的理解,而对其不起任何限定作 用。
图1示出了本发明提出的基于时序数据的推荐系统攻击检测方法流 程图。如图1所示,该方法包括如下步骤:
步骤S1利用用户-项目偏好程度数据集和频繁项集挖掘技术,得到 候选的用户组和候选的项目组;
步骤S2基于第一步中得到的用户组和项目组,为每对用户组和项 目组计算“组偏好程度值比例”特征,用来描述组攻击行为偏好程度值 上的特性;
步骤S3将项目组中各项目的所有偏好程度按操作时间的先后顺序 进行组织,形成按时间有序的偏好程度数据;
步骤S4为用户组和项目组对计算“组偏好程度时间间隔”特征, 捕获组攻击行为的时间间隔特性;
步骤S5为用户组计算“组平均熵”特征,从一组用户偏好程度分 布的角度来检测组攻击行为;
步骤S6对于各用户组,选择其对应最大的“组偏好程度值比例” 特征和最大的“组偏好程度时间间隔”特征;依次利用上述三种特征, 将用户组进行排序,从而得到三个有序的用户组序列;
步骤S7利用排序聚集技术综合这三个有序的用户组序列,得到一 个整体有序的用户组序列,从而可以得到最可能的攻击用户组;
步骤S8通过“组偏好程度值比例”特征得到一个与用户组序列相 对应的项目组序列,从而得到被攻击用户组攻击的目标项目组。
下面详细介绍上述几个步骤。
给定用户集U和项目集I,所有用户和所有项目构成集合D=U×I, 所有用户的偏好程度rui构成了用户-项目偏好程度数据集,记为R。
R={rui|(u,i)∈D} (1)
在具体介绍各步骤之前,先介绍后面会使用的相关符号所表示的涵 义。GU表示用户组集合,GI表示项目组集合,Gum表示第m个用户组,Gin表示第n个项目组,|Gum|表示第m个用户组中的用户个数,|Gin|表示第n个 项目组中项目的个数。
设置检测算法中的参数θ1和θ2,θ1和θ2是用于获取候选的用户组和 项目组的两个参数。
在本发明方法中,我们使用频繁项集挖掘技术来分别得到候选的用 户组和项目组,而频繁项集挖掘技术需要人为设定最小支持度,故本发 明方法中设置的θ1和θ2参数用于频繁项集挖掘技术。
步骤S1中,利用用户-项目偏好程度数据集R来构造两个事务数据 T1、T2,其中T1是各用户所评过分的项目的集合,T2是评过各项目的用 户的集合。对U中的每一个用户u(u∈U),将其评过分的所有项目构成一 个事务t1u,所有用户的事务的集合就构成了T1;对I中的每一个项目 i(i∈I),将对其评过分的所有用户构成一个事务t2i,所有项目的事务的 集合就成了T2。
T1={t1u|u∈U} (2)
T2={t2i|i∈I} (3)
在得到T1后,我们将频繁项集挖掘算法的最小支持度阈值参数设置为θ1, 并将T1和θ1提供给频繁项集挖掘技术。如果一个由若干项目构成的集合, 在事务数据T1中出现的次数大于最小支持度阈值θ1,那么频繁项集挖掘 技术就判定该集合为一个频繁的模式,我们将此频繁模式中包含的所有 项目作为一个候选的项目组。频繁项集挖掘技术通过使用Apriori算法 来产生所有的候选项集(Apriori算法通过使用一种逐层搜索的迭代方 法来产生所有的候选项集,即先找出k项集,然后利用k项集找出k+1项 集),然后判断这些候选项集的支持度是否大于最小支持度阈值θ1,从 而判断其是否是一个频繁的项集,进而决定我们是否将其作为一个候选 的项目组。于是,我们通过利用频繁项集挖掘技术可以得到候选的项目 组集合GI。类似的,将θ2作为频繁项集挖掘的最小支持度阈值,对T2使 用频繁项集挖掘技术,就可以得到候选的用户组集合GU。
步骤S2中,对每对用户组和项目组计算“组 偏好程度值比例”特征的值GVRmn。
其中Iij函数是用于统计用户偏好的项目个数,rij是用户i对项目j的偏好 程度值。
步骤S3中,将所有用户对项目i(i∈I)设定的偏好程度值,按照用户 对项目i设定偏好程度值的时间先后顺序进行组织,从而形成按时间有 序的用户-项目偏好程度数据R′。R′中包含的内容与R中包含的内容是相 同的,只不过R′中每一列的用户偏好程度值都是按时间有序的。
步骤S4中,因为在用户-项目偏好程度数据R′中,每一列中的用户 偏好程度值都是按时间先后顺序进行排列的,从而对任一给定的项目, 我们很容易得到用户对其最近和最早的操作时间Tpe和Tps,为每个用户组 Gum和项目组Gin对计算“组偏好程度时间间隔”特征的值GRTImn。
其中Tpe和Tps分别是用户组Gum中对项目p的最近和最早操作时间,rqp是用户q对项目p的偏好程度。
步骤S5中,为用户组Gum计算“组平均熵”特征的值GAEm。
其中sk表示偏好程度值为k的偏好的项目个数,n表示用户q所有操 作过的项目个数,C={1,2,3,4,5}是系统中不同偏好程度值的集合。
步骤S6中,对于用户组Gum,分别为“组偏好程度值比例”特征、 “组偏好程度时间间隔”特征和“组平均熵”特征取最大值。
GumGVR=max{GVRmn|m∈GU,n∈GI} (9)
GumGRTI=max{GRTImn|m∈GU,n∈GI} (10)
GumGAE=GAEm (11)
对于每一特征,每一用户组都会对应一个最大值,而又有|Gum|个用户组, 故对于每一个特征按照每一用户组对应的特征值大小对用户组进行排 序,从而得到三种特征的三个有序用户组序列SGVR、SGRTI和SGAE。
步骤S7中,利用排序聚集技术综合SGVR、SGRTI和SGAE这三个有序的 用户组序列,即按照一定的规则(例如:Borda命题。对于给定的三个 有序的用户组序列,Borda命题为每一个用户组计算一个分值,然后依 据各用户组的分值大小来进行排序,从而得到一个整体有序的用户组序 列。)来综合每一对元素在各有序序列中的先后顺序,从而得到一个全 局有序的用户组序列SGlobal。
步骤S8中,对SGlobal中每一个用户组Gum,将“组偏好程度值比例” 特征的最大值所关联的项目组Gin定义为与Gum关联的目标项目组,于是 SGlobal中排在最前的就是最可能的攻击用户组,与该用户组相关联的目标 项目组即为最可能的目标项目组。
下面通过在一个从网络竞赛收集的数据集(CANT)上执行本发明产 生的攻击检测方法,方法的输入是包含正常偏好程度和异常偏好程度的 偏好程度矩阵,算法的输出是最可能的攻击用户组和对应的目标项目 组。通过利用Precision指标、Recall指标和F—measure指标,可以验 证本发明方法的有效性。Precision指标是用来度量检测出来的结果中 正确结果所占的比例,Precision值越大,表示检测算法的效果越好; Recall指标是用来度量正确检测的结果在总的正确结果中所占的比例, Recall值越大,表明检测算法的效果越好;F—measure指标是Precision 和Recall指标的综合,用于反映整体效果,F—measure也是值越大表示 效果越好。
CANT数据集是由正常的偏好程度数据和攻击的偏好程度数据组合 而成,正常的偏好程度数据是从特定网站收集而得,包含300个用户对 300个项目的偏好程度数据,攻击的偏好程度数据是由竞赛的参赛者提 供,每个参赛者有20个攻击账户,这些参赛者扮演攻击用户的角色去 攻击目标项目。由于这些参赛者都被要求攻击项目1,所以为了模拟一 组攻击用户攻击一组目标项目的场景,我们需要利用参赛者的真实的攻 击数据来构造符合这种场景的数据集。在本发明中,我们构造了两种不 同类型的数据集并分别记为CANTDataset1和CANTDataset2,其中 CANTDataset1数据集中攻击用户组大小为15,目标项目组大小为5; CANTDataset2数据集中攻击用户组大小为20,目标项目组大小为7。在 本发明中,我们分别为每一种类型的数据集构造10个数据集,然后在 这些类型的数据集上执行本发明产生的检测算法,并与经典的攻击检测 方法进行比较。
表1是本发明方法在两种类型的CANT数据集上检测攻击用户组的 性能。由该表可以看到,本发明方法能够取得非常高的Recall(等于1), 这表明本发明方法能够有效的检测攻击用户组。从该表还可以看出,本 发明方法还有很高的Precision值,而且在CANTDataset2上的 Precision要CANTDataset1上的Precision要高,这表明本发明方法在 检测攻击用户组时只有较低的误检率而且倾向于检测较大的攻击用户 组。同时,本发明方法在两种类型的CANT数据集上都有较高的 F—measure值,这说明本发明方法的整体性能很好。
表2是本发明方法在两种类型的CANT数据集上检测目标项目组的 性能。从表2可以发现,本发明方法在检测目标项目组时也能取得很高 的Recall,这表明本发明方法能够正确的检测出目标项目组。由表2 中较低的Precision值可知,本发明方法在检测目标项目组时会有一定 的误检率,Precision值较低的另外一个原因是目标项目中的项目个数 较少,此时如果有少量的误检项目,就会导致Precision值较低,这一 点体现在CANTDataset2上的Precision要比CANTDataset1上的 Precision要大,这表明本发明方法倾向于检测较大的目标项目组。较 高的F—measure值表明本发明方法在检测目标项目组时有较好的表现。
表3是本发明方法与经典的攻击检测方法在检测单个的攻击用户方 面的性能比较。由表3可知,本发明方法在检测单个攻击用户时也能取 得不错的结果,而且随属于攻击用户组的攻击用户个数的增加,本发明 方法检测的越准确。从表3中可以看出经典的攻击检测方法在两种类型 的CANT数据集上的性能都很差,这主要是由于该数据集太过稀疏导致 经典的攻击检测方法不能如此的工作,这表明本发明方法不仅在检测单 个攻击用户方面有一定的效果,而且还能较好的处理稀疏数据问题。
表1:检测攻击用户组
表2:检测目标项目组
表3:检测单个攻击用户
图2示出了本发明中协同过滤推荐算法在实验1(CantDataset1)上 的性能比较图。由图2可以看出,MAE和RMSE指标在未移除攻击用 户前要比移除攻击用户后高,这表明我们的检测算法能够很好的将那些 影响推荐结果的用户给检测出来。
图3示出了本发明中协同过滤推荐算法在实验2(CantDataset2)上 的性能比较图。由图3可以看出,推荐算法在未移除攻击用户前的 CantDataset2数据集上的MAE和RMSE指标要比移除攻击用户后的指 标高,这说明通过利用本发明的检测算法检测出攻击用户并将其移除 后,会提升推荐系统的准确率。
以上实施例表名,本发明方法不仅能够很好的检测出攻击用户组, 而且还能同时检测出目标项目组,另外本发明方法还能较好的处理稀疏 数据,而稀疏数据在实际中是广泛存在的,所以说明本发明方法具有重 要的研究意义和广泛的应用价值。
机译: 在社交图中基于连接时序数据生成会员个人资料推荐
机译: 一种基于分析个性化健康检查数据的推荐营养和非推荐营养内容信息服务的方法
机译: 一种基于知识结构的评估多内容的方法,一种使用该方法的设备以及一种利用知识结构推荐内容的方法