推荐系统中基于目标项目分析的托攻击检测研究(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-10 05:13:39

点击下载

作者:周魏,文俊浩

出版社:重庆大学出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

推荐系统中基于目标项目分析的托攻击检测研究

推荐系统中基于目标项目分析的托攻击检测研究试读:

前言

个性化推荐技术作为一种解决信息超载问题最有效的工具,但是由于推荐系统开放性的特点,恶意用户可以通过注入伪造的用户概貌以改变目标项目在推荐系统中的排名,此类现象称为托攻击。托攻击行为使推荐系统向用户推荐被操纵的商品或信息,干扰了推荐系统的正常运行,阻碍推荐系统的应用和推广。本书的主要内容如下:

分析了推荐系统国内外研究现状和面临的主要挑战;分析推荐系统中相似度计算方法、托攻击检测评价指标和现有的用于托攻击检测的概貌属性,并对推荐系统中概貌属性提取技术进行分析。

针对托攻击群体性特征以及用户评分矩阵稀疏性的特点,提出一种基于目标项目分析(TIA)的托攻击检测框架。首先,找出有攻击嫌疑的疑似托攻击用户集合;其次,构建由这些疑似托攻击用户概貌组成的评分矩阵;最后,通过目标项目分析方法得到攻击意图和目标项目,检索出托攻击用户。

通过分析真实用户概貌和托攻击用户概貌属性值的分布,在基于目标项目分析的托攻击检测框架基础上提出了两种托攻击检测算法,基于RDMA和DegSim概貌属性的方法(RD⁃TIA)和基于一种新的概貌属性DegSim’的检测方法(DeR⁃TIA)。

针对现有的SVM托攻击检测算法存在的缺陷以及推荐系统托攻击检测中存在的类不均衡问题,本书提出了使用自适应人工合成样本方法Borderline⁃SMOTE来缓解类不均衡问题。提出了一种结合目标项目分析和支持向量机(SVM)的检测方法(SVM⁃TIA)。

根据虚假用户恶意注入的评分信息在时间节点上具有集中性的特点,以及真实评分与托攻击评分在统计学上呈现的不同分布特征,提出了一种基于目标项目分析和时间序列的托攻击检测算法(TS⁃TIA)。

本书受国家自然科学基金面上项目“基于异构服务网络分析的Web服务推荐研究”(No.61379158),国家自然科学基金青年基金项目“基于用户生成信息分析和异常群组发现的推荐系统托攻击检测研究”(No.61602070)等项目的资助。

本书的编写和出版受到了重庆大学软件学院的大力支持,在此表示衷心的感谢。

限于本书作者的学识水平,书中疏漏之处在所难免,恳请读者批评指正。著 者2016年9月  第1章 绪 论1.1 研究背景与意义1.1.1 研究背景

随着计算机和网络技术的迅速发展,人们的难题已经从如何获得信息,到如何从海量的信息中找到需要的知识。由于用户难以对海量的信息进行直接利用,这导致信息资源的使用效率较低,即所谓的[1]“信息过载”(Information Overload)问题。当今网络上各类信息纷繁复杂,因此在海量的信息中高效、及时地获取信息显得尤为重要,在海量信息中进行信息检索对用户来说是一个巨大的挑战。日常生活中不乏海量信息的例子,如Netflix的电影信息,当当网和亚马逊上的书籍信息,以及YouTube上数以万计的视频信息等。如果用户不依靠相应的工具对信息进行过滤,试图找到有用的商品或信息无异于大海捞针,因而信息资源的爆炸式增长反而降低了用户对信息资源的利用率。目前主要有两种工具应对信息过载问题,即搜索引擎和推荐系统。

①搜索引擎是指运用一定的策略,使用特定的程序对互联网上的信息资源搜集整理,对信息组织和处理后,供用户输入关键词查询的

[2]系统。它搜集并整理互联网上的信息并根据用户的查询关键词返[3]回相应结果。搜索引擎不仅能够满足人们绝大多数的搜索需求,还可以按照用户的方式对搜索结果进行个性化排序。根据有关调查报告显示,截至2014年6月,中国搜索引擎用户数达到50 749万人,较(1)去年同期增长3 711万人,增长率为7.9%。这表明搜索引擎已经逐渐融入人们的日常生活之中。

搜索引擎虽然在用户能提供明确需求时功能强大,但是它只能被动地向用户展示信息,无法主动地向用户提供服务,具有一定的局限性。同时对用户而言,将需求表达成一个或者几个合适的关键词是一个较大的挑战。例如,用户面对成千上万的音乐专辑时,往往难以找出符合自己兴趣音乐的关键词。此时搜索引擎难以提供有效的帮助,这就需要一个更为自动化的信息过滤工具帮助用户从庞大的音乐库中找到其感兴趣的音乐。另外,搜索结果的排序受到用户越来越多的关注,如何对搜索结果进行排序显得尤为重要,而竞价排名的出现,也成为搜索引擎被人诟病的原因之一。

②推荐系统是一种通过分析用户的历史行为信息、使用习惯等向[4]用户主动推送信息的工具。电子商务是推荐系统的主要应用领域,在电子商务不断发展壮大的今天,各种商品信息在电子商务网站上不断涌现,用户往往需要花费大量的时间在各类商品信息中寻找自己想要的商品。推荐系统通过对用户的历史消费习惯、点击情况等信息进行分析,向用户呈现感兴趣的甚至是潜在感兴趣的商品,从而减少用户浏览无用信息的时间以帮助用户获得更好的购物体验,并且能够为电子商务站点带来更多的营业额。

推荐系统促进了电子商务的发展,同时电子商务的进一步发展依赖于推荐系统自身功能的完善。推荐系统需要用户大量的历史记录作为预测的依据,一般来说,用户提供的历史数据越多,推荐系统向用户推荐的结果就越准确。推荐系统管理者希望用户能够提供对项目真实的评价从而使推荐系统能够产生高质量的推荐服务,然而在现实中,恶意用户利用推荐系统评分驱动的工作机制与开放性的特点来谋求不正当利益。恶意用户向推荐系统中注入虚假评价信息以达到干扰推荐系统正常推荐的目的,其结果是损害正常用户的利益和推荐系统[5]的信誉。例如在电子商务平台中,部分厂商为了销售更多的商品,向推荐系统注入虚假的评分信息或评论信息来提高商品在推荐系统中的排名;或者使用类似的方法打压竞争对手销售的产品,以此来提高自己商品的销量。现实生活中也不乏这样的例子:索尼影业公司就曾经伪造电影评论信息来宣传正在发行的电影;亚马逊网站曾遭到外来的攻击,当用户浏览与宗教相关的书籍时,系统会向用户推荐有关性[6]方面的书籍。

为了减少虚假信息对于推荐系统的影响,推荐系统管理者探讨使[7]用各种技术防御恶意程序的攻击。例如,实行实名制,审核系统用户信息,增加恶意用户向推荐系统中注入托攻击概貌的难度;使用验证码,增加恶意程序的攻击成本。然而,这些方法能阻止部分恶意程序,但同时也增加了正常用户使用推荐系统的难度,不利于推荐系统的扩展。

除了恶意程序对推荐系统的攻击之外,现实中还有专门提供托攻击服务的人群,被称为“网络水军”。例如手机软件公司为了推广自己开发的软件,通过雇佣网络水军来下载使用自己的软件,使得软件在软件排行榜上的名次上升,吸引更多的用户下载使用。网络水军的出现造成部分公司通过人为操纵下载量的方式长期占据软件排行榜前列导致了不公平竞争。

研究者对推荐系统遭受的托攻击方式进行了分类,如Burke等人[8]

2011年的研究报告就分析了4大种类、8种不同的攻击策略。推荐系统在受到托攻击之后不能准确地向用户推荐需要的信息,甚至可能向用户提供错误的推荐信息。托攻击的存在降低了推荐系统用户的使用体验,使得用户对推荐系统的信任降低。目前推荐系统托攻击检测研究尚处于初级阶段,且实际应用中攻击者的攻击方法层出不穷,因而需要进一步研究和探索具有普适性和高性能的推荐系统托攻击检测方法。1.1.2 研究意义

推荐系统作为一种信息过滤工具,其出现与普及可有效缓解信息过载问题。然而,托攻击通过操纵商品在推荐系统中的排名,使推荐系统向用户推荐被操纵的商品或信息,严重干扰了推荐系统的正常运行,阻碍了推荐系统的应用和推广。托攻击会对推荐系统造成严重影响,主要表现为以下两个方面:第一,托攻击会影响推荐结果,从而导致用户选择被攻击的项目,这将导致竞争项目之间的不公平;第二,对推荐系统来说,恶意用户概貌被注入后,推荐系统将不能推荐用户感兴趣的项目,这将影响推荐系统的声誉。托攻击干扰了系统对用户的正常推荐,严重阻碍了推荐系统在信息服务、电子商务等领域的应用和发展。

针对如何提高推荐系统的抗托攻击能力以及减少托攻击带来的不良影响,很多研究者对各类托攻击行为进行了研究,并提出了各种增加推荐系统鲁棒性的推荐方法和具有较高普适性的托攻击检测方法[7,9,10]。本书针对已有推荐系统托攻击检测方法存在的缺陷和不足,在现有用户概貌属性提取技术的基础上,研究推荐系统托攻击特征提取技术及推荐系统托攻击检测方法,研究具有重要的理论和现实意义。(1)理论意义

已有的推荐系统托攻击检测算法通过提取用户概貌属性值,在概貌属性值的基础上实施托攻击检测。然而当前概貌属性提取方法没有充分利用托攻击行为的群体性属性,不能有效描述已知类型的托攻击及无法对未知类型托攻击进行有效检测,算法检测效率随着用户概貌数据量的增加而降低。为了解决上述问题,本书研究新的托攻击特征和概貌提取技术,从而提出相应的托攻击检测方法,为推荐系统托攻击检测方法提供新思路。(2)现实意义

目前,推荐系统已经在电子商务、个性化服务推荐等领域得到广泛应用。但是恶意用户为了达到操纵推荐排名的目的,对推荐系统注入虚假概貌从而实施托攻击。本书针对推荐系统托攻击行为的群体性特点,研究了相应的托攻击检测方法,从而减少托攻击给推荐系统带来的不良影响,对促进推荐系统的正常运行,维护推荐系统的真实性、公平性及对电子商务的良性发展能够起一定的积极作用。1.2 国内外研究现状1.2.1 推荐系统研究现状[11]

20世纪末,个性化推荐系统被首次提出,其目的是为了减少信息检索的工作量。1992年John Riedl和Paul Resnick建立了一个新闻推荐系统。该系统通过分析用户对文章的历史评分,挖掘出用户的评分模式,从而预测用户对其他文章的喜欢程度,这是最早的协同[12,13]过滤系统推荐系统之一。随着互联网技术的不断发展,作为从海量信息中挖掘用户感兴趣信息的工具,推荐系统受到越来越多的重视。通过分析用户历史兴趣爱好,推荐系统在用户群中找出与目标用户相似的近邻用户,并利用近邻用户对商品或信息的评价,预测目标用户对项目或信息的喜好度。推荐系统能够在用户需求不明确的[13,14]情况下,主动为用户推荐有用的信息。

推荐系统按照使用的技术分类可分为基于内容的推荐、协同过滤[15⁃17]推荐、混合推荐3种,其中协同过滤推荐技术是目前使用范围较广的一种,受到了众多研究者的关注,并在电子商务平台中被广泛应用。协同过滤技术主要包括基于存储的推荐方法和基于模型的推荐方法,另外还有将二者结合的混合型推荐方法。混合型推荐方法同时考虑各类因素来提高推荐算法的精确性,例如用户可信度、关联规则、聚类算法等。协同过滤推荐技术能满足用户的个性化需求,在实(2)(3)(4)际中得到了广泛的应用,如亚马逊、新浪微博、豆瓣、淘宝网(5)等均采用这种方法。另外随着社交网站的兴起,结合社交网络属性信息如身份信息、位置信息等向用户提供推送信息已成为个性化推荐(6)的发展趋势。如社交网络平台Facebook上的广告推荐就是根据用户的社交网络属性信息向用户推送广告,这是个性化推荐与社交网络平台结合的一个例子。协同过滤推荐技术使用户能更快地选择自己喜爱的商品以提高用户的满意度及购物体验,从而带来巨大的商业价值。

但是相关研究表明协同过滤技术本身存在严重的缺点和不足。协同过滤技术依赖用户描述文件(用户概貌)向用户提供个性化推荐,这将导致协同过滤算法容易受到注入的虚假用户概貌的攻击。尤其是在涉及经济利益的电子商务领域,一些恶意用户在利益的驱使下,将伪造的用户概貌注入推荐系统中,试图操纵项目在推荐系统中的排名,从而使推荐结果更符合这些恶意用户的利益;或者通过类似的手段打压竞争者的商品。恶意用户的这种注入虚假概貌的行为导致的直接结果就是推荐结果受到影响,降低了推荐系统的准确性,使得推荐系统的信誉受损。如何检测针对推荐系统的托攻击以及降低托攻击对推荐系统的影响日益成为一个重要的研究课题。本书通过研究推荐系统托攻击检测算法,旨在提高推荐系统的安全性和公平性,从而促进推荐系统的健康发展。1.2.2 托攻击检测研究状况

恶意用户向推荐系统中注入虚假用户评分数据或评价信息,试图操纵推荐系统推荐结果的行为被称为概貌注入攻击(Profile injection [18,19]attack),一般简称为托攻击。 其中,用户的异常兴趣爱好和托攻击不同,用户的异常兴趣爱好往往是单一的用户概貌,推荐系统不会因单个用户概貌而明显地改变推荐结果;而托攻击行为往往是大量的、群体的、目的性明确的操纵推荐系统推荐结果的行为,这种[20]行为会对推荐系统造成恶意影响。

托攻击对推荐系统平台有很强的威胁,针对推荐系统托攻击,构建防御托攻击算法是研究者积极研究的重点。KDD,SIGIR,ICDM,AAAI,WWW,RecSys,INFORMS Journal on Computing等多个重要国际学术会议和国际期刊多次报道这方面的研究工作。很多学者都投入推荐系统托攻击检测的研究当中,目前已经取得了一定的研究成果。但是,目前的推荐系统托攻击防范机制并不完善,例如在托攻击检测的普适性和准确性方面,仍旧需要更加深入的研究。

推荐系统能够主动地向用户推荐有用信息从而得到广泛的应用[21]。推荐算法一般通过挖掘用户评分信息向用户提供推荐项目,其中,推荐系统的评分矩阵由用户、项目以及用户对项目的评分组成[22]。在正常情况下,用户和项目数量越多,用户对项目的评分越[23]多,推荐系统的推荐质量越高。推荐系统成立之初,管理者为了尽可能多地收集用户评分信息,简化了注册审查的流程以便让更多[20]的用户创建账号,从而使推荐结果更为准确。但是实际中恶意用户利用这种推荐系统开放性的特点,有目的地向推荐系统中注入伪造的评分数据,试图改变某些商品在推荐系统中的排名,而导致其他[18,19]用户收到不准确的推荐信息。如有的商品销售者为获取更高的市场占有率,设法贬低竞争销售者的商品,打压其竞争对手,造[24]成不公平竞争。或者为了达到某种目的蓄意对推荐系统注入不客观或者有偏见的评分数据或评论信息,试图改变这些商品在推荐系[25]统中的排名以提高自身商品的推荐频率。托攻击行为的存在严重干扰了推荐系统的正常运行,导致用户不能购买或选择真正需要的商品和信息,损害正常用户正当利益,并使得用户不信任推荐系统的[26]推荐结果,从而导致推荐系统信誉和利润损失。因此,将此类托攻击评分概貌从推荐系统中找出并消除其影响是一个迫切需要解决的问题。1.3 研究内容和创新点1.3.1 研究内容

针对现有推荐系统托攻击检测研究中的问题,本书就基于目标项目分析的托攻击检测展开研究。研究内容主要包括:目标项目分析的托攻击检测模型、推荐系统托攻击概貌属性分析技术、托攻击概貌类不均衡问题、用户评分时间序列分析等。本书在基于目标项目分析的托攻击检测框架的基础上,提出了3种托攻击检测算法。本书研究路线图如图1.1所示。

本书主要研究内容包括:

①研究了推荐系统托攻击群体性和时效性的特征,提出了一种基于目标项目分析的托攻击检测框架。框架主要思想是通过寻找有攻击嫌疑的疑似用户概貌集合,分析由这些疑似托攻击概貌组成的评分矩阵,结合目标项目分析技术,辨别托攻击类型,并通过目标项目的评分和攻击类型检测出托攻击概貌。

②针对真实用户概貌和托攻击概貌属性值分布的特点,在目标项目分析的托攻击检测框架的基础上提出了两种托攻击检测方法RD⁃TIA和DeR⁃TIA。RD⁃TIA算法首先提取用户概貌的DegSim和RDMA属性值,然后将最可能是托攻击概貌的用户分离出来;最后利用目标项目分析的托攻击检测框架检索出托攻击概貌。针对DegSim在选择项目数发生变化时属性值不稳定的问题,DeR⁃TIA算法在DegSim的基础上提出了一个新的概貌属性DegSim’,此属性将每个评分级别的DegSim值映射到一个新的区间内,使得托攻击用户概貌的DegSim’值高于正常用户概貌的DegSim’值。新的概貌属性解决了RD⁃TIA算法仅能检测随机攻击模型和均值攻击模型的弊端,从而能够有效检测流行攻击模型、段攻击模型的托攻击。

③针对无监督算法需要先验知识过多的缺陷,提出了结合支持向量机和目标项目分析的托攻击检测方法,该算法基于支持向量机和K最近邻方法实现托攻击检测。针对系统标注样本的类不均衡问题以及现有的基于SVM攻击检测算法存在的缺陷,提出了一种新的托攻击检测算法SVM⁃TIA,SVM⁃TIA 使用自适应人工合成样本方法 Borderline⁃SMOTE 来解决类不均衡问题。算法在一定程度上提高了推荐系统托攻击检测的精度,从而能一定程度上保证推荐系统的鲁棒性。

④提出基于目标项目分析和时间序列的托攻击检测算法,利用注入的评分信息在时间节点上的集中性特点以及该评分分布与真实评分分布的不同,将每个项目评分按照时间戳排序,并将评分序列分成若干个时间窗口。利用包含托攻击评分的时间窗口和不包含托攻击评分时间窗口在样本均值和样本熵标准分分布上呈现差异,该方法能够根据攻击规模自适应地改变时间窗口值的大小以最大化正常窗口和包含托攻击评分窗口的样本均值、样本熵的差异。通过计算评分区间的样本均值和样本熵,找出异常的评分区间。在异常评分区间中应用基于目标项目分析的托攻击检测技术,检测托攻击评分所在的时间位置,锁定可疑时间窗口,进而利用在这个时间段内的用户、项目以及项目评分组成的评分矩阵,结合本书提出的基于目标项目分析的方法过滤真实评分概貌,以达到检测托攻击概貌的目的。本算法在托攻击评分集中分布时检测效果最明显,并且能够在推荐系统用户和项目增加时,具有较低的算法运行时间开销。1.3.2 研究创新点

本书研究具有以下创新点:

①提出了一个基于目标项目分析的方法,并在此基础上提出了基于目标项目分析的托攻击检测框架。

通过研究分析托攻击行为群体性、时效性以及托攻击者对目标项目评分的特点,首先找出可能是攻击概貌的疑似用户概貌集合,然后通过目标项目分析的托攻击检测模型分析由疑似托攻击概貌组成的评分矩阵,辨别攻击意图,识别目标项目,检索出托攻击概貌。

②提出了一种新的概貌属性DegSim’。

针对已有概貌属性在选择项目数变化时不能对复杂类型检测的问题,提出了一种新的概貌属性DegSim’,该属性通过计算每个评分级别的DegSim值,将每个评分级别的DegSim值映射到一个新的区间内。当选择项目数变化时,此属性对正常用户概貌与恶意用户概貌有较好的区分度。

③在用户评分级别而不是概貌级别识别托攻击。

针对推荐系统中真实用户在某段时间内呈现攻击行为特点的现象,本书提出基于时间序列和目标项目分析的托攻击检测算法TS⁃TIA,在托攻击评分信息级别进行攻击检测,从而避免对正常用户的误判,提高了托攻击识别的精准度。1.4 本书组织结构

本书由7个章节构成,第1章和第2章是对推荐系统托攻击相关理论分析及研究现状和文献综述。第3章提出了一种基于目标项目分析的推荐系统托攻击检测框架。在此框架基础上,第4章到第6章针对不同的托攻击类型提出了3种不同的推荐系统托攻击检测方法,并通过实验验证了所提出方法具有较优的检测性能。第7章是结论与展望。每章的具体内容如下所述。

第1章 绪论

分析了推荐系统和推荐系统托攻击的研究背景、现状以及目前推荐系统托攻击检测主流的检测方法,并提出本书的主要研究内容、研究目的。

第2章 推荐系统与推荐系统托攻击检测综述

首先对推荐系统现状和推荐系统托攻击检测进行了综述;然后,归纳总结了目前推荐系统面临的挑战,并分析与讨论了托攻击检测的研究方向;最后分析了推荐系统中的相似度计算方法和托攻击检测算法评价指标。

第3章 基于目标项目分析的推荐系统托攻击检测框架

研究了托攻击群体性、时效性以及托攻击者对目标项目评分的特性,提出了一种基于目标项目分析的托攻击检测框架。该框架的思想是首先寻找有攻击嫌疑的疑似用户概貌集合,分析由这些用户概貌组成的评分矩阵,通过目标项目分析方法辨别托攻击的攻击类型,最后根据目标项目的评分和攻击类型检索攻击用户。

第4章 基于概貌属性和目标项目分析的托攻击检测研究

在基于目标项目分析的托攻击检测框架的基础上提出两种基于目标项目分析和概貌属性提取的托攻击检测方法RD⁃TIA和DeR⁃TIA。RD⁃TIA算法首先提取用户概貌的DegSim和RDMA概貌属性,使用统计方法,将最可能是托攻击概貌的用户分离出来;然后通过目标项目分析的托攻击检测框架来检索托攻击概貌。RD⁃TIA算法用来检测托攻击中的均值攻击和随机攻击模型。在RD⁃TIA算法的基础上,通过改进DegSim概貌属性,提出了一种能检测随机攻击、均值攻击、流行攻击、段攻击以及混合攻击模型的托攻击算法DeR⁃TIA。

第5章 基于支持向量机和目标项目分析的托攻击检测研究

针对基于无监督的托攻击检测算法需要系统先验知识过多,提出了使用基于监督学习的方法检测推荐系统托攻击的算法。并考虑到托攻击检测中类不均衡问题以及现有的基于支持向量机的攻击检测算法存在的缺陷,提出了使用自适应人工合成样本方法Borderline⁃SMOTE来缓解类不均衡问题。通过在MovieLens数据集上实验并与相关工作对比,验证了所提出方法的有效性。

第6章 基于时间序列和目标项目分析的托攻击检测研究

为了适应推荐系统动态性的要求,提出了一种基于目标项目分析和时间序列的托攻击检测算法TS⁃TIA。TS⁃TIA算法将每个项目上的评分按照时间戳排序,并将评分序列分成若干个时间窗口,通过计算该区间的样本均值和样本熵,找出异常的评分的时间区间,并在异常评分的时间区间的评分矩阵中应用基于目标项目分析的托攻击检测模型实现托攻击检测。实验表明,与其他算法相比,TS⁃TIA算法大大缩短了托攻击检测所需的计算时间,并能够在评分矩阵较大时提高托攻击检测的效率。

第7章 结论与展望

本书研究工作的结论及工作展望。1.5 本章小结

本章分析了本书研究的背景和意义,阐述了国内外研究现状,分析了现有的托攻击检测算法,总结当前研究中存在的问题和不足,介绍了本书研究内容和创新点,并对本书研究路线以及各章节之间的关系进行概述。(1) http://www.cnnic.net.cn/hlwfzyj/hlwxzbg/(2)http://www.amazon.com(3)http://www.weibo.com(4)http://www.douban.com(5)http://www.taobao.com(6)http://www.facebook.com  第2章 推荐系统与推荐系统托攻击检测综述2.1 推荐系统综述

信息过载是互联网用户必须面对的一个问题,推荐系统作为一种[1]信息过滤工具,能有效缓解信息过载问题。推荐技术作为一个多学科交叉的领域,涉及信息科学、近似理论、预测理论、管理科学、[13]计算数学、统计学、认知科学等多个学科。推荐系统通过建立用户—产品的二元关系,利用用户历史行为挖掘用户潜在兴趣爱好,从而向用户提供个性化推荐。目前,越来越多的研究关注推荐系[13,27⁃29]统中的关键问题。如文献[30]将个性化推荐定义为自动调整、重新组织和定制信息的过程。个性化推荐技术在电子商务领域得到了广泛应用,并大大促进了电子商务自身的发展。如亚马逊的[1]报告显示35%的商品销售额由推荐系统产生。而典型的电子商务推荐系统包括诸如苹果公司的iTunes音乐电影推荐、Amazon.com商[31]品推荐、京东商城推荐系统、电影推荐系统 MovieLens、(1)[14]

国内的豆瓣电影、新型音乐推荐系统MusicSurfer等。2.1.1 推荐系统分类[1]

当前的研究对推荐系统的分类并没有统一的标准,按照所使用推荐算法的不同,推荐系统可分为协同过滤推荐系统、基于内容的[32]推荐系统、结合二者的混合推荐系统以及基于用户—产品二部[1,30]图网络结构的推荐系统4类。按预测方法分类,推荐系统可[33][34]分为基于模型的推荐系统和基于记忆的推荐系统。按知识[22]源进行分类,推荐系统可分为协同推荐系统、基于内容的推荐

[33][35]系统、基于知识的推荐系统等,本书采用第一种分类方法对推荐系统进行分类。(1)协同过滤推荐系统

协同过滤推荐技术是被应用较为广泛的推荐技术之一。协同过滤通过分析用户A的喜好和历史行为习惯,建立用户兴趣模型,然后在用户群中找到与用户A兴趣相似的邻居用户,通过分析相似用户对某[36]项目的评分,预测得到用户A对此项目的喜好度。按照选择近邻类型的不同,协同过滤推荐系统可以进一步分为基于用户的和基于项目的协同过滤推荐。

基于用户的协同过滤通过用户对项目的评分向量计算得到各个用[37]户之间的相似性,然后在用户相似性的基础上做出推荐。基于[38,39]项目的协同过滤推荐算法是由Sarwar等人在第十届WWW会议上首次提出的,该方法将项目受到的用户评分表示为向量的形式,然后计算向量之间的距离从而得到不同项目间的相似度,最后在项目[40]间相似度的基础上做出推荐。如亚马逊网站使用的推荐算法就是典型的基于项目的推荐技术。

综上所述,协同过滤推荐技术主要有下述几个方面的优点。

①通过共享相似用户的历史记录,推荐系统能够对计算机难以识别和理解的信息,如书籍、音乐、文字等进行信息过滤。

②能够发现用户潜在的兴趣爱好并向用户推荐,从而具有向用户推荐新信息的能力。

协同过滤作为一种应对信息过载的工具得到了广泛应用,但也存在许多问题,协同过滤技术主要面临两个问题:一是评分数据稀疏性问题。由于系统中的评分矩阵极度稀疏,指定用户或项目很难找到最近邻,因而系统使用不完整的信息进行评分预测,影响了推荐结果;另一问题是可扩展性问题。在实际电子商务系统中,随着用户量和项目数据的不断增加,所需的计算量迅猛增长,这对推荐算法的可扩展[41]性是一个挑战。(2)基于内容的推荐系统

与协同过滤推荐系统相比,基于内容的推荐系统不受评分矩阵稀疏性问题的约束,能对新产品进行推荐,并能够发现隐藏信息。例如在视频推荐系统中,系统首先分析用户的历史浏览信息从而得到用户的历史偏好向量,同时对视频的特点进行向量描述(类别、长度、清晰度等属性),进而计算得到视频与该用户历史偏好向量的相似度,最后选择相似度较高的视频推荐给用户。(3)混合推荐系统

为了避免单一类型推荐系统的不足,混合推荐系统结合基于内容的推荐系统和协同过滤推荐系统的优点构建而成。其中,协同过滤技术消除了对资源描述信息的依赖,而基于内容的推荐技术可以帮助解[42]决冷启动问题和评分数据稀疏性等问题。混合推荐系统已经在电子商务等领域得到了广泛应用,并具有比单一类型推荐系统更良好[34,43]的推荐结果。2.1.2 相似度计算方法

相似度计算是推荐算法的重要组成部分,在推荐算法做出推荐之前,需要计算用户间的相似度或者项目间的相似度。其中,皮尔森相关系数、余弦相似性和修正余弦相似性是较为常用的3种相似度度量方法,本书以皮尔森相关相似度和余弦相似度为例计算用户间的相似[13]性:

公式(2.1)和公式(2.2)分别是用户间皮尔森相关相似度和余弦相似度计算公式。其中u和v是推荐系统中的用户,r是用户u对u,i项目i的评分,其中是用户u对项目评分的均值;r是用户 Sim(u,v)u和v的相似度,I(u)是用户 u评过分的项目集合,I(u)∩I(v)是用户 u 和用户 v评过分项目评分集合的交集。2.2 推荐系统托攻击[18,28]“托攻击”一词在2002年被首次提出。恶意用户通过某种攻击模型,伪造用户评分概貌,并使得伪造的用户评分概貌在评分矩阵中成为正常用户的邻居。由于协同过滤技术是基于最近邻来产生推荐结果的,并且推荐系统具有公开的特性,因此恶意用户能够伪造成为正常用户邻居的方式干预推荐系统推荐结果,从而增加或减少目[44]标项目被推荐的次数。为了更好地理解推荐系统托攻击,本节先给出基于用户的协同过滤推荐系统和托攻击检测相关的几个名词。

用户(Users):推荐系统中评分的主体,评分主体一般是人。

项目(Item):推荐系统中供用户评分的商品或信息,这些商品或信息可以是电影、书籍、音乐等。

项目评分(Rating on Item):在推荐系统中,用户对某个项目的评分。分值一般为整数,如1、2、3、4、5。0表示用户未在该项目上评分。

评分矩阵(Rating Matrix):由用户、项目以及用户对项目的评分组成的一个二元矩阵。

概貌(Profiles):在基于用户的推荐系统中,一个用户对所有项目评分的集合称为这个用户的概貌。

托攻击者(Shilling Attackers):托攻击者是在推荐系统中,为了达到某种目的,在推荐系统中注入人造的评分数据,以达到改变推荐系统推荐结果的目的用户,也称为恶意用户。

托攻击概貌(Shilling Attack Profiles):托攻击者实施托攻击行为时向系统注入的虚假评分的集合构成用户评分概貌,称为托攻击概貌。

目标项目(Target Item):托攻击者选择攻击的项目。

填充项目(Filler Item):为了防止被轻易检测出,除了目标项目评分外,托攻击者选取的其他评分项目的集合进行评分,从而使托攻击概貌与真实概貌尽可能相似。

未评分项目(Unrated Item):在一个用户概貌中,用户未评分的项目的集合。评分矩阵中一般用整数“0”表示该用户未对对应位置上的项目评分。

攻击模型(Attack Model):托攻击者为了达到不同的托攻击目的所采用的目标项目和填充项目的选择方式和评分方式。

攻击目的(Attack Intent):攻击目的表示攻击者执行的一次攻击的意图。攻击者根据目标项目的喜好程度,主要分为提高目标项目排名的“推攻击(push attack)”和降低目标项目排名的“核攻击(nuke attack)”。

填充规模(Filler Size):攻击概貌中填充评分的个数占评分矩阵中所有项目的个数或比率。

攻击规模(Attack Size):攻击者实施一次攻击所使用的托攻击概貌的个数或占评分矩阵中所有概貌的比率。2.2.1 托攻击攻击模型建模

推荐系统攻击行为建模主要研究恶意用户根据推荐系统、评分矩阵、用户和项目等知识,实施托攻击所使用的方法。托攻击者按照一定的规则,即托攻击模型,生成大量评分概貌,将这些评分概貌注入推荐系统评分矩阵中,完成托攻击。托攻击模型可用以下四元组表示。

M = < χ,σ,λ,γ > (2.3)其中M是攻击模型,其由ATTATT四要素组成。χ是为目标项目集合I确定评分数据的函数,I集合可以TT是一个,也可以是多个;对于推攻击,χ(I)=r ,对于核攻Tmax击,χ(I)=r 。 σ 表示 I-I的选择函数,包括攻击概貌中的选TminT择集合 I和填充集合 I;σ(i,I,U,Χ)= <I,I,I>,其中 ISFtSFE是项目集合,U是用户集合,X是某种特定的攻击类型的各种参数集合,I表示未评分集合。λ和γ是确定选择集合I和填充集合I评分数ESF据的函数。

为了达到改变目标项目排名的目的,托攻击者将由一种或多种攻[45,46]击模型生成托攻击概貌注入推荐系统中。对托攻击者来说实施托攻击有两个目标:第一是注入多个攻击概貌以达到攻击意图(推攻击或者是核攻击);第二个是使注入的攻击概貌尽量不被发现,这就要求攻击概貌尽量与真实用户概貌相似,从而避免被检测到。托攻击检测算法则尽可能对托攻击者进行检测,为了对托攻击的效果进行评定,下面介绍几种托攻击的评价指标。(1)费效比(cost/benefit)

费效比是指攻击成本/攻击效果是从攻击者的角度出发,计算向推荐系统注入托攻击概貌的成本和获得的效益之比。攻击成本是指托攻击者向推荐系统注入攻击概貌时付出的时间成本和经济成本。而费效比指的是托攻击者实施托攻击的成本与带来的经济效益之比,费效[47,比越低,攻击效果越好。攻击成本可使用以下指标来评价48]。

1)攻击规模

