推荐系统简介


文章目录

  • 一、概述
    • 1.1 产生的原因
    • 1.2 应用场景
    • 1.3 推荐系统的本质
  • 二、工业推荐系统架构
  • 三、推荐系统的方法
  • 四、推荐系统的三大实验方法
  • 五、评测指标


一、概述

推荐系统是一种信息过滤系统,用于预测用户对物品的“评分”或“偏好”。(即实质上是一种预测系统)。简单得说,就是一个可以根据用户(users)的历史行为、社交关系、兴趣点、所处上下文环境等去判断用户的当前需求或感兴趣的物品(items)的系统。推荐系统通过分析、挖掘用户行为,发现用户的个性化需求与兴趣特点,将用户可能感兴趣的信息或商品推荐给用户。一个优秀的推荐系统,能够很好的串联起用户、商家以及平台方,并让三方都收益。
推荐系统简介_第1张图片
本质上来讲,推荐系统就是对所有商品针对特定用户进行按照一定策略进行排序,然后筛选出若干商品推荐给用户的过程。

1.1 产生的原因

如今,我们这代人正经历从信息时代(Information Technology,IT)到数据时代(Data Technology,DT)的变迁,DT时代比较明显的标志就是:信息过载
推荐系统简介_第2张图片
在DT时代,充斥着海量的信息,如何从海量的信息中快捷的帮助特定用户找到感兴趣的信息呢?有两种相关的解决技术:搜索引擎与推荐系统

搜索引擎与推荐系统有什么区别?

  • 搜索引擎:实现人找信息 eg.百度搜索…
  • 推荐系统:实现信息找人 eg.抖音的短视频推荐

与搜索引擎不同,推荐系统不需要用户准确地描述出自己的需求,而是根据分析历史行为建模,主动提供满足用户兴趣和需求的信息。

1.2 应用场景

  • 图书影音:Netflix、Youtube、爱奇艺、优酷、腾讯视频、网易云音乐等
  • 新闻资讯:今日头条、知乎等
  • 人际社交:Facebook、Twitter、微博、人人网
  • 旅游出行:Wanderfly、TripAdvisor、蚂蜂窝、去哪儿
  • 电商零售:亚马逊、淘宝、天猫、京东

1.3 推荐系统的本质

实际上,推荐系统是一个策略行为。对于策略,他有四要素,分别是:

  • 待解决问题
  • 输入(影响解决方案的因素)
  • 计算逻辑(将输入转换成输出的规则)
  • 输出(具体的解决方案)

以今日头条为例

  • 待解决的问题:从海量的内容中,找到用户喜欢的内容;
  • 输入:用户画像和内容特征;
  • 计算逻辑:将这些内容特征按一定规则转化为喜欢度;
  • 输出:将内容按喜欢度从高到低排序。

二、工业推荐系统架构

我们以微博的推荐系统为例,来简单介绍一下:现在工业级的大规模推荐系统是怎么来做推荐架构和推荐流程的。

推荐系统简介_第3张图片
它分为两大部分,最上面那部分是在线推荐部分,底下部分是离线部分

先说线上部分。我们习惯把微博叫做物料库,实际就是item,物料库的规模会比较大,一般会先过召回模块。

为什么要走召回?

  • 要给微博的每一个用户在热门流推出个性化的信息流,假设一天新发的微博条数以亿计算,再加上历史的条数,任何一个人登上微博去刷热门流,都需要算几亿条微博给这一个人。如果不增加召回环节,直接部署排序模型,这个计算量是很巨大的,速度上根本算不过来。

召回的目的很简单,就是把个性化的推荐item数目降下来。召回等于说把用户可能感兴趣的物料进行一些缩减,缩到一定的数量范围里面,但是还要跟用户兴趣相关。

如果如果召回Item的数量还是比较多,可以部署一个粗排模块,用简单的排序模型再筛选一下,Item数量就可以再往下减一减,然后进入精排环节。因为到这一步已经经过两轮筛选,对于某个用户来说,剩下的物料已经不多了。

精排的意思就是:在此基础上可以加一些复杂模型,精制地给把少量微博根据用户兴趣排一排序,把用户真正感兴趣的内容排到前面去。

之后还有业务逻辑。比如说要把已读的微博内容过滤掉,需要考虑推荐结果的多样性以及其它各方面的业务逻辑。

我们会捕捉用户行为,举个例子,用户看过哪些微博、反馈过哪些微博、互动过哪些微博,这些行为就被收集起来,对于实时的用户行为,一般会部署一个实时的模型,可以实时地更新在线模型,这体现在:召回可以改成实时的模式,包括ranking也可以改造成实时的模式

实时的意思就是:用户刷了一条微博,或者互动了一条微博,立刻就在刷出下一条微博的时候,体现出用户刚才这个行为了。

当然还会计算离线模型,因为这个模型它的训练数据更充分、更精准。通过这种方式,定期地更新线上的这三个模型,这就是典型的工业界做大规模推荐系统的整体流程。

这个框架是大多数做推荐的公司的推荐业务基本框架,只不过可能几个关键环节使用的具体技术方法不同而已。

三、推荐系统的方法

