导航:首页 > 源码编译 > 个性化推荐算法有哪些

个性化推荐算法有哪些

发布时间:2023-02-04 01:33:26

① 浅谈个性化推荐

随着互联网的不断壮大,各类APP层出不穷,个性化推荐系统受到了越来越广的应用,狭义上来说,阅读APP上的文章推荐就是典型的应用;广义上来说,从某种程度而言,所谓的精准化营销本质上就是个性化推荐系统在营销层面的应用。

个性化推荐是通过海量数据挖掘,为用户提供个性化的信息推荐或者帮助用户进行决策的一种推荐方式。该推荐方法在实际中的应用较为广泛,电商平台的购物推荐,信息聚合平台的新闻推荐,音乐视频网站的相关推荐以及个性化广告的展示等等,都是该方法在各行业的应用。根据长尾理论,一个好的个性化推荐方法是可以挖掘到长尾的不被关注的信息。

任何系统或者算法在使用时,都是有一定的前提。个性化推荐系统的应用有两个前提。一,信息过载;二是用户没有明确的目的,在这两个条件都满足的情况下,推荐系统才能发挥它自己独特的魅力。假如信息没有过载,比如在某个新闻聚合平台上,每天只有10篇新闻,花10分钟即可浏览完毕,推荐系统此时的存在并无意义;假若用户已有了明确的目的,那么他们需要的是搜索引擎,网络一下,即可立马知道相关信息。因此只有当两个条件同时满足时,推荐系统才能真正的为人所用。

那推荐系统的价值呢?通过对个性化推荐的定义与存在前提两个部分进行解释,我们可以发现,个性化推荐的根本目的在于提供一个用户与对用户有价值感兴趣的信息之间的渠道,在这个渠道中,不仅仅用户可以获得自己感兴趣的信息,同时,有价值的信息也会出现在相应的用户面前。

根据方式的不同,个性化推荐分为社会化推荐、基于内容的推荐、基于协同过滤的推荐三种方式,接下来我们依次解释并举例子

社会化推荐是比较简单的一种推荐方法,通过用户自己的社交网络关系进行信息推荐,物以类聚人以群分,好友中越多的人对某条信息越感兴趣,则预测你可以对该条信息的兴趣度越大,如微信中的游戏推荐(见下图),大家可以看到,自己好友正在一起玩的游戏列表,在我的朋友中,有40个人都在玩王者,没错,我也在玩王者。当然,游戏与即时通讯平台一样具有极高的社交性,社交关系越强烈,平台的稳固性及增长率就会越大。

基于内容的推荐通过对用户对物品或者信息的爱好,计算其他物品与其的相似性,并推荐给用户。以淘宝网为例,一件衣服的相似衣服则是通过内容的相似度进行匹配。

通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。基于协同过滤的推荐分为两类,一类是基于用户的协同过滤算法,另一类是基于物品的协同过滤算法。

基于用户的协同过滤是先计算用户间的相似度,然后将相似度较高的用户的其他商品进行推荐,计算用户间的相似度是通过过去两个用户的购买行为或者浏览行为,同时考虑不同行为的权重&满意度计算而来。该方法会带来冷启动问题,若一个用户第一次登录,并无任何行为则无法使用该方法进行推荐。

基于物品的协同过滤算法是先计算不同物品间的相似度,在利用用户对其的评价,进行加权处理,然后给用户推荐相关的数据。因此在做物品的协同过滤时,不同物品间的相似度应在线下进行计算并准备好。

其实在现在的系统中,推荐系统不再仅仅是一种方法的使用,而是不同方法下的结合,在不同的场景下使用不同的推荐方法。

② 个性化推荐算法

随着算法的普及,大量的产品有了个性化推荐的功能,这也成为内容类产品的标配。个性化定制化逐渐成为了互联网思维的新补充,被提升到了越来越重要的地位。算法推荐经过了很长一段时间的发展,才逐渐达到能给用户惊喜的阶段。比如在电商领域,推荐算法可以挖掘用户潜在购买需求,缩短用户选取商品的时间,提升用户的购物体验;在新闻或段视频领域,推荐算法可以推送用户喜欢的内容,提高用户的阅读效率,减少用户选择内容的时间,也增加了用户在产品上的停留时长。

算法应用阶段

内容类产品发展初期,推荐算法一般为“热度算法”,就是系统把热点内容优先推荐送给用户,完成热点内容的高阅读率。在积累了一定的用户数据后,会发现用户阅读内容过于集中于热点信息,长尾信息中的优质资源往往被忽略,造成资源浪费。“千人一面”的状况已不是一个优质的解决方案,所以算法逐渐演变为“个性化推荐”,也就是协同过滤的方法论支撑下的一种算法。协同过滤能很好的根据用户的喜好,推荐匹配的内容,减少资源浪费,增加用户使用的友好体验。真正做到“千人千面”。

推荐算法的信息来源

第三方数据

一个新系统在初期没有数据积累的情况下,可与第三方合作,互授部分信息共享。比如,很多系统支持微信登陆,这时候可以获取客户的微信信息,生活地点,部分生活习惯等。同时会获取用户的社交信息,共同好友越多表明圈子越相似,可以推荐更多相似的内容。

用户行为数据

记录用户在系统内的使用习惯,可以准确的描述单个用户的行为特征,爱好特征等有效的信息,系统根据提取出的分析结果,将内容与之匹配,完成更精准的推荐。如,某用户经常浏览体育信息,系统将对应推荐更多体育相关的咨询,省去用户搜索筛选的时间。

基于生活习惯

基于生活习惯,生活常识的推荐,往往也可以作为内置的一个信息来源途径。比如,外卖的app推荐用户的餐厅,一般默认是位置优先,就近推荐,如果是快中午的时间段使用,系统默认推荐午餐,其次是晚餐。靠生活常识作出的系统算法,可以更符合人类的习惯,给用户更好的体验。

热度算法

热度算法简单的说就是把最核心的内容优先推荐,用新闻举例,每一条新闻都具有实效性,随着时间的推移,该条新闻的关注度降低,关注点被新的热点新闻取代。量化以上的过程,把各个影响因素设定为变量,会得出以下的公式:

新闻热度=初始热度分+用户交互热度分-衰减热度分

初始热度分为新闻产生时,系统对新闻主体的预判热度值。预判的分值一般为以下两种模式,一种情况,按照新闻类别的不同,娱乐新闻大于财经新闻,大于国际新闻,大于文化新闻等等系统的预设,依次给出不同的初始热度分;另一种情况,系统预置热词词库,用新闻的关键词和词库的去匹配,匹配度高的,初始热度分高。

用户的交互热度分也是一个变量,先要明确用的哪些行为会影响新闻热度,然后对这些行为量化,加权或打分等方式。例如,网易云音乐,用户的听歌,重复循环,收藏,评论,分享等行为,系统为每一种行为打分,求和后得出用户交互的热度分:

用户交互热度分=听歌X10+循环X5+收藏X10+评论X5+分享X3

此公式还可以继续细化,每一种操作的分值也可以作为变量,在产品前期时,传播产品为主要任务,所以分享的加权要大一些,随着网易云的发展,社区的概念逐渐强化,评论区互动的加权会加大,所以评论的分值会增加,系统随时调整分数加权,得出更准确的用户交互的影响值。

衰减热度分是一个随时间变化而变化的数值,往往是一个函数的表达。用新闻举例,新闻的热度会随着时间的推移而衰减,并且趋势是越来越快,人们在接受新的热点后,迅速忘记“旧闻”,直至热度趋近于零。根据理论数据,构建函数,准确的表达衰减分值。

还有很多其他的影响因素,比如传播次数,传播层数,停留时长等等,都会影响热度值,要想更精准的表达,就需要把涉及到的因素都作为变量,不断完善算法,才能更精准的完成推荐。

个性化推荐算法

随着用户量的增加,产品日活的增加,用户也不能仅限于千人一面热点阅读的模式中,个性化推荐在此时显得尤为重要。个性化推荐有两种常见的解决方案,一种是基于内容的推荐算法,推荐内容往往是根据用户的使用习惯得来,较为精准;另一种是基于用户的协同推荐算法,系统会根据以往使用内容,为用户建模,然后根据群体中个体的使用习惯,推荐更多超预期的内容,达到预测推荐的效果。

基于内容的推荐算法-预期内

基于内容的推荐算法,靠收集用户的使用习惯,进而推荐相关的内容。系统使用分词库匹配、关键词匹配等等方式,达到内容的匹配,做到内容的精确划分。比如,用户浏览了某部科幻电影,系统就会按照该电影所对应的标签,如科幻,然后系统推荐相同标签的影片给用户。

这样的推荐方案,确定性强,推荐的内容都是根据用户的历史来确定,不能挖掘用户的潜在需求。

基于用户的协同推荐-超预期

做到精准推荐后,系统会继续挖掘更潜在的推荐需求,给用户超预期的推荐体验。这就到了基于用户协同推荐的阶段。简单的说,这种算法是增加了用户建模的环节,将同标签的用户群分,对比群体中单个个体的特征,默认这种特征为这类人的潜在特征,再将此特征内容推荐给同标签的用户,达到超预期的推荐效果。

比如,某用户购买了一个苹果手机,系统会将此用户归类为果粉,系统识别出很多果粉除了买苹果的商品,还会购买小米作为备用机,这个特征会被系统识别为潜在需求,推荐给果粉,减少果粉选择备用机的时间。

这样的推荐算法,不仅能完成精准的推荐,还能给用户小惊喜,让系统“有温度”。但是这样的推荐方式,往往需要积累了大量用户资料为基础,才可以精确的完成。

