推荐系统(一)召回阶段
(目前理解不深,待补充完整)
前言
推荐系统的三个阶段分为
- 召回
- 粗排
- 精排
粗排精排阶段又可统称为排序阶段。
召回是推荐系统的第一个阶段,当然前面还有user embedding阶段也就是提取用户和商品或者视频的特征传入召回阶段。
召回是根据用户和视频的特征从海量的视频库中找回一小部分客户可能感兴趣视频,然后交给后面的环节。
我们可以想象到这个环节特点是处理的量级大,速度需要快,所以策略和模型,都不能太复杂。
下面是四种常见的召回方法:
- 基于内容的召回
- 协同过滤
- 基于FM的模型召回
- 基于神经网络的方法
(以下的item是对推荐内容的简称,可以是视频,文章或者其他推荐内容)
召回方法一:基于内容的召回(CB Context Based召回)
基于内容的召回最简单的理解就是用户看了某个item表示很喜欢,那么我就给他推相关的其他item,这个内容就是视频的标签或者属性。
优点:
- 这种方法只要当前用户的数据就行,不用其他用户的任何数据
- 可以捕获用户的特定兴趣
缺点: - 该方法只能基于 用户现有的兴趣提出建议,所以这种方法拓展用户现有兴趣的能力有限
- 视频的特征某种程度上是手工设计的,虽然可以自动生成,但也需要大量领域的知识。
- 当视频的属性越来越多的时候,怎么用好这些属性,提升召回的效果十分重要
CB倒排实现
对于每个item,计算出每个item的关键词(一般是机器学习或许深度学习的方法),然后在ES(ElasticSearch)中构建关键词item的倒排表。
正排表一般是:
- item1:[ attr1:0.9, attr2: 0.7…]
- item2:[ attr1:0.8, attr2: 0.3…]
那么倒排就是针对属性来找item:
- attr1: [item1: 0.9, item2: 0.8…]
- attr2: [item1: 0.7, item2: 0.3…]
这样一来,当我们通过用户行为获得的关键词(一般可以通过hive和spark计算)如果是attr1: 0,7, attr2: 0.3的话的
根据用户关键词,如果召回数量为10的话,attr1相关的item数量为7,attr2为3,直接根据ES中的倒排数据去取item就好了
多维度的问题
当一个用户点击多个标签的时候tag1,tag2,推荐系统推荐的item1对应tag1和tag3,item2对应tag2和tag3,item3对应tag1和tag2那么我们可以简单的知道肯定是推荐item3是最合适的,
但是在上述的方法里怎么去实现这样一个更加合适的多维度的召回方式,也是一个需要优化的点
(待补充)
召回方法二:协同过滤
协同过滤不是单纯的比对用户和item之间的标签是否相同,而是同时用用户和item之间的相似性来进行推荐,但让也可以计算用户A和用户B之间的相似性,如果相似性高,推荐给A的item也可以推荐给B
一般来说,协同过滤分为三种
- 基于用户的协同过滤
考虑用户与用户之间的相似度,通过相似用户喜欢的item,预测目标用户对这些item的评分,选出评分最高的若干个物品进行推荐 - 基于item的协同过滤
计算item与item之间的相似度,如果用户喜欢某个item,那么跟这个item相似的其他item其中若干个预测评分高的item就会被推荐给用户 - 基于模型的协同过滤
目前最流行的协同过滤类型,矩阵分解,关联算法,聚类算法,深度学习,图模型等
协同过滤的特点
优点:
- 无需专业的知识,因为提取特征和计算相似度是自动学习的,这里用到更多的是机器学习和深度学习的算法
- 可以发掘用户的兴趣,相对于CB而言,拓展性更强
缺点:
- 冷启动问题:模型预测结果是给定的(用户,商品)相应Embedding的点积。因此,如果在训练数据中item从未出现过,则系统也无法计算其Embedding,也无法得到相应的预测结果。此问题通常称为冷启动问题
- 难以融入query/item的附加特征
附加特征是query或itemID以外的其他特征。 对于电影推荐,附加特征可能包括国家或年龄。 融入可用的附加特征可以提高模型的效果。 尽管在WALS中融入付诸特征可能并不容易,但是WALS的泛化模型使这成为可能
召回方法三:基于FM模型召回
召回方法四:基于深度神经网络模型
推荐系统(一)召回阶段相关推荐
- 推荐系统遇上深度学习(三十九)-推荐系统中召回策略演进!
推荐系统中的核心是从海量的商品库挑选合适商品最终展示给用户.由于商品库数量巨大,因此常见的推荐系统一般分为两个阶段,即召回阶段和排序阶段.召回阶段主要是从全量的商品库中得到用户可能感兴趣的一小部分候选 ...
- 最全推荐系统Embedding召回算法总结
最近特别忙,工作日几乎没什么时间学习.平时攒了一堆推荐相关的文章,趁周末整体学习了一下.主要是参考了网上的一篇技术文章(迄今为止我看到的比较好的推荐Embedding总结)以及我自己的一些理解. E ...
- 推荐系统的召回算法(一)—— 协同过滤法(基于用户)
姗姗来迟的第二篇博客,最近在了解有关推荐系统方面的基本知识和算法,先总结其中一类经典常用的算法--协同过滤法.网上已有很多介绍其原理的好文章,所以本文用较多篇幅来写一些自身对算法实现的理解和疑惑, ...
- 推荐系统之召回策略浅析
召回 & 排序 目前业界推荐系统普遍采用召回+排序的两阶段模型,如下图所示.所谓召回(matching),指的是从全量信息集合中触发尽可能多正确的结果,并将结果返回给排序作为输入.相比搜索系统 ...
- 一文看懂推荐系统:召回07:双塔模型——正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的
一文看懂推荐系统:召回07:双塔模型--正负样本的选择,召回的目的是区分感兴趣和不感兴趣的,精排是区分感兴趣和非常感兴趣的 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例,讲工业界的推荐 ...
- 张俊林:从对比学习视角,重新审视推荐系统的召回粗排模型
分享嘉宾:张俊林博士 新浪微博 编辑整理:王岩 出品平台:DataFunTalk 导读:今天分享的主题是从对比学习的视角,即从一个不同的角度来看看推荐系统里面的召回和粗排模型.对比学习从去年年中开始比 ...
- 对比学习视角:重新审视推荐系统的召回粗排模型
省时查报告-专业.及时.全面的行研报告库 省时查方案-专业.及时.全面的营销策划方案库 对比学习在快手推荐系统中的应用实践 机器学习在B站推荐系统中的应用实践 小红书推荐系统中台应用实践 微信视频号实 ...
- 【推荐系统】召回模型线下评价指标
目录 Hit Rate(HR) Precision Recall NDCG 常用的评价标准: 第一类是线上评测,比如通过点击率.网站流量.A/B test等判断.这类评价标准在这里就不细说了,因为它们 ...
- 一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度
一文看懂推荐系统:召回03:基于用户的协同过滤(UserCF),要计算用户之间的相似度 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例,讲工业界的推荐系统. 我只讲工业界实际有用的技术. ...
最新文章
- android实现计算器功能吗,利用Android实现一个简单的计算器功能
- python 同步 事件 event 简介
- ps怎么更改背景图层大小_PS软件零基础抠图教程,教你PS滤镜抠图技巧和方法
- WeightedRandomSampler示例
- DRAGAN + SRCNN 的简单理解
- mysql 二进制 存储格式化_解析MYSQL BINLOG 二进制格式(2)--FORMAT_DESCRIPTION_EVENT
- dj电商-项目开发流程
- Linux下 jenkins 的 使用
- spring boot + vue + element-ui全栈开发入门——windows开发环境
- java digit_EditText在java代码中设置digits属性
- 电风扇标准集合(BS/EN/IEC/UL) - 安规+性能
- 利用WireShark破解网站密码
- SqlServer 计算年龄(岁月天)的函数
- 基于B_spline 的非刚性形变
- 【数模/预测】灰色预测
- c语言的%的转义吗,%20转义(C语言转义字符问题)
- 无论多大年纪,请保留一份童真和幻想
- 2021 美赛时间安排表
- 机器学习概念和经典算法,我用大白话给你讲清楚了!入门必看
- 【VC6.0TeeChart5.ocx注册方法】