CF
1 概述
协同过滤(Collaborative Filtering,CF)是推荐系统中最为流行和成熟的一种技术。协同过滤通常分为基于用户和基于项目的协同过滤的两种情况,通过考虑用户与用户之间、物品与物品之间的相似度,来对目标用户进行合适的推荐。在各大电商网站中得到广泛的青睐。例如亚马逊、淘宝、京东等。
在推荐系统中最常用的协同过滤包括:
- 基于用户的协同过滤
- 基于物品的协同过滤
- 基于模型的协同过滤
- 混合协同过滤
对于上述4种协同过滤,它们的应用场景各不相同。其中,基于用户的协同过滤和基于物品的协同过滤都是基于内存的协同过滤,对于数据量小的应用场景十分合适,可以在线进行实时推送。基于模型的协同过滤一般用于离线计算,它采用机器学习的方法,将用户的偏好行为分为2个数据集,一个为训练集,一个为测试集,使用训练集来训练出推荐模型,再使用测试集来评估模型的精度,当模型的精度满足阈值时,就可以将推荐模型应用于线上;混合协同过滤就是将上述3种推荐模型进行融合,可以克服每一种协同过滤本身的缺点,比如基于内存的协同过滤不适合大数据集,基于模型的协同过滤需要消耗大量的时间,不适合在线推荐场景。所以将两者的优点整合,创建出一种更加完美的推荐系统,使其更加具备应用和现实意义。
2 相似度计算
基于协同过滤的推荐方法,通过计算用户或者物品之间的相似度进行个性化推荐,对于相似度计算的问题,很多学者都提出了独特的见解,但是对于实际应用场景中,大多数推荐系统还是依赖于更加原始的相似度计算,因为最初的计算方法稳定性最好。下面对于常用的相似性计算方法进行介绍。
-
欧几里得距离
又称为欧式距离,在n维欧式空间中,用于计算坐标点之间的距离,计算公式如下:
其中,x,y表示两个点的坐标,d(x,y)表示点x与点y之间的距离
-
皮尔逊相关系数
用于计算两个数据集X,Y之间的距离,计算公式如下:
其中,n表示两个数据集X和Y中数据点的个数
在群体的创建过程中,许多学者对此进行了研究,有基于k-means的聚类,基于标签主题的聚类等等。[1-2]
但是,在实际情况下要想使得目标函数最小,需要经过大量的迭代,时间效率是不允许的,因此可以允许一定的误差,在实际操作中,通过设定多个参数来进行控制。
其中,是置信参数,一般需要指定;
表示正则化参数,目的是为了防止模型过拟合。
在实际应用中,最常用的便是混合协同过滤,常用的混合协同过滤方法有以下几种[3]:
[1]肖文强,姚世军,吴善明. 一种改进的Top-N协同过滤推荐算法[J]. 计算机应用研究,2018,(01):1-7.
[2]文俊浩,袁培雷,曾骏,王喜宾,周魏. 基于标签主题的协同过滤推荐算法研究[J]. 计算机工程,2017,(01):247-258.
[3] http://itindex2.rssing.com/chan-27974975/all_p206.html