1.协同过滤推荐(Collaborative Filtering Recommendation):

  • 该方法收集分析用户历史行为、活动、偏好,计算一个用户与其他用户的相似度,利用目标用户的相似用户对商品评价的加权评价值,来预测目标用户对特定商品的喜好程度。通过相似用户进行推荐的算法称为基于用户的协同过滤算法(User-based Collaborative Filtering);通过相似项进行推荐的算法称为基于项的协同过滤算法(Item-based Collaborative Filtering)

  • 优点是可以给用户推荐未浏览过的新产品;

  • 缺点是对于没有任何行为的新用户存在冷启动的问题,同时也存在用户与商品之间的交互数据不够多造成的稀疏问题,会导致模型难以找到相近用户。

2.基于内容过滤推荐(Content-based Filtering Recommendation):

  • 该方法利用商品的内容描述,抽象出有意义的特征,通过计算用户的兴趣和商品描述之间的相似度,来给用户做推荐。
  • 优点是简单直接,不需要依据其他用户对商品的评价,而是通过商品属性进行商品相似度度量,从而推荐给用户所感兴趣商品的相似商品;
  • 缺点是对于没有任何行为的新用户同样存在冷启动的问题。

3.隐语义与矩阵分解模型(Latent Factor Model):

  • 该方法通过隐含特征(latent factor)联系用户兴趣和物品。隐语义模型,可以基于用户的行为自动进行聚类,并且这个类的数量,即粒度完全由可控。对于某个物品是否属与一个类,完全由用户的行为确定,假设两个物品同时被许多用户喜欢,那么这两个物品就有很大的几率属于同一个类。而某个物品在类所占的权重,也完全可以由计算得出。
  • 优点是非常节省空间,比较前面讲到的协同过滤算法,在用户物品数量都很大的情况下,LFM 无疑是可以节省大量空间的;其次,
  • 缺点是LFM 不适合做实时推荐算法,不具备较好的解释性,计算复杂度上略高于 协同过滤,但是还是在一个量级。

4.组合推荐(Hybrid Recommendation):

  • 运用不同的输入和技术共同进行推荐,以弥补各自推荐技术的缺点。

5.基于深度学习的推荐系统:
推荐系统简介_第4张图片

  • 伴随着机器学习的兴起了非常多的技术被应用到推荐系统中,从传统的机器学习方式LR、GBDT、XGBoost到LightGBM,深度学习从最初利用word2vec用于评估用户的相似度,到CNN、RNN等模型也开始被很多的推荐小组尝试。
  • 优点是深度学习具有优秀的自动提取特征的能力,能够学习多层次的抽象特征表示,并对异质或跨域的内容信息进行学习,可以一定程度上处理推荐系统冷启动问题;
  • 缺点是模型的可解释性差,而且需要足够的数据才能完全支持其丰富的参数化。

四、推荐系统的三大实验方法

1. 离线实验:

  • 通过日志系统获得用户行为数据,按照一定的格式生成一个标准的数据集 将数据集按照一定的规则分成训练集和测试集。在训练集上训练用户兴趣模型,在测试集上进行预测 通过事先定义的离线指标评测算法在测试集上的预测结果。
  • 优点:不需要真实用户的参与 不需要有对实际系统的控制权 速度快,可以测试大量算法。
  • 缺点:无法计算商业关心的指标,例如点击率、转化率等。

2.用户调查

  • 由于离线试验的指标与商业指标存在差异,高准确率不等于高用户满意度。所以,想要准确的评测一个算法,需要相对比较真实的环境。最好的方法就是直接上线测试,而由于无法确定算法的影响,上线测试会有比较大的风险,这时,我们的用户调查就派上用场了。很多离线试验无法获得的主观感受指标都可以通过用户调查获得。
  • PS:过程大致和产品的用户调查差不多,但应尽量保证双盲实验,尽量使用多样用户群,并保证用户属性的平衡。
  • 优点: 可以获得很多体现用户主观感受的指标 相对在线实验风险很低,出现错误后很容易弥补
  • 缺点:招募测试用户代价较大,很难组织大规模的测试用户,设计双盲实验较困难,并且用户在测试环境下的行为和真实环境下的行为可能有所不同,导致测试结果在真实环境下无法重现。

3.在线实验

  • 在线实验就是大杀器了,它可以统计到最真实的用户反馈和商业指标。在完成必要的离线试验和用户调查后,可以采用AB测试的方式比较新旧算法。

AB测试(一种在线评测算法的实验方法):

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

五、评测指标

1.用户满意度

  • 用户满意度是推荐系统最重要的指标,但是,用户满意度无法离线计算,只能通过用户调查或在线实验得到。

2.预测准确度

  • 是度量一个推荐系统预测用户行为的能力,是最重要的离线评测方法。

3.TopN推荐

  • TopN 推荐是指,用户会不会对物品感兴趣。TopN 推荐有两个重要指标:准确率和召回率。

  • 准确率:为用户推荐且用户感兴趣的物品,在推荐结果列表中所占的比例。

  • 召回率:为用户推荐且用户感兴趣的物品,在用户感兴趣的所有物品列表中所占的比例。

4.评分预测

  • 评分预测是指用户会对一个物品产生怎样的评分,由此可以习得用户的兴趣模型或用户画像。

5.覆盖率

  • 覆盖率描述一个推荐系统对长尾的发掘能力。覆盖率没有唯一的定义方法,一个简单的定义是,推荐列表中的物品占总物品数的比例。

还有实时性健壮性等指标。

你可能感兴趣的:(推荐系统与计算广告,数据挖掘与数据竞赛,推荐系统)