③ 猜你喜欢是如何猜的——常见推荐算法介绍

自从头条系的产品今日头条和抖音火了之后,个性化推荐就进入了大众的视野,如果我们说搜索时人找信息的话,那么推荐就是信息找人。搜索是通过用户主动输入索引信息告诉机器自己想要的东西,那么推荐的这个索引是什么才能让信息找到人呢?

第一类索引是“你的历史”,即基于你以前在平台上对某物品产生的行为(点赞,转发,评论或者收藏),寻找与你产生过相似行为的用户所喜欢的其他物品或者与你喜欢的物品相似的其他物品来为你推荐。这一基于用户行为相似的算法有:协同过滤算法、基于内容的推荐算法和基于标签的推荐算法。

基于用户的协同过滤算法是寻找与A用户有相似行为的所有B用户所喜欢的而A用户还不知道的物品推荐给A用户 。该算法包括两个步骤:

-根据用户所喜欢的物品计算用户间相似度,找到与目标用户相似的用户集合;

-找到该用户集合所喜欢的而目标用户所不知道的物品。

那么,找出一批物品以后哪个先推荐哪个后推荐?用户间相似程度大的先推荐,用户对物品的感兴趣程度大要先推荐。即假设A用户与B用户的相似程度为0.9,与C用户的相似程度为0.7,用户B喜欢物品a和物品b的程度分别为1和2,用户C喜欢物品a和物品b的程度分别为0.1和0.5,那么先推荐物品b。多个用户多个物品,只要拟定了用户间的相似度和用户对物品的感兴趣程度,即可对物品进行打分并且进行综合排序。

基于物品的协同过滤算法是根据用户行为而不是物品本身的相似度来判断物品的相似度 ,即如果物品A和物品B被很多的用户同时喜欢,那么我们就认为物品A和物品B是相似的。该算法也是包括两个步骤:

-根据用户行为计算物品间的相似度;

-根据物品的相似度和用户的历史行为给用户生成推荐列表。

与UserCF相似的是,同样会遇到推荐的先后顺序问题,那么ItemCF所遵循的原则是:物品间相似程度大的先推荐,用户对物品的感兴趣程度大要先推荐。假设用户对物品a和物品b感兴趣的程度分别为1和0.5,物品a与物品c和物品d的相似度分别为0.5和0.1,物品b与物品c和物品d的相似度分别为0.3和0.4,那么先推荐物品d。用户喜欢多个物品,并且多个物品与其他物品都有相似的情况下,只要拟定了用物品间的相似度和用户对物品的感兴趣程度,即可对物品进行打分并且进行综合排序。

协同过滤算法的核心都是通过用户行为来计算相似度,User-CF是通过用户行为来计算用户间的相似度,Item-CF是通过用户行为来计算物品间的相似度。

推荐算法很重要的一个原理是为用户推荐与用户喜欢的物品相似的用户又不知道的物品。物品的协同过滤算法是通过用户行为来衡量物品间的相似(喜欢物品A的用户中,同时喜欢物品B的用户比例越高,物品A与物品B的相似程度越高),而基于内容的推荐算法衡量则是通过物品本身的内容相似度来衡量物品间的相似。

假如,你看了东野圭吾的《解忧杂货店》,那么下次系统会给你推荐东野圭吾的《白夜行》。假设你看了小李子的《泰坦尼克号》,系统再给你推荐小李子的《荒野猎人》。

该算法与前两种不同的是,将用户和物品之间使用“标签”进行联系,让用户对喜欢的物品做记号(标签),将同样具有这些记号(标签)的其他物品认为很大程度是相似的并推荐给用户。其基本步骤如下:

统计用户最常用的标签

对于每个标签,统计最常被打过这个标签次数最多的物品

将具有这些标签最热门的物品推荐给该用户

目前,国内APP中,豆瓣就是使用基于标签的推荐算法做个性化的推荐。

第二类索引是“你的朋友”,基于你的社交好友来进行推荐,即基于社交网络的推荐。例如,微信看一看中的功能“朋友在看”就是最简单的基于社交网络的推荐,只要用户点击公众号文章的“在看”,就会出现在其好友的“朋友在看”的列表中。

复杂一点的算法会考虑用户之间的熟悉程度和兴趣的相似度来进行推荐。目前,在信息流推荐领域,基于社交网络进行推荐的最流行的算法是Facebook的EdgeRank算法,即为用户推荐其好友最近产生过重要行为(评论点赞转发收藏)的信息。

第三类索引是“你所处的环境”,基于你所处的时间、地点等上下文信息进行推荐。例如,我们看到很APP中的“最近最热门”,就是基于时间上下文的非个性化推荐;以及,美团和饿了么这些基于位置提供服务的APP中,“附近商家”这一功能就是基于用户位置进行推荐。高德地图在为用户推荐驾驶路线时,会考虑不同路线的拥堵程度、红绿灯数量等计算路线用和路程距离再进行综合排序推荐。

很多时候,基于时间上下文的推荐会协同过滤这类个性化推荐算法结合使用。例如,在使用协同过滤推荐策略的时候,会将时间作为其中一个因素考虑进入推荐策略中,最近的信息先推荐。

以上就是常见的推荐算法。作为产品人,我们不需要知道如何实现,但是我们必须知道这些推荐算法的原理,知道在什么场景下如何去做推荐才能提升推荐的效率,这才是产品经理的价值所在。

参考资料:《推荐算法实战》项亮

④ 推荐算法小结

输入 :与用户相关的包含众多特征(feature)的数据:

用户的注册信息(职业、年龄、性别等 显信息),行为信息(使用功能、有效使用时长等 隐信息)。

输出 :推荐给用户的功能列表(根据得分高低排序)

函数 : 传统算法 、 机器学习算法 (Machine Learning)、 深度学习算法 (Deep Learning)

基于流行度的算法非常简单粗暴,类似于各大新闻、微博热榜等,根据VV、UV、日均PV或分享率等数据来按某种热度(加权)排序来推荐给用户。

访问次数 (VV):记录1天内所有访客访问了该网站多少次,相同的访客有可能多次访问该网站,且访问的次数累加。

独立访客 (UV):记录1天内所有访客访问了该网站多少次,虽然相同访客能多次访问网站,但只计算为1个独立访客。

PV访问量 (Page View):即页面访问量,每打开一次页面或者刷新一次页面,PV值+1。

优点:该算法简单,适用于刚注册的新用户

缺点:无法针对用户提供个性化的推荐

改进:基于该算法可做一些优化,例如加入用户分群的流行度进行排序,通过把热榜上的体育内容优先推荐给体育迷,把政要热文推给热爱谈论政治的用户。

基于用户的协同过滤推荐算法 (UserCF):针对目标用户(A),先通过兴趣、爱好或行为习惯找到与他相似的“其他用户”(BCD...),然后把BCD...喜欢的并且A没有浏览过的物品或功能推给A。

基于物品的协同过滤推荐算法 (ItemCF):例如由于我之前看过张艺谋导演的《英雄》这部电影,会给我推荐《红高粱》、《归来》等同导演电影。

1)分析各个用户对物品的评价,通过浏览记录、购买记录等得到用户的隐性评分;

2)根据用户对物品的隐性评分计算得到所有用户之间的相似度;

3)选出与目标用户最相似的K个用户;

4)将这K个用户隐性评分最高并且目标用户又没有浏览过的物品推荐给目标用户。

优点:

基于用户的协同过滤推荐算法是给目标用户推荐那些和他有共同兴趣的用户喜欢的物品,所以该算法推荐较为社会化,即推荐的物品是与用户兴趣一致的那个群体中的热门物品;

适于物品比用户多、物品时效性较强的情形,否则计算慢;

能实现跨领域、惊喜度高的结果。

缺点:

在很多时候,很多用户两两之间的共同评分仅有几个,也即用户之间的重合度并不高,同时仅有的共同打了分的物品,往往是一些很常见的物品,如票房大片、生活必需品;

用户之间的距离可能变得很快,这种离线算法难以瞬间更新推荐结果;   

推荐结果的个性化较弱、较宽泛。

改进:

两个用户对流行物品的有相似兴趣,丝毫不能说明他们有相似的兴趣,此时要增加惩罚力度;

如果两个用户同时喜欢了相同的物品,那么可以给这两个用户更高的相似度;

在描述邻居用户的偏好时,给其最近喜欢的物品较高权重;

把类似地域用户的行为作为推荐的主要依据。

1)分析各个用户对物品的浏览记录;

2)依据浏览记录分析得出所有物品之间的相似度;

3)对于目标用户评价高的物品,找出与之相似度最高的K个物品;

4)将这K个物品中目标用户没有浏览过的物品推荐给目标用户

优点:

基于物品的协同过滤推荐算法则是为目标用户推荐那些和他之前喜欢的物品类似的物品,所以基于物品的协同过滤推荐算法的推荐较为个性,因为推荐的物品一般都满足目标用户的独特兴趣。

物品之间的距离可能是根据成百上千万的用户的隐性评分计算得出,往往能在一段时间内保持稳定。因此,这种算法可以预先计算距离,其在线部分能更快地生产推荐列表。

应用最广泛,尤其以电商行业为典型。

适于用户多、物品少的情形,否则计算慢

推荐精度高,更具个性化

倾向于推荐同类商品

缺点:

不同领域的最热门物品之间经常具有较高的相似度。比如,基于本算法,我们可能会给喜欢听许嵩歌曲的同学推荐汪峰的歌曲,也就是推荐不同领域的畅销作品,这样的推荐结果可能并不是我们想要的。

在物品冷启动、数据稀疏时效果不佳

推荐的多样性不足,形成信息闭环

改进:

