协同过滤推荐算法
一、背景介绍
随着信息技术的发展,我们正身处一个数据爆炸的时代。指数增长的数据给信息生产者和信息消费者带来了新的问题。
对于信息生产者:如何让自己生产的信息脱颖而出,受到广大用户的关注?
对于信息消费者:如何从大量的信息中找到自己感兴趣的信息?
为了解决以上问题,推荐系统应运而生
1.1推荐系统
推荐系统的核心功能是:
1.帮助用户发现对自己有价值的信息
2.让信息能够展现在对它感兴趣的用户前面
推荐系统使用一系列不同的技术,这些系统可分为两大类:
基于内容的系统(Content-based System)
协同过滤系统(Collaborative Filtering System)
1.2效用矩阵
在推荐系统应用中,存在两类元素,一类称为用户(User),另一类称为项(Item)。用户会偏爱某些项,这些偏好信息必须要从数据中梳理出来。数据本身会表示成一个效用矩阵(utility matrix),该矩阵中每个用户-项对所对应的元素值代表的是当前用户对当前项的喜好程度。这些喜好程度来自一个有序集合,比如1~5的整数集合,这些整数代表用户对项的评级(比如分别代表评论的星级)。
我们假设该矩阵是稀疏的,即意味着大部分元素都未知。一个未知的评级也暗示着我们对当前用户对当前项的喜好信息还不清楚。
推荐系统的目标是预测效用矩阵的空白元素
1.3传统推荐模型
推荐系统自诞生以来经历了多次发展迭代,其模型也从一开始的传统模型发展为深度学习模型,本文重点关注传统推荐模型,来帮助读者较好地入门。
二、算法原理
2.1协同过滤算法
基本思想:根据用户之前的喜好以及其他兴趣相近的用户的选择来给当前用户推荐物品
协同过滤算法集中关注用户和项之间的关系,并且它仅仅基于用户行为数据,而不依赖于项或用户的任何附加信息(这里的附加信息指项或用户的自身属性,如用户的年龄职业性别,项的产地产家等)
目前应用比较广泛的协同过滤算法是基于邻域的方法,而这种方法主要有一下两种算法:
基于用户的协同过滤算法(UserCF)
给用户推荐和他兴趣相近的其他用户喜欢的物品
基于项的协同过滤算法(ItemCF)
给用户推荐和他之前喜欢的项相似的项