- 机器学习算法实践:推荐系统的协同过滤理论及其应用
- 王建芳
- 1281字
- 2021-03-23 22:34:43
1.2 推荐系统的形式化定义
目前推荐系统常采用的方法主要有基于内容的推荐、基于网格的推荐、基于上下文情景的推荐和协同过滤推荐。协同过滤(Collaborative Filtering, CF)推荐技术是推荐系统中最为常用且有效的方法,可分为基于内存的协同过滤和基于模型的协同过滤,前者根据用户或者项目的相似度选出与目标用户最相似的若干用户的评分来对未评分的项目进行评分预测;后者通过分析用户和项目的内部规律,预测用户对项目的偏好,其中概率矩阵分解技术是其典型代表。目前概率矩阵分解技术还存在数据的高维稀疏性和海量数据环境下的扩展性等制约其进一步发展的瓶颈问题。如何解决以上问题进而提高推荐系统的推荐质量成为个性化推荐的关键。
一个典型的电影推荐系统一般包括含有N个用户的用户集合U={u1,u2,u3,…,uN}和含有M个项目的项目集合I={i1,i2,i3,…,iM},每个用户ui∈U评价了I中的一部分项目,评价过的项目用Iui⊆I表示,用户的打分记录往往表示成RNM,如式(1-1)所示。

式中,矩阵(1)中每一行ri——用户i评价过的电影集合,所有用户集合用U表示;
每一列rj——评价电影j的用户集合,所有电影集合用V表示;
每一个元素rij——用户i对电影j的评分,通常rij的取值为1~5的整数,数据越大表示用户对该项目越满意。
实际中RNM非常稀疏,例如Ciao数据集中已有的评分数目所占比例不足1%,因此传统推荐算法的质量才会特别差。
在现实世界中,以商品购买为例,用户的购买意图受两方面的影响,即用户本身的需要和用户朋友的推荐程度。如图1-1所示为基于社交网络的推荐机制示例,图1-1(a)是用户的信任网络图,该图是一个有向图,图中包含5个节点(用户数),9条边(用户信任关系数),每个节点代表一个用户,如果节点i到节点j存在边,则表示用户ui信任用户uj,对应的权重表示信任程度的大小。注意,用户间的信任关系是非对称的。例如,用户u1信任u2,但是u2对u1并没有明显的信任关系,不过不能主观认为u2不信任u1,因为从图中可以看出u2信任u3,u3信任u1,根据“六度空间”理论,u2对u1也是具有一定的信任度的,若采用加法模型,则信任度为0.4;若采用乘法模型,则信任度为0.03。也就是说,信任关系是具有传递性的,同时传递算子的选择对信任度也有很大影响。
图1-1(b)是对应的用户项目评分矩阵,矩阵中已有的值表示用户对项目的评分,缺失部分是需要预测的。以看电影为例,假设用户u1想看电影i4,但是该用户对该电影一无所知,那么其就会求助于所信任的朋友u2和u4,u2对该电影的评分是3分,u4的评分是5分,那么该电影很可能会吸引到用户u1,也就是u1对i4的评分也可能很高。值得注意的是,目标用户对不同用户的信任程度是不一样的。系统的目标就是利用评分矩阵和信任程度的大小精准有效地预测缺失评分并按照预测评分的高低进行推荐。

图1-1 基于社交网络的推荐机制示例
综上所述,推荐算法的形式化定义如式(1-2)所示。

式中,P——用户集合;
Q——能够推荐给用户的物品集合;
u——一个用来计算用户p对物品q偏好程度的效用函数,计算过程可以表示为u:P×Q→R,其中R为排序后的项目集合。
算法的目标是对于每个用户p都找到能够最大化效用函数u的物品子集Qq′p∈Q。