推荐系统

什么是推荐系统?

推荐系统是一项工程技术解决方案,通过利用机器学习等技术,在用户使用产品进行浏览交互的过程中,系统主动为用户展示可能会喜欢的物品,从而促进物品的“消费”,节省用户时间,提升用户体验, 做到资源的优化配置。(推荐系统是机器学习的一个分支应用,推荐系统大量使用机器学习技术,利用各种算法构建推荐模型, 提升推荐的精准度,惊喜度,覆盖率等,甚至是实时反馈用户的兴趣变化)

常用的推荐算法

  1. 基于内容的推荐

上面讲到推荐系统是通过技术手段将“标的物”与人关联起来,“标的物”包含很多自己的属性,用户通过与“标的物”的交互会产生行为日志,这些行为日志可以作为衡量用户对“标的物”偏好的标签通过这些偏好标签为用户做推荐就是基于内容的推荐算法。拿视频推荐来说,视频有标题、国别、年代、演职员、标签等信息,用户以前看过的视频,就代表用户对这些视频有兴趣,比如用户偏好恐怖,科幻类的电影,我们就可以根据这些兴趣特征为用户推荐恐怖科幻类的电影。

  • 原理:1、基于内容的推荐算法的原理如下:
  ① 选取一些具有代表性的特征来表示每个物品
  ② 使用用户的历史行为数据分析物品的这些特征,从而学习出用户的喜好特征或兴趣,也即构建用户画像
  ③ 通过比较上一步得到的用户画像和待推荐物品的画像(由待推荐物品的特征构成),将具有相关性最大的前K个物品中目标用户没有浏览过的物品推荐给目标用户
  1. 协同过滤

用户在产品上的交互行为为用户留下了标记,我们可以利用“物以类聚,人以群分”的朴素思想来为用户提供个性化推荐。具体来说,“人以群分”就是找到与用户兴趣相同的用户(有过类似的行为),将这些兴趣相同的用户浏览过物品推荐给用户,这就是基于用户的协同过滤算法。“物以类聚”就是如果有很多用户都对某两个物品有相似的偏好, 说明这两个物品是“相似”的,我们可以通过推荐用户喜欢过的物品相似的物品这种方式为用户提供个性化推荐, 这就是基于物品的协同过滤推荐算法

  • 基于用户的协同过滤的原理

    ① 分析各个用户对物品的评价,通过浏览记录、购买记录等得到用户的隐性评分; ② 根据用户对物品的隐性评分计算得到所有用户之间的相似度; ③ 选出与目标用户最相似的K个用户; ④ 将这K个用户隐性评分最高并且目标用户又没有浏览过的物品推荐给目标用户。

  • 基于物品的协同过滤的原理

       ① 分析各个用户对物品的浏览记录;
       ② 依据浏览记录分析得出所有物品之间的相似度;
       ③ 对于目标用户评价高的物品,找出与之相似度最高的K个物品;
       ④ 将这K个物品中目标用户没有浏览过的物品推荐给目标用户
    
  • 基于模型的推荐

基于用户行为记录,用户相关信息(年龄,性别,地域,消费习惯等),物品相关信息,构建算法模型,预测用户对物品的偏好,常用的算法有logistic回归,矩阵分解朴素贝叶斯分类器等。随着现在深度学习技术的发展,目前有很多深度学习相关的算法落地到了推荐系统上,产生了很好的效果。

  1. 基于社交关系的推荐

我们在日常生活中经常为别人或者要求别人给我们推荐书籍, 餐厅, 电影等,这种推荐方式往往效果较好,大家会更容易接受。

  1. 基于流行度的推荐算法

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

访问次数(VV):记录1天内所有访客访问了该网站多少次,相同的访客有可能多次访问该网站,且访问的次数累加。② 独立访客(UV):记录1天内所有访客访问了该网站多少次,虽然相同访客能多次访问网站,但只计算为1个独立访客。③ PV访问量(Page View):即页面访问量,每打开一次页面或者刷新一次页面,PV值+1。