如果是热门物品,很多人都喜欢,就会接近1,就会造成很多物品都和热门物品相似,此时要增加惩罚力度;

活跃用户对物品相似度的贡献小于不活跃的用户;

同一个用户在间隔很短的时间内喜欢的两件商品之间,可以给予更高的相似度;

在描述目标用户偏好时,给其最近喜欢的商品较高权重;

同一个用户在同一个地域内喜欢的两件商品之间,可以给予更高的相似度。

(相似度计算:余弦相似度、Jaccard系数、皮尔森相关系数等)

常见经典 ML 分类算法:

逻辑回归 (Logistics Regression)

支持向量机 (SVM)

随机森林 (Random Forest)

提升类算法 (Boosting):Adaboost、GBDT、XGboost

一般处理流程:数据处理 -> 特征工程 -> 模型选择 -> 交叉验证 -> 模型选择与模型融合

特征清洗 :剔除不可信样本,缺省值极多的字段不予考虑

特征预处理 :单个特征(归一化,离散化,缺失值补全,数据变换),多个特征(PCA/LDA降维,特征选择)

使用工具 :pandas(python开源库)

模型选择与模型融合 :根据交叉验证得分选择前几名模型,然后进行模型融合(Bagging、Boosting、Stacking)

DL 优势 :ML 中特征工程是十分重要并且要根据行业经验确定,DL 可以自己从数据中学习特征。DL 能自动对输入的低阶特征进行组合、变换,得到高阶特征。对于公司产品应用领域来说,用户的注册信息(职业、年龄、性别等 显信息),行为信息(使用功能、有效使用时长等 隐信息)。这些就可以作为低阶特征输入。

RNN系列 (处理文本数据)

CNN系列 (处理图像数据)

DNN (处理一般性分类)

⑤ 个性化推荐是怎么做的

各种推荐算法不能仅仅是研发涉猎领域,作为PM,也要深入到算法内部,了解算法的设计,以及结合内容对算法不断“调教”,才能让产品的推荐算法不断完善,才能符合用户的口味。

目前比较流行的个性化推荐算法有以下几种:

基于内容的推荐:根据内容本身的属性(特征向量)所作的推荐。

基于关联规则的推荐:“啤酒与尿布”的方式,是一种动态的推荐,能够实时对用户的行为作出推荐。是基于物品之间的特征关联性所做的推荐,在某种情况下会退化为物品协同过滤推荐。

协同过滤推荐:与基于关联规则的推荐相比是一种静态方式的推荐,是根据用户已有的历史行为作分析的基础上做的推荐。可分为物品协同过滤、用户协同过滤、基于模型的协同过滤。其中,基于模型的协同又可以分为以下几种类型:基于距离的协同过滤;基于矩阵分解的协同过滤,即Latent

Factor Model(SVD)或者ALS;基于图模型协同,即Graph,也叫社会网络图模型。

1、产品冷启动通过热度算法进行内容推荐

产品发展初期,由于一方面没有用户行为、用户喜好、用户画像,另外也没有大量的内容样本基础,是很难开展个性化推荐的。所以在产品初期,一般采取“热度算法”,顾名思义就是把热点的内容优先推荐给用户。虽然无法做到基于兴趣和习惯为每一个用户做到精准化的推荐,但能覆盖到大部分的内容需求,而且启动成本比个性化推荐算法低太多。

热度算法基本原理:

新闻热度分 = 初始热度分 + 用户交互产生的热度分 – 随时间衰减的热度分

Score = S0 + S(Users) – S(Time)

1)以新闻或视频较有时效性的内容举例,热度随内容陈旧而分值衰减。

2)初始热度分不要一视同仁。

按照新闻类别给予新闻不同的初始热度,让用户关注度高的类别获得更高的初始热度分,从而获得更多的曝光。军事>娱乐>体育>财经....

对于重大事件的报道,如何让它入库时就有更高的热度,我们采用的是热词匹配的方式。

即对大型新闻站点的头条,Twitter热点,竞品的头条做监控和扒取,并将这批新闻的关键词维护到热词库并保持更新;每条新闻入库的时候,让新闻的关键词去匹配热词库,匹配度越高,就有越高的初始热度分。这样处理后,重大事件发生时,Twitter和门户网站的争相报道会导致热词集中化,所有匹配到这些热词的新闻,即报道同样事件的新闻,会获得很高的初始热度分。

3)用户交互的热度分值比重不一。首先明确用户的的哪些行为会提高新闻的热度值,然后对这些行为赋予一定的得分规则。

例如对于单条新闻,用户可以点击阅读(click),收藏(favor),分享(share),评论(comment)这四种行为,我们为不同的行为赋予分数,就能得到新闻的实时用户行为分为:

S(Users) = 1*click + 5*favor + 10*comment + 20*share

这里对不同行为赋予的分数为1,5,10,20,但这个值不能是一成不变的;当用户规模小的时候,各项事件都小,此时需要提高每个事件的行为分来提升用户行为的影响力;当用户规模变大时,行为分也应该慢慢降低,因此做内容运营时,应该对行为分不断调整。

当然也有偷懒的办法,那就是把用户规模考虑进去,算固定用户数的行为分,即:

S(Users) = (1*click + 5*favor + 10*comment + 20*share)/ DAU * N(固定数)

这样就保证了在不同用户规模下,用户行为产生的行为分基本稳定。

2、基于内容特征与用户特征进行个性化推荐

对于此种推荐,有两个实体:内容和用户,因此需要有一个联系这两者的东西,即为标签。内容转换为标签即为内容特征化,用户则称为用户特征化。对于此种推荐,主要分为以下几个关键部分:

标签库

内容特征化

用户特征化

隐语义推荐

综合上面讲述的各个部分即可实现一个基于内容和用户画像的个性化推荐系统。

标签库

标签是联系用户与物品、内容以及物品、内容之间的纽带,也是反应用户兴趣的重要数据源。标签库的最终用途在于对用户进行行为、属性标记。是将其他实体转换为计算机可以理解的语言关键的一步。

标签库则是对标签进行聚合的系统,包括对标签的管理、更新等。

一般来说,标签是以层级的形式组织的。可以有一级维度、二级维度等。

标签的来源主要有:

已有内容的标签

网络抓取流行标签

对运营的内容进行关键词提取

对于内容的关键词提取,使用结巴分词+TFIDF即可。此外,也可以使用TextRank来提取内容关键词。

这里需要注意的一点是对于关联标签的处理,比如用户的标签是足球,而内容的标签是德甲、英超,那么用户和内容是无法联系在一起的。最简单的方式是人工设置关联标签,此外也可以使用word2vec一类工具对标签做聚类处理,构建主题模型,将德甲、英超聚类到足球下面。

内容特征化

内容特征化即给内容打标签。目前有两种方式:

人工打标签

机器自动打标签

针对机器自动打标签,需要采取机器学习的相关算法来实现,即针对一系列给定的标签,给内容选取其中匹配度最高的几个标签。这不同于通常的分类和聚类算法。可以采取使用分词 +Word2Vec来实现,过程如下:

将文本语料进行分词,以空格,tab隔开都可以,使用结巴分词。

使用word2vec训练词的相似度模型。

使用tfidf提取内容的关键词A,B,C。

遍历每一个标签,计算关键词与此标签的相似度之和。

取出TopN相似度最高的标签即为此内容的标签。

此外,可以使用文本主题挖掘相关技术,对内容进行特征化。这也分为两种情况:

通用情况下,只是为了效果优化的特征提取,那么可以使用非监督学习的主题模型算法。如LSA、PLSI和GaP模型或者LDA模型。

在和业务强相关时,需要在业务特定的标签体系下给内容打上适合的标签。这时候需要使用的是监督学习的主题模型。如sLDA、HSLDA等。

用户特征化

用户特征化即为用户打标签。通过用户的行为日志和一定的模型算法得到用户的每个标签的权重。

用户对内容的行为:点赞、不感兴趣、点击、浏览。对用户的反馈行为如点赞赋予权值1,不感兴趣赋予-1;对于用户的浏览行为,则可使用点击/浏览作为权值。

对内容发生的行为可以认为对此内容所带的标签的行为。

用户的兴趣是时间衰减的,即离当前时间越远的兴趣比重越低。时间衰减函数使用1/[log(t)+1], t为事件发生的时间距离当前时间的大小。

要考虑到热门内容会干预用户的标签,需要对热门内容进行降权。使用click/pv作为用户浏览行为权值即可达到此目的。

此外,还需要考虑噪声的干扰,如标题党等。

另,在非业务强相关的情况下,还可以考虑使用LSA主题模型等矩阵分解的方式对用户进行标签化。

隐语义推荐

有了内容特征和用户特征,可以使用隐语义模型进行推荐。这里可以使用其简化形式,以达到实时计算的目的。

用户对于某一个内容的兴趣度(可以认为是CTR):

其中i=1…N是内容c具有的标签,m(ci)指的内容c和标签i的关联度(可以简单认为是1),n(ui)指的是用户u的标签i的权重值,当用户不具有此标签时n(ui)=0,q©指的是内容c的质量,可以使用点击率(click/pv)表示。

3、其他运用

除了个性化推荐,基于内容的相关性算法能精准地给出一篇新闻的相关推荐列表,对相关阅读的实现非常有意义。此外,标签系统对新闻分类的实现和提升准确性,也有重要的意义。

4、优缺点

基于内容的推荐算法有几个明显优点:

对用户数量没有要求,无论日活几千或是几百万,均可以采用;因此个性化推荐早期一般采用这种方式。

每个用户的特征都是由自己的行为来决定的,是独立存在的,不会有互相干扰,因此恶意刷阅读等新闻不会影响到推荐算法。