攻击规模是指恶意用户注入的攻击概貌占正常概貌的比例。对攻击者来说,向系统中注入的攻击概貌越多,攻击效果越好,相应的攻击难度也就越大。

2)经济成本

经济成本是指恶意用户实施托攻击的经济成本。例如有的推荐系统要求在用户对项目评分之前,需要先购买一些商品,这些商品的购买代价就是托攻击的经济成本。

3)领域知识

领域知识是指实施攻击所需要的有关推荐系统的知识。假如托攻击用户事先知道用户与项目评分的分布情况,则更容易实施托攻击。

4)系统界面

系统界面是指托攻击者与推荐系统交互的难度。例如,动态验证码会增加托攻击者注入托攻击的难度和时间。(2)MAE(Mean Absolute Error)[49]

MAE是计算推荐系统预测评分与用户评分差异的度量。如公式(2.4)所示,r是用户 u 对项目 i的评分,而是推荐算法计u,i算出的用户u对项目i的预测评分。N是所有预测的数目。(3)预测偏移(Prediction shift)[106]

预测偏移是一次托攻击实施前后预测值变化的度量,因此预测偏移可以度量托攻击对推荐系统的影响。其中p是托攻击概貌u,i注入之前的推荐系统在向用户u在Item 上的推荐评分;p′是托攻击iu,i概貌注入之后的推荐系统在向用户u在Item 上推荐的评分;二者之差iΔ就是托攻击概貌注入后,用户u在Item 上预测变化值。u,ii

