精华内容
下载资源
问答
  • 推荐系统介绍

    千次阅读 2018-12-16 11:21:35
    推荐系统 推荐系统是一种信息过滤系统,为了解决信息过载问题 ...上图参考自:微博推荐系统介绍 基础层主要通过NLP、CV、知识图谱等技术构造特征,推荐(召回)层基于用户历史行为数据信息,特征信息等...

    推荐系统

    推荐系统是一种信息过滤系统,为了解决信息过载问题

    系统组成一般包括日志系统,推荐算法和内容展示UI
    在这里插入图片描述
    其中推荐算法为核心,它一般又可以分为三层:基础层,推荐(召回)层,排序层。基础层为召回层提供特征,召回层为排序层提供候选集,排序层输出排序后的推荐结果。
    在这里插入图片描述
    上图参考自:微博推荐系统介绍

    基础层主要通过NLP、CV、知识图谱等技术构造特征,推荐(召回)层基于用户历史行为数据信息,特征信息等从庞大的商品内容集里面筛选出一个候选集,以减小排序层的计算量。

    推荐系统, 计算广告, 搜索引擎

    推荐,广告和搜索是互联网时代的三种主要信息获取方法,都是为了解决信息过载问题,只是具体的方式和目的有所不同。
    在这里插入图片描述

    实际上推荐和广告是非常相似的,背后的很多算法也都可以通用,只不过前者作为一个用户产品,是为了改善用户体验的,后者是一个商业产品,是为公司变现的方式。而相对于搜索,最大的不同就是它是用户主动输入搜索内容,引擎基于用户输入进行召回和排序。

    推荐系统经典算法

    在这里插入图片描述
    上图参考:今日头条推荐算法原理全文详解

    从上图中也可以看出,除了协同过滤,另外四种算法在广告点击率预估中也有非常广泛的应用,也说明了推荐与广告的相通之处。

    图中的LR和GBDT是机器学习中非常经典的算法,这里简单介绍一下另外三种。

    协同过滤(Collaborative Filtering)

    协同过滤是基于用户历史行为数据来进行统计分析和相似度计算的。

    要注意的是它的相似度计算是基于用户历史行为数据的,而不是用户或物品的属性来计算的;另外,它是一种基于统计分析的方法,可以说不涉及机器学习的内容。

    协同过滤也被称为基于邻域的方法,因为它是根据相似度进行筛选和排序,可以理解为最后的结果都在一个相近的范围内。

    它包括UserBased CF和ItemBased CF,即基于用户和基于物品的协同过滤。

    UserBased CF:两个用户买了很多相同的东西,则可以认为两者兴趣相似,就向彼此推荐一方喜欢但另一方还没买的东西。
    在这里插入图片描述
    UserBased CF的用户相似度计算公式:余弦相似度

    其中,N(u)表示用户u购买过的商品集合,N(v)表示用户v购买过的商品集合,分子表示用户u和v都购买过的商品数,分母是一个归一化因子。最后的计算结果就是用户u和v的相似度,两者购买的商品重合度越高,相似度越大。

    ItemBased CF:买了物品1的人一般还会买物品2,如:羽毛球和羽毛球拍。
    在这里插入图片描述
    物品的相似度计算和用户相似度计算是一样的,只是含义发生了变化。其中N(i)表示购买了物品 i 的用户集合,N(j)表示购买了物品 j 的用户集合。最后的计算结果就是物品 i 和 j 的相似度,同时购买两种商品的人数越大,相似度越大。

    协同过滤,它的解释性非常好,尤其是ItemBased CF,想必在淘宝上也都看过相似的推荐解释:买了物品1的人一般还会买物品2。也正是因为它的解释性而有了较为广泛的应用。

    但是它的计算量和存储要求都是较大的,对于UserBased CF,它需要存储一个用户相似度矩阵,对于ItemBased CF,它需要存储一个物品相似度矩阵,而且有新的用户或商品加入,需要进行矩阵的更新,都是较为耗时和耗内存的工作。因此,公司一般不会只用一种算法作为最后的推荐,也都会结合多种算法各自的优势,进行合理的推荐。

    因子分解机(Factorization Machine)

    在这里插入图片描述
    从公式可以看出,FM是从线性回归进化而来,它不仅考虑了一阶特征,而且考虑了二阶交叉特征,能够挖掘更多的特征信息。但它不是像第二个公式一样简单的为每一个交叉特征赋予一个权重,而是为每一个特征设定一个隐向量vi ,这个隐向量就表征了特征的信息,两个特征隐向量的点积就是该交叉特征的权重,这样的操作相对于第二个公式有两个好处:

    • 参数的数量大幅度缩减,从n×(n−1)/2降低到nk
    • 稀疏数据下学习不充分的问题也能得到充分解决。

    这里的k是隐向量的维度,是人为设定的,在大规模的问题中,远小于n。稀疏数据是大部分数据都为0的数据,如one-hot之后的特征数据。

    学习不充分问题可以有如下理解:原本的多项式回归参数w12的学习只能依赖于特征x1和x2,也就是只有在x1和x2都不为0的情况下,它才能够被学习;而对参数⟨v1,v2⟩而言就完全不一样了,它由v1和v2组成,如对于向量v1,它可以通过多个交叉组合特征学习得到,比如可以由x1x2,x1x3,…学习获得,这样可供学习的非零样本就大大增加了。

    还有它的公式推导和改进方法可以参见:分解机(Factorization Machines)推荐算法原理

    wide&deep模型

    在这里插入图片描述
    上图来自论文:Wide & Deep Learning for Recommender Systems

    wide&deep模型是谷歌2016年提出的,它结合了wide model和deep model,让模型同时具备了Memorization (记忆)和 Generalization(泛化)功能。输入包括原始特征+组合特征, 输出需要根据业务决定,如点击概率。

    wide model实际上就是一个逻辑回归模型,它可以对原始特征和手工的交叉特征进行学习,有非常好的记忆功能,偏向于推荐用户之前有过行为的相似物品,推荐相对保守。

    deep model就是一个深度神经网络,它可以学习到原始特征的潜在交叉特性,对有很好的泛化能力,推荐的商品可能不是那么的相关,保证了推荐的多样性。

    两者的结合实际上是一个非常直观的想法,两者优势的互补使推荐效果有较好的提升,也已经得到了非常广泛的应用。

    更多参考:
    推荐系统设计
    详解个性化推荐五大最常用算法

    展开全文
  • 推荐系统简介

    千次阅读 2018-12-11 12:21:46
    什么是推荐系统 1.2 分类 1.3 组成 1.4 应用场景 1.5 推荐系统评测 2 利用用户行为数据--协同过滤 2.1 用户活跃度和物品流行度的分布 2.2 实验设计 3 冷启动问题 4 利用用户标签数据 4.1 标签...

    目录

     

    1  基本介绍

    什么是推荐系统

    1.2  分类

    1.3  组成

    1.4  应用场景

    1.5  推荐系统评测

    2  利用用户行为数据--协同过滤

    2.1  用户活跃度和物品流行度的分布

    2.2  实验设计

    3  冷启动问题

    4  利用用户标签数据

    4.1  标签系统的作用

    4.2  问题

                                 ​

    5  上下文信息

    6  利用社交网络数据


    1  基本介绍

    什么是推荐系统

    当遇到了信息过载的问题,需要一个人或者工具来帮助你做筛选,给出一些建议供选择,这个工具就是个性化推荐系统。

    推荐系统的基本任务是联系用户和物品,解决信息过载的问题

                      

     

    推荐系统通过发掘用户的行为,找到用户的个性化需求,从而将长尾商品 准确地推荐给需要的用户,帮助用户发现那些他们感兴趣但很难发现的商品。

    1.2  分类

                             

    1.3  组成

    前台的展示页面 

                                          

    推荐结果的标题、缩略图以及其他内容属性 告诉用户给他们推荐的是什么。

    推荐结果的平均分 平均分反应了推荐结果的总体质量,也代表了大部分用户对这本书的看法。

    用户反馈模块

    推荐理由 亚马逊根据用户的历史行为给用户做推荐,因此如果它给你推荐了一本金庸的小说,大都是因为你曾经在亚马逊上对武侠方面的书给过表示喜欢的反馈。

    后台的日志系统

    推荐算法系统

    1.4  应用场景

    电子商务  电影和视频网站    个性化音乐网络电台  社交网络  个性化阅读   基于位置的服务   个性化邮件   个性化广告  

    1.5  推荐系统评测

    • 离线实验--预测准确度(评分预测、TopN 推荐、覆盖率、多样性、新颖性(平均热门程度)、惊喜度(历史兴趣不相似,但却满意)、商业目标)
    • 用户调查--尽量保证测试用户的分布和真实用户的分布相同(信任度)
    • 在线实验--AB测试 (切分流量是AB测试中的关键):用户满意度 (购买率、点击率、用户停留时间和转化率)、 实时性、健壮性

                                                                     

                                        

    2  利用用户行为数据--协同过滤

    显性反馈行为包括用户明确表示对物品喜好的行为

    具代表性的隐性反馈行为就是页面浏览行为

                                          

                                       

     

    2.1  用户活跃度和物品流行度的分布

    Zipf 定律 :f u ( k ) 为对k个物品产生过行为的用户数,令f i ( k ) 为被k个用户产生过行为的物品数  

                                                                           

    关系:用户越活跃,越倾向于浏览冷门的物品

     

    2.2  实验设计

                                          

    评测指标召回率   准确率  覆盖率(发掘长尾的能力) 新颖度

    算法

    • 基于用户的协同过滤算法 ------给用户推荐和他兴趣相似的其他用户喜欢的物品。

    (1)  找到和目标用户兴趣相似的用户集。(Jaccard 公式、余弦相似度(倒排表))--需修正

    (2)  找到这个集合中的用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。

    • 基于物品的协同过滤算法 ------给用户推荐和他之前喜欢的物品相似的物品。

    (1)  计算物品之间的相似度。(余弦相似度(归一化)(倒排表))--需修正

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

    • LFM-----通过隐含特征联系用户兴趣和物品

    采取基于用户行为统计的自动聚类

    • 隐特征的个数 F ;
    • 学习速率 alpha ;
    • 正则化参数 lambda ;
    • 负样本/正样本比例  ratio
    • 基于图的模型-----基于随机游走的PersonalRank

    3  冷启动问题

                                  

    4  利用用户标签数据

    标签是一种无层次化结构的、用来描述信息的关键词,它可以用来描述物品的语义

    • 作者或者专家给物品打标签
    • UGC--鼻祖Delicious、论文书签网站CiteULike、音乐网站Last.fm、视频网站Hulu、书和电影评论网站豆瓣等

    4.1  标签系统的作用

                                                                      

    4.2  问题

     

                                 

    5  上下文信息

    如何将时间信息和地点信息建模到推荐算法中,从而让推荐系统能够准确预测用户在某个特定时刻及特定地点的兴趣?

                                                        

    6  利用社交网络数据

     

                                              

     

    另外一种个性化推荐:

    对推荐结果的反馈方式列表,是按照用户在Facebook的好友关系,给用户推荐他们的好友在亚马逊上喜欢的物品。基于好友的个性化推荐界面同样由物品标题、缩略图、物品平均分和推荐理由组成。不过这里的推荐理由换成了喜欢过相关物品的用户好友的头像。

    相关推荐列表--打包销售

    浏览过此商品的用户经常购买的其他商品

    展开全文
  • 推荐系统系列——推荐系统简介

    千次阅读 2020-10-19 20:43:40
    推荐系统简介 什么是推荐系统 为什么需要推荐系统 如何构建推荐系统(推荐系统的步骤) 常用评测指标 召回与排序 召回层与排序层的特点 多路召回 使用Embedding做召回 A/B测试 为什么需要A/B测试 A/B测试...

    目录

    演化关系图

    推荐系统简介

    什么是推荐系统

    为什么需要推荐系统

    如何构建推荐系统(推荐系统的步骤)

    常用评测指标

    召回与排序

    召回层与排序层的特点

    多路召回

    使用Embedding做召回

    A/B测试

    为什么需要A/B测试

    A/B测试的流程


    演化关系图

    推荐系统简介

    什么是推荐系统

    • 用户:帮助用户从海量的信息种快速寻找到自己想要的信息的一种工具

    • 公司:可以提高公司产品与用户直接接触,购买等行为,有助于提高用户粘性的工具。

    为什么需要推荐系统

    • 用户:在用户需求并不十分明确的情况下进行信息的过滤,与搜索系统相比,推荐系统更多的利用用户的各类历史信息猜测其可能喜欢的内容。实现信息过滤和优化的功能。

    • 公司:提高用户粘性和留存率

    • 产品:解决了2/8现象的问题(也叫长尾效应),让小众的物品可以展示到需要它们的用户面前。

    如何构建推荐系统(推荐系统的步骤)

    img

    四个环节分别是:召回、粗排、精排和重排。召回目的如上所述;有时候因为每个用户召回环节返回的物品数量还是太多,怕排序环节速度跟不上,所以可以在召回和精排之间加入一个粗排环节,通过少量用户和物品特征,简单模型,来对召回的结果进行个粗略的排序,在保证一定精准的前提下,进一步减少往后传送的物品数量,粗排往往是可选的,可用可不同,跟场景有关。之后,是精排环节,使用你能想到的任何特征,可以上你能承受速度极限的复杂模型,尽量精准地对物品进行个性化排序。排序完成后,传给重排环节,传统地看,这里往往会上各种技术及业务策略,比如去已读、去重、打散、多样性保证、固定类型物品插入等等,主要是技术产品策略主导或者为了改进用户体验的。

    在推荐系统架构中召回层与排序层是推荐系统的核心算法层,而将推荐过程分成召回层与排序层主要是基于工程上的考虑,其中召回阶段负责将海量的候选集快速缩小为几万到几千的规模;而排序层则负责对缩小后的候选集进行精准排序。

    特点:

    • 召回层:待计算的候选集合大、计算速度快、模型简单、特征较少,尽量让用户感兴趣的物品在这个阶段能够被快速召回,即保证相关物品的召回率。常用的有多路召回(即多种策略进行召回),embedding召回

    • 排序层:首要目标是得到精准的排序结果。需要处理的物品数量少,可以利用较多的特征,使用比较复杂的模型。

    常用评测指标

    • 用户满意度:如用户的购买率,点击率,停留时间和转化率等

    • 预测准确度

      • 评分预测,用均方误差RMSE或者平均绝对误差MAE进行计算

    • TopN推荐

      • 精确率: 在用户真实购买或者看过的影片里面, 我模型真正预测出了多少, 这个考察的是模型推荐的一个全面性。

      • 召回率:在我推荐的所有物品中, 用户真正看的有多少, 这个考察的是我模型推荐的一个准确性。

    • 覆盖率

      • 信息熵:其中pi是物品i的流行度除以所有物品流行度之和

      • 基尼系数: 其中ij是按照物品流行度p从小到大排序的物品列表中第j个物品(基尼指数:https://www.cnblogs.com/xing901022/p/8603864.html 基尼系数与基尼不纯度的区别:https://zhuanlan.zhihu.com/p/76667156)

    • 多样性:推荐列表中所有物品之间的不相似性,可以通过不同的相似性函数来度量推荐列表中商品的相似性,比如商品基于内容的相似,基于协同过滤的相似,这样就可以得到不同角度的多样性.

    • 新颖性:满足推荐的新颖性最简单的方法就是给用户推荐他们之前没有看过的物品,但是每个用户没见过的物品数量是非常庞大的,所以一般会计算推荐物品的平均流行度,流行度越低的物品越有可能让用户觉得新颖,因此,如果推荐结果中的物品平均热门程度比较低说明推荐的结果就可能比较新颖.

    • AUC曲线:ROC曲线下与坐标轴围成的面积

    为什么把AUC曲线作为评价指标呢?因为AUC对样本不平衡的问题具有鲁棒性。而推荐系统是一个样本不平衡的问题(正样本(即推荐列表中被用户点击的项目)在整个推荐列表中是非常少的,而大部分都是负样本。)除了AUC以外,我们还可以使用F1score作为评价指标

    召回与排序

    在推荐系统架构中召回层与排序层是推荐系统的核心算法层,而将推荐过程分成召回层与排序层主要是基于工程上的考虑,其中召回阶段负责将海量的候选集快速缩小为几万到几千的规模;而排序层则负责对缩小后的候选集进行精准排序。所以在召回阶段往往会利用少量的特征和简单的模型对大规模的数据集进行快速的筛选,而在排序层一般会使用更多的特征和更加复杂的模型进行精准的排序。

    召回层与排序层的特点

    1. 召回层:待计算的候选集合大、计算速度快、模型简单、特征较少,尽量让用户感兴趣的物品在这个阶段能够被快速召回,即保证相关物品的召回率

    2. 排序层:首要目标是得到精准的排序结果。需要处理的物品数量少,可以利用较多的特征,使用比较复杂的模型。

    在设计召回层时,“计算速度”和“召回率”其实是矛盾的两个指标,为提高“计算速度”,需要使召回策略尽量简单一些;而为了提高“召回率”,要求召回策略尽量选出排序模型所需要的候选集,这也就要求召回策略不能过于简单。在权衡计算速度和召回率后,目前工业界主流的召回方法是采用多个简单策略叠加的“多路召回策略”。

    多路召回

    所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一起供后续排序模型使用,可以明显的看出,“多路召回策略”是在“计算速度”和“召回率”之间进行权衡的结果。

    如下图是多路召回的一个示意图,在多路召回中,每个策略之间毫不相关,所以一般可以写并发多线程同时进行,这样可以更加高效。

    使用Embedding做召回

    参考腾讯的推荐系统 embedding 技术实践总结

    [推荐系统 embedding技术实践总结]  https://zhuanlan.zhihu.com/p/143763320 

    A/B测试

    为什么需要A/B测试

    A/B测试的流程

      

     

    展开全文
  • 本文将深入介绍推荐系统的工作原理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐系统。 0 系列文章目录 0.1 基于协同过滤算法的电影推荐系统设计(一)...

    本文将深入介绍推荐系统的工作原理,和其中涉及的各种推荐机制,以及它们各自的优缺点和适用场景,帮助用户清楚的了解和快速构建适合自己的推荐系统。

    0 系列文章目录

    0.1 基于协同过滤算法的电影推荐系统设计(一) - 项目简介

    0.2 基于协同过滤算法的电影推荐系统设计(二) - 推荐系统介绍

    1 主动发现信息

    随着 Web 2.0 的发展, Web 已经变成数据分享的平台,如何让人们在海量的数据中想要找到他们需要的信息将变得越来越难。

    在这样的情形下,搜索系统(Google,百度等等)成为大家快速找到目标信息的最好途径。在用户对自己需求相对明确的时候,用搜索系统很方便的通过关键字搜索很快的找到自己需要的信息。
    但搜索系统并不能完全满足用户对信息发现的需求,那是因为在很多情况下,用户其实并不明确自己的需要,或者他们的需求很难用简单的关键字来表述。又或者他们需要更加符合他们个人口味和喜好的结果,因此出现了推荐系统,与搜索系统对应,大家也习惯称它为推荐系统。

    随着推荐系统的出现,用户获取信息的方式从简单的目标明确的数据的搜索转换到更高级更符合人们使用习惯的信息发现。

    如今,随着推荐技术的不断发展,推荐系统已经在电子商务 (E-commerce,例如 Amazon,阿里 ) 和一些基于 social 的社会化站点 ( 包括音乐,电影和图书分享,例如豆瓣 ) 都取得很大的成功。
    这也进一步的说明了,Web2.0 环境下,在面对海量的数据,用户需要这种更加智能的,更加了解他们需求,口味和喜好的信息发现机制。

    2 推荐系统

    推荐系统利用特殊的信息过滤技术,将不同的物品或内容推荐给可能对它们感兴趣的用户。
    RC工作原理图
    这里将推荐系统看作黑盒,输入是推荐的数据源,一般推荐系统所需数据源包括

    • 要推荐物品或内容的元数据
      例如关键字,基因描述等

    • 系统用户的基本信息
      例如性别,年龄等

    • 用户对物品或者信息的偏好
      根据应用本身的不同,可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等
      用户的偏好信息可以分为两类

      • 显式的用户反馈
        用户在网站上自然浏览或者使用网站以外,显式的提供反馈信息
        例如用户对物品的评分,或者对物品的评论
        显式的用户反馈能准确的反应用户对物品的真实喜好,但需要用户付出额外的代价
      • 隐式的用户反馈
        用户在使用网站时产生的数据,隐式的反应了用户对物品的喜好
        例如用户购买了某物品,用户查看了某物品的信息等
        隐式的用户反馈,通过一些分析和处理,也能反映用户的喜好,只是数据不是很精确,有些行为的分析存在较大的噪音,但只要选择正确的行为特征,隐式的用户反馈也能得到很好的效果,只是行为特征的选择可能在不同的应用中有很大的不同,例如在电子商务的网站上,购买行为其实就是一个能很好表现用户喜好的隐式反馈。

    推荐系统根据不同的推荐机制可能用到数据源中的一部分,然后根据这些数据,分析出一定的规则或者直接对用户对其他物品的喜好进行预测计算.这样推荐系统可以在用户进入的时候给他推荐他可能感兴趣的物品。

    3 分类

    可以根据很多指标

    3.1 是否为不同用户推荐不同数据

    • 大众推荐系统
      对每个用户都给出同样的推荐
      这些推荐可以是静态的由系统管理员人工设定的;
      或者基于系统所有用户的反馈统计计算出的当下比较流行的物品
    • 个性化推荐系统
      对不同的用户,根据他们的口味和喜好给出更加精确的推荐
      这时,系统需要了解需推荐内容和用户的特质,或者基于社会化网络,通过找到与当前用户相同喜好的用户,实现推荐

    这是最基本的推荐系统分类,其实大部分人们讨论的推荐系统都是关于个性化的推荐系统,因为从根本上说,只有个性化的推荐系统才是更加智能的信息发现过程。

    3.2 数据源

    这里讲的是如何发现数据的相关性

    大部分推荐系统的工作原理是基于物品或者用户的相似集进行推荐

    那么参考前面给出的推荐系统工作原理图,根据不同的数据源发现数据相关性的方法可以分为以下几种:

    • 根据系统用户的基本信息
      发现用户的相关程度,这种被称为基于人口统计学的推荐(Demographic-based Recommendation)
    • 根据推荐物品或内容的元数据
      发现物品或者内容的相关性,这种被称为基于内容的推荐(Content-based Recommendation)
    • 根据用户对物品或者信息的偏好
      发现物品或者内容本身的相关性,或者是发现用户的相关性,这种被称为基于协同过滤的推荐(Collaborative Filtering-based Recommendation)

    3.3 推荐模型的建立方式

    在海量物品和用户的系统中,推荐系统的计算量是相当大的,要实现实时的推荐务必需要建立一个推荐模型,关于推荐模型的建立方式可以分为

    • 基于物品和用户本身的
      将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,这些信息往往是用一个二维矩阵描述的
      由于用户感兴趣的物品远远小于总物品的数目,这样的模型导致大量的数据空置,即我们得到的二维矩阵往往是一个很大的稀疏矩阵。同时为了减小计算量,我们可以对物品和用户进行聚类, 然后记录和计算一类用户对一类物品的喜好程度,但这样的模型又会在推荐的准确性上有损失。
    • 基于关联规则的推荐(Rule-based Recommendation)
      主要是挖掘一些数据的依赖关系,典型的场景就是“购物篮问题”,通过关联规则的挖掘,可以找到哪些物品经常被同时购买,或者用户购买了一些物品后通常会购买哪些其他的物品,当挖掘出这些关联规则之后,可以基于这些规则给用户进行推荐。
    • 基于模型的推荐(Model-based Recommendation)
      典型的机器学习的问题,可以将已有的用户喜好信息作为训练样本,训练出一个预测用户喜好的模型,这样以后用户在进入系统,可以基于此模型计算推荐
      这种方法的问题在于如何将用户实时或者近期的喜好信息反馈给训练好的模型,从而提高推荐的准确度。

    其实在现在的推荐系统中,很少有只使用了一个推荐策略的推荐系统,一般都是在不同的场景下使用不同的推荐策略从而达到最好的推荐效果
    例如 Amazon 的推荐,它将基于用户本身历史购买数据的推荐,和基于用户当前浏览的物品的推荐,以及基于大众喜好的当下比较流行的物品都在不同的区域推荐给用户,让用户可以从全方位的推荐中找到自己真正感兴趣的物品。

    4 深入推荐机制

    4.1 基于人口统计学的推荐(Demographic-based Recommendation)

    最易于实现的推荐方法,简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户
    基于人口统计学的工作原理
    首先,系统对每个用户都有一个用户 Profile的建模,其中包括用户的基本信息,例如用户的年龄,性别等等
    然后,系统会根据用户的 Profile 计算用户的相似度,可以看到用户 A 的 Profile和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐系统中,可以称他们是“邻居”
    最后,基于“邻居”用户群的喜好推荐给当前用户一些物品,图中将用户 A 喜欢的物品 A 推荐给用户 C

    这种机制的好处在于:

    • 不使用当前用户对物品的喜好历史数据
      对于新用户来讲没有“冷启动(Cold Start)”的问题。
    • 不依赖于物品本身的数据
      这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)

    缺点和问题

    对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。可能在一些电子商务的网站中,这个方法可以给出一些简单的推荐
    另外一个局限是,这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息,比如用户的年龄等,这些用户信息不是很好获取。

    4.2 基于内容的推荐

    基于内容的推荐是在推荐系统出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品
    基于内容推荐机制的基本原理
    一个典型的例子,电影推荐系统,首先我们需要对电影的元数据有一个建模,这里只简单的描述了一下电影的类型
    然后通过电影的元数据发现电影间的相似度,因为类型都是“爱情,浪漫”电影 A 和 C 被认为是相似的电影(要得到更好的推荐,还可以考虑电影的导演,演员等等)
    最后实现推荐,对于用户 A,他喜欢看电影 A,那么系统就可以给他推荐类似的电影 C

    好处

    能很好的建模用户的口味,提供更加精确的推荐

    问题

    1. 需要对物品进行分析和建模,推荐的质量依赖于对物品模型的完整和全面程度
      在现在的应用中我们可以观察到关键词和标签(Tag)被认为是描述物品元数据的一种简单有效的方法。
    2. 物品相似度分析仅依赖于物品本身的特征,这里没有考虑人对物品的态度。
    3. 因为需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题

    虽然这个方法有很多不足和问题,但他还是成功的应用在一些电影,音乐,图书的社交站点,有些站点还请专业的人员对物品进行基因编码,比如潘多拉,在一份报告中说道,在潘多拉的推荐系统中,每首歌有超过 100 个元数据特征,包括歌曲的风格,年份,演唱者等等。

    4.3 基于协同过滤的推荐

    随着 Web2.0 的发展,Web 站点更加提倡用户参与和用户贡献,因此基于协同过滤的推荐机制因运而生。
    根据用户对物品或者信息的偏好,发现物品或者内容本身的相关性,或者是发现用户的相关性,然后再基于这些关联性进行推荐

    基于协同过滤的推荐可以分为

    4.3.1 基于用户的协同过滤推荐(User-based Recommendation)

    根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K- means”算法;然后,基于这 K 个邻居的历史偏好信息,为当前用户进行推荐
    基于用户的协同过滤的基本原理
    假设用户 A 喜欢物品 A,物品 C
    用户 B 喜欢物品 B
    用户 C 喜欢物品 A ,物品 C 和物品 D
    从这些用户的历史喜好信息中,我们可以发现用户 A 和用户 C 的口味和偏好是比较类似的,同时用户 C 还喜欢物品 D,那么我们可以推断用户 A 可能也喜欢物品 D,因此可以将物品 D 推荐给用户 A

    该机制和基于人口统计学的推荐机制都是计算用户的相似度,并基于“邻居”用户群计算推荐,但它们所不同的是如何计算用户的相似度

    • 基于人口统计学的机制只考虑用户本身的特征
    • 基于用户的协同过滤机制可在用户的历史偏好的数据上计算用户的相似度,它的基本假设是,喜欢类似物品的用户可能有相同或者相似的口味和偏好。

    4.3.2 基于项目的协同过滤推荐(Item-based Recommendation)

    使用所有用户对物品或者信息的偏好,发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户

    假设
    用户 A 喜欢物品 A 和物品 C
    用户 B 喜欢物品 A,物品 B 和物品 C
    用户 C 喜欢物品 A
    从这些用户的历史喜好可以分析出物品 A 和物品 C 时比较类似的,喜欢物品 A 的人都喜欢物品 C,基于这个数据可以推断用户 C 很有可能也喜欢物品 C,所以系统会将物品 C 推荐给用户 C

    与上面讲的类似,基于项目的协同过滤推荐和基于内容的推荐其实都是基于物品相似度预测推荐,只是相似度计算的方法不一样,前者是从用户历史的偏好推断,而后者是基于物品本身的属性特征信息
    基于项目的协同过滤推荐机制的基本原理

    在基于用户和基于项目两个策略中应该如何选择呢?
    其实基于项目的协同过滤推荐机制是 Amazon 在基于用户的机制上改良的一种策略,因为在大部分的 Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定,同时基于项目的机制比基于用户的实时性更好一些。

    但也不是所有的场景都是这样的情况,可以设想一下在一些新闻推荐系统中,也许物品,也就是新闻的个数可能大于用户的个数,而且新闻的更新程度也有很快,所以它的形似度依然不稳定。
    所以推荐策略的选择其实和具体的应用场景有很大的关系。

    4.3.3 基于模型的协同过滤推荐(Model-based Recommendation)

    基于样本的用户喜好信息,训练一个推荐模型,然后根据实时的用户喜好的信息进行预测,计算推荐。

    现今应用最为广泛的推荐机制

    优点

    • 不需要对物品/用户进行严格的建模,不要求物品的描述是机器可理解的,所以该方法也是领域无关的
    • 计算出来的推荐是开放的,可以共享他人的经验,很好的支持用户发现潜在的兴趣

    问题

    • 核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题
    • 推荐效果依赖于用户历史偏好数据的多少和准确性
    • 在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。
    1. 对于一些特殊品味的用户不能给予很好的推荐。
    2. 由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。

    4.4 混合的推荐机制

    在现行的 Web 站点上的推荐往往都不是单纯只采用了某一种推荐的机制和策略,往往是将多个方法混合在一起,从而达到更好的推荐效果

    加权的混合(Weighted Hybridization):

    用线性公式将几种不同的推荐按照一定权重组合起来,具体权重的值需要在测试数据集上反复实验,从而达到最好的推荐效果

    切换的混合(Switching Hybridization)

    对于不同的情况(数据量,系统运行状况,用户和物品的数目等),推荐策略可能有很大的不同,那么切换的混合方式,就是允许在不同的情况下,选择最为合适的推荐机制计算推荐

    分区的混合(Mixed Hybridization)

    采用多种推荐机制,并将不同的推荐结果分不同的区显示给用户。
    Amazon,当当网等很多电子商务网站都是采用这样的方式,用户可以得到很全面的推荐,也更容易找到他们想要的东西

    分层的混合(Meta-Level Hybridization)

    采用多种推荐机制,并将一个推荐机制的结果作为另一个的输入,从而综合各个推荐机制的优缺点,得到更加准确的推荐。

    5 应用

    介绍完推荐系统的基本原理,基本推荐机制,下面简要分析几个有代表性的推荐系统的应用,这里选择两个领域:Amazon 作为电子商务的代表,豆瓣作为社交网络的代表。

    推荐在电子商务中的应用 – Amazon
    Amazon 作为推荐系统的鼻祖,已经将推荐的思想渗透在应用的各个角落
    Amazon 推荐的核心是通过数据挖掘算法和比较用户的消费偏好于其他用户进行对比,借以预测用户可能感兴趣的商品。对应于上面介绍的各种推荐机制,Amazon 采用的是分区的混合的机制,并将不同的推荐结果分不同的区显示给用户
    首页
    浏览物品
    Amazon 利用可以记录的所有用户在站点上的行为,根据不同数据的特点对它们进行处理,并分成不同区为用户推送推荐:

    • 今日推荐 (Today’s Recommendation For You):
      根据用户的近期的历史购买或者查看记录,并结合时下流行的物品给出一个折中的推荐。
    • 新产品的推荐 (New For You)
      采用基于内容的推荐机制 (Content-based Recommendation),将一些新到物品推荐给用户。在方法选择上由于新物品没有大量的用户喜好信息,所以基于内容的推荐能很好的解决这个“冷启动”的问题。
    • 捆绑销售 (Frequently Bought Together)
      采用数据挖掘技术对用户的购买行为进行分析,找到经常被一起或同一个人购买的物品集,进行捆绑销售,这是一种典型的基于项目的协同过滤推荐机制。
    • 别人购买 / 浏览的商品 (Customers Who Bought/See This Item Also Bought/See)
      这也是一个典型的基于项目的协同过滤推荐的应用,通过社会化机制用户能更快更方便的找到自己感兴趣的物品。

    值得一提的是,Amazon 在做推荐时,设计和用户体验也做得特别独到:

    Amazon 利用有它大量历史数据的优势,量化推荐原因。

    • 基于社会化的推荐,Amazon 会给你事实的数据,让用户信服,例如:购买此物品的用户百分之多少也购买了那个物品;
    • 基于物品本身的推荐,Amazon 也会列出推荐的理由,例如:因为你的购物框中有 ***,或者因为你购买过 ***,所以给你推荐类似的 ***。

    另外,Amazon 很多推荐是基于用户的 profile 计算出来的,用户的 profile 中记录了用户在 Amazon 上的行为,包括看了那些物品,买了那些物品,收藏夹和 wish list 里的物品等等,当然 Amazon 里还集成了评分等其他的用户反馈的方式,它们都是 profile 的一部分,同时,Amazon 提供了让用户自主管理自己 profile 的功能,通过这种方式用户可以更明确的告诉推荐系统他的品味和意图是什么。

    推荐在社交网站中的应用 – 豆瓣
    豆瓣是国内做的比较成功的社交网站,它以图书,电影,音乐和同城活动为中心,形成一个多元化的社交网络平台,自然推荐的功能是必不可少的
    豆瓣电影
    当你在豆瓣电影中将一些你看过的或是感兴趣的电影加入你看过和想看的列表里,并为它们做相应的评分,这时豆瓣的推荐系统已经拿到你的一些偏好信息,那么它将给你展示如图电影推荐。
    基于用户品味的推荐
    豆瓣的推荐是通过“豆瓣猜”,为了让用户清楚这些推荐是如何来的,豆瓣还给出了“豆瓣猜”的一个简要的介绍。
    *“你的个人推荐是根据你的收藏和评价自动得出的,每个人的推荐清单都不同。你的收藏和评价越多,豆瓣给你的推荐会越准确和丰富。
    每天推荐的内容可能会有变化。随着豆瓣的长大,给你推荐的内容也会越来越准。*”

    这一点让我们可以清晰明了的知道,豆瓣必然是基于社会化的协同过滤的推荐,这样用户越多,用户的反馈越多,那么推荐的效果会越来越准确。

    相对于 Amazon 的用户行为模型,豆瓣电影的模型更加简单,就是“看过”和“想看”,这也让他们的推荐更加专注于用户的品味,毕竟买东西和看电影的动机还是有很大不同的。

    另外,豆瓣也有基于物品本身的推荐,当你查看一些电影的详细信息的时候,他会给你推荐出“喜欢这个电影的人也喜欢的电影”, 如图这是一个基于协同过滤的应用。
    基于电影本身的推荐

    6 总结

    如何让用户更快的找到想要的数据,如何让用户发现自己潜在的兴趣和需求,无论是对于电子商务还是社会网络的应用都是至关重要的
    推荐系统的出现,使得这个问题越来越被大家关注。但对大多数人来讲,也许还在惊叹它为什么总是能猜到你到底想要些什么。推荐系统的魔力在于你不清楚在这个推荐背后,系统到底记录和推理了些什么。

    其实推荐系统只是默默的记录和观察你的一举一动,然后再借由所有用户产生的海量数据分析和发现其中的规律,进而慢慢的了解你,你的需求,你的习惯,并默默的无声息的帮助你快速的解决你的问题,找到你想要的东西。

    其实,回头想想,很多时候,推荐系统比你更了解你自己。

    在现今的推荐技术和算法中,最被大家广泛认可和采用的就是基于协同过滤的推荐方法
    它以其方法模型简单,数据依赖性低,数据方便采集,推荐效果较优等多个优点成为大众眼里的推荐算法“No.1”

    展开全文
  • 推荐系统系列一:推荐系统介绍

    千次阅读 2019-04-07 20:04:21
    下面内容转自大数据与人工智能微信公众号,由于网络上推荐系统的相关学习资料太多太杂,东拼西凑学习很难摸出门道,同时我也在学习推荐系统,因此我将该系列内容摘录到我的博客,方便大家直接在博客中查看,大家一起...
  • 推荐系统是企业中常用的技术,所以系统的掌握推荐系统的知识是很有必要的。本专栏主要讲述手机APP下载的项目。 常用的推荐方法有两个,分别是基于物品的推荐和基于用户的推荐。 基于用户的推荐原理是:跟你喜好...
  • 1、推荐系统简介  个性化推荐是根据用户的兴趣特点和购买行为,向用户推荐用户感兴趣的信息和商品。  推荐系统主要处理的有两类内容:一个是User,一个是Item。系统的目标也很明确,就是向User推荐Item。  应用...
  • 一、什么是推荐系统 推荐系统是一种软件工具和技术方法,它可以向用户建议有用的产品,这种建议适用于多种决策过程,如购买什么物品、听什么音乐、在网上浏览什么新闻等。 智能推荐系统,亦即个性化推荐系统,它是...
  • 协同推荐系统简介

    千次阅读 2007-07-24 23:39:00
    协同推荐系统简介 最近几年搜索引擎理念可谓渗入人心,对于互联网产品设计人员来说,张口必言搜索。同事基于搜索技术的各种产品也在Web2.0的浪潮下如雨后春笋,刷刷往 外冒。在这些林林总总的产品里面,几乎都能见到...
  • 我们每个人每天都会使用到不同的推荐系统,无论是听歌,购物,看视频,还是阅读新闻,推荐系统都可以根据你的喜好给你推荐你可能感兴趣的内容。不知不觉之间,推荐系统已经融入到我们的生活当中。作为大数据时代最...
  • 文章目录一 个性化电商广告推荐系统介绍1.1 数据集介绍1.2 项目效果展示1.3 项目实现分析1.4 点击率预测(CTR--Click-Through-Rate)概念 一 个性化电商广告推荐系统介绍 1.1 数据集介绍 Ali_Display_Ad_Click是阿里...
  • 大数据--商品推荐系统介绍(上)

    万次阅读 多人点赞 2018-10-08 12:59:20
    这次我们介绍商品推荐系统推荐系统是什么 推荐引擎的分类 常见的推荐算法 混合的推荐机制(重要) 推荐系统架构 协同过滤的实现 推荐引擎解决的几个问题 主动的用户,通过类目和搜索进行引导,对结果...
  • 十大开源推荐系统简介 [转自oschina]

    万次阅读 多人点赞 2019-04-21 16:26:19
    最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature、LibMF、LibFM等,也有重 量级的适用于工业系统的 Mahout、Oryx、EasyRecd等。PS:这里的top 10仅代表...
  • 电影推荐系统 技术采用 前端: bootstrap3 + vue + jquery 后端: django 2.2.1 +djangorestframework (MVC框架) 数据库: mysql 数据集: 豆瓣数据集+豆瓣电影爬虫+csv存储 movielens数据集+图片+用户数据和评分数据+...
  • TOP 10开源的推荐系统简介

    千次阅读 2019-10-05 21:19:16
    最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature、LibMF、LibFM等,也有重量级的适用于工业系统的 Mahout、Oryx、EasyRecd等,供大家参考。PS:这里的top...
  • 10大开源的推荐系统简介

    万次阅读 2017-06-01 20:26:13
    开 源的推荐系统大大小小的还有很多,以上只是介绍了一些在学术界和工业界比较流行的TOP 10,而且基本上都是用C++/Java实现的,在参考资料[1]、[2]中还提 到的有Crab(Python)、CofiRank(C++)、MyMediaLite(.NET...
  • 说到推荐系统,可能大家首先会想到个性化推荐,如淘宝、亚马逊等网站都在使用个性化商品推荐系统。进一步可能会想到基于用户推荐、基于内容推荐、基于关联规则推荐、协同过滤等等,可以说现在我们经常用的各种在线...
  • 10款开源的推荐系统简介

    千次阅读 2014-12-16 18:06:23
    最近这两年推荐系统特别火,本文搜集整理了一些比较好的开源推荐系统,即有轻量级的适用于做研究的SVDFeature、LibMF、LibFM等,也有重量级的适用于工业系统的 Mahout、Oryx、EasyRecd等,供大家参考。PS:这里的top...
  • 推荐系统简介(一)

    千次阅读 2011-09-22 21:46:37
    推荐系统广泛应用于电子商务领域,通过分析用户的数据,帮助用户找到喜欢和感兴趣的商品,然后推荐给他们。推荐系统的最大优点在于它能收集用户的兴趣信息并根据用户的不同偏好,主动的为用户做出个性化推荐,而且此...
  • 腾讯实时推荐系统介绍

    千次阅读 2015-01-15 14:04:04
    参考 :http://lamda.nju.edu.cn/conf/icml14w/Tencent.pdf
  • 推荐系统简介中,我们给出了推荐系统的一般框架。很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣。目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联...
  • 推荐系统(Recommendation System )介绍

    千次阅读 2019-02-24 15:06:48
    推荐系统简介 推荐系统是通过挖掘用户与项目(物品)之间的二元关系,帮助用户从大量数据中发现其可能感兴趣的项目(物品)如网页、服务、商品、人等,并生成个性化推荐以满足个性化需求。 电商推荐系统一般是电商的...
  • 推荐系统之算法介绍

    千次阅读 2015-01-27 11:47:30
    前言  随着电子商务的发展,网络购物成为一种趋势,当你打开某个购物网站比如淘宝、京东的时候,会...推荐系统简介 什么是推荐系统呢?维基百科这样解释道:推荐系统属于资讯过滤的一种应用。推荐系统能够将可能受喜好
  • 推荐系统简单介绍

    千次阅读 2017-04-19 11:17:55
    推荐系统介绍 自从1992年施乐的科学家为了解决信息负载的问题,第一次提出协同过滤算法,个性化推荐已经经过了二十几年的发展。1998年,林登和他的同事申请了“item-to-item”协同过滤技术的专利,经过多年的实践...
  • 推荐系统(1)——推荐系统概述

    千次阅读 2017-09-05 21:46:25
    1.推荐系统简介推荐系统是主动从大量信息中找到用户可能感兴趣的信息的工具。推荐系统的核心问题是如何实现推荐个性化、如何向用户推荐匹配度高的产品(商品)或项目,本质是通过一定的方式将用户和项目联系起来。...
  • 转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 ...公众号:搜索与推荐Wiki ... 不管是电商网站,还是新闻资讯类网站,推荐系统都扮演着十分重要的角色。一个优秀的推荐系统...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 579,493
精华内容 231,797
关键字:

推荐系统简介