而最主要的缺点就是确定性太强了,所有推荐的内容都是由用户的阅读历史决定,所以没办法挖掘用户的潜在兴趣;也就是由于这一点,基于内容的推荐一般与其他推荐算法同时存在。

基于用户的协同推荐

终于,经过团队的努力,你的产品已经有了大量活跃用户了,这时候你开始不满足于现有的算法。虽然基于内容的推荐已经很精准了,但总是少了那么一点性感。因为你所有给用户的内容都是基于他们的阅读习惯推荐的,没能给用户“不期而遇”的感觉。

于是,你就开始做基于用户的协同过滤了。

基于用户的协同过滤推荐算法,简单来讲就是依据用户A的阅读喜好,为A找到与他兴趣最接近的群体,所谓“人以群分”,然后把这个群体里其他人喜欢的,但是A没有阅读过的内容推荐给A。

举例我是一个足球迷,系统找到与我类似的用户都是足球的重度阅读者,但与此同时,这些“足球群体”中有一部分人有看NBA新闻的习惯,系统就可能会给我推荐NBA内容,很可能我也对NBA也感兴趣,这样我在后台的兴趣图谱就更完善了。

1、用户群体划分

做基于用户的协同过滤,首先就要做用户的划分,可以从三方面着手:

(1)外部数据的借用

这里使用社交平台数据的居多,现在产品的登录体系一般都借用第三方社媒的登录体系,如国外的Facebook、Twitter,国内的微信、微博,借用第三方账户的好处多多,例如降低门槛,方便传播等,还能对个性化推荐起到重要作用。

因为第三方账户都是授权获取部分用户信息的,往往包括性别,年龄,工作甚至社交关系等,这些信息对用户群划分很有意义。

此外还有其他的一些数据也能借用,例如IP地址,手机语种等。

使用这些数据,你很容易就能得到一个用户是北京的还是上海的,是大学生还是创业者,并依据这些属性做准确的大类划分。

比如一篇行业投资分析出来后,“上海创业圈”这个群体80%的用户都看过,那就可以推荐给剩下的20%。

(2)产品内主动询问

常见在产品首次启动的时候,弹框询问用户是男是女,职业等,这样能对内容推荐的冷启动提供一些帮助。但总体来说,性价比偏低,只能询问两三个问题并对用户的推荐内容做非常粗略的划分,同时要避免打扰到用户;这种做法算是基于用户个性化的雏形。

(3)对比用户特征

新闻的特征加用户的阅读数据能得到用户的特征,那就可以通过用户特征的相似性来划分群体。

最后总结,没有一款完美的个性化推荐算法,毕竟用户的心里你别猜别猜别猜,但是产品经理还是要结合自身产品不断打磨算法。

⑥ 3分钟轻松了解个性化推荐算法

推荐这种体验除了电商网站,还有新闻推荐、电台音乐推荐、搜索相关内容及广告推荐,基于数据的个性化推荐也越来越普遍了。今天就针对场景来说说这些不同的个性化推荐算法吧。
说个性化之前,先提一下非个性化。 非个性化的推荐也是很常见的,毕竟人嘛都有从众心理,总想知道大家都在看什么。非个性化推荐的方式主要就是以比较单一的维度加上半衰期去看全局排名,比如,30天内点击排名,一周热门排名。

但是只靠非个性化推荐有个弊端,就是马太效应,点的人越多的,经过推荐点得人有更多。。。强者越强,弱者机会越少就越弱,可能导致两级分化严重,一些比较优质素材就被埋没了。

所以,为了解决一部分马太效应的问题,也主要是顺应数据化和自动化的模式,就需要增加个性化的推荐(可算说到正题了。。。)个性化的优点是不仅体验好,而且也大大增加了效率,让你更快找到你感兴趣的东西。YouTube也曾做过实验测试个性化和非个性化的效果,最终结果显示个性化推荐的点击率是同期热门视频的两倍。

1.新闻、视频、资讯和电台(基于内容推荐)

一般来说,如果是推荐资讯类的都会采用基于内容的推荐,甚至早期的邮件过滤也采用这种方式。

基于内容的推荐方法就是根据用户过去的行为记录来向用户推荐相似额推荐品。简单来说就是你常常浏览科技新闻,那就更多的给你推荐科技类的新闻。

复杂来说,根据行为设计权重,根据不同维度属性区分推荐品都是麻烦的事,常用的判断用户可能会喜欢推荐品程度的余弦向量公式长这样,我就不解释了(已经勾起了我关于高数不好的回忆)。。。

但是,这种算法缺点是由于内容高度匹配,导致推荐结果的惊喜度较差,而且有冷启动的问题,对新用户不能提供可靠的推荐结果。并且,只有维度增加才能增加推荐的精度,但是维度一旦增加计算量也成指数型增长。如果是非实体的推荐品,定义风格也不是一件容易的事,同一个作者的文风和曲风也会发生改变。

2.电商零售类(协同过滤推荐和关联规则推荐)

说电商推荐那不可能不讲到亚马逊,传言亚马逊有三成的销售额都来自个性化的商品推荐系统。实际上,我自己也常常在这里找到喜欢的书,也愿意主动的去看他到底给我推荐了什么。

一般,电商主流推荐算法是基于一个这样的假设,“跟你喜好相似的人喜欢的东西你也很有可能喜欢。”即协同过滤过滤算法。主要的任务就是找出和你品味最相近的用户,从而根据最近他的喜好预测你也可能喜欢什么。

这种方法可以推荐一些内容上差异较大但是又是用户感兴趣的物品,很好的支持用户发现潜在的兴趣偏好。也不需要领域知识,并且随着时间推移性能提高。但是也存在无法向新用户推荐的问题,系统刚刚开始时推荐质可能较量差。

电商行业也常常会使用到基于关联规则的推荐。即以关联规则为基础,把已购商品作为规则头,规则体为推荐对象。比如,你购买了羽毛球拍,那我相应的会向你推荐羽毛球周边用品。关联规则挖掘可以发现不同商品在销售过程中的相关性,在零售业中已经得到了成功的应用。

3.广告行业(基于知识推荐)

自从可以浏览器读取cookies,甚至获得年龄属性等信息,广告的个性化投放就也可以根据不同场景使用了。

当用户的行为数据较少时,基于知识的推荐可以帮助我们解决这类问题。用户必须指定需求,然后系统设法给出解决方式。假设,你的广告需要指定某地区某年龄段的投放,系统就根据这条规则进行计算。基于知识的推荐在某种程度是可以看成是一种推理技术。这种方法不需要用户行为数据就能推荐,所以不存在冷启动问题。推荐结果主要依赖两种形式,基于约束推荐和基于实例推荐。

4.组合推荐

由于各种推荐方法都有优缺点,所以在实际中,并不像上文讲的那样采用单一的方法进行建模和推荐(我真的只是为了解释清楚算法)。。。

在组合方式上,也有多种思路:加权、变换、混合、特征组合、层叠、特征扩充、元级别。 并且,为了解决冷启动的问题,还会相应的增加补足策略,比如根据用户模型的数据,结合挖掘的各种榜单进行补足,如全局热门、分类热门等。 还有一些开放性的问题,比如,需不需要帮助用户有品味的提升,引导人去更好的生活。

最后,我总想,最好的推荐效果是像一个了解你的朋友一样跟你推荐,因为他知道你喜欢什么,最近对什么感兴趣,也总能发现一些有趣的新东西。这让我想到有一些朋友总会兴致勃勃的过来说,嘿,给你推荐个东西,你肯定喜欢,光是听到这句话我好像就开心起来,也许这就是我喜欢这个功能的原因。

⑦ 个性化推荐系统的基本框架

个性化推荐是一种功能,它会通过用户的个性化需求给他推荐符合其需求的内容, 如果选配助听器可以去专业的助听器验配中心,结合自己的听力和听力需求来验配,找到合适自己听力参数的助听器。

⑧ 推荐算法综述

推荐系统的目的是通过推荐计算帮助用户从海量的数据对象中选择出用户最有可能感兴趣的对象。涉及三个基本内容:目标用户、待推荐项目以及推荐算法,基本流程为:描述为用户模型构建、项目模型建立以及推荐算法处理三个基本流程;

为了能够为用户提供准确的推荐服务,推荐系统需要为用户构建用户模型,该模型能够反映用户动态变化的多层次兴趣偏好,有助于推荐系统更好的理解用户的特征和需求。构建用户模型通常需要经历三个流程:用户数据收集,用户模型表示以及用户模型更新。

(1)用户数据收集:用户数据是用户模型构建的基础,用户数据收集的方式一般有显示方式获取和隐式方式获取两种。
显示方式获取的数据是用户特征属性和兴趣偏好的直接反映,所获得的信息数据是较为客观全面的,比如用户在注册时包含的性别、年龄等信息可以直接表示出用户的基本人口学信息和兴趣信息,用户对项目的评分可以反映出用户的偏好。但显示获取的方式最大的缺陷是其实时性较差,并且具有很强的侵袭性。
隐式方式获取用户数据是在不干扰用户的前提下,采集用户的操作行为数据,并从中挖掘出用户的兴趣偏好。用户的很多操作行为都能反映出用户的喜好,比如用户浏览网页的速度、用户查询的关键字等,推荐系统在不影响用户使用系统的情况下,通过行为日志挖掘出用户的偏好。隐式获取方式由于具有较好的实时性和灵活性和较弱的侵袭性,己经成为推荐系统中主要的用户数据采集方式。

