论文部分内容阅读
互联网的出现和快速发展给人们带来了海量信息,但随着信息量的爆炸增长,用户能获取到信息更丰富但也越来越嘈杂,而推荐系统被认为能很好的解决这个问题。推荐系统根据用户需要,主动向用户推荐其感兴趣的内容。和搜索引擎等通过用户来主动获取信息所不同的是,推荐系统对用户各方面信息进行个性化处理,挖掘用户需求,进而完成对用户的引导。协同过滤推荐技术在推荐系统中应用最为广泛,它基于最近邻方法,使用用户的历史信息来衡量用户间的距离,找到用户的最近邻,通过最近邻用户对项目的喜好来预测目标用户的喜好,从而决定是否将该项目推荐给用户。这种推荐技术十分有效,对非结构化对象,如视频、音乐等也能处理,但这种技术也让攻击者找到了漏洞,攻击者通过模拟正常用户的行为,将虚假信息注入到推荐系统中,导致推荐结果的有效性受到了很大影响,这类攻击称为“托攻击”。现有的托攻击检测算法主要从评分特征入手,如PCA-SAD算法、Semi-SAD算法,或者通过统计信息来获取特征,如Degree-SAD算法,本文提出一下新的托攻击检测思路,将推荐系统看作一个复杂网络图结构,用户代表用户节点,项目代表项目节点,用户对项目的评分代表节点间存在连边,通过研究节点重要性,即节点中心性特征来掌握图结构特征,节点中心性值的异常分布很可能代表着用户的异常行为,通过大量的实验对比,发现节点中心性特征对托攻击检测有着良好的效果,中心性特征结合分类算法得到了本文提出的托攻击检测算法Cdn-SAD(Central distribution of nodes-shilling attack detection)。本文从以下几个方面来展开工作:(1)归纳了推荐系统下的攻击模型,分析了现有的推荐算法,同时对图结构下节点的多种中心性度量方法进行总结。(2)研究项目节点中心性分布,提出用户节点中心性特征,并将特征与基于EM算法的朴素贝叶斯分类器结合提出基于图节点中心性特征的托攻击检测算法Cdn-SAD,实现多种攻击模型,在MovieLens100K数据集上完成攻击注入,并与Degree-SAD、PCA-SAD和Semi-SAD等算法进行实验对比,同时在全标注数据集Amazon上进行实验对比,在F1值上分别提高了26.36%,39.49%,34.97%。(3)设计和实现一个托攻击检测系统。本系统基于MVC框架,根据系统的功能主要分为两大模块,注入攻击模块和攻击检测模块。攻击注入建模块主要实现了常见的攻击注入手段,如随机攻击、平均攻击、流行攻击等,攻击检测模块主要实现了数据集预处理、特征值获取、分类器构建和托攻击检测,通过对多种托攻击检测算法的实现完成模块设计,最后对系统的运行效果进行了测试。