推荐系统学习笔记01

推荐系统学习笔记01

一 推荐系统简介

1 信息过载(information overload)

​ 对于信息消费者,从大最信息中找到自己感兴趣的信息是一件非常困难的事情;对于信息生产者,让自己生产的信息脱颖而出,受到广大用户的关注,也是一件非常困难的事情。推荐系统就是解决这一矛盾的重要工具。

2 推荐系统与搜索引擎

​ 以谷歌为代表的搜索引擎可以让用户通过搜索关键词找到自己需要的信息。但是,搜索引擎需要用户主动提供准确的关键词来寻找信 息,因此不能解决用户的很多其他需求,比如当用户无法找到准确描述自己需求的关键词时,搜索引擎就无能为力了。 和搜索引擎一样,推荐系统也是一种帮助用户快速发现有用信息的工具。 和搜索引擎不同的是,推荐系统不需要用户提供明确的需求,而是通过分析用户的历史行为给用户的兴趣建模,从而主动给用户推荐能够满足他们兴趣和需求的信息。 因此, 从某种意义上说, 推荐系统和搜索引擎对千用户来说是两个互补的工具。搜索引擎满足了用户有明确目的时的主动 查找需求, 而推荐系统能够在用户没有明确目的的时候帮助他们发现感兴趣的新内容。

3 个性化推荐系统的应用
  • 电子商务:亚马逊–个性化推荐列表
  • 电影和视频网站:Netflix的电影推荐界面、YouTube、视频网站Hulu
  • 个性化音乐网络电台:Pandora、Last.fro、豆瓣电台
  • 个性化阅读:Google Reader、Zite、Digg
  • 基于位置的服务:Foursquare
  • 个性化邮件:Tapestry、Gmail的优先级邮箱
  • 个性化广告:计算广告学、Facebook

二 推荐系统评测

​ 在评测一个推荐算法时, 需要同时考虑用户、内容提供方和网站三方的利益, 一个好的推荐系统是能够令三方共赢的系统。

1 推荐系统实验方法
  • 离线实验(offline experiment):推荐系统的离线实验都是在数据集上完成的,也就是说它不需要一个实际的系统来供它实验,而只要有一个从实际系统日志中提取的数据集即可。
  • 用户调查(user study):用户调查需要有一些真实用户,让他们在需要测试的推荐系统上完成一些任务。在他们完成任务时,我们需要观察和记录他们的行为, 并让他们回答一些问题。最后, 我们需要通过分析他们的行为和答案了解测试系统的性能。
  • 在线实验(online experiment):AB测试
2 评测指标
2.1 用户满意度
2.2 预测准确度
2.2.1 评分预测

预测用户对物品的评分行为称为评分预测。

  • 评分预测模型通过对用户的历史物品评分记录进行建模,进而得到用户的兴趣模型;
  • 然后使用该模型预测用户未未见过商品的评分.

评分预测的预测准确度一般通过均方根误差(RMSE)和平均绝对误差(MAE)计算。

RMSE由于存在平方项,使得使得用户真实评分与推荐系统预测评分相差较大的用户加大了惩罚,即该评测指标对系统要求更加的苛刻。

2.2.2 TopN推荐
  • 推荐系统在给用户推荐物品的时候,往往会给用户一个列表的推荐物品,这种场景下的推荐成为是TopN推荐,
  • 该推荐方式最常用的预测准确率指标一般是精确率(precision)和召回率(recall),precision=预测正确的正样本个数/分类器判断为正样本的样本个数,recall=预测正确的正样本个数/分类器判断为正样本的样本个数
2.3 覆盖率

使用信息熵和基尼系数来定义覆盖率.

覆盖率是用来描述一个推荐系统对物品长尾的发掘能力,一个简单的定义可以是:推荐系统所有推荐出来的商品集合数占总物品集合数的比例.但是对于相同的覆盖率,不同物品的数量分布,或者说是物品的流行度分布是可以不一样的.为了更好的描述推荐系统挖掘长尾的能力,需要统计不同物品出现次数的分布.如果所有的物品都出现在推荐列表中,并且出现的次数都差不多,那么推荐系统发掘长尾的能力就很好.所以可以通过研究物品在推荐列表中出现的次数分布来描述推荐系统挖掘长尾的能力,如果这个分布比较平缓说明推荐系统的覆盖率比较高,而如果分布比较陡说明推荐系统的覆盖率比较低.

2.4 多样性

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

2.5 新颖性

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

2.6 惊喜度
2.7 信任度
2.8 实时性
2.9 健壮性

三 召回

1 召回层在推荐系统架构中的位置及作用

在推荐系统架构中召回层与排序层是推荐系统的核心算法层,而将推荐过程分成召回层与排序层主要是基于工程上的考
虑,其中

  • 召回阶段负责将海量的候选集快速缩小为几万到几千的规模;

  • 而排序层则负责对缩小后的候选集进行精准排序。

所以在召回阶段往往会利用少量的特征和简单的模型对大规模的数据集进行快速的筛选,而在排序层一般会使用更多的特征和更加复杂的模型进行精准的排序。

下面是召回层与排序层的特点:

  • 召回层:待计算的候选集合大、计算速度快、模型简单、特征较少,尽量让用户感兴趣的物品在这个阶段能够被快速召回,即保证相关物品的召回率
  • 排序层:首要目标是得到精准的排序结果。需要处理的物品数量少,可以利用较多的特征,使用比较复杂的模型。

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

2 多路召回

所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一起供后续排序模型使用,可以明显的看出,“多路召回策略”是在“计算速度”和“召回率”之间进行权衡的结果。其中,各种简单策略保证候选集的快速召回,从不同角度设计的策略保证召回率接近理想的状态,不至于损伤排序效果。

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

3 Embedding召回

Embedding其实是一种思想,主要目的是将稀疏的向量(如one-hot编码)表示转换成稠密的向量,下图直观的显示了one-hot编码和Embedding表示的区别于联系,即Embedding相当于是对one-hot做了平滑,而one-hot相当于是对Embedding做了max pooling。

目前主流的Embedding技术主要可以分为三大类:

  • text embedding:文本特征

  • image embedding:图像、视频

  • graph embedding:社交网络

在推荐系统领域,text embedding技术是目前使用最多的embedding技术,对于文本特征可以直接使用该技术,对于非文本的id类特征,可以先将其转化成id序列再使用text embedding的技术获取id的embedding再做召回。常见的text Embedding的技术有:

  • 静态向量:word2vec, fasttext, glove

  • 动态向量:ELMO, GPT, BERT

对于image embedding其实主要是对于有图或者视频的特征,目前计算机视觉模型已经发展的比较成熟了,对于图像与视频的识别都有效果比较好的模型,大部分都是卷积模块通过各种连接技巧搭建的高效模型,可以使用现有的预训练模型提取图像或者视频的向量特征,然后用于召回。

对于社交网络相关的推荐,进行推荐的用户与用于之间或者商品之间天然的存在某种复杂的图结构的关系,如何利用图中节点与节点之间的关系对其进行向量化是非常关键的,在这种场景下基于序列的text embedding和基于卷积模型的image embedding都显得力不从心,在这样的背景下Graph Embedding逐渐在推荐系统中流行起来。经典的Graph Embedding模型有, Deep Walk, Node2Vec,LINE以及比较新的阿里巴巴2018年公布的EGES graph Embedding模型。

4 如何使用Embedding做召回?

参考:https://zhuanlan.zhihu.com/p/143763320

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值