(2)用户模型表示:用户模型是从用户数据中归纳出的推荐系统所理解的用户兴趣偏好的结构化形式。
a 基于内容关键词表示;
b 基于评分矩阵表示;
(3)用户模型更新:推荐系统面临的问题之一是兴趣漂移,兴趣漂移的根本原因在于用户的兴趣会随时间发生改变。为了使用户模型够准确的代表用户的兴趣,推荐系统需要根据最新的用户数据对用户模型进行更新。

目前项目模型主要通过基于内容和基于分类这两类方式来建立。基于内容的方式是以项目本身内容为基础,向量空间模型表示是目前御用最为广泛的基于内容的方式。

基于分类的方式是根据项目的内容或者属性,将项目划分到一个或者几个类别中,利用类别信息来表示项目,这种方法可以很方便地将项目推荐给对某一类别感兴趣的用户。常见的分类算法有朴素贝叶斯算法和KNN分类算法等。

推荐系统实现的核心是其使用的推荐算法。针对不同的使用环境及其系统的数据特征,选取不同的推荐算法,可以在本质上提高推荐系统的推荐效果。根据不同的分类标准,推荐算法出现了有很多不同的分类方法,本文采用了比较普遍的分类方法。

推荐系统通常被分为基于内容的推荐算法、协同过滤推荐算法以及混合模型推荐算法三大类。

基于内容的推荐算法,其本质是对物品或用户的内容进行分析建立属性特征。系统根据其属性特征,为用户推荐与其感兴趣的属性特征相似的信息。算法的主要思想是将与用户之前感兴趣的项目的内容相似的其他项目推荐给用户。

CBF(Content-based Filter Recommendations)算法的主要思想是将与用户之前感兴趣的项目的内容相似的其他项目推荐给用户,比如用户喜欢Java开发的书籍,则基于内容过滤算法将用户尚未看过的其他Java开发方面的书籍推荐给用户。因此,该推荐算法的关键部分是计算用户模型和项目模型之间的内容相似度,相似度的计算通常采用余弦相似性度量。

基于内容的推荐过程一般分为以下三个模块:
(1)特征提取模块:由于大多数物品信息是非结构化的,需要为每个物品(如产品、网页、新闻、文档等)抽取出一些特征属性,用某一恰当的格式表示,以便下一阶段的处理。如将新闻信息表示成关键词向量,此种表示形式将作为下一模块(属性特征学习模块)的输入。

(2)特征学习模块:通过用户的历史行为数据特征,机器学习出用户的兴趣特征模型。本模块负责收集代表用户喜好的数据信息,并泛化这些数据,用于构建用户特征模型。通常使用机器学习的泛化策略,来将用户喜好表示为兴趣模型。

(3)推荐模块:该模块利用上一阶段得到的用户特征模型,通过对比用户兴趣模型与带推荐物品的特征相似度,为用户推荐与其兴趣相似度较高的物品,从而达到个性化推荐的目的。该模块一般采用计算用户兴趣向量与待推荐物品特征向量的相似度来进行排序,将相似度较高的物品推荐给相应用户。计算相似度有多种方法,如皮尔逊相关系数法、夹角余弦法、Jaccard相关系数法等。

协同过滤算法(Collaborative Filtering)是于内容无关的,即不需要额外获取分析用户或物品的内容属性特征。是基于用户历史行为数据进行推荐的算法。其通过分析用户与物品间的联系来寻找新的用户与物品间的相关性。

该算法算法通常有两个过程,一个过程是预测,另一个过程是推荐。主流的协同过滤算法包括三种:基于用户的协同过滤(User-Based Collaborative Filtering,UBCF)、基于项目的协同过滤(Item-Based Collaborative Filtering, IBCF)和基于模型的协同过滤(Model-Based Collaborative Filtering, MBCF)

(1)基于用户的协同过滤算法
基于用户的协同过滤推荐算法,先通过用户历史行为数据找到和用户u相似的用户,将这些用户感兴趣的且u没有点击过的物品推荐给用户。
算法主要包括以下两个步骤:
(1)找到与目标用户喜好相似的邻居用户集合。
(2)在邻居用户集合中,为用户推荐其感兴趣的物品。

UBCF的基本思想是将与当前用户有相同偏好的其他用户所喜欢的项目推荐给当前用户。一个最典型的例子就是电影推荐,当我们不知道哪一部电影是我们比较喜欢的时候,通常会询问身边的朋友是否有好的电影推荐,询问的时候我们习惯于寻找和我们品味相同或相似的朋友。

(2)基于物品的协同过滤算法
基于物品的协同过滤算法(Item-based Collaborative Filtering)其主要思想是,为用户推荐那些与他们之前喜欢或点击过的物品相似的物品。不过基于物品的协同过滤算法并不是利用物品的内容属性特征来计算物品之间的相似度的。该类算法是利用用户的历史行为数据计算待推荐物品之间的相似度。在该类算法中,如果喜欢物品A的用户大都也喜欢物品B,那么就可以认为物品A和物品B之间的相似度很高。
算法分为以下两个步骤:
(1)根据用户历史行为数据,计算物品间的相似度。
(2)利用用户行为和物品间的相似度为用户生成推荐列表。

IBCF算法是亚马逊在2003年发表的论文中首次提出,该算法的基本思想是根据所有用户的历史偏好数据计算项目之间的相似性,然后把和用户喜欢的项目相类似的并且用户还未选择的其他项目推荐给用户,例如,假设用户喜欢项目a,则用户喜欢与项目a高度相似且还未被用户选择的项目b的可能性非常大,因此将项目b推荐给用户。

UBCF和IBCF都属于基于内存的协同过滤算法,这类算法由于充分发挥了用户的评分数据,形成全局推荐,因此具有较高的推荐质量。但随着用户和项目的规模增长,这类算法的计算时间大幅上升,使得系统的性能下降。针对该问题,研究人员提出将数据挖掘中的模型和CF算法结合,提出了基于模型的协同过滤算法(MBCF) 。

MBCF算法利用用户历史评分数据建立模型,模型建立的算法通常有奇异值分解、聚类算法、贝叶斯网络、关联规则挖掘等,且通常是离线完成。由于MBCF通常会对原始评分值做近似计算,通过牺牲一定的准确性来换取系统性能,因此MBCF的推荐质量略差于UBCF和IBCF。

由于基于内容的推荐算法和协同过滤推荐算法都有其各自的局限性,混合推荐算法应运而生。混合推荐算法根据不同的应用场景,有多
种不同的结合方式,如加权、分层和分区等。

目前使用的混合推荐算法的思想主要可以分成以下几类:
(1)多个推荐算法独立运行,获取的多个推荐结果以一定的策略进行混合,例如为每一个推荐结果都赋予一个权值的加权型混合推荐算法和将各个推荐结果取TOP-N的交叉混合推荐算法。

(2)将前一个推荐方法产出的中间结果或者最终结果输出给后一个推荐方法,层层递进,推荐结果在此过程中会被逐步优选,最终得到一个精确度比较高的结果。

(3)使用多种推荐算法,将每种推荐算法计算过程中产生的相似度值通过权重相加,调整每个推荐算法相似度值的权重,以该混合相似度值为基础,选择出邻域集合,并结合邻域集合中的评估信息,得出最优的推荐结果。

BP (Back Propagation)神经网络是目前应用最广泛的神经网络模型之一,是一种按误差逆传播算法训练的多层前馈网络。

BP神经网络模型包括输入层、隐藏层和输出层,每一层由一个或多个神经元组成,其结构图如图2-3所示。BP神经网络拥有很强的非线性映射能力和自学习、自适应能力,网络本身结构的可变性,也使其十分灵活,一个三层的BP神经网络能够实现对任意非线性函数进行逼近。

BP神经网络的训练过程通常分为3个过程,依次分别为数据初始化过程、正向推演计算过程以及反向权重调整过程。数据初始化是BP神经网络能够进行有效训练的前提,该过程通常包括输入数据进行归一化处理和初始权重的设置;正向推演计算是数据沿着网络方向进行推演计算;反向权重调整则是将期望输出和网络的实际输出进行对比,从输出层开始,向着输入层的方向逐层计算各层中各神经元的校正差值,调整神经元的权重。正向推演计算和反向权重调整为对单个训练样本一次完整的网络训练过程,经过不断的训练调整,网络的实际输出越来越趋近于期望输出,当网络输出到达预期目标,整个训练过程结束。

TF-IDF(Term Frequency-Inverse Document Frequency,词频一逆文档)是文本处理中常用的加权技术,广泛应用于信息检索、搜索引擎等领域。
TF-IDF的主要思想是:如果一个关键词在文档中出现的频率很高,而在其他文档中出现次数较少,则该关键词被认为具有较强的代表性,即该关键词通过TF-IDF计算后有较高的权重。

TextRank算法,是一种用于文本关键词排序的算法,页排序算法PageRank。
PageRank基本思想是将每个网页看成一个节点,网页中的链接指向看成一条有向边,一个网页节点的重要程度取决于链接指向该网页节点的其他节点的数量和重要权值,该过程描述如下:让每一个网页对其所包含的链接指向的网页进行迭代投票,每次迭代投票过程中票的权重取决于网页当前拥有的票数,当投票结果收敛或者达到指定的迭代次数时,每个网页所获得票数即为网页重要程度权值。

TextRank算法相比于TF-IDF最大的优点是TextRank是一种无监督的学习,因此不会受限于文本的主题,并且无需大规模的训练集,可以针对单一文本进行快速的关键词的权重计算。

⑨ 常见的推荐算法

根据用户兴趣和行为,向用户推荐所需要的信息,帮助用户在海量的信息中快速发现自己真正需要的东西。 所以推荐系统要解决的问题用户没用明确的需求以及信息存在过载 。推荐系统一般要基于以下来搭建:
1、根据业务来定义自身产品的热门标准
2、用户信息:比如性别、年龄、职业、收入等
3、用户行为
4、社会化关系

