个性化推荐系列之协同过滤推荐算法总结
前面我们详细了解了一下目前比较成熟的集中推荐算法模型,包括基于内容的推荐算法、基于规则的推荐算法以及协同过滤推荐算法,也详细分析了一下每一种推荐算法的优势与劣势;
我们分析到,基于内容的推荐算法与基于规则的推荐算法,由于其两者的优劣性,同时也由于协同过滤的优势,更多的推荐场景会选择协同过滤算法;那么协同过滤推荐算法到底是什么样推荐工作的;;
我们前面分析到,协同过滤推荐算法的原理是基于用户历史行为作为分析对象, 用户喜欢消费那些具有相似行为的用户消费/喜欢过的信息, 基于其它和当前用户相似的用户的行为,推荐信息给当前用户;
协同过滤推荐模型包含三种协同类型:1)、基于用户的协同过滤;2)、基于项目(内容)的协同过滤;3)、基于模型的协同过滤;
-----------------------------------------------------------------------------------------------------------------------------------------------
下面我们详细介绍这三种类型的推荐算法是怎么实现推荐的,推荐原理是怎么样的;
1)、基于用户的协同过滤;
基于用户的协同过滤是利用数据统计找到与目标用户有着相同喜好的相似用户,根据目标用户的相似用户的喜好产生向目标用户的推荐内容;到底是怎么实现的;
我们来做一个假设:
用户1(运营)喜欢书籍A、书籍C;
用户2(测试)喜欢书籍B;
用户3(产品)喜欢书籍A、书籍C、书籍D;
通过数据(用户之间多维空间中两个向量夹角的余弦公式)我们发现用户1(运营)和用户3(产品)喜好比较相似,同时我们发现用户3喜欢书籍D,我们预测用户1也会喜欢书籍D,那么这个时候我们就可以把书籍D推荐给用户1;这就是基于用户的协同过滤推荐;
-----------------------------------------------------------------------------------------------------------------------------------------------
2)、基于项目(内容)的协同过滤;
基于内容的协同过滤是利用数据统计找到历史用户对历史消费信息的评价数据值,发掘信息与信息之间的相似度,根据目标用户的历史消费行为喜好将相似的信息推荐给目标用户;到底是怎么实现的;
我们来做一个假设:
用户1喜欢电影A(战争片)、电影C(战争片);
用户2喜欢电影A(战争片)、电影B(爱情片)、电影C(战争片);
用户3喜欢电影A(战争片);
通过数据(内容之间多维空间中两个向量夹角的余弦公式)我们发现电影A和电影C有着相似的信息属性,同为战争片,喜欢电影A的用户都喜欢电影C,基于这两者之间的数据关联关系,我们发现用户3喜欢电影A,所以我们预测用户3也会喜欢电影C,那么这个时候我们就可以把电影C推荐给用户3;这就是基于内容的协同过滤;
-----------------------------------------------------------------------------------------------------------------------------------------------
3)、基于模型的协同过滤;
基于模型的协同过滤是目前最主流的协同过滤类型,该种推荐类型的模型是我们有m个物品、m个用户的数据,只有部分用户和部分数据之间是有评分数据的,其它部分评分是空白;此时我们要用已有的部分稀疏数据来预测那些空白的物品和数据之间的评分关系,找到最高评分的物品推荐给目标用户;
基于模型的协同过滤推荐是基于样本数据用户喜好信息,训练并建立一个推荐模型,然后根据实时的目标用户喜好信息进行预测推荐;这个类型的推荐算法就利用到了机器学习模块;这里不做过多介绍;
-----------------------------------------------------------------------------------------------------------------------------------------------
通过对上述三种协同过滤类型的分析,我们简单总结一下这几种推荐类型的原理;
1)、基于用户的协同过滤主要考虑的是用户和用户之间的相似度,找出相似用户喜欢的物品,并预测目标用户对应物品的评分,就可以把评分最高的若干个物品推荐给目标用户;比如某用户(运营类型)在网站买了一些运营的书籍,另一个用户(有着运营标签)来网站,网站就会推荐大量运营的书籍给他;
2)、基于项目(内容)的协同过滤主要考虑的是物品和物品之间的相似度,找到目标用户对某些物品的评分,就可以对相似度高的类似物品进行预测,将评分最高的若干个相似物品推荐给目标用户;比如某用户在网上买了一些大数据方面的书籍,网站就会推荐大量大数据、云计算、机器学习的书籍给他;
3)、基于项目的协同过滤是基于样本数据用户喜好信息,训练并建立一个推荐模型,然后根据实时的目标用户喜好信息进行预测推荐;这个类型的推荐算法利用到了机器学习模块,这里不做过多介绍;
-----------------------------------------------------------------------------------------------------------------------------------------------
我们对基于用户的协同过滤和基于内容的协同过滤做一个简单的对比,了解一下两者的优势与劣势;(由于基于模型的协同过滤涉及到机器学习建模,这里不做介绍)
1)、基于用户的协同过滤:劣势是需要在线实时发掘用户和用户之间的相似度关系,计算复杂度非常高;优势是可以帮助用户找到新类别喜好的物品;
2)、基于项目(内容)的协同过滤:优势是物品之间的相似度长时间不会有大改变,因此对计算的实时要求不高完全可以线下计算,由于计算量完全所以推荐准确度非常高;劣势是由于都是基相似内容之间的关联性做推荐,所以很难给用户推荐新的兴趣点的内容;
-----------------------------------------------------------------------------------------------------------------------------------------------
这是个性化推荐系统系列的第4篇,该系列一共有5篇:1、《个性化推荐系列之初步认识推荐系统》;2、《个性化推荐系列之初步认识机器学习》;3、《个性化推荐系列之推荐系统的演化及常见推荐算法》;4、《个性化推荐系列之协同过滤推荐算法总结》;5、《个性化推荐系列之推荐算法实践》;
详见知乎专栏--产品打杂https://zhuanlan.zhihu.com/zhoulink