个性化推荐的可解释性研究
上QQ阅读APP看书,第一时间看更新

2.1.2 基于协同过滤的推荐

基于协同过滤的推荐是推荐系统中广泛使用的推荐技术,与基于内容的方法不同,协同过滤的核心思想在于借助其他用户的历史行为(群体智慧)来为当前用户给出推荐,而不仅仅是考虑当前用户自身的特征偏好。基于协同过滤进行推荐的思想一般认为最早出现在GroupLens的新闻推荐系统中[11],该工作也就是后来人们所说的基于用户的协同过滤方法,除此之外,该工作也第一次提出了用户-物品评分矩阵的补全预测问题,并且这一问题由Herlocker等[28]得到了进一步的形式化,并由Breese等[29]得到了实验验证,影响了推荐系统此后十几年的发展方向;Sugiyama等将基于用户的协同过滤用于个性化搜索任务中,并取得了不错的效果[30]

Sarwar等研究了协同过滤技术在电子商务网站中的应用[31],发现由于在基于用户的协同过滤中需要计算用户之间的两两相似度,使得在电子商务等用户数庞大的网站中,计算量成为了一大瓶颈。为了解决该问题,Sarwar等进一步提出了基于物品的协同过滤,利用物品的相似度来进行协同过滤式推荐[12],该方法在亚马逊的个性化推荐系统中得到了重要的应用[32],并且至今仍然是许多电子商务网站推荐系统的基础之一;由于基于用户和基于物品的协同过滤都涉及用户和物品相似度的计算,两者一般可以统称为基于近邻的推荐方法(neighbour-based recommendation)[33];Herlocker等通过选择不同的相似度计算函数,对基于用户的协同过滤方法的实际效果进行了分析和验证[34][35];Karypis则在top-N推荐列表任务中对基于物品的协同过滤进行了实验验证和效果评价[36];Huang等对比了不同的协同过滤算法在电子商务网站应用场景下的效果和效率[37];Basu等[23]和Kautz等[38]最早讨论了社交网络与协同过滤的结合,从而使得社交推荐成为可能;Massa等[39–42]、O’Donovan和Smyth[43]研究了用户之间的信任关系在协同过滤相似用户选择过程中的应用,提出了信任敏感的(trust-aware)协同过滤算法和研究方向,并开发了信任敏感的推荐系统实际应用模型Moleskiing[44]

为了进一步解决相似度计算量大的问题,Lemire和Maclachlan提出了著名的SlopeOne系列算法将协同过滤的回归函数简化,在大大降低计算时间和存储需求的同时,取得与原始基于近邻算法相当甚至更好的效果[45];O’Connor和Herlocker提出利用物品聚类来降低相似度计算的复杂度[46];Gong尝试和比较了分别对用户和物品进行聚类的效果[47];而George和Merugu则采用互聚类(co-clustering)的方法对用户和物品同时进行聚类,并在此基础上寻找近邻[48];Ma等[49]基于相似度阈值过滤提出了一种寻找近邻并计算预测打分的加速算法;Zhou等[50]、Zhao和Shang[51]则研究和实现了基于Hadoop的并行化相似度计算和协同过滤方法。

随着2007年Netflix矩阵预测大奖赛的兴起[52],推荐系统的研究进入了一个新的高潮。由于矩阵分解在预测效果上的明显优势,大量的矩阵分解算法得到深入的研究和扩展,这既包括对主成分分析(principle component analysis,PCA)算法[53–56]、奇异值矩阵分解(singular value decomposition,SVD)算法[57–59]和非负矩阵分解(non-negative matrix factorization,NMF)算法[60][61]等已有矩阵分解算法的应用和扩展,也包括一些新算法的提出和研究,例如最大间隔矩阵分解(maximum margin matrix factorization,MMMF)算法[62–66]和概率矩阵分解(probabilistic matrix factorization,PMF)算法[67–69]等。由于矩阵分解是很多个性化推荐算法的基础,将在下一节对其进行详细的介绍。

冷启动问题(cold-start)是协同过滤式推荐系统所面临的重要问题之一[70]。当新用户刚刚加入系统时,由于其只有很少甚至没有历史行为记录,使得协同过滤算法难以对其进行偏好建模,例如在基于用户的协同过滤当中,冷启动用户由于没有历史打分记录,造成无法为其计算相似近邻用户。同样的问题也存在于基于物品的协同过滤算法中,新加入的物品由于几乎没有用户打分,使得难以被算法推荐出来。Gantner等通过学习属性特征映射来解决冷启动问题[71];Zhang等利用社会化标签来缓解冷启动问题[72];Bobadilla等研究了神经网络学习算法在冷启动问题中的应用[73];Leroy等对冷启动的关联预测(link prediction)问题进行了研究[74];Ahn提出了一种启发式的相似度计算方法来解决新用户冷启动的问题[75];Zhou等提出了功能矩阵分解模型(functional matrix factorization),利用决策树和矩阵分解的结合,在冷启动过程中为用户选择合适的物品进行打分,从而尽可能准确地理解用户的偏好[76]

与冷启动问题紧密相关的是协同过滤的数据稀疏性问题,相对于系统中规模庞大的物品总数,每个用户有交互行为的物品只是很少的一部分,数据的稀疏性为用户偏好建模带来了挑战。Wilson等通过实例研究了数据稀疏性问题在推荐系统中的影响[77];Huang等尝试利用关联规则挖掘来解决数据稀疏性问题[78];Papagelis等利用用户信任关系来缓解稀疏性问题[79];Zhang和Chang研究了神经网络在稀疏数据背景下推荐问题中的应用[80];Zhang等提出了矩阵的块对角结构,通过矩阵的块对角变换增加局部密度,从而直接缓解稀疏性问题[81–83];Zhang等进一步分析了矩阵分解的解空间性质,并提出了增广矩阵分解算法用以解决数据稀疏性的问题[84]

由于推荐系统是许多互联网应用中的重要部分,协同过滤也因此在各种应用场景下得到了丰富的应用。除了典型的电子商务推荐系统之外,Das等利用协同过滤技术实现谷歌新闻推荐系统[85];Ma等利用协同过滤方法研究了社交网络推荐中的一系列重要问题,包括基于社交网络信任关系的推荐[86][87]、基于社会化正则项的推荐[88]、基于概率化矩阵分解的社交网络推荐[89]、基于上下文信息的社会化推荐[90]以及显式和隐式信息在社会网络推荐中的应用[91][92]等;Lekakos和Caravelas[93]、Liu等[94]和Jeong等[95]研究了协同过滤技术在电影推荐中的应用;Celma[96]、Eck等[97]和Wang等[98]研究了音乐推荐技术及系统;Tewari等[99]、Cui和Chen[100]研究了在线图书推荐;Zheng等研究了在线服务推荐系统[101][102];论文引用推荐是协同过滤推荐应用的另一个重要领域,He等[103][104]、Caragea等[105]、Zarrinkalam和Kahani[106]对此进行了深入的研究。