1、非个性化推荐
在冷启动方面我们精彩用非个性化推荐来解决问题。常见的有:热门推荐,编辑推荐,最新推荐等。下面是3个场景下的排序介绍:
热门推荐:根据业务类型确定排名核心指标,比如阅读数,其次要考虑避免马太效应,所以增加1个维度:时间。一般情况一个内容的热度是随着时间不断下降的,所以需要设定重力因子G,它决定热度随着时间流逝下降的速度。热度初始值由阅读数决定,我们假设R为阅读书,距离发帖时间的时间为T,重力因子为G,热度为rank。 根据热度随着时间而不断下降,且是非线性的,所以我们用指数函数来表达时间和热度的关系:rank=R/(T)^G,下图为热度的基本曲线:

通过该函数,我们可以随意调整参数来控制曲线的平坦和陡峭,如果G越大,曲线越陡峭说明热度下降越快。如果我们要调整热度初始值,可对R进行调整,比如R1=R^0.8,来缩短每篇文章的初始热度值
编辑推荐:一般由编辑在后台进行设置
最新推荐:如果无其他规则,一般按内容更新时间/创建时间来倒序

2、基于用户基本信息推荐(人口统计学)
根据系统用户的基本信息如:领域、职位、工作年龄、性别和所在地等。根据这些信息给用户推荐感兴趣或者相关的内容。
常见的用户基本信息有:性别,年龄,工作、收入、领域、职位、所在地,手机型号、网络条件、安装渠道、操作系统等等。根据这些信息来关联我们数据源,比如年龄-关联电影表、收入-关联商品类型表,性别-文章关联表等等。然后设定权重,给予个性化的推荐。
步骤1:用户建模,收集用户基本信息,建立兴趣图谱,标签体系树状结构然后配上权重
步骤2:内容建模,细分内容的元数据,将步骤1的用户标签和元数据连接,然后进行推荐

2、基于内容基本的推荐
根据推荐物品或者信息的元数据,发现物品或者信息的相关性, 然后基于用户以往的喜好记录 ,推荐给用户相似的物品。
内容的一些基本属性:tag、领域、主题、类型、关键字、来源等

3、基于协同过滤的推荐
这种算法基于一种物以类聚人以群分的假设, 喜欢相同物品的用户更有可能具有相同的兴趣 。基于协同过滤推荐系统一般应用于有用户评分的系统中,通过分数去刻画用户对于物品的喜好。根据维度可分为2种:
1、基于用户:找到和你相似的人推荐他们看过而你没有看过的内容
比如下面,系统判断甲乙2个用户是相似的,那么会给甲推荐短视频相关内容,会给乙推荐数据分析相关内容
甲:产品经理、运营、数据分析
乙:产品经理、运营、短视频
丙:比特币、创业、硅谷
步骤1:找到和目标用户兴趣相似的用户集合
步骤2:找到集合中用户喜欢的且目标用户没有被推荐过的内容

2、基于物品:以物为本建立各商品之间相似度关系矩阵,用户看了x也会看y
比如下面,甲和乙分别不约而同看了产品经理和数据分析,说明喜欢产品经理和数据分析的用户重合度高,说明两个内容相似。所以给喜欢产品经理的人推荐数据分析,给喜欢数据分析的人推荐产品经理。
这么理解:喜欢产品经理的人有m人,喜欢数据分析有n人,其中m中有80%用户与n中80%的用户是一样的,就意味着喜欢产品经理的用户也会喜欢数据分析。
产品经理:甲、乙,丁
数据分析:甲、乙,戊
增长黑客:甲、丙
喜欢物品A的用户,可能也会喜欢与物品A相似的物品B,通过历史行为计算出2个物品的相似度(比如m人喜欢A,n人喜欢B,有k人喜欢A又喜欢B,那么A和B的相似度可计算为k/m或者n,因为k属于m和n),这个推荐和内容推荐算法区别是内容推荐算法是根据内容的属性来关联, 而基于物品的协同过滤则是根据用户的行为对内容进行关联

4、基于用户社交关系推荐
用户与谁交朋友或者关系好,在一定程度上朋友的需求和自身的需求是相似的。所以向用户推荐好友喜欢的东西。本质上是好友关系链版的基于用户的协调过滤

5、推荐思路的拓展
根据不同使用场景进行不同的推荐,可细分的场景包括用户使用的:时间、地点、心情、网络环境、兴趣、上下文信息以及使用场景。每个场景的推荐内容都不一样,所以往往一个系统都是由多种推荐方式组成,比如加权混合。
加权混合:用线性公式将几种不同的推荐按照一定权重组合起来,具体权重值需要反复测试调整。例子:加权混合=推荐1结果*a+推荐2结果*b+...+推荐n结果*n,其中abn为权重,和为1

下面分享一张来自知乎的图,供学习,侵删:

基于用户信息的推荐 与 基于用户的协同过滤:
两者都是计算用户的相似度, 但基于用户信息的推荐只考虑用户本身信息来计算相似度,而基于用户的协同过滤是基于用户历史偏好来计算相似度

基于内容的信息推荐 与 基于物品的协同过滤:
两者都是计算物品的相似度, 但是基于内容的信息推荐只考虑物品本身的属性特征来计算相似度,而基于物品的协同过滤是基于用户历史偏好来计算相似度

基于用户信息的推荐特点:
1、不需要历史数据,对用户基本信息建模
2、不依赖于物品,所以其他领域可无缝接入
3、因为用户基本信息一般变化不大,所以推荐效果一般

基于内容信息的推荐特点:
1、物品属性有限,很难获得有效又全的数据
2、需要获取用户喜欢的历史内容,再来推荐与内容相似的东西,所以有冷启动问题

基于用户/基于物品的协同过滤推荐特点:
1、需要获取用户的历史偏好,所以有冷启动问题
2、推荐效果依赖于大数据,数据越多,推荐效果就越好

⑩ 推荐算法简介

写在最前面:本文内容主要来自于书籍《推荐系统实践》和《推荐系统与深度学习》。

推荐系统是目前互联网世界最常见的智能产品形式。从电子商务、音乐视频网站,到作为互联网经济支柱的在线广告和新颖的在线应用推荐,到处都有推荐系统的身影。推荐算法是推荐系统的核心,其本质是通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式。

推荐系统的主要功能是以个性化的方式帮助用户从极大的搜索空间中快速找到感兴趣的对象。因此,目前所用的推荐系统多为个性化推荐系统。个性化推荐的成功应用需要两个条件:

在推荐系统的众多算法中,基于协同的推荐和基于内容的推荐在实践中得到了最广泛的应用。本文也将从这两种算法开始,结合时间、地点上下文环境以及社交环境,对常见的推荐算法做一个简单的介绍。

基于内容的算法的本质是对物品内容进行分析,从中提取特征,然后基于用户对何种特征感兴趣来推荐含有用户感兴趣特征的物品。因此,基于内容的推荐算法有两个最基本的要求:

下面我们以一个简单的电影推荐来介绍基于内容的推荐算法。

现在有两个用户A、B和他们看过的电影以及打分情况如下:

其中问好(?)表示用户未看过。用户A对《银河护卫队 》《变形金刚》《星际迷航》三部科幻电影都有评分,平均分为 4 .7 分 ( (5+4+5 ) / 3=4.7 );对《三生三世》《美人鱼》《北京遇上西雅图》三部爱情电影评分平均分为 2.3 分 ( ( 3十2+2 ) /3=2.3 )。现在需要给A推荐电影,很明显A更倾向于科幻电影,因此推荐系统会给A推荐独立日。而对于用户B,通过简单的计算我们可以知道更喜欢爱情电影,因此给其推荐《三生三世》。当然,在实际推荐系统中,预测打分比这更加复杂些,但是其原理是一样的。

现在,我们可以将基于内容的推荐归纳为以下四个步骤:

通过上面四步就能快速构建一个简单的推荐系统。基于内容的推荐系统通常简单有效,可解释性好,没有物品冷启动问题。但他也有两个明显的缺点:

最后,顺便提一下特征提取方法:对于某些特征较为明确的物品,一般可以直接对其打标签,如电影类别。而对于文本类别的特征,则主要是其主题情感等,则些可以通过tf-idf或LDA等方法得到。

基于协同的算法在很多地方也叫基于邻域的算法,主要可分为两种:基于用户的协同算法和基于物品的协同算法。

啤酒和尿布的故事在数据挖掘领域十分有名,该故事讲述了美国沃尔玛超市统计发现啤酒和尿布一起被购买的次数非常多,因此将啤酒和尿布摆在了一起,最后啤酒和尿布的销量双双增加了。这便是一个典型的物品协同过滤的例子。

基于物品的协同过滤指基于物品的行为相似度(如啤酒尿布被同时购买)来进行物品推荐。该算法认为,物品A和物品B具有很大相似度是因为喜欢物品A的用户大都也喜欢物品B。

基于物品的协同过滤算法主要分为两步:

基于物品的协同过滤算法中计算物品相似度的方法有以下几种:
(1)基于共同喜欢物品的用户列表计算。

此外,John S. Breese再其论文中还提及了IUF(Inverse User Frequence,逆用户活跃度)的参数,其认为活跃用户对物品相似度的贡献应该小于不活跃的用户,应该增加IUF参数来修正物品相似度的公式:

上面的公式只是对活跃用户做了一种软性的惩罚, 但对于很多过于活跃的用户, 比如某位买了当当网80%图书的用户, 为了避免相似度矩阵过于稠密, 我们在实际计算中一般直接忽略他的兴趣列表, 而不将其纳入到相似度计算的数据集中。

