我们经常会拿到一种数据是user—item的表格,然后对应的是每位user对每个item的评分,如下图:
对于这个问题我们通常会选择矩阵分解的方法来解决。
我们常见的推荐系统矩阵分解有BPR、SVD(funkSVD)、ALS、NMF、WRMF。
https://my.oschina.net/u/4722525/blog/4790792
https://www.cnblogs.com/davidwang456/articles/10576464.html
https://blog.csdn.net/gt9000/article/details/86227215
https://my.oschina.net/u/4722525/blog/4790792
https://zhuanlan.zhihu.com/p/27502172
随着当今技术的飞速发展,数据量也与日俱增,人们越来越感觉在海量数据面前束手无策。正是为了解决信息过载(Information overload)的问题,人们提出了推荐系统(与搜索引擎对应,人们习惯叫推荐系统为推荐引擎)。当我们提到推荐引擎的时候,经常联想到的技术也便是搜索引擎。不必惊讶,因为这两者都是为了解决信息过载而提出的两种不同的技术,一个问题,两个出发点,我更喜欢称它们两者为兄弟,亲近而形象。
兄弟二人有共同的目标,即解决信息过载问题,但具体的做法因人而异。
搜索引擎更倾向于人们有明确的目的,可以将人们对于信息的寻求转换为精确的关键字,然后交给搜索引擎最后返回给用户一系列列表,用户可以对这些返回结果进行反馈,并且是对于用户有主动意识的,但它会有马太效应的问题,即会造成越流行的东西随着搜索过程的迭代会越流行,使得那些越不流行的东西石沉大海。
而推荐引擎更倾向于人们没有明确的目的,或者说他们的目的是模糊的,通俗来讲,用户连自己都不知道他想要什么,这时候正是推荐引擎的用户之地,推荐系统通过用户的历史行为或者用户的兴趣偏好或者用户的人口统计学特征来送给推荐算法,然后推荐系统运用推荐算法来产生用户可能感兴趣的项目列表,同时用户对于搜索引擎是被动的。其中长尾理论(人们只关注曝光率高的项目,而忽略曝光率低的项目)可以很好的解释推荐系统的存在,试验表明位于长尾位置的曝光率低的项目产生的利润不低于只销售曝光率高的项目的利润。推荐系统正好可以给所有项目提供曝光的机会,以此来挖掘长尾项目的潜在利润。
https://zhuanlan.zhihu.com/p/34004488
推荐系统提供web服务的两种方式
推荐系统提供web服务一般有两种方式,一种是事先计算型,另一种是实时装配型。
https://zhuanlan.zhihu.com/p/107854284
https://github.com/ZainZhao/Personalized-recommend
https://github.com/ittqqzz/ECommerceRecommendSystem
https://segmentfault.com/a/1190000040305701
https://www.bilibili.com/read/cv11806660
https://www.zhihu.com/question/20345704/answer/586049299