公式(2.5)计算用户 u 在 Item 上的预测评分值 p。iu,i

公式(2.6)计算在托攻击概貌注入推荐系统后,实用推荐系统算法计算用户 u 在 Item 上的预测评分值 p′。iu,i

公式(2.7)计算攻击前后用户u在item上的预测评分值的偏移i量。

公式(2.8)计算攻击前后在item上所有未评分项的预测评分值i的偏移量的平均值。

公式(2.9)计算攻击前后,推荐系统中所有未评分项的预测评分值的偏移量的平均值。2.2.2 攻击模型分类

托攻击概貌是由不同类型的攻击模型生成的,因而攻击概貌的主要构成部分是相同的。本节将介绍托攻击概貌组成结构,然后再介绍不同类型的托攻击模型。托攻击概貌的一般结构见表2.1。[50]

从表2.1可以看出,一个托攻击概貌主要包含4个部分。IS为选择项目集合,通常是项目集合中比较流行或者评分比较多的项目;I为填充项目集合,攻击者为了使攻击概貌不容易被检测到,在F项目集合中选择的一定数量的项目;I为目标项目集合,是攻击者攻T击的对象,根据攻击类型和攻击意图不同,一次攻击中有单个或者多个目标项目;I为未评分项目集合,即攻击概貌中未被评分的项目的E集合。根据部分项目选择方式和评分方式的不同而得到不同的攻击模型。(1)随机攻击(Random attack)