(2)基于余弦相似度计算。

(3)热门物品的惩罚。
从上面(1)的相似度计算公式中,我们可以发现当物品 i 被更多人购买时,分子中的 N(i) ∩ N(j) 和分母中的 N(i) 都会增长。对于热门物品,分子 N(i) ∩ N(j) 的增长速度往往高于 N(i),这就会使得物品 i 和很多其他的物品相似度都偏高,这就是 ItemCF 中的物品热门问题。推荐结果过于热门,会使得个性化感知下降。以歌曲相似度为例,大部分用户都会收藏《小苹果》这些热门歌曲,从而导致《小苹果》出现在很多的相似歌曲中。为了解决这个问题,我们对于物品 i 进行惩罚,例如下式, 当α∈(0, 0.5) 时,N(i) 越小,惩罚得越厉害,从而使热门物品相关性分数下降( 博主注:这部分未充分理解 ):

此外,Kary pis在研究中发现如果将ItemCF的相似度矩阵按最大值归一化, 可以提高推荐的准确率。 其研究表明, 如果已经得到了物品相似度矩阵w, 那么可以用如下公式得到归一化之后的相似度矩阵w':

归一化的好处不仅仅在于增加推荐的准确度,它还可以提高推荐的覆盖率和多样性。一般来说,物品总是属于很多不同的类,每一类中的物品联系比较紧密。假设物品分为两类——A和B, A类物品之间的相似度为0.5, B类物品之间的相似度为0.6, 而A类物品和B类物品之间的相似度是0.2。 在这种情况下, 如果一个用户喜欢了5个A类物品和5个B类物品, 用ItemCF给他进行推荐, 推荐的就都是B类物品, 因为B类物品之间的相似度大。 但如果归一化之后, A类物品之间的相似度变成了1, B类物品之间的相似度也是1, 那么这种情况下, 用户如果喜欢5个A类物品和5个B类物品, 那么他的推荐列表中A类物品和B类物品的数目也应该是大致相等的。 从这个例子可以看出, 相似度的归一化可以提高推荐的多样性。

那么,对于两个不同的类,什么样的类其类内物品之间的相似度高,什么样的类其类内物品相似度低呢?一般来说,热门的类其类内物品相似度一般比较大。如果不进行归一化,就会推荐比较热门的类里面的物品,而这些物品也是比较热门的。因此,推荐的覆盖率就比较低。相反,如果进行相似度的归一化,则可以提高推荐系统的覆盖率。

最后,利用物品相似度矩阵和用户打过分的物品记录就可以对一个用户进行推荐评分:

基于用户的协同算法与基于物品的协同算法原理类似,只不过基于物品的协同是用户U购买了A物品,会计算经常有哪些物品与A一起购买(也即相似度),然后推荐给用户U这些与A相似的物品。而基于用户的协同则是先计算用户的相似性(通过计算这些用户购买过的相同的物品),然后将这些相似用户购买过的物品推荐给用户U。

基于用户的协同过滤算法主要包括两个步骤:

步骤(1)的关键是计算用户的兴趣相似度,主要是利用用户的行为相似度计算用户相似度。给定用户 u 和 v,N(u) 表示用户u曾经有过正反馈(譬如购买)的物品集合,N(v) 表示用户 v 曾经有过正反馈的物品集合。那么我们可以通过如下的 Jaccard 公式简单的计算 u 和 v 的相似度:

或通过余弦相似度:

得到用户之间的相似度之后,UserCF算法会给用户推荐和他兴趣最相似的K个用户喜欢的物品。如下的公式度量了UserCF算法中用户 u 对物品 i 的感兴趣程度:

首先回顾一下UserCF算法和ItemCF算法的推荐原理:UserCF给用户推荐那些和他有共同兴趣爱好的用户喜欢的物品, 而ItemCF给用户推荐那些和他之前喜欢的物品具有类似行为的物品。

(1)从推荐场景考虑
首先从场景来看,如果用户数量远远超过物品数量,如购物网站淘宝,那么可以考虑ItemCF,因为维护一个非常大的用户关系网是不容易的。其次,物品数据一般较为稳定,因此物品相似度矩阵不必频繁更新,维护代价较小。

UserCF的推荐结果着重于反应和用户兴趣相似的小群体的热点,而ItemCF的推荐结果着重于维系用户的历史兴趣。换句话说,UserCF的推荐更社会化,反应了用户所在小型兴趣群体中物品的热门程度,而ItemCF的推荐更加个性化,反应了用户自己的个性传承。因此UserCF更适合新闻、微博或微内容的推荐,而且新闻内容更新频率非常高,想要维护这样一个非常大而且更新频繁的表无疑是非常难的。

在新闻类网站中,用户的兴趣爱好往往比较粗粒度,很少会有用户说只看某个话题的新闻,而且往往某个话题也不是每天都会有新闻。 个性化新闻推荐更强调新闻热点,热门程度和时效性是个性化新闻推荐的重点,个性化是补充,所以 UserCF 给用户推荐和他有相同兴趣爱好的人关注的新闻,这样在保证了热点和时效性的同时,兼顾了个性化。

(2)从系统多样性(也称覆盖率,指一个推荐系统能否给用户提供多种选择)方面来看,ItemCF的多样性要远远好于UserCF,因为UserCF更倾向于推荐热门物品。而ItemCF具有较好的新颖性,能够发现长尾物品。所以大多数情况下,ItemCF在精度上较小于UserCF,但其在覆盖率和新颖性上面却比UserCF要好很多。

在介绍本节基于矩阵分解的隐语义模型之前,让我们先来回顾一下传统的矩阵分解方法SVD在推荐系统的应用吧。

基于SVD矩阵分解在推荐中的应用可分为如下几步:

SVD在计算前会先把评分矩阵 A 缺失值补全,补全之后稀疏矩阵 A 表示成稠密矩阵,然后将分解成 A' = U∑V T 。但是这种方法有两个缺点:(1)补成稠密矩阵后需要耗费巨大的储存空间,对这样巨大的稠密矩阵进行储存是不现实的;(2)SVD的计算复杂度很高,对这样大的稠密矩阵中进行计算式不现实的。因此,隐语义模型就被发明了出来。

更详细的SVD在推荐系统的应用可参考 奇异值分解SVD简介及其在推荐系统中的简单应用 。

隐语义模型(Latent Factor Model)最早在文本挖掘领域被提出,用于找到文本的隐含语义。相关的算法有LSI,pLSA,LDA和Topic Model。本节将对隐语义模型在Top-N推荐中的应用进行详细介绍,并通过实际的数据评测该模型。

隐语义模型的核心思想是通过隐含特征联系用户兴趣和物品。让我们通过一个例子来理解一下这个模型。

现有两个用户,用户A的兴趣涉及侦探小说、科普图书以及一些计算机技术书,而用户B的兴趣比较集中在数学和机器学习方面。那么如何给A和B推荐图书呢?

我们可以对书和物品的兴趣进行分类。对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品。简言之,这个基于兴趣分类的方法大概需要解决3个问题:

对于第一个问题的简单解决方案是找相关专业人员给物品分类。以图书为例,每本书出版时,编辑都会给出一个分类。但是,即使有很系统的分类体系,编辑给出的分类仍然具有以下缺点:(1)编辑的意见不能代表各种用户的意见;(2)编辑很难控制分类的细粒度;(3)编辑很难给一个物品多个分类;(4)编辑很难给一个物品多个分类;(5)编辑很难给出多个维度的分类;(6)编辑很难决定一个物品在某一个类别中的权重。

为了解决上述问题,研究员提出可以从数据出发,自动找到那些分类,然后进行个性化推荐。隐语义模型由于采用基于用户行为统计的自动聚类,较好地解决了上面提出的5个问题。

LFM将矩阵分解成2个而不是3个:

推荐系统中用户和物品的交互数据分为显性反馈和隐性反馈数据。隐式模型中多了一个置信参数,具体涉及到ALS(交替最小二乘法,Alternating Least Squares)中对于隐式反馈模型的处理方式——有的文章称为“加权的正则化矩阵分解”:

一个小细节:在隐性反馈数据集中,只有正样本(正反馈)没有负反馈(负样本),因此如何给用户生成负样本来进行训练是一个重要的问题。Rong Pan在其文章中对此进行了探讨,对比了如下几种方法:

用户行为很容易用二分图表示,因此很多图算法都可以应用到推荐系统中。基于图的模型(graph-based model)是推荐系统中的重要内容。很多研究人员把基于领域的模型也称为基于图的模型,因为可以把基于领域的模型看作基于图的模型的简单形式。

在研究基于图的模型之前,需要将用户行为数据表示成图的形式。本节的数据是由一系列用户物品二元组 (u, i) 组成的,其中 u 表示用户对物品 i 产生过行为。

令 G(V, E) 表示用户物品二分图,其中 V=V U UV I 由用户顶点 V U 和物品节点 V I 组成。对于数据集中每一个二元组 (u, i) ,图中都有一套对应的边 e(v u , v i ),其中 v u ∈V U 是用户对应的顶点,v i ∈V I 是物品i对应的顶点。如下图是一个简单的物品二分图,其中圆形节点代表用户,方形节点代表物品,用户物品的直接连线代表用户对物品产生过行为。比如下图中的用户A对物品a、b、d产生过行为。

度量图中两个顶点之间相关性的方法很多,但一般来说图中顶点的相关性主要取决于下面3个因素:

而相关性高的一对顶点一般具有如下特征:

