推荐系统实战第02课召回算法和业界最佳实践Part1

  • 推荐系统的 Match 模块介绍
    • Match 算法典型应⽤
  • Collaborative Filtering 算法介绍
    • 基于共现关系的 Collaborative Filtering 算法
    • UserCF、ItemCF 优缺点对比
    • 最新 CF算法 实践
      • Item CF 算法 最新实践
  • Model Based CF 演变历程
    • Model Based CF 问题定义
    • Model Based CF算法(SVD)
    • Model Based CF算法(Adjust SVD)
    • Factored Item Similarity Model
    • SVD++: Fusing User-based and Item-based CF
    • 如何融⼊更多的信息(Side Info)
  • FM: Factorization Machines
  • Rating Prediction is Suboptimal
  • Towards Top-N Recommendation
  • 下节预告
  • BAT搜索推荐核⼼系统架构(2018)
  • 实践:Movielens上的MF实战 (TensorFlow)
  • 其他参考资料
  • 数据和代码汇总
  • 课后作业
  • 预习资料

推荐系统实战第02课. Match Algorithms and Practices (Part 1)

召回Match(CF,找到候选者);排序;重排序(多样性/新颖性)

推荐系统的 Match 模块介绍

业界通⽤推荐系统架构

Deep Neural Networks for YouTube Recommendations, RecSys ’16

**Match & Rank **

•定义:Match基于当前user(profile、history) 和context,快速在全库⾥找到TopN最相关的 item,给Rank来做⼩范围综合多⽬标最⼤化。

•通常做法:通常情况下,⽤各种算法做召回,⽐如user/item/model-based CF,Contentbased,Demographic-based、DNN-Embedding-based等等,做粗排之后交由后⾯的Rank层 做更精细的排序,最终展现TopK item

一般来说,需要多种算法就行融合,增加召回率。

Match 算法典型应⽤

猜你喜欢

​ •多样推荐

相似推荐

​ •看了还看

搭配推荐

​ •买了还买

Collaborative Filtering 算法介绍

Collaborative Filtering 定义

•Collaborative Filtering (CF) is the most well-known technique for recommendation.

“CF makes predictions (filtering) about a user’s interest by collecting preferences information from many users (collaborating)” —Wikipedia

从相似的用户(物品),来预测、过滤用户的兴趣。

•数学形式化: 矩阵补全问题

基于共现关系的 Collaborative Filtering 算法

**User-based CF **

•多⽤于挖掘那些有共同兴趣的⼩团体,通常新颖性较好,但是准确性稍差

Item-based CF

•侧重于挖掘item之间的关系,然后根据⽤户的历史⾏为来为⽤户⽣成推荐列表

•相⽐user-based⽅法,item-based 的应⽤更为⼴泛

综合上述问题,在冷启动的问题中,一般来说,Item-based CF会更好

1、相似度:余弦距离

Similarity(A⃗,B⃗)=cos⁡(A⃗,B⃗)=A⃗∙B⃗∥A⃗∥∗∥B⃗∥Similarity(\vec{A}, \vec{B})=\cos (\vec{A}, \vec{B})=\frac{\vec{A} \bullet \vec{B}}{\|\vec{A}\|^{*}\|\vec{B}\|} Similarity(A

,B

)=cos(A

,B

)=
A

B

A

B


2、用户商品倒排表

用来加速计算User-CF分子,构造用户-商品倒排表即可,只对有效的pair进行计算,从而简化计算。

puj=∑i∈N(u)∩S(j,K)wjiruip_{u j}=\sum_{i \in N(u) \cap S(j, K)} w_{j i} r_{u i} puj=iN(u)S(j,K)wjirui

UserCF、ItemCF 优缺点对比

基于ItemCF的推荐算法调⽤⽰意图

最新 CF算法 实践

Item CF 算法 最新实践

•改进版 I2I

​ •motivation:热门⽤户、哈利波特效应、⽤户⾏为缺乏考虑

​ •solution:热门⽤户降权、热门Item降权

•实时I2I

​ •motivation:新品推荐问题

​ •Solution:实时增量i2i

