一、什么是推荐系统

1.个性化推荐系统:从庞大的电影库中找几部符合你兴趣的电影供你选择。

2.推荐系统是帮助用户快速发现有用信息的工具。和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。搜索引擎和推荐系统是两个互补的工具,搜索引擎满足了用户有明确目的时的主动查找需求,而推荐系统能够在用户没有明确目的的时候,帮助他们发现感兴趣的内容。

3.长尾。传统的80/20原则(即80%的销售额来自20%的热门品牌),在互联网的加入下会受到挑战。长尾商品的销售额可能会超过热门商品所带来的销售额。主流商品代表了绝大多数用户的需求,而长尾产品往往代表了一小部分用户的个性化需求。因此如果需要提高销售额,就必须充分研究用户的兴趣。

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

5.推荐算法的本质是通过一定的方式将用户和物品联系起来,而不同的推荐系统利用了不同的方式推荐系统是自动联系用户和物品的一种工具。下图展示了联系用户和物品的常用方式,比如利用好友、用户的历史兴趣以及用户注册的信息等。

二、个性化推荐系统的应用

  1.个性化推荐系统需要依赖用户的行为和数据,一般都是作为一个应用存在于不同的网站中。

  2.个性化推荐系统的作用:(1)分析大量用户行为日志,给不同的用户提供不同的个性化页面展示,提高网站的点击率和转化率。

  3.推荐系统应用构成:

    (1)前台的展示页面

    (2)后台日志系统

    (3)推荐算法系统

  4.电子商务个性化推荐系统的标准用户界面

    

    (1)推荐结果的标题、缩略图以及求他内容属性:告诉用户给他们推荐的是什么

    (2)推荐结果的平均分:推荐结果的总体质量,代表了大部分用户对这本的看法

    (3)推荐理由。

    (4)相关列表推荐。亚马逊相关商品推荐列表有两种,一种是包含购买了这个商品的用户也经常购买的其他商品,另一种是浏览过这个商品的用户也经常购买的其他商品。相关推荐列表最重要的应用就是打包销售(cross selling)。即你在购买某个物品的时候,亚马逊会告诉你其他用户在购买这个商品的同时也会购买其他的几个商品,让你选择是否要同时购买这些商品,如果点击同时购买,如果你点击同时购买,则会把这几件商品同时打包,并且提供一定的折扣,然后卖给你。

  5.电影和视频网站。Netflix的电影推荐页面,从中可以看到NetFlix的推荐结果展示页面包含了以下的几个部分。

    (1)电影海报和标题

    (2)用户反馈模块:包括play(播放),评分和Not Interested(不感兴趣)3中

    (3)推荐理由:因为用户曾经喜欢过别的电影

  6.个性化推荐的成功应用需要两个条件。

     (1)存在信息过载。因为如果用户很容易的从所有物品中找到喜欢的物品,就不需要个性化推荐了。

     (2)用户大部分的时候没有明确的需求。因为如果用户有明确的需求,可以直接通过搜索引擎找到感兴趣的物品。

  7.音乐推荐有如下特点:

    (1)物品空间大。物品数很多,物品空间大

    (2)消费每首歌的代价很小

    (3)听一首歌耗时很少

    (4)物品重用率很高

    (5)用户充满激情

    (6)上下文相关

    (7)次序很重要

    (8)很多播放列表资源

    (9)不需要用户全神贯注

    (10)高度社会化

  8.社交网络中的个性化推荐技术主要用在3个方面:

    (1)利用用户的社交网络信息对个性化物品推荐

    (2)信息流的会话推荐

    (3)给用户推荐好友 

  9.个性化阅读

  10.基于位置的服务

  11.个性化邮件

  12.个性化广告

    (1)上下文广告

    (2)搜索广告

    (3)个性化展示广告

  13.推荐系统评测

    (1)完整的推荐系统存在3个参与方:用户、物品提供者和提供推荐系统的网站

    (2)预测的准确性是推荐系统领域的重要指标

  14.推荐系统的试验方法。主要有3中评测效果的实验方法:(1)离线计算;(2)用户调查;(3)在线实验

  15.离线实验由以下几个步骤构成:

    (1)通过日志系统获得用户行为数据,并按照一定格式生成一个标准的数据集

    (2)将数据集按照一定的规则分成测试集和训练集

    (3)在训练集上训练用户兴趣模型,在测试集上进行预测

    (4)通过事先定义的离线指标评测算法在测试集上进行预测。

  16离线计算的优缺点:

    (1)优点:只需要从实际系统日志中提取数据集即可。不需要有对实际系统的控制权,不需要真实用户参与,可以快速直接地计算出来,可以方便快速的测试大量不同的算法。

     (2)缺点:无法计算商业上关注的指标;离线实验的指标和商业指标存在差距

  17.用户调查。需要一些真实用户,让他们在需要测试的推荐系统中完成一些任务。在他们完成任务时,需要观察和记录他们的行为,并让他们回答一些问题。最后需要分析他们的行为和答案来了解测试系统的性能。

  18.用户调查的优缺点。

    (1)优点:可以获得很多体现用户主观感受的指标,相对在线实验风险很低,出现错误后容易弥补。

    (2)缺点:招募测试用户的代价很大,很难组织大规模的测试用户,这会使得测试结果的意义不足。

  19.在线实验。

    (1)在完成那个离线实验和必要的用户调查之后,可以将推荐系统上线做AB测试,这将和旧的算法进行比较

    (2)AB测试是一种常用的在线评测算法的实验方法。

       思想:通过一定的规则将用户随机分成几组,对不同组的用户采用不同的算法,然后统计不同组用户的各种不同的评测指标比较不同算法,如可以统计不同组用户的点击率。通过点击率比较不同算法的性能

    (3)AB测试的优点:公平获得不同算法实际在线使得性能指标,包括商业上关注的指标。

    (4)AB测试的缺点:周期比较长,必须进行长期的实验餐能得到可靠的结果。切分流量是AB测试的关键,不同的层以及控制这些层的团队需要一个统一的地方获得自己的AB测试流量,而不同层之间的流量应该是正交的。

    (5)一般而言,一个新的推荐算法最终上线,需要上面的三个实验。

      首先。需要通过离线实验证明它在很多离线指标上优于现有的算法

      然后。需要通过用户调查确定他的用户满意度不低于现有的算法

      最后。通过AB测试确定它在我们关系的指标上优于现有的算法

  20.测评指标。

    1.用户满意度:只能通过用户调查或者在线实验获得。

      (1)用户调查主要通过调查问卷的形式。

      (2)在线系统中。用户满意度主要通过一些用户行为的统计得到。

    2.预测准确度

      (1)预测准确度:度量一个推荐系统或者推荐算法预测用户行为或能力。

      (2)在进行预测的时候,需要有一个离线数据集,包含用户历史行为记录,然后将该数据集通过时间分成训练集和测试集。在训练集上建立用户行为和兴趣模型,在测试集上测试该模型,计算预测行为和测试集上实际行为实际行为的重合度来作为预测的准确度

    3.预测准确度指标。

      (1)评分预测。预测用户对物品评分的行为称为评分预测。如果知道了用户对物品的历史评分,就可以从习得用户的兴趣模型,并预测该用户在将来看到一个他没有评分的物品时,会给这个物品评多少分。

      (2)评分预测一般通过均方根误差(RMSE)和平方绝对误差的计算。对于测试集中的一个用户u和一个产品i,令rui是用户u对i的实际评分,而rui0是推荐算法给出的测试评分,那么RMSE的定义为:

      

      (3)MAE采用绝对值计算预测误差,它的定义为:

      

      

      (4)TopN推荐:网站在推荐服务的时候,一般会给用户一个个性化推荐列表

            TopN推荐的预测准确率一般通过准确率/召回率度量的。

            R(u)是根据用户在训练集上的行为给用户做出的推荐列表,而T(u)是用户在测试集上的行为列表,那么推荐结果的召回率似是:

              

            推荐结果的准确率是:

            

    3.覆盖率。描述一个推荐系统对物品长尾的发掘能力。

        (1)覆盖率定义:推荐系统能够推荐出来的物品占总物品集合的比例。

        系统的用户集合为U,推荐系统会给每个用户推荐一个长度为N的物品列表R(u)

        

        (2)一个好的推荐系统不仅需要有比较高的用户满意度,也要有较高的覆盖率  

    4.多样性.

    5.新颖性

    6.惊喜度

    7.信任度

    8.实时性

    9.健壮性

    10.商业目标

    

  