如表2.1所示,随机攻击模型的选择项目集合为空(I=⌀);目S标项目I的评分按攻击意图I=r (推攻击)或r (核攻击)。TTmaxmin填充项目集合I是从项目集合I-I中随机进行选取,并且对∀Item∈FT2I,有I~N(μ,σ),其中μ和σ分别是评分矩阵中所有项目评分均FF值和标准差。对攻击者来说,随机攻击是一种低知识成本的托攻击,托攻击者只要知道推荐系统评分矩阵中项目评分的均值与标准差就可[25]以实施攻击,而攻击者很容易得到这两个值。(2)均值攻击(Average attack)

均值攻击模型是一种和随机攻击模型相似的一种攻击模型。均值攻击模型各个组成部分如下:选择项目集合为空(I=⌀);目标项IST的评分也满足I=r (推攻击)或r (核攻击);填充项目集合ITmaxminF是从项目集合I-I中随机进行选取,并且对∀Item∈I,有 I~N(μ,TFF2σ),其中 μ 和 σ 分别是评分矩阵中所有项目评分均值和标准差。与随机攻击模型不同,均值攻击模型用于抽样项目评分的正态分布是由每个项目决定的,因而相对随机攻击模型,均值攻击模型是一种较高知识成本攻击。攻击者构造托攻击概貌时,需得到评分矩阵中每个填充项目评分的统计数据。由于均值攻击模型生成的托攻击概貌和真实[51]用户概貌非常相似,因而具有较强的抗托攻击检测能力。(3)段攻击(Segm ent attack)[47,52]