•Hybrid I2I

​ •motivation:⽆监督学习,⽆法刻画场景差异

​ •solution:有监督Hybrid多种i2i算法

改进版I2I

降低热门⽤户影响
wij=∑u∈N(i)⋂N(j)1log⁡1+∣N(u)∣∣N(i)∣∣N(j)∣w_{i j}=\frac{\sum_{u \in N(i) \bigcap N(j)} \frac{1}{\log 1+|N(u)|}}{\sqrt{|N(i)||N(j)|}} wij=N(i)N(j)

uN(i)N(j)log1+N(u)1
分子是两个向量的内积,贡献的数量。

缓解哈利波特效应

所有人都会买哈利波特,其他产品会经常推荐热门的产品。调低后,就不在重视他本身的热门度。
wij=∣N(i)∩N(j)∣∣N(i)∣∣−α∣N(j)∣αw_{i j}=\frac{|N(i) \cap N(j)|}{|N(i)|^{ |-\alpha}|N(j)|^{\alpha}} wij=N(i)αN(j)αN(i)N(j)

综合考虑 :1、⽤户⾏为差 2、热门⽤户降权
Sim⁡(Ii,Ij)=∑u∈Ui∩UjWu2/(1+δ(abs(tui−tuj)))∑u∈U(Ii)Wu2∑u∈U(Ij)Wu2\operatorname{Sim}\left(\mathrm{I}_{\mathrm{i}}, \mathrm{I_j}\right)=\frac{\sum_{\mathrm{u} \in \mathrm{U}_{\mathrm{i}} \cap \mathrm{U}_{j}} \mathrm{W}_{\mathrm{u}}^{2} /\left(1+\delta\left(a b s\left(t_{u i}-t_{u j}\right)\right)\right)}{\sqrt{\sum_{\mathrm{u} \in \mathrm{U}\left(\mathrm{I}_{\mathrm{i}}\right)} \mathrm{W}_{\mathrm{u}}^{2}} \sqrt{\sum_{\mathrm{u} \in \mathrm{U}\left(\mathrm{I}_{\mathrm{j}}\right)} \mathrm{W}_{\mathrm{u}}^{2}}} Sim(Ii,Ij)=uU(Ii)Wu2

uU(Ij)Wu2

uUiUjWu2/(1+δ(abs(tuituj)))

Wu=1log⁡2(3+qu)\mathrm{W}_{\mathrm{u}}=\frac{1}{\log _{2}\left(3+\mathrm{q}_{\mathrm{u}}\right)} Wu=log2(3+qu)1

实时I2I(腾讯2015)
sim⁡(ip,iq)=pairCount (ip,iq)itemCount (ip)itemCount (iq)\operatorname{sim}\left(i_{p}, i_{q}\right)=\frac{\text { pairCount }\left(i_{p}, i_{q}\right)}{\sqrt{\text { itemCount }\left(i_{p}\right)} \sqrt{\text { itemCount }\left(i_{q}\right)}} sim(ip,iq)=itemCount(ip)

itemCount(iq)

pairCount(ip,iq)

where
(ip)=∑ru,p\left(i_{p}\right)=\sum r_{u, p} (ip)=ru,p

(ip,iq)=∑u∈Uco−rating(ip,iq)\left(i_{p}, i_{q}\right)=\sum_{u \in U} \mathrm{co-rating}\left(i_{p}, i_{q}\right) (ip,iq)=uUcorating(ip,iq)

sim⁡(ip,iq)′=pairCount⁡(ip,iq)′item Count (ip)′item Count (iq)′\operatorname{sim}\left(i_{p}, i_{q}\right)^{\prime}=\frac{\operatorname{pairCount}\left(i_{p}, i_{q}\right)^{\prime}}{\sqrt{\text { item Count }\left(i_{p}\right)^{\prime}} \sqrt{\text { item Count }\left(i_{q}\right)^{\prime}}} sim(ip,iq)=item Count(ip)

item Count(iq)

pairCount(ip,iq)

