[发明专利]基于半监督学习的推荐系统托攻击检测方法无效
申请号: | 201110138421.7 | 申请日: | 2011-05-26 |
公开(公告)号: | CN102184364A | 公开(公告)日: | 2011-09-14 |
发明(设计)人: | 伍之昂;曹杰;王有权;毛波 | 申请(专利权)人: | 南京财经大学 |
主分类号: | G06F21/00 | 分类号: | G06F21/00;G06F17/30 |
代理公司: | 南京汇盛专利商标事务所(普通合伙) 32238 | 代理人: | 陈扬 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 监督 学习 推荐 系统 攻击 检测 方法 | ||
技术领域
本发明属于信息安全领域,具体地说是一种基于半监督学习的推荐系统托攻击检测方法。
背景技术
因特网规模和覆盖面的迅速增长带来了信息超载,我们生活在数据时代,据IDC估计2011年数据总量将达到1.8ZB (1ZB = 1,000,000PB),用户面对海量数据束手无策,难以顺利从中找到有用的信息。推荐系统(recommender system)是信息过滤的重要手段,是解决信息超载问题非常有潜力的方法。推荐算法是整个推荐系统中最核心的部分,协同过滤(collaborative filtering)是应用最广泛的推荐算法,在日常生活中,我们往往会利用好朋友的推荐进行一些选择,协同过滤正是基于这一思想,即基于其他相似用户对某一对象的评价向目标用户进行推荐。
目前,很多著名的电子商务推荐系统都是基于协同过滤的,如亚马逊网络书店、GroupLens、TiVo、Netflix、YouTube和Facebook等。然而,基于协同过滤的推荐系统极易受到托攻击(shilling attack),托攻击者通过伪造用户模型(user profile)干预系统的推荐结果,增加或减少目标对象的推荐频率。比如,某些恶意生产商或店主为了使自己的产品更加畅销,利用托攻击使得推荐系统频繁推荐自己的商品,而减少或不推荐竞争对手的商品。
托攻击检测是捍卫推荐系统安全性的重要手段,也是近年来信息安全应用领域的一个研究热点。从机器学习的角度,以往的托攻击检测方法可以分为两类,第一类托攻击检测方法是基于监督学习的,如Chirita, Burke, Mobasher等学者提出利用决策树来检测托攻击;第二类方法是基于无监督学习的,以Mehta提出的基于主元分析(principal component analysis, PCA)的算法为代表。
实际的推荐系统中往往存在大量无法确定身份的用户(称为无标记数据),而只有少量用户的身份可以确定(称为标记数据),比如淘宝网上好评率极高或极低的用户、黄冠用户等的身份容易确定,大量好评率适中用户的身份难以确定。由于标记数据量非常小,基于监督学习的托攻击检测方法的误差较大。而无监督学习则没有利用现有的标记数据集,忽视了标记数据集对未标记数据集的影响,训练出来的结果往往很难具有强泛化的学习能力。
发明内容
为了克服现有的托攻击检测方法存在的问题,本发明的目的是提供一种基于半监督学习的推荐系统托攻击检测方法。该方法首先使用朴素贝叶斯分类器(Na?ve Bayesian classifier)作为初始分类器,然后使用Expectation Maximization (EM)算法来改进分类器。本发明用于发现推荐系统中的托攻击用户,具有高效性、灵敏性和特效性,具有高检测率和低错误率。
本发明的目的是通过以下技术方案来实现的:
一种基于半监督学习的推荐系统托攻击检测方法,其特征在于该方法包括以下阶段:
1)托攻击检测预处理阶段;该阶段通过对标记数据集和未标记数据集的数据进行预处理,获得标记和未标记数据集的托攻击检测指标,然后在标记数据集上训练初始的朴素贝叶斯分类器;
如果用户的类别已知,则其属于标记数据集L,否则属于未标记数据集U;L={(u1,c1),(u2,c2),…,(u|L|,c|L|)}为标记数据集, (u1, u2, ,…, u|L|)表示用户集合,(c1, c2, ,…, c|L|)表示该用户的类型集合,而U={u’1, u’2,…, u’|U|}为未标记数据集;
2)EM-λ算法阶段;该阶段通过EM-λ算法不断迭代获取一个稳定的分类器,最终得到未标记数据集的类型;通过函数f: U→C来预测未标记用户属于正常用户normal(N)还是托攻击用户shilling(S),完成推荐系统托攻击检测。
本发明提出了基于半监督学习的推荐系统托攻击检测方法,用于发现推荐系统中的托攻击用户。本发明的初始输入是用户对项目的评分矩阵,由标记数据集和未标记数据集组成,如果用户的类别已知,则其属于标记数据集L,否则属于未标记数据集U。L={(u1,c1),(u2,c2),…,(u|L|,c|L|)}为标记数据集, (u1, u2, ,…, u|L|)表示用户集合,(c1, c2, ,…, c|L|)表示该用户的类型集合,而U={u’1, u’2,…, u’|U|}为未标记数据集。本发明的托攻击检测算法通过函数f: U→C来预测未标记用户属于正常用户normal(N)还是托攻击用户shilling(S)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京财经大学,未经南京财经大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110138421.7/2.html,转载请声明来源钻瓜专利网。