段攻击模型除了能对特定的目标项目实施攻击,还能[53]够对段内的一组项目实施攻击。在段攻击模型中,攻击者为了达到攻击目的,需要最大限度地提高目标项目与段内选择项目集合的相关性,并降低目标项目与段内填充项目集合I的相关性。例如,推F荐系统把数据结构相关书籍推荐给选购了《C++程序设计》的群体,而不是推荐给经常购买奶粉的群体。段攻击通过I选择攻击对象,S从而绑定目标项目到相应用户群。攻击者选择的选择项目集合I的项S目类型和目标项目类型一致,其中选择填充集合I的用户群就是其攻S击对象。段攻击模型组成结构如下:托攻击者对选择项目集合I与目S标项目评最高分,即对∀Item∈I,令I=r 且I=r ;填充项目SSmaxTmax集合I是从项目集合I-I-I中进行随机选取,对∀Item∈I,有I~FSTFFr 。段攻击模型仅需要知道目标项目类似的项目而不需要知道项目min[26,78]的平均得分,因此是一种低知识成本的攻击模型,且段攻击能显著影响推荐系统对选择项目集合绑定的相应用户群的推荐[53][24,48]。 段攻击模型是一种低知识成本的攻击模型。(4)流行攻击(Bandwagon attack)

流行攻击模型是一种特殊的随机攻击,它与随机攻击模型的最大区别是其选择项目集合I是非空的。托攻击者选择具有较高关注度的S项目集合作为流行攻击的选择项目集合I。选择项目集合I通常是流SS行度较高的项目,流行攻击模型托攻击概貌组成结构如下:将所有选择项目集合I内的项目赋予最高评分;填充项目集合I和随机攻击模SF型中的一致,均是从集合 I-I-I随机选取,对∀Item∈I,有 I~STFF2N(μ,σ),其中 μ和σ分别是评分矩阵中所有项目评分均值和标准差。目标项目I=r (推攻击)或r (核攻击)。例如在电影推Tmaxmin荐系统中,攻击者选择正在流行的电影作为其选择填充项,例如将有普遍用户好评的电影《魔戒》和《机器人总动员》等好评的项目作为其选择填充项,给予最高评分。流行攻击模型体现了20/80法则:80%的项目评分用在20%的项目上。由于很多用户对这些流行项目评分较高,所以流行攻击概貌与很多真实用户概貌有较高的相似度。与随机攻击一样,流行攻击也是一种低知识成本攻击,引入了选择填充[54]项,比较适合在实际环境中部署。(5)喜/憎攻击(Love/Hate attack)