举个例子,如下图,用户A和物品c、e没有边直连,但A可通过一条长度为3的路径到达c,而Ae之间有两条长度为3的路径。那么A和e的相关性要高于顶点A和c,因而物品e在用户A的推荐列表中应该排在物品c之前,因为Ae之间有两条路径。其中,(A,b,C,e)路径经过的顶点的出度为(3,2,2,2),而 (A,d,D,e) 路径经过了一个出度比较大的顶点D,所以 (A,d,D,e) 对顶点A与e之间相关性的贡献要小于(A,b,C,e)。

基于上面3个主要因素,研究人员设计了很多计算图中顶点相关性的方法,本节将介绍一种基于随机游走的PersonalRank算法。

假设要给用户u进行个性化推荐,可以从用户u对应的节点 v u 开始在用户物品二分图上进行随机游走。游走到任一节点时,首先按照概率α决定是继续游走还是停止这次游走并从 v u 节点重新开始游走。若决定继续游走,则从当前节点指向的节点中按照均匀分布随机选择一个节点作为游走下次经过的节点。这样,经过很多次随机游走后,每个物品被访问到的概率会收敛到一个数。最终的推荐列表中物品的权重就是物品节点的访问概率。

上述算法可以表示成下面的公式:

虽然通过随机游走可以很好地在理论上解释PersonalRank算法,但是该算法在时间复杂度上有明显的缺点。因为在为每个用户进行推荐时,都需要在整个用户物品二分图上进行迭代,知道所有顶点的PR值都收敛。这一过程的时间复杂度非常高,不仅无法在线进行实时推荐,离线计算也是非常耗时的。

有两种方法可以解决上面PersonalRank时间复杂度高的问题:
(1)减少迭代次数,在收敛之前停止迭代。但是这样会影响最终的精度。

(2)从矩阵论出发,重新涉及算法。另M为用户物品二分图的转移概率矩阵,即:

网络社交是当今社会非常重要甚至可以说是必不可少的社交方式,用户在互联网上的时间有相当大的一部分都用在了社交网络上。

当前国外最着名的社交网站是Facebook和Twitter,国内的代表则是微信/QQ和微博。这些社交网站可以分为两类:

需要指出的是,任何一个社交网站都不是单纯的社交图谱或兴趣图谱。如QQ上有些兴趣爱好群可以认识不同的陌生人,而微博中的好友也可以是现实中认识的。

社交网络定义了用户之间的联系,因此可以用图定义社交网络。我们用图 G(V,E,w) 定义一个社交网络,其中V是顶点集合,每个顶点代表一个用户,E是边集合,如果用户va和vb有社交网络关系,那么就有一条边 e(v a , v b ) 连接这两个用户,而 w(v a , v b )定义了边的权重。一般来说,有三种不同的社交网络数据:

和一般购物网站中的用户活跃度分布和物品流行度分布类似,社交网络中用户的入度(in degree,表示有多少人关注)和出度(out degree,表示关注多少人)的分布也是满足长尾分布的。即大部分人关注的人都很少,被关注很多的人也很少。

给定一个社交网络和一份用户行为数据集。其中社交网络定义了用户之间的好友关系,而用户行为数据集定义了不同用户的历史行为和兴趣数据。那么最简单的算法就是给用户推荐好友喜欢的物品集合。即用户u对物品i的兴趣 p ui 可以通过如下公式计算。

用户u和用户v的熟悉程度描述了用户u和用户在现实社会中的熟悉程度。一般来说,用户更加相信自己熟悉的好友的推荐,因此我们需要考虑用户之间的熟悉度。下面介绍3中衡量用户熟悉程度的方法。

(1)对于用户u和用户v,可以使用共同好友比例来计算他们的相似度:

上式中 out(u) 可以理解为用户u关注的用户合集,因此 out(u) ∩ out(v) 定义了用户u、v共同关注的用户集合。

(2)使用被关注的用户数量来计算用户之间的相似度,只要将公式中的 out(u) 修改为 in(u):

in(u) 是指关注用户u的集合。在无向社交网络中,in(u)和out(u)是相同的,而在微博这种有向社交网络中,这两个集合的含义就不痛了。一般来说,本方法适合用来计算微博大V之间的相似度,因为大v往往被关注的人数比较多;而方法(1)适用于计算普通用户之间的相似度,因为普通用户往往关注行为比较丰富。

(3)除此之外,还可以定义第三种有向的相似度:这个相似度的含义是用户u关注的用户中,有多大比例也关注了用户v:

这个相似度有一个缺点,就是在该相似度下所有人都和大v有很大的相似度,这是因为公式中的分母并没有考虑 in(v) 的大小,所以可以把 in(v) 加入到上面公式的分母,来降低大v与其他用户的相似度:

上面介绍了3种计算用户之间相似度(或称熟悉度)的计算方法。除了熟悉程度,还需要考虑用户之间的兴趣相似度。我们和父母很熟悉,但很多时候我们和父母的兴趣确不相似,因此也不会喜欢他们喜欢的物品。因此,在度量用户相似度时,还需要考虑兴趣相似度,而兴趣相似度可以通过和UserCF类似的方法度量,即如果两个用户喜欢的物品集合重合度很高,两个用户的兴趣相似度很高。

最后,我们可以通过加权的形式将两种权重合并起来,便得到了各个好有用户的权重了。

有了权重,我们便可以针对用户u挑选k个最相似的用户,把他们购买过的物品中,u未购买过的物品推荐给用户u即可。打分公式如下:

其中 w' 是合并后的权重,score是用户v对物品的打分。

node2vec的整体思路分为两个步骤:第一个步骤是随机游走(random walk),即通过一定规则随机抽取一些点的序列;第二个步骤是将点的序列输入至word2vec模型从而得到每个点的embedding向量。

随机游走在前面基于图的模型中已经介绍过,其主要分为两步:(1)选择起始节点;(2)选择下一节点。起始节点选择有两种方法:按一定规则抽取一定量的节点或者以图中所有节点作为起始节点。一般来说会选择后一种方法以保证所有节点都会被选取到。

在选择下一节点方法上,最简单的是按边的权重来选择,但在实际应用中需要通过广度优先还是深度优先的方法来控制游走范围。一般来说,深度优先发现能力更强,广度优先更能使社区内(较相似)的节点出现在一个路径里。

斯坦福大学Jure Leskovec教授给出了一种可以控制广度优先或者深度优先的方法。

以上图为例,假设第一步是从t随机游走到v,这时候我们要确定下一步的邻接节点。本例中,作者定义了p和q两个参数变量来调节游走,首先计算其邻居节点与上一节点t的距离d,根据下面的公式得到α:

一般从每个节点开始游走5~10次,步长则根据点的数量N游走根号N步。如此便可通过random walk生成点的序列样本。

得到序列之后,便可以通过word2vec的方式训练得到各个用户的特征向量,通过余弦相似度便可以计算各个用户的相似度了。有了相似度,便可以使用基于用户的推荐算法了。

推荐系统需要根据用户的历史行为和兴趣预测用户未来的行为和兴趣,因此大量的用户行为数据就成为推荐系统的重要组成部分和先决条件。如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题。

冷启动问题主要分为三类:

针对用户冷启动,下面给出一些简要的方案:
(1)有效利用账户信息。利用用户注册时提供的年龄、性别等数据做粗粒度的个性化;
(2)利用用户的社交网络账号登录(需要用户授权),导入用户在社交网站上的好友信息,然后给用户推荐其好友喜欢的物品;
(3)要求用户在登录时对一些物品进行反馈,手机用户对这些物品的兴趣信息,然后给用推荐那些和这些物品相似的物品;
(4)提供非个性化推荐。非个性化推荐的最简单例子就是热门排行榜,我们可以给用户推荐热门排行榜,然后等到用户数据收集到一定的时候,在切换为个性化推荐。

对于物品冷启动,可以利用新加入物品的内容信息,将它们推荐给喜欢过和他们相似的物品的用户。

对于系统冷启动,可以引入专家知识,通过一定高效的方式快速建立起物品的相关度表。

在上面介绍了一些推荐系统的基础算法知识,这些算法大都是比较经典且现在还在使用的。但是需要注意的是,在实践中,任何一种推荐算法都不是单独使用的,而是将多种推荐算法结合起来,也就是混合推荐系统,但是在这里并不准备介绍,感兴趣的可以查阅《推荐系统》或《推荐系统与深度学习》等书籍。此外,在推荐中非常重要的点击率模型以及基于矩阵的一些排序算法在这里并没有提及,感兴趣的也可自行学习。

虽然现在用的很多算法都是基于深度学习的,但是这些经典算法能够让我们对推荐系统的发展有一个比较好的理解,同时,更重要的一点——“推陈出新”,只有掌握了这些经典的算法,才能提出或理解现在的一些更好地算法。

阅读全文

与个性化推荐算法有哪些相关的资料

热点内容
进程序员公司能穿凉鞋吗 浏览:245
PDF框大小 浏览:84
单片机产生锯齿波 浏览:225
如何修改ie代理服务器 浏览:417
折纸手工解压玩具不用a4纸 浏览:485
怎么双向传输服务器 浏览:286
电脑如何实现跨网段访问服务器 浏览:549
模块化网页源码字节跳动 浏览:485
梯度下降算法中遇到的问题 浏览:605
服务器连接电视怎么接 浏览:323
phploop语句 浏览:502
交叉编译工具链里的库在哪 浏览:781
安卓手q换号怎么改绑 浏览:399
nba球星加密货币 浏览:789
命令看网速 浏览:124
java堆分配 浏览:161
linuxbuiltin 浏览:560
cstpdf 浏览:941
texstudio编译在哪 浏览:353
国家反诈中心app注册登记表怎么注册 浏览:972