=pairCount (ip,iq)+Δco-rating⁡(ip,iq)itemCount (ip)+Δrupitem Count (iq)+Δruq=\frac{\text { pairCount }\left(i_{p}, i_{q}\right)+\Delta \operatorname{co-rating}\left(i_{p}, i_{q}\right)}{\sqrt{\text { itemCount }\left(i_{p}\right)+\Delta r_{u_{p}}} \sqrt{\text { item Count }\left(i_{q}\right)+\Delta r_{u_{q}}}} =itemCount(ip)+Δrup

item Count(iq)+Δruq

pairCount(ip,iq)+Δco-rating(ip,iq)

TencentRec: Real-time Stream Recommendation in Practic

http://net.pku.edu.cn/~cuibin/Papers/2015SIGMOD-tencentRec.pdf

Hybrid i2i——Learning to Rank

Learning to Rank for Information Retrieval,Tie-Yan Liu

https://www.cda.cn/uploadfile/image/20151220/20151220115436_46293.pdf

Hybrid i2i 算法架构

•利⽤LTR的思想重构i2i(以短视频推荐为例)

•Feature

​ •Trigger-item Relavance: i2i_score/favor2favor sim/text sim…

​ •Item Feature: video_ctr、video_pv、video_comment、

​ •Trigger Feature: trigger_ctr、topic_ctr

•Model

​ •Loss:Pairwise Loss,同时优化CTR、LikeR、FavorR •Lambdamart/Neural Nets

Learning To Rank之LambdaMART的前世今生

https://blog.csdn.net/huagong_adu/article/details/40710305

思考题
A.买了还推怎么解决?

B.推荐过于同质化怎么解决?

C.搭配推荐该如何做

Model Based CF 演变历程

Model Based CF 问题定义

Deep Learning for Matching in Search and Recommendation,
Jun Xu Chinese Academy of Sciences
Xiangnan He National University of Singapore
Hang Li Bytedance AI La

Model Based CF算法(SVD)

SVD is Suboptimal for CF

•⼏个缺点

​ •Missing data和观测到的数据权重相同(>99% 稀疏性)

​ •没有正则项,容易过拟

强大的矩阵奇异值分解(SVD)及其应用

Model Based CF算法(Adjust SVD)

The “SVD” model in the context of recommendation:

•Matrix Factorization (MF) 推荐算法

•⽤latent vector来表⽰user和item(ID embedding)

•组合关系⽤ 内积 inner product (衡量user对于某⼀类商品的偏好)

Matrix Factorization Techniques for Recommender Systems, Koren, 2009

Factored Item Similarity Model

•MF ⽤UserID来表⽰⽤户

​ •可以叫做 user-based CF (i.e., find similar users for recom)

•另外⼀种做法是⽤⽤户评价过的item来表⽰⽤户

​ •可以叫做 item-based CF (i.e., find similar items for recom)

FISM: Factored Item Similarity Models for Top-N Recommender Systems

SVD++: Fusing User-based and Item-based CF

•MF (user-based CF) ⽤UserID来表⽰⽤户

​ •直接映射ID到隐空间

•FISM (item-based CF) ⽤⽤户评价的item来表⽰⽤户

​ •映射items到隐空间

•SVD++ 混合了两种想法

​ •Netflix 百万⼤奖⽐赛 单模型最佳

FactorizationMeetstheNeighborhood: aMultifaceted CollaborativeFilteringModel

如何融⼊更多的信息(Side Info)

•CF 只⽤交互矩阵来build模型

•如何利⽤ user/item 属性 和 上下⽂?

•Side info 实例

Generic Feature-based Recommendation

FM: Factorization Machines

•FM 受到前⾯所有的分解模型的启发

•每个特征都表⽰成embedding vector,并且构造⼆阶关系

•FM 允许更多的特征⼯程,并且可以表⽰之前所有模型为特殊的FM(⼤家思考⼀ 下)

– E.g.,MF,SVD++,timeSVD(Koren,KDD’09),PITF(Rendle,WSDM’10)etc.

Factorization Machines

Rating Prediction is Suboptimal

之前的⼯作都在优化L2 loss