构建推荐系统的阻碍与挑战

  1. 推荐系统推荐精准度的问题:这需要通过构建好的推荐算法来实现,同时要有足够多的用户行为数据来学习算法模型, 数据预处理的质量也对结果有较大影响, 现在基于深度学习的推荐系统可以达到很好的效果;
  2. 冷启动问题: 新用户、新物品没有相关行为信息, 这时系统怎么给用户推荐,怎么将新物品推荐出去, 在推荐系统落地过程中都需要做结合业务场景的特殊处理才能达到好的用户体验;
  3. 如果你的产品有大量用户访问,怎么构建一套高效的推荐系统,满足高并发访问,为用户提供稳定,快速,高效的推荐服务也是一个挑战;
  4. 数据缺失的问题:现实场景中一定存在用户或者物品的信息不完善,或者部分信息有误,这些也是在构建推荐算法模型过程中必须考虑和解决的问题;
  5. 怎么处理非结构化的信息:用户和物品相关的信息有可能是非结构化的信息,比如图片,视频,音频,文本等,怎么高效的利用这些信息,为推荐模型提供更多信息输入, 随着深度学习在推荐系统中大规模运用,这类问题可以得到较好的解决;
  6. 存储
  7. 怎么评估推荐算法的价值。

推荐系统的价值

当前推荐系统技术是互联网公司的标配技术, 因为它很好的解决“标的物”提供方,平台方,用户三方的需求

  • 从用户角度说, 推荐系统可以让用户在纷繁芜杂的海量信息中快速找到自己感兴趣的信息,节省了用户的时间
  • 从平台角度,精准的推荐,也能增加用户对平台的粘性,让用户喜欢上你的平台。
  • 从物品提供商的角度看,提升了供应商的销量,从而为供应商赚取极大的收益。

推荐系统业务流及其核心模块

(1)数据收集模块

标的物的意思是:电影推荐中标的物就是电影,书的推荐中标的物就是书,今日头条的标的物就是新闻资讯等。

(2)ETL模块(类似于数据的处理)

收集到的原始数据一般是非结构化的,ETL模块的主要目的是从收集到的原始数据中提取关键字段(拿视频行业来说,用户id,时间,播放的节目,播放时长,播放路径等都是关键字段),将数据转化为结构化的数据存储到数据仓库中

(3)特征工程模块

推荐系统采用各种机器学习算法来学习用户偏好,并基于用户偏好来为用户推荐“标的物”,而这些推荐算法用于训练的数据是可以“被数学所描述”的,一般是向量的形式,其中向量的每一个分量/维度就是一个特征,所以特征工程的目的就是将推荐算法需要的,以及上述ETL后的数据转换为推荐算法可以学习的特征像logistic回归等复杂一些的机器学习算法需要做特征工程,一般基于模型的推荐算法都需要特征工程。

(4)推荐算法模块

这里一般涉及到模型训练、预测两个核心操作,这也是机器学习的通用流程。

(5)推荐结果存储模块

推荐系统范式

  1. 范式1:完全个性化范式:为每个用户提供个性化的内容,每个用户推荐结果都不同;(例:猜你喜欢)

  2. 范式2:群组个性化范式:首先将用户分组(根据用户的兴趣,将兴趣相似的归为一组),每组用户提供一个个性化的推荐列表,同一组的用户推荐列表一样,不同组的用户推荐列表不一样;

  3. 范式3:非个性化范式:为所有用户提供完全一样的推荐;(例:排行榜、热点的推荐,大家拿到的推荐都一样)
  4. 范式4:标的物关联标的物范式:为每个标的物关联一组标的物,作为用户在访问标的物详情页时的推荐,每个用户都是相同的标的物;

什么是冷启动?

如果是新开发的产品,初期用户很少,用户行为也不多,常用的协同过滤、深度学习等依赖大量用户行为的算法不能很好的训练出精准的推荐模型, 怎么让推荐系统很好的运转起来,让推荐变得越来越准确,这个问题就是系统冷启动。

总之,推荐系统冷启动主要分为标的物冷启动用户冷启动系统冷启动三大类。下面给出相应的策略。

  • 用户冷启动
    • 1. 提供非个性化的推荐:热点
    • 2.利用新用户在注册时提供的信息:兴趣、地域、性别等
    • 3.基于内容做推荐
    • 4. 采用快速试探策略:先随机给用户推荐,基于用户的点击反馈快速发现用户的兴趣。
  • 标的物冷启动
    • 1.利用标的物的metadata信息做推荐
    • 2. 采用快速试探策略
  • 系统冷启动

推荐结果评估

当一个推荐算法设计完成后,一般需要用查准率(precision),查全率(recall),点击率(CTR)、转化率(CVR)、停留时间等指标进行评价。

  • 查准率(precision):推荐给用户且用户喜欢的物品在推荐列表中的比重
  • 查全率(recall):推荐给用户且用户喜欢的物品在用户列表中的比重
  • 点击率(CTR):实际点击了的物品/推荐列表中所有的物品
  • 转化率(CVR):购买了的物品/实际点击了的物品

参考链接

  1. 推荐算法介绍
  2. 总体介绍
  3. 推荐系统算法使用的理论知识

results matching ""

    No results matching ""