随机攻击模型、均值攻击、段攻击以及流行攻击等攻击模型都可以用作推攻击或者核攻击意图。但是不是所有的攻击模型都适合同时实施两种攻击。喜/憎攻击模型就是为核攻击专门设计的。喜/憎攻击模型比较简单,仅需要较少的系统知识,并对目标项目给予最低评分,而对其他的项目给予最高评分。即:I=r (推攻击)或r Tmax(核攻击);对于攻击概貌的其余部分,填充项目集合I随机选自minF集合I-I,I=r (核攻击)或r (推攻击)。TFmaxmin

除上述攻击模型,还有一些不太常见的攻击模型,如扰动攻击[55,56][48,57],反流行攻击和试探攻击等。也有将已有的几种[19]类型的攻击概貌混合在一起的混合攻击模型,例如,攻击者将随机攻击模型和均值攻击模型按比例生成混合攻击概貌,对目标项目实施攻击。混合攻击模型有较好的伪装能力,近年来受到研究者的关注和讨论。2.3 推荐系统托攻击检测2.3.1 托攻击检测方法

随着推荐系统和推荐技术受到越来越多的重视,推荐系统托攻击[58⁃60]检测技术已经成为推荐系统领域的研究热点。推荐系统托攻击检测研究虽然起步较晚,但现有的研究从不同角度研究托攻击检测,按照工作机制分为两类:一类是通过挖掘推荐系统中用户—项目评分矩阵,分析托攻击评分概貌与正常评分概貌的差异对托攻击进行检测;另一类是指利用除用户—项目评分矩阵以外的信息,挖掘[61][62][63]包括评分时间序列、用户关系、标签信息、用户信[10,52,64,65]任度等在内的信息,以达到检测托攻击的目的。在挖掘用户—项目评分矩阵的托攻击检测算法中,有的算法直接对用[66]户—项目评分矩阵进行分析从而实现对恶意用户的检测,但是此类方法只能针对用户和项目较少的评分矩阵。所以目前大多数托攻击检测技术致力于研究在评分矩阵概貌级别对托攻击概貌和正常用户[7]概貌进行区分,从而消除托攻击概貌在推荐系统中的影响。托攻击概貌一般是由某种攻击模型生成,并且托攻击概貌之间具有群体性的特性;另外攻击概貌和真实概貌在个体上具有不同概貌属性值,如正常用户与恶意用户的概貌中某些项目受到评分的个数及目标项的评[67][49]分存在差异,利用这些特征将有助于托攻击检测。[68]