– 很多证据表明
⼀个低MSE模型不⼀定代表排序效果好。。

– Possible Reasons:

  1. 均⽅误差(e.g., RMSE) and 排序指标之间的分歧

  2. 观察有偏 – ⽤户总是去对喜欢的电影打分

Towards Top-N Recommendation

•现在的⼯作开始逐步朝着优化pairwise ranking loss •Known as the Bayesian Personalized Ranking loss (Rendle, UAI’09). 优化相对序关系,⽽不是优化绝对值

下节预告

Deep Collaborative Filtering Model

​ •Methods of representation learning

​ •Methods of matching function learning

BAT搜索推荐核⼼系统架构(2018)

⼈⼯智能在淘宝搜索中的应⽤ https://www.sohu.com/a/212035397_612370

实践:Movielens上的MF实战 (TensorFlow)

其他参考资料

•ItemBased Collaborative Filtering Recommendation Algorithms

•Amazon.com recommendations: Item-to-Item Collaborative Filtering

•推荐系统实战.项亮 http://vdisk.weibo.com/s/aSXlSkLAQjzMT

•天猫推荐业务与算法架构.张奇.2013. http://topic.it168.com/factory/adc2013/ doc/zhangqi.pdf

•淘宝搜索技术演变 https://mp.weixin.qq.com/s/jUQHnATSiOpKfDeY_vQ6YA

•淘宝⽹的推荐算法具体是怎么样的? - xiao ma的回答 - 知乎 https:// www.zhihu.com/question/29108284/answer/43247127

•双⼗⼀⼿淘⾸页个性分享 https://mp.weixin.qq.com/s/vpxLTcwenvlIvj5D-8uolg

•淘宝天猫个性化推荐技术演进史 https://blog.csdn.net/broadview2006/article/ details/71455437

•深度解析京东个性化推荐系统演进史 https://blog.csdn.net/qq_40027052/ article/details/78733365

•今⽇头条推荐算法原理 http://www.sohu.com/a/217314007_297710

数据和代码汇总

阿⾥天池数据集合https://tianchi.aliyun.com/datalab/index.htm?spm=5176.100073.0.0.21316fc1Q34jZU

•CTR预估代码汇总 https://github.com/shenweichen/DeepCTR

•CTR-CVR相关模型 https://arxiv.org/abs/1804.07931

•Movielens推荐 https://github.com/chengstone/movie_recommender

•随⼿看到的LTR代码:https://github.com/shiba24/learning2rank

课后作业

运⾏MF的movielens notebook,⽤notebook,改改⽹络结构,找到调模型感觉

•学会使⽤Google、Github搜索引擎解决问题、查找论⽂和代码

•熟悉天池数据平台,了解如何使⽤更贴近⼯业界的数据

预习资料

•2013 微软:Learning Deep Structured Semantic Models for Web Search using Clickthrough Data https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2013_DSSM_fullversion.pdf

•2016 Youtube :Deep Neural Networks for YouTube Recommendations https://research.google.com/pubs/archive/45530.pdf

•解读 Airbnb KDD2018 best paper: Embeddings at Airbnb - 吴海波的⽂章 - 知乎 https://zhuanlan.zhihu.com/p/49537461