RS chap1:好的推荐系统的更多相关文章

  1. 【RS】Collaborative Memory Network for Recommendation Systems - 基于协同记忆网络的推荐系统

    [论文标题]Collaborative Memory Network for Recommendation Systems    (SIGIR'18) [论文作者]—Travis Ebesu (San ...

  2. 【RS】CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Collaborative Filtering-CoupledCF:在推荐系统深度协作过滤中学习显式和隐式的用户物品耦合

    [论文标题]CoupledCF: Learning Explicit and Implicit User-item Couplings in Recommendation for Deep Colla ...

  3. 【RS】Matrix Factorization Techniques for Recommender Systems - 推荐系统的矩阵分解技术

    [论文标题]Matrix Factorization Techniques for Recommender Systems(2009,Published by the IEEE Computer So ...

  4. 【RS】Improving Implicit Recommender Systems with View Data - 使用浏览数据提升隐式推荐系统

    [论文标题]Improving Implicit Recommender Systems with View Data(IJCAI 18) [论文作者]Jingtao Ding  , Guanghui ...

  5. 明尼苏达推荐系统导论(第一课 欢迎来到RS)

    一.RS介绍 1.显示评分:直接从用户来 隐式评分:从用户活动推测得到的 2.预测是偏好的估计,是预测缺失值,推荐是从其他用户推荐项目,是推荐感兴趣的项目. 3.协同表示利用其它用户的数据 二.欢迎来 ...

  6. RS:推荐系统中的数据稀疏和冷启动问题

    如何在没有大量用户数据的情况下设计个性化推荐系统并且让用户对推荐结果满意从而愿意使用推荐系统,就是冷启动问题. 冷启动问题主要分为三类: (1) 用户冷启动:如何给新用户做个性化推荐的问题,新用户刚使 ...

  7. RS:关于数据挖掘中的推荐系统

    一.推荐系统概述和常用评价指标 1.1 推荐系统的特点 在知乎搜了一下推荐系统,果真结果比较少,显得小众一些,然后大家对推荐系统普遍的观点是: (1)重要性UI>数据>算法,就是推荐系统中 ...

  8. 【RS】Deep Learning based Recommender System: A Survey and New Perspectives - 基于深度学习的推荐系统:调查与新视角

    [论文标题]Deep Learning based Recommender System: A Survey and New Perspectives ( ACM Computing Surveys  ...

  9. 【RS】Wide & Deep Learning for Recommender Systems - 广泛和深度学习的推荐系统

    [论文标题]Wide & Deep Learning for Recommender Systems (DLRS'16) [论文作者] Heng-Tze Cheng, Levent Koc, ...

随机推荐

  1. 生成json文件写入本地

    public class Json { public static void main(String[] args) { String fullPath = null; //例如:fullPath=& ...

  2. C++入门经典-例3.16-使用do-while循环进行计算

    1:代码如下: // 3.16.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...

  3. python3笔记十五:python函数

    一:学习内容 函数概述 函数的参数与返回值 参数值传递和引用传递 关键字参数 默认参数 不定长参数 二:函数概述 1.本质:函数就是对功能的封装 2.优点: 简化代码结构,增加了代码的复用度(重复使用 ...

  4. tensorflow实现LeNet-5模型

    网络结构如下: INPUT: [28x28x1] weights: 0 CONV5-32: [28x28x32] weights: (5*5*1+1)*32 POOL2: [14x14x32] wei ...

  5. Android 客户端应用开发结构框架

    本文算是一篇漫谈,谈一谈关于android开发中工程初始化的时候如何在初期我们就能搭建一个好的架构.关于android架构,因为手机的限制,目前我觉得也确实没什么大谈特谈的,但是从开发的角度,看到整齐 ...

  6. 【flask】处理表单数据

     表单数据的处理涉及很多内容,除去表单提交不说,从获取数据到保存数据大致会经历以下步骤: 解析请求,获取表单数据. 对数据进行必要的转换,比如将勾选框的植转换为Python的布尔值. 验证数据是否符合 ...

  7. 阶段3 2.Spring_03.Spring的 IOC 和 DI_12 注入集合数据

    再复制一份,改名3 常用的注入方式,这里选择set saveAccount方法输出所有的对象 map需要导包 配置xml 集合类型的值配置方式 在property标签里面再写标签 这里选择array. ...

  8. APP测试流程梳理

    APP测试流程梳理 1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试 ...

  9. python UI自动化之JS定位

    1.话不多说,直接贴入代码 上面的 document.getElementById 可以替换成别的定位方式,比如: 通过name获取:document.getElementsByName 通过标签获取 ...

  10. ls | ethtool

    ls -lhS *.mp4|awk '{if($5>4000000) print $0}'ls -lhS *.mp4|awk '{if(($5>100000) && ($5 ...