托攻击者往往利用某一种或多种攻击模型构建攻击概貌。对托攻击者来说实施托攻击有两个目标:第一个是注入攻击概貌以达到攻击意图(推攻击或者是核攻击);第二个是避免注入的攻击概貌被发现,这就要求攻击概貌尽量与真实用户概貌相似,避免被检测到。但是攻击概貌和真实概貌在评分特征和群体特征上仍然具有差异,所以找出攻击概貌的群体性特征及发现托攻击概貌异于真实用户概貌的评分特征是设计出高效托攻击检测方法的关键。如果将推荐系统托攻击检测看成一个二分类问题,那么分类器的目的是将一个用户概貌归[7]入“真实”或“攻击”两类之一。托攻击分类器可通过分类技术或聚类技术实现。通过概貌属性提取技术提取用户概貌属性,并结合机器学习方法可以将托攻击概貌从真实概貌中分离出来。按分类器需[11,69,要的样本标签的多少可以将托攻击检测技术分为三大类 70][71⁃73]:基于监督学习的托攻击检测算法,基于无监督学习的[74⁃77]托攻击检测算法,以及基于半监督学习的托攻击检测算法[35,78,79]。下面详细介绍这几种托攻击检测算法。(1)基于监督学习的托攻击检测算法

基于监督学习的托攻击检测方法是通过概貌属性提取技术,提取用户概貌属性,使用有标签的用户概貌属性数据作为训练集,构造一[67,个分类器,并在测试集上对未知标签的用户概貌进行分类80]。基于监督学习的托攻击检测方法分为训练和测试两个过程。在训练过程中,在训练集上使用基于监督学习算法生成一个分类模型,构造分类器;在测试过程中,在测试集上使用得到的分类器对测试集[81]分类,并计算分类结果的准确性。因此,使用概貌属性提取技术提取能够有效区分攻击概貌和正常概貌的概貌属性,是基于监督学[82]习的托攻击检测算法的前提。文献[78]在这些用户概貌属性[83]特征的基础上构造分类器:包括最近邻方法(kNN)、决策树[84]方法(C4.5)和支持向量机方法(SVM)。 C4.5 和SVM检测结果召回率较高,但kNN方法相对SVM和C4.5方法有对真实用户误判[78,85]率低的优势,SVM方法的综合检测性能在三者中最佳。[24,86]

