协同过滤推荐算法稳定性研究
- 格式:doc
- 大小:29.50 KB
- 文档页数:8
《推荐系统中协同过滤算法若干问题的研究》篇一一、引言随着互联网的快速发展,信息过载问题日益严重,推荐系统成为了解决这一问题的有效手段。
协同过滤算法作为推荐系统中的核心算法,其性能的优劣直接影响到推荐系统的效果。
本文将针对推荐系统中协同过滤算法的若干问题进行研究,旨在提高推荐系统的准确性和效率。
二、协同过滤算法概述协同过滤算法是一种基于用户行为的推荐算法,其基本思想是利用用户的历史行为数据,找出与目标用户兴趣相似的其他用户,然后根据这些相似用户的喜好信息为目标用户提供推荐。
协同过滤算法主要包括基于用户的协同过滤和基于项目的协同过滤两种方法。
三、协同过滤算法面临的问题1. 数据稀疏性问题数据稀疏性是协同过滤算法面临的主要问题之一。
由于用户的行为数据往往不完整,导致在寻找相似用户或项目时,可利用的数据信息有限,从而影响了推荐的准确性。
2. 冷启动问题冷启动问题是推荐系统在初期面临的重要问题。
对于新用户或新项目,由于缺乏历史行为数据,难以计算出其与其他用户或项目的相似度,从而导致推荐系统无法为其提供准确的推荐。
3. 计算复杂度问题随着用户和项目数量的不断增加,协同过滤算法的计算复杂度也随之增加。
如何降低计算复杂度,提高推荐系统的实时性,是协同过滤算法需要解决的问题。
四、协同过滤算法的改进方法1. 针对数据稀疏性问题,可以采用基于矩阵分解的技术,将用户-项目评分矩阵分解为低维向量,从而降低数据的稀疏性。
此外,还可以采用基于时间的动态调整方法,根据时间因素对用户行为数据进行加权,以提高推荐的准确性。
2. 针对冷启动问题,可以采用混合推荐策略,将协同过滤算法与其他推荐算法(如内容推荐、人口统计学等)相结合,以提高新用户或新项目的推荐准确性。
此外,还可以利用社交网络信息,通过分析用户的社交关系,提高冷启动问题的解决效果。
3. 针对计算复杂度问题,可以采用基于树的近似算法、基于图的降维方法等,降低计算复杂度。
此外,还可以采用分布式计算框架,将计算任务分配到多个节点上并行处理,提高推荐的实时性。
协同过滤算法中的推荐系统稳定性故障处理方法推荐系统在当今互联网时代扮演着至关重要的角色,用户可以通过推荐系统获取到符合自己兴趣和需求的信息和产品。
而协同过滤算法则是推荐系统中常用的一种算法,它能够根据用户的行为和偏好,为用户推荐他们可能感兴趣的物品。
然而,推荐系统在实际应用中也会遇到各种稳定性故障,特别是协同过滤算法中。
本文将探讨协同过滤算法中的推荐系统稳定性故障处理方法。
首先,协同过滤算法中的推荐系统稳定性故障主要包括数据稀疏性和冷启动问题。
数据稀疏性指的是用户和物品之间的交互数据非常稀疏,导致算法难以准确地预测用户的偏好。
冷启动问题则是指在推荐系统刚刚上线或者新增了新的用户或物品时,由于缺乏足够的历史数据,算法无法有效地进行个性化推荐。
针对数据稀疏性问题,可以采用基于内容的推荐方法。
这种方法是通过分析物品本身的特征,而不是依赖于用户的历史行为来进行推荐。
比如,对于电影推荐系统,可以考虑电影的类型、导演、演员等信息,从而实现对用户的个性化推荐。
此外,还可以利用用户的社交网络信息,通过挖掘用户之间的社交关系来填补数据的空白,提高推荐的准确性。
对于冷启动问题,可以采用混合推荐的方法。
混合推荐是将多种推荐算法进行组合,从而综合利用它们的优势,提高推荐的覆盖率和准确性。
比如,可以将基于内容的推荐算法和协同过滤算法相结合,利用内容信息来填补数据的不足,从而解决冷启动问题。
此外,还可以通过引入专家知识或者领域专家的意见,利用领域知识来辅助推荐算法,提高冷启动时的推荐效果。
除了数据稀疏性和冷启动问题外,推荐系统在实际应用中还会遇到一些其他的稳定性故障,比如用户群体漂移、物品流行度变化等。
用户群体漂移指的是用户的兴趣和偏好会随着时间的推移而发生变化,而传统的推荐算法往往无法及时地捕捉到这种变化。
物品流行度变化则是指物品的受欢迎程度会随着时间的推移而发生变化,而传统的推荐算法往往无法有效地适应这种变化。
针对用户群体漂移问题,可以采用增量式更新的方法。
在当今数字化时代,推荐系统已经成为了许多互联网平台不可或缺的一部分。
通过分析用户的历史行为和偏好,推荐系统可以为用户推荐个性化的商品、音乐、电影等内容,从而提升用户体验和平台粘性。
协同过滤算法是推荐系统中常用的一种算法,它通过分析用户之间的相似性来进行推荐。
然而,协同过滤算法在实际应用中也面临着一些稳定性故障,本文将探讨协同过滤算法中的推荐系统稳定性故障处理方法。
首先,我们需要了解协同过滤算法中的推荐系统稳定性故障的类型。
推荐系统稳定性故障主要包括数据稀疏性、冷启动问题和推荐结果的不稳定性。
数据稀疏性是指用户行为数据中存在大量的缺失值,导致推荐系统无法准确地分析用户偏好。
冷启动问题是指当推荐系统面对新用户或新商品时,无法准确地进行推荐。
推荐结果的不稳定性则是指在不同时间段或不同场景下,推荐系统给出的推荐结果有较大的波动。
了解了这些稳定性故障的类型之后,我们可以有针对性地提出相应的处理方法。
针对数据稀疏性问题,我们可以采用数据填充和特征工程的方法来处理。
数据填充是指通过一定的规则或模型来填补缺失的数据,从而增加数据的稳定性。
特征工程则是指通过对用户行为数据进行特征提取和转换,从而获得更加稳定和准确的特征,用于推荐系统的训练和预测。
通过数据填充和特征工程的方法,可以有效地提升推荐系统对数据稀疏性的处理能力。
针对冷启动问题,我们可以采用基于内容的推荐和知识图谱的方法来处理。
基于内容的推荐是指通过分析用户对商品的内容描述和属性,从而进行推荐。
知识图谱则是指通过构建商品和用户之间的关联关系,从而解决推荐系统面对新用户或新商品时的冷启动问题。
通过基于内容的推荐和知识图谱的方法,可以有效地提升推荐系统对冷启动问题的处理能力。
针对推荐结果的不稳定性问题,我们可以采用模型集成和时序特征的方法来处理。
模型集成是指通过结合多个推荐模型的结果,从而获得更加稳定和准确的推荐结果。
时序特征则是指通过分析用户行为数据的时序特点,从而对推荐结果进行调整和修正。
随着互联网的发展,推荐系统在各种应用中扮演着越来越重要的角色。
协同过滤算法作为推荐系统中最常用的一种,被广泛应用于电子商务、社交网络、音乐和视频等各个领域。
然而,由于推荐系统的复杂性和数据的动态性,协同过滤算法在实际应用中也会遇到一些稳定性故障问题。
本文将探讨协同过滤算法中推荐系统的稳定性故障处理方法。
首先,我们需要了解协同过滤算法在推荐系统中的基本原理。
协同过滤算法是一种根据用户之间的相似性或物品之间的相似性来进行推荐的算法。
基于用户的协同过滤算法主要分为基于用户的协同过滤和基于物品的协同过滤。
基于用户的协同过滤算法是指根据用户的历史行为和偏好来找到相似的用户,然后向目标用户推荐这些相似用户喜欢的物品。
而基于物品的协同过滤算法则是根据物品之间的相似性来进行推荐,即向用户推荐和其历史喜好物品相似的物品。
然而,协同过滤算法在实际应用中会面临一些稳定性故障问题。
其中最常见的问题之一是数据稀疏性。
由于用户行为数据的不完整性,可能导致无法找到足够相似的用户或物品,从而无法进行准确的推荐。
另外,冷启动问题也是推荐系统稳定性的一个难题。
当新用户或新物品加入系统时,由于缺乏历史行为数据,无法准确地为其进行推荐。
除此之外,推荐系统还可能面临数据波动性、系统负载不均衡等问题。
那么,针对这些稳定性故障,我们应该如何处理呢?首先,对于数据稀疏性问题,可以考虑引入内容信息来辅助推荐。
内容信息是指用户或物品的属性信息,可以帮助系统更准确地进行推荐。
例如,在电商推荐系统中,可以根据用户的浏览记录、购买记录,以及商品的标签、描述等内容信息来进行推荐。
此外,还可以考虑引入领域知识和专家经验来辅助推荐,以提高推荐的准确性和稳定性。
对于冷启动问题,可以采用多种方法来解决。
首先,可以通过引入基于内容的推荐方法来解决冷启动问题。
基于内容的推荐方法是指根据物品的内容信息和用户的偏好信息来进行推荐,对于新物品可以直接利用其内容信息来进行推荐。
协同过滤算法的推荐稳定性评价方法协同过滤算法是一种常用的推荐系统算法,它通过分析用户的历史行为数据,找出具有相似兴趣的用户,并向目标用户推荐这些相似用户喜欢的物品。
然而,协同过滤算法在实际应用中存在着推荐结果不稳定的问题,即同样的输入数据在不同的时间或环境下可能会产生不同的推荐结果。
为了解决这一问题,需要对协同过滤算法的推荐稳定性进行评价,本文将介绍一些评价方法。
一、历史稳定性评价方法在过去的研究中,评价协同过滤算法的推荐稳定性通常采用了历史稳定性评价方法。
该方法主要是通过观察算法在不同时间段内的推荐结果,来评估其推荐稳定性。
其中比较常用的指标包括平均推荐准确率、推荐结果一致性等。
然而,这种方法存在着局限性,因为它只能反映算法过去的表现,无法预测算法在未来的推荐稳定性。
二、动态评价方法为了解决历史稳定性评价方法的局限性,研究者们提出了动态评价方法。
这种方法主要是基于算法当前的状态和环境来评估其推荐稳定性。
其中比较常用的方法包括基于用户行为动态调整权重、基于用户兴趣演化模型等。
这些方法能够更加全面地评价算法的推荐稳定性,但是由于对环境变化的适应性有限,仍然存在着一定的局限性。
三、深度学习方法近年来,随着深度学习技术的发展,研究者们开始尝试将深度学习方法应用于协同过滤算法的推荐稳定性评价中。
深度学习方法能够通过对大量数据的学习来获取更加准确和稳定的推荐结果。
例如,可以通过训练神经网络模型来对用户的兴趣进行建模,从而提高推荐算法的稳定性。
然而,深度学习方法需要大量的数据和计算资源,且对模型的参数设置和调优要求较高,因此在实际应用中存在一定的难度。
四、综合评价方法综合评价方法是一种综合考虑历史稳定性、动态评价和深度学习方法的评价方法。
该方法通过对算法的历史表现、当前状态和环境以及深度学习模型的综合分析,来评价算法的推荐稳定性。
这种方法能够更加全面地评价算法的稳定性,并且能够有效地应对环境的变化。
然而,综合评价方法需要更多的数据和计算资源,并且对评价模型的设计和参数调优要求较高。
推荐系统是一种利用计算机算法为用户提供个性化建议的工具。
它可以根据用户的历史行为和偏好,推荐用户可能感兴趣的产品或内容。
在推荐系统中,协同过滤算法是一种常用的方法,它基于用户行为数据,利用用户之间的相似性来进行推荐。
然而,推荐系统在实际应用中经常遇到的一个问题是稳定性。
稳定性是指推荐系统在面对不同数据集和用户行为时,能够保持一定的准确性和有效性。
本文将探讨协同过滤算法中的推荐系统稳定性需求分析方法。
首先,稳定性需求分析方法需要考虑推荐系统的数据特征。
推荐系统的数据通常包括用户行为数据、物品属性数据和评分数据等。
这些数据可能存在不完整、不准确或者变化频繁的情况。
因此,在分析推荐系统的稳定性需求时,需要考虑数据的完整性、准确性和变化性。
对于不完整和不准确的数据,可以采用数据清洗和修正的方法进行处理。
而对于数据变化频繁的情况,可以采用增量式的更新算法来保持推荐系统的稳定性。
其次,稳定性需求分析方法需要考虑推荐系统的算法特征。
协同过滤算法是一种基于用户行为数据的推荐算法,它利用用户之间的相似性来进行推荐。
在分析推荐系统的稳定性需求时,需要考虑算法的鲁棒性和泛化能力。
鲁棒性是指算法对于异常数据和噪声的稳定性,而泛化能力是指算法对于新数据的适应能力。
在设计和优化协同过滤算法时,需要考虑如何提高算法的鲁棒性和泛化能力,以保证推荐系统在面对不同数据集和用户行为时能够保持稳定性。
另外,稳定性需求分析方法需要考虑推荐系统的评估方法。
评估推荐系统的稳定性是非常重要的,它可以帮助我们理解推荐系统在不同数据集和用户行为下的表现。
在评估推荐系统的稳定性时,需要考虑评估指标的选择和评估方法的设计。
常用的评估指标包括准确率、召回率、覆盖率和多样性等,而评估方法可以采用交叉验证、留一验证和时间分割验证等。
通过合理选择评估指标和设计评估方法,可以更好地了解推荐系统的稳定性需求。
最后,稳定性需求分析方法需要考虑推荐系统的应用场景和用户需求。
推荐系统是一种根据用户的兴趣和偏好,为用户提供个性化推荐的系统。
协同过滤算法是推荐系统中常用的一种算法,通过分析用户的历史行为数据,找到和用户兴趣相似的其他用户或物品,从而进行推荐。
在实际应用中,推荐系统的稳定性对于系统的性能和用户体验至关重要。
本文将探讨协同过滤算法中的推荐系统稳定性需求分析方法。
首先,稳定性需求分析是指对系统在不同条件下的稳定性进行评估和分析,以便发现系统可能出现的问题并提出解决方案。
在推荐系统中,稳定性需求分析主要包括对系统在不同数据集和用户行为模式下的稳定性进行评估。
其次,对于协同过滤算法而言,推荐结果的稳定性是一个重要的指标。
推荐系统的稳定性可以从两个方面进行评估,一是推荐结果的一致性,二是推荐结果的准确性。
在评估推荐结果的一致性时,可以通过对同一用户在不同时间段内的行为数据进行分析,比较不同时间段内的推荐结果,以此来评估系统的一致性。
一致性的评估可以通过计算推荐结果的相似度来实现,相似度越高则说明系统的一致性越好。
另外,还可以采用交叉验证的方法来评估推荐结果的一致性,将数据集划分为训练集和测试集,通过不同的训练集和测试集组合来评估推荐结果的一致性。
在评估推荐结果的准确性时,可以通过离线实验和在线实验相结合的方式来进行。
离线实验主要是通过离线数据集的评估来评估推荐结果的准确性,包括计算准确率、召回率、覆盖率等指标。
而在线实验则是将推荐系统上线,通过用户的真实行为数据来评估推荐结果的准确性。
通过离线实验和在线实验相结合的方式,可以充分评估推荐系统的准确性,从而提高系统的稳定性。
除了对推荐结果的稳定性进行评估外,在协同过滤算法中还需要对推荐系统的鲁棒性进行分析。
鲁棒性是指系统对于异常情况的处理能力,在推荐系统中主要指系统对于数据缺失、数据噪声等异常情况的处理能力。
在评估推荐系统的鲁棒性时,可以通过模拟数据缺失、数据噪声等异常情况,来评估系统的处理能力。
另外,还可以通过对系统的输入进行干扰,比如对用户的行为数据进行删除、修改等操作,来评估系统对于输入干扰的鲁棒性。
在当今信息爆炸的时代,人们面临着海量的信息和选择困难。
为了帮助人们更快捷地找到自己感兴趣的内容,推荐系统应运而生。
协同过滤算法是推荐系统中常用的一种方法,通过分析用户的历史行为和偏好,将相似的用户或物品进行匹配,从而实现个性化推荐。
然而,协同过滤算法在实际应用中会面临一些问题,其中一个重要的问题就是稳定性。
本文将对协同过滤算法中的推荐系统稳定性需求分析方法进行探讨。
首先,推荐系统的稳定性是指在面对用户行为变化或者系统参数变化时,推荐结果的稳定性和准确性。
在用户行为变化时,如用户的兴趣爱好发生变化,推荐系统应该能够及时地调整推荐结果,使得用户依然能够获得满意的推荐。
而在系统参数变化时,如推荐算法的参数调整或者数据源的变化,推荐系统也应该能够保持稳定的性能,不受外界因素的影响。
因此,稳定性需求分析是推荐系统设计和优化的重要一环。
其次,针对协同过滤算法中的推荐系统稳定性需求分析方法,可以从以下几个方面进行探讨。
首先,需要对用户行为数据进行分析。
这包括对用户行为数据的收集、清洗和分析。
通过对用户行为数据的监控和分析,可以及时发现用户行为的变化趋势,为推荐系统的调整提供数据支持。
其次,需要对推荐算法的稳定性进行评估。
推荐算法的稳定性是指在不同的数据集和参数设置下,算法的性能表现是否稳定。
可以通过对不同数据集上的实验和参数调整来评估推荐算法的稳定性,从而选择更加稳定和可靠的推荐算法。
再次,需要设计合适的反馈机制。
用户的反馈是推荐系统稳定性的重要保障。
通过引导用户进行反馈,可以及时获取用户对推荐结果的评价和意见,从而不断优化推荐系统的性能。
最后,需要建立完善的系统监控和调整机制。
推荐系统的稳定性需要不断地进行监控和调整。
建立完善的系统监控机制,可以及时发现系统性能的异常变化,从而及时进行调整和优化。
综上所述,协同过滤算法中的推荐系统稳定性需求分析方法包括对用户行为数据的分析、推荐算法的稳定性评估、设计合适的反馈机制以及建立完善的系统监控和调整机制。
随着互联网的快速发展,推荐系统在各种应用场景中得到了广泛的应用,比如电商平台、社交媒体、音视频网站等。
推荐系统的目标是向用户推荐他们可能感兴趣的物品,增强用户体验,提高平台的活跃度和转化率。
协同过滤算法作为推荐系统中的一种重要方法,是基于用户行为数据进行推荐的,它的核心思想是利用用户的历史行为信息来发现用户之间的相似性,然后利用这种相似性来进行推荐。
然而,协同过滤算法在实际应用中往往会面临稳定性不足的问题,推荐结果可能会因为用户行为的变化而产生较大的波动,这就需要对推荐系统的稳定性性能进行优化。
首先,要对用户行为数据进行有效的处理。
在协同过滤算法中,用户行为数据是推荐的基础,因此对用户行为数据的处理对推荐系统的性能至关重要。
在现实应用中,用户行为数据可能会包含大量的噪声和异常值,这些数据会对推荐结果产生较大的影响。
因此,需要对用户行为数据进行清洗和去噪处理,以减小数据的波动性,提高推荐系统的稳定性。
其次,针对用户行为的变化,需要及时更新模型参数。
随着时间的推移,用户的兴趣和行为会发生变化,如果推荐系统的模型参数长时间不更新,就容易导致推荐结果的不稳定性。
因此,需要使用一些实时的更新策略,及时捕捉用户行为的变化,然后根据新的数据重新训练模型,以确保推荐系统的稳定性。
此外,还可以引入一些辅助信息来提高推荐系统的稳定性。
除了用户行为数据外,还可以考虑引入用户的个人信息、社交关系、物品的属性等辅助信息,这些信息可以帮助推荐系统更好地理解用户的兴趣和行为,从而提高推荐的准确性和稳定性。
另外,合理的算法选择也对推荐系统的稳定性有很大的影响。
在协同过滤算法中,有基于用户的协同过滤算法和基于物品的协同过滤算法两种主要的算法选择。
基于用户的协同过滤算法主要是基于用户间的相似性来进行推荐,而基于物品的协同过滤算法则是基于物品的相似性来进行推荐。
在实际应用中,可以根据用户行为数据的特点和推荐系统的需求来选择合适的算法,从而提高推荐系统的稳定性。
协同过滤算法的推荐稳定性评价方法随着互联网技术的不断发展,推荐系统在电子商务、社交网络、音乐电影等领域得到了广泛的应用。
而协同过滤算法是推荐系统中最为常见和有效的一种算法。
然而,协同过滤算法在实际应用中存在一些问题,其中最为重要的一个问题就是推荐的稳定性。
本文将介绍协同过滤算法的推荐稳定性评价方法。
一、稳定性的概念和重要性在推荐系统中,稳定性是指相对于用户行为的变化,推荐结果的变化程度。
一个稳定的推荐系统能够在用户行为发生变化时,保持推荐结果的一致性和准确性。
而不稳定的推荐系统则可能导致用户对推荐结果的不信任,甚至放弃使用推荐系统。
因此,评价推荐系统的稳定性是非常重要的。
二、推荐系统稳定性的评价方法1. 数据集划分方法数据集的划分方法对推荐系统的稳定性评价至关重要。
常见的数据集划分方法包括随机划分、时间划分和用户划分。
随机划分是将数据集随机分为训练集和测试集,这种方法简单但不够稳定;时间划分是按照时间顺序划分数据集,可以反映用户行为的变化趋势,但对于非时间敏感的推荐系统效果不佳;用户划分是按照用户标识划分数据集,能够反映用户个性化的行为特征。
2. 推荐结果评价方法推荐结果的评价方法是评价推荐系统稳定性的重要手段。
常见的推荐结果评价方法包括准确率、召回率、覆盖率和多样性。
准确率和召回率是评价推荐结果准确性的指标,覆盖率和多样性是评价推荐结果多样性的指标。
这些指标能够全面地评价推荐结果的稳定性。
3. 推荐结果相似度计算方法推荐结果的相似度计算方法是评价推荐系统稳定性的重要手段。
常见的相似度计算方法包括余弦相似度、皮尔逊相关系数和Jaccard相似度。
这些相似度计算方法能够量化地评价推荐结果的相似程度。
三、现有研究和发展趋势目前,对于推荐系统稳定性的评价方法已经有了一定的研究成果。
例如,有学者提出了一种基于用户行为相似性的推荐系统稳定性评价方法,该方法能够有效地评价推荐系统的稳定性。
此外,还有学者提出了一种基于用户满意度的推荐系统稳定性评价方法,该方法能够更加客观地评价推荐系统的稳定性。
协同过滤推荐算法稳定性研究摘要协同过滤推荐算法应用广泛,容易遭到外来系统攻击。
用9种相似度指标计算用户相似度,研究协同过滤推荐算法在遭受攻击时的稳定性。
实证结果表明:在恶意打分时,相似度指标中改进的热传导相似度指标比其它相似度指标的推荐结果稳定,而皮尔森(Pearson)系数和公共邻居(Common Neighbor)的表现非常不稳定;在随机连边中,相似度指标LeichtHolmeNewman (LHN)的推荐结果非常稳定,而其它相似度指标则表现非常不稳定。
研究结果表明用户的相似度度量对于协同过滤推荐算法至关重要。
关键词协同过滤;相似度指标;恶意打分;随机连边DOI DOI:10.11907/rjdk.162367中图分类号:TP311文献标识码:A 文章编号文章编号:16727800(2017)0020039030 引言协同过滤推荐算法在商业网站中得到了广泛应用[13]。
该方法基于用户的历史数据计算用户或产品的相似度进行个性化推荐。
在电影推荐网站中,一个用户如果观看了某部电影,则该用户就可以对该电影进行打分,然而这些打分可能会影响其它用户的抉择[4]。
在线网络系统每天都会面临来自各种攻击,导致产品的打分信息不一定真实。
例如,某些用户可能因为对该产品不熟悉而给予不合理打分,有些甚至可能是“黑客”,恶意打分[5,6]。
对在线用户而言,稳定的推荐结果是推荐算法的重要目标。
目前,在推荐算法稳定性方面有诸多研究。
Bhaskar Mehta[7]提出了一种基于矩阵分解的算法(Matrix Factorization algorithm)来解决推荐算法中的随机均值打分攻击问题,此种算法计算复杂度高,对于用户过多的系统具有局限性。
此外,周涛等[8,9]基于关联声誉和组织声誉提出了在线系统面对攻击时稳定的两种排序算法。
侯磊等[10]研究了多种相似度指标的稳定性问题,同时为用户相似度的计算提供了多种方法。
然而,大多数学者专注于算法的优化和改进,并没有从用户相似度的角度衡量推荐算法的稳定性。
本文主要研究九种相似度指标在两种攻击下的稳定性问题。
实证结果表明,在恶意打分攻击中,推荐算法在LHN 指标和改进的热传导(Improved Heat Conduction)指标表现较其它指标更为稳定。
特别,当恶意打分概率,推荐列表长度时,LHN指标的推荐准确性比皮尔森(Pearson)指标准确53%,比公共邻居(Common Neighbor)指标准确55%。
1 推荐算法以及相似度指标1.1 协同过滤算法协同过滤算法是根据与目标用户选择和打分行为相似的用户集合来预测目标用户喜好的产品。
首先计算目标用户与其他用户的相似度,选取与该目标用户最相似的用户作为“好友”,去除目标用户已经选择过的产品,将“好友”选择过的剩余产品生成推荐列表推荐给目标用户。
“好友”选择的产品决定了目标用户推荐列表的内容,所以确定“好友”是算法的重要步骤。
衡量用户之间的相似度是决定推荐算法优劣的关键。
本文分别用了九种相似度指标来计算用户的相似度。
计算用户相似度后对“好友”选择过的产品(去除目标用户选择过的产品)进行预测打分,定义用户对产品的预测打分Pred(o)为:其中,sαβ代表相似度指标,rβo表示用户对产品的打分,rβ表示用户对所有产品评分的平均分。
对所有被预测打分的产品将按降序排列,选取排名前L个产品作为目标用户的推荐列表。
1.2 9种相似度指标相似度指标是用来衡量两个用户之间的相似程度,9种指标如下:基于用户历史打分的指标有两种:Pearson Coefficient (PC)指标[10,11]和Cosine Index (CI)指标[10,12],其公式定义为:其中,Oαβ是用户α和用户β共同选择产品的集合,r α和rβ是用户α和用户β对各自所选产品打分的均值,向量rα和rβ分别表示用户α和用户β所选共同产品的打分向量。
此外,当用户的历史打分信息不可获取时,用户相似度还可以依据用户和产品的度信息来衡量,例如公共邻居Common Neighbor (CN)指标,其定义为:2 两种攻击模式介绍首先,构建包含n 个用户、m 个产品和l 条连边的用户――产品二部分网络:包含用户构成的集合U={u1,u2,…un}和产品构成的集合O={o1,o2,…om},建立用户和产品之间的连边E={e1,e2,…el}。
本文用两种攻击模式测试推荐算法的稳定性,恶意打分来自于恶意用户或者测试工程师随机抽取数据,从{1,2,3,4,5}中打分;另一种攻击是随机连边,测试者随机连边来扰乱数据结构,即:随机选择一条记录μ-o-r,然后从剩余的产品中随机选择产品o',生成一条新的记录μ-o'-r,但打分不变。
定义恶意打分或者随机连边在数据集中的比例为p=l'/l,其中l'为遭受攻击的记录数量,p 的取值范围为[0,1]。
3 实验结果3.1 数据介绍本文基于两个真实网络的数据集Movielens和Netflix来研究推荐算法的稳定性(见表1),两个数据集均采用5分制来打分。
n ,m ,l 分别为用户个数、产品个数、连边数,其中表示数据集的稀疏度,即s=l/(m×n)。
3.2 评价指标为了比较攻击前后推荐列表的变化,本文提出了前L项交叉距离(topL intersection distance)评价指标[22],公式为:其中,Δ表示两个集合的对称差分算子,即并集个数与交集个数之差,xL和yL表示前L个产品的排序列表。
如果两个列向量完全相同,那么τL(x,y)=0;如果完全不同,则τL(x,y)=1。
两个列向量的相似程度越大?r,τL反而越小。
为了计算整体的差异性,作一个简单平均,即平均交叉距离τ=∑τ/n。
因此,可以用平均交叉距离τ衡量原始列表与测试列表之间的差异。
3.3 ?Y果分析本文通过两种攻击模式和9种相似度指标探究了推荐算法在遭受攻击时的稳定性,推荐列表长度定义为L=3,L=10,L=20,“好友”个数Nu=20。
首先分析恶意打分对推荐算法稳定性的影响。
以概率p 从数据集中随机选取记录给予打分,重新计算推荐列表。
实验结果如图1所示,横轴为恶意打分比例,纵轴为平均交叉距离τ,平均交叉距离τ与恶意打分比例p 呈明显正相关关系。
此外,在每个子图中相似度指标τLHN和τIHC均小于其它指标,当取推荐列表长度L=20、恶意打分比例p=0.1时,在Netflix数据集上τLHN=0.227 3,τIHC=0.328 4;在Movielens数据集上,τLHN=0.251 8,τIHC=0.228 7。
指标IHC用于推荐时稳定性比PC高53.7%,比CN高55.4%;而指数PC和CN进行推荐时效果最差,当p=0.4时,τPC和τCN接近0.9,说明此时推荐列表几乎全部紊乱;推荐列表为L=3和L=10时都有相似的表现特征。
此外,从图1中还可以看出,指标HDI、SAL、SOR和JAC在每个子图中具有几乎相同趋势,该现象可能由于它们的公式定义相似。
另外一种攻击模式是随机连边,选取一定比例的记录重新连接。
如图2所示,在Movielens数据集上,当推荐列表长度L=3,L=10,L=20时τLHN分别为0.580 5,0.555 8,0.532 4,要比其它指标小得多。
当p=0.3时,各个子图中其它指标值接近0.9,说明即使遭到更多攻击,LHN指标用于推荐时要比其它指标稳定得多。
就随机连边而言,LHN指标可以使推荐算法更为稳定。
4 结语协同过滤算法作为个性化推荐算法中非常高效的方法之一,研究其遭遇攻击时的稳定性至关重要。
本文在两个数据集上测试了协同过滤推荐算法在遭受恶意打分和随机连边攻击时的表现,对比攻击前后推荐列表的变化。
实证结果表明,在推荐长度和攻击比例改变的情况下指标LHN仍能进行稳定推荐,特别当攻击比例,推荐列表长度时,其推荐准确性比皮尔森系数稳定53%,比公共邻居指标稳定55%。
本文基于两种常见的随机攻击模式研究了协同过滤推荐算法的稳定性问题。
但攻击模型的发展甚至要比防御系统发展快,不同攻击模型下的稳定性问题还需要不断深入探究。
推荐系统随时面临着未知的攻击风险,如何使推荐算法在遭受攻击时也能稳定地推荐需深入研究。
参考文献:[1] LU L,MEDO M,YEUNG C H,et al. Recommender systems[J]. Physics Reports,2012,519(1):149.[2] GUO Q,SONG W J,LIU J G. Ultraaccurate collaborative information filtering via directed user similarity[J]. EPL (Europhysics Letters),2014,107(1):18001.[3] 王孟?E,邰泳,薛安荣. 基于Hadoop 平台的人才发现与推荐系统研究[J]. 软件导刊,2014,13(1):46.[4] 宋文君,郭强,刘建国. 一种改进的混合推荐算法[J]. 上海理工大学学报,2015,37(4):327331.[5] 刘建国,周涛,郭强,汪秉宏. 个性化推荐系统评价方法综述[J]. 复杂系统与复杂性科学,2009,6(3):110.[6] 石珂瑞,刘建国. 二阶有向相似性对协同过滤算法的影响[J]. 上海理工大学学报,2014,36(1):3133.[7] MEHTA B,HOFMANN T,NEJDL W. Robust collaborative filtering[C].Proceedings of the 2007 ACM conference on Recommender systems. ACM,2007:4956.[8] ZHOU Y B,LEI T,ZHOU T. A robust ranking algorithm to spamming[J]. EPL (Europhysics Letters),2011,94(4):48002.[9] GAO J,DONG Y W,SHANG M S,et al. Groupbased ranking method for online rating systems with spamming attacks[J]. EPL (Europhysics Letters),2015,110(2):28003.[10] LIU J G,HOU L,PAN X,et al. Stability of similarity measurements for bipartite networks[J]. Scientific reports,2016.[11] HERLOCKER J,KONSTAN J A,RIEDL J. An empirical analysis of design choices in neighborhoodbased collaborative filtering algorithms[J]. Information retrieval,2002,5(4):287310.。