推荐系统实战第02课召回算法和业界最佳实践Part1相关推荐

  1. QQ音乐推荐召回算法的探索与实践

    文章目录 一.业务介绍 1.业务介绍 2. QQ音乐推荐场景特点 3. QQ音乐推荐解决方案 二.融合音乐知识图谱召回 三.序列与多兴趣召回 3.1 空间和时间建模方案 3.2 多兴趣提取方案 3.3 ...

  2. 基于ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则

    前言 上一篇 基于ABP落地领域驱动设计-01.全景图 概述了DDD理论和对应的解决方案.项目组成.项目引用关系,以及基于ABP落地DDD的通用原则.从这本篇开始,会更加深入地介绍在基于 ABP Fr ...

  3. 线下 Meetup 预告|从原理到实战,详解 Database Plus 的互联网最佳实践

    ‍ ‍| 作者:Apache ShardingSphere | 责编:沈于蓝 | 编辑:胡欣元 9 月 3 日 Apache ShardingSphere 社区线下 Dev Meetup 正式启动,首 ...

  4. 基于花季A传媒ABP落地领域驱动设计-02.聚合和聚合根的最佳实践和原则

    ​ DDD和ABP Framework两个中心技术,后边还会陆续发布中心构件完成.归纳事例完成系列文章,敬请关注! ABP Framework 学习及实施DDD经历分享:示例源码.电子书同享,欢迎加入 ...

  5. 华为云FusionInsight MRS实战 - Hudi实时入湖之DeltaStreamer工具最佳实践

    背景 传统大数据平台的组织架构是针对离线数据处理需求设计的,常用的数据导入方式为采用sqoop定时作业批量导入.随着数据分析对实时性要求不断提高,按小时.甚至分钟级的数据同步越来越普遍.由此展开了基于 ...

  6. Personal Rank——个性化推荐召回算法python

    慕课推荐系统笔记 1.个性化召回算法Personal Rank背景与物理意义 1.首先介绍基于图的个性化召回算法-personal rank的背景. (1)用户行为很容易表示为图 图这种数据结构有两个 ...

  7. 推荐系统[八]算法实践总结V0:淘宝逛逛and阿里飞猪个性化推荐:召回算法实践总结【冷启动召回、复购召回、用户行为召回等算法实战】

    搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排).系统架构.常见问题.算法项目实战总结.技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排 ...

  8. 一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户

    一文看懂推荐系统:概要02:推荐系统的链路,从召回粗排,到精排,到重排,最终推荐展示给用户 提示:最近系统性地学习推荐系统的课程.我们以小红书的场景为例,讲工业界的推荐系统. 我只讲工业界实际有用的技 ...

  9. 深度召回算法在字节跳动推荐系统的应用实践

    今天给大家带来字节跳动高伟豪所做的分享<深度召回算法在字节跳动推荐系统的应用实践.pdf>.关注推荐算法.深度召回.召回算法等的伙伴别错过了(到小程序中省时查报告中搜索"推荐&q ...

最新文章

  1. Google发布“多巴胺”开源强化学习框架,三大特性全满足
  2. mysql share 字体 中文_MySQL 存储生僻字/不常见繁体字解决方案(未完全解决)
  3. 【图像分类】简述无监督图像分类发展现状
  4. 【Linux网络编程】TCP编程
  5. android ndk使用c 11,使用c 11 std :: async在android ndk中使用不完整类型无效
  6. [蓝桥杯2019初赛]完全二叉树的权值-完全二叉树的性质
  7. Linux 利用hosts.deny 防止暴力破解ssh
  8. notes_2019
  9. restful可以转发么_RESTful 的收益是什么?
  10. Android自定义ListView示例,以创建不可滚动的ListView
  11. 楼层平面放线及标高实测记录_建筑施工基础测量放线工作内容
  12. 同时读取两个文件进行while循环
  13. python实现随机产生数据矩阵,将txt文件写入Excel中以及转置后写入Excel中
  14. 【VMCloud云平台进阶篇】应用层面优化
  15. AJAX from S3 CORS fails on preflight OPTIONS with 403
  16. DVWA之SQL注入代码审计
  17. Scala3下载及安装下载地址(Mac安装Scala)
  18. UDP数据包大小设定
  19. 谷歌账号 (亲测有效)
  20. Mongoose -查询条件

热门文章

  1. vim, vi光标跳转到文首/文末/行首/行尾
  2. python英译汉库模块_翻译|Python标准功能库1
  3. python导出微信群成员信息_python 使用wxpy实现获取微信好友列表 头像 群成员
  4. Fabarta 与青岛市城阳区政府达成战略合作,共同推动区域数据要素市场建设
  5. 刷回官方recovery
  6. EasyDL物体检测数据转为VOC数据集
  7. 继承与派生、虚函数、多态
  8. 滴滴的原罪就是套路太多
  9. Android解析WindowManager(二)Window的属性
  10. 帝国时代正版服务器,我的世界1.7.10帝国时代生存服务器