Williams等人提出了几种概貌属性,包括填充项方差平均FMV,填充项平均差异度FMD,填充项平均相关度FAC,概貌偏离度PV等专用概貌属性,这些概貌属性可用来检测已知的、特定类型的推荐系统托攻击;另外,平均偏离度RDMA,加权偏离度WDA,加权平均偏离度WDMA,近邻相似度DegSim,长度变量值LengthVar等通用概貌属性,这些概貌属性不针对特定类型的攻击模型。Williams等人的检测方法能有效监测已知特定攻击类型的托攻击概貌,但是该方法有较高的误报率。[70]

伍之昂等人利用概貌属性集针对某种攻击模型有效的性质,使用特征选择算法Relief为不同的托攻击类型选择不同的概貌属性集,提出了一种基于选择概貌属性的托攻击检测方法,该方法能有效检测已知攻击类型的托攻击,托攻击检测灵活性较好。但是该方法针对性较强,无法有效检测攻击类型未知的托攻击。[71]

张付志等人针对使用用户概貌提取技术描述托攻击概貌不精确的问题,提出了一种结合支持向量机和粗糙集理论的托攻击检测方法。该方法根据项目类别提出了一种概貌属性提取方法,并结合新概貌属性与Williams等人提出的概貌属性,使用支持向量机进行分类,最后使用粗糙集理论进行决策。该方法检测部分类型的托攻击有较高的召回率,但检测结果中假正率也较高。(2)基于无监督学习的托攻击检测算法

基于无监督学习的托攻击检测算法一般通过聚类方法分离托攻击[42]者类和真实用户类。基于无监督的托攻击检测算法直接操作和[87,88]处理测试集,并输出检测结果。由于基于无监督的检测方法没有使用标签信息,因此这种托攻击检测方法需要一定的先验知识[74,89,90]才能进行检测,并且需要在满足一定的假设条件下才有[82]较好的检测效果。[19]

Chirita等人将虚假的用户评分概貌认为是托攻击概貌,认为托攻击概貌的评分模式不同于真实概貌的评分模式。提出使用统计指标来区分攻击概貌和真实概貌,并根据利用托攻击概貌和真实概貌属性值的不同,提出了两个托攻击检测算法来检测托攻击概貌。这两个托攻击检测方法能有效检测填充规模密度较高的托攻击,但会导致大量真实概貌被误判为托攻击概貌。这两种方法在一定前提条件下才能成立,即假设评分矩阵中攻击概貌的数目远少于真实概貌的数目。此外,当检测托攻击概貌中填充规模较小的托攻击类型时检测精度不高。[23,91]

Lee等人提出了一种分两阶段的托攻击检测方法:第一阶段,找到最有可能是托攻击概貌的概貌集合;第二阶段,利用K⁃means聚类方法将第一阶段得到的概貌集合聚类,托攻击概貌所在的类中用户概貌之间具有最大评分偏离度进而将此类中全部用户概貌标识为托攻击概貌。该检测方法能够有效对填充率较高的托攻击类型进行检测,但无法有效检测低填充率的托攻击类型,并且该方法检测稀疏的评分矩阵时检测结果中假正率较高,会将一部分真实用户误判为攻击用户。[49,92⁃94]

Bhaumik等人通过聚类技术检测托攻击概貌。提出的算法使用K⁃means聚类将用户概貌分成两类;将少数类中的全部概貌标识为托攻击概貌,将多数类中的全部概貌标识为真实概貌。但是作为一种基于无监督的检测方法,该方法需要一定的系统先验知识。这种方法假定评分矩阵中存在托攻击,同时假定托攻击概貌的数量比真实概貌的数量少。此方法检测结果中真实概貌容易被误判为托[69,95]攻击概貌,从而导致总体检测精度不高。李聪等人分析了托攻击群体性的特征,提出了一种基于无监督的检测算法IBIGDA。IBIGDA算法在一定程度上减少了对系统先验知识的依赖,但是该算法仍假定托攻击概貌的数目比真实概貌的数目少。(3)基于半监督学习的托攻击检测算法

文献[79,96,97]中的基于半监督的托攻击检测方法根据用户的概貌属性,首先使用少量训练样本训练贝叶斯分类器,再利用大量没有标签的数据提高分类器的性能。基于半监督的托攻击检测算法的优点体现在其能够利用大量无标签的用户概貌数据提升分类器的性能。

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载