Skip to content

JepsonWong/Recommendation_System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Recommendation_System

个性化推荐

(好文,没看完)《搜索与推荐中的深度学习匹配》之推荐篇

今日头条推荐算法原理全文详解

国内外在推荐系统领域的发展现状?

微信“看一看”推荐的框架设计

1. 基础工作

用户画像阶段性总结

评价指标:Precision,Recall,F1-score,AUC,Logloss,Normalized Logloss,Calicration。

特征处理:推荐系统算法FM、FFM使用时,连续性特征,是直接作为输入,还是经过离散化后one-hot处理呢? 连续特征的离散化:在什么情况下将连续的特征离散化之后可以获得更好的效果? 特征组合&特征交叉 (Feature Crosses) 百面机器学习3---组合特征与选择

  • 连续性特征:离散化后one-hot处理(树模型、特征hash分桶)
  • 离散性特征:one-hot处理

离散特征的好处:

  • 增加模型建模能力:离散特征通常比连续特征能表征更多复杂信息;
  • 减少特征异常造成的模型鲁棒性风险;
  • 减少算法框架实现的复杂度,1001:0.1 这类特征可以离散化表示为100001,而去掉:0.1,其中算wx的时候,也可以变为求和,而不是乘之后求和,大大减少样本存储以及网络传输开销,也减少了计算复杂度;
  • 离散化后通常特征处理的逻辑会比较简单,特征拼接、分桶加上交叉,适合标准化,来完成线上的特征组装,达到online learning的需求;

特征存储方式:libsvm LibSVM格式简介 libsvm使用的数据格式

2. 召回

Embedding在深度推荐系统中的3大应用方向

  • 在推荐系统中,如果面对新的Item,能否在不重新训练Embedding的前提下得到这个新Item的Embedding向量?大家有什么实践经验分享吗?

2.1 向量化:Item2vec、User2Vec召回算法

Item2vec

  • 把item视为word,用户的行为序列视为一个集合,item间的共现为正样本,并按照item的频率分布进行负样本采样。
  • 缺点是相似度的计算还只是利用到了item共现信息,(1)忽略了user行为序列信息;(2)没有建模用户对不同item的喜欢程度高低。

万物皆Embedding,从经典的word2vec到深度学习基本操作item2vec

DNN论文分享 - Item2vec: Neural Item Embedding for Collaborative Filtering

word2vec doc2vec paragraph2vec topic2vec prodct2vec——paper 笔记

E-commerce in Your Inbox:Product Recommendations at Scale-----产品推荐(prod2vec和user2vec)

User2Vec? representing a user based on the docs they consume

2.2 基于人口统计学的推荐(基于用户)

根据用户年龄、性别等人口统计学来推荐。 推荐系统简介

2.3 基于协同过滤的推荐算法

推荐算法之协同过滤算法(Collaborative Filtering,简称CF)

协同过滤:完全根据历史行为(比如购买行为或者评分行为)来定义用户和商品之间的相关性,再以这个相关性来给用户相应的推荐。算法的三个假设:

  • 相似的用户会喜欢相似的商品
  • 用户之间的相似度可以用商品来衡量
  • 商品的相似度可以通过哪些用户购买来衡量
  1. 基于内存的算法(Memory-based approach)
  • 基于用户的协同过滤算法(User-based,CF):利用用户之间的相似性来推荐用户感兴趣的信息。一般适用于新闻推荐这种物品变化很快的场景。
    • 存在稀疏性的问题,即在系统使用初期由于系统资源还未获足够多的评价,很难利用这些评价来发现相似的用户。
    • 存在可扩展性的问题,即随着系统用户和资源的增多,系统的性能会越来越差。
  • 基于物品的协同过滤算法(Item-based,CF):利用item之间的相似性来推荐和用户之前浏览过的item相似的其他item。一般适用于电商这种物品较为固定的场景。
  1. 基于模型的算法(Model-based approach)
  1. 混合模型(Hybrid models)

2.4 基于内容过滤的推荐算法

根据信息资源与用户兴趣的相似性来推荐商品,通过计算用户兴趣模型和商品特征向量之间的向量相似性,主动将相似度高的商品发送给该模型的客户。

2.5 扩展推荐

基于用户兴趣点、内容类别等扩展。

2.6 基于新热的推荐算法

将当前的热门item进行推荐。可用于冷启动的策略之一和召回的策略之一。

一种简单方法:

  • 统计出指定时间窗口的商品的曝光量、点击量,从而计算出曝光点击比,即CTR,根据CTR大小作为热门程度的量化指标;当然也可以参考其它指标,如下载展示比、播放展示比等等。
  • 可以从所有商品中,按照CTR排序,选出top k个,作为召回结果。
  • 可以根据商品的标签信息,统计出该标签下所有商品,并按照CTR排序,得出召回结果。

2.7 基于环境特征的推荐

基于地域、时间、场景等推荐。

2.8 社会化推荐

根据用户的社会关系,推荐朋友的朋友中与用户“志同道合”的朋友给用户,或者将与用户“志同道合”的朋友们感兴趣的项目推荐给用户,这种推荐算法主要应用于像QQ、微信和Facebook之类的社交软件中。

3. 排序

涉及一个item、item对、item序列的打分任务;涉及LR、GBDT、RNN、DNN模型。

Learning to Rank简介(没看)

谷歌、阿里、微软等10大深度学习CTR模型最全演化图谱【推荐、广告、搜索领域】

前深度学习时代CTR预估模型的演化之路

从FM推演各深度CTR预估模型(附代码)

3.1 point-wise(single)

参考论文:

  • Item-Based Collaborative Filtering Recommendation Algorithms
  • Matrix factorization techniques for recommender systems
  • Wide & Deep Learning for Recommender Systems
  • Deep Neural Networks for YouTube Recommendations

缺点是完全从单文档的分类角度计算,没有考虑文档之间的相对顺序。

比较代表性的有LR、XGBoost。

3.2 pair-wise(pair)

从排序序列中抽出“数据对”,每个数据对都有代表它们相对关系的标签。然后我们使用标签数据来训练一个分类模型,再用分类模型做排序。

比较代表性的有RankSVM、LambdaMART。

在个性化推荐问题中, GBRank和RankingSVM哪个效果更好一些?

learning to rank 算法总结之pairwise

  • Sortnet
  • RankNet

缺点:

  • 当有多个顺序的类别时,只知道good or bad,不知道好多少和差多少
  • 当文章较多时,会产生大量的pairs
  • 对噪声的label 非常敏感,一个错误的label,可能会导致分类结果中有较多的错误
  • 大多数没有考虑结果中文档对的顺序,文档对的顺序也没有在损失函数中体现。

3.3 list-wise(list)

不同于pair-wise方法,list-wise方法将整个结果作为一个训练实例。

例如将整个推荐列表/用户短期行为通过RNN来进行建模,这种做法的好处是不用显式的构造session级特征,能够捕获用户的短时兴趣对当前排序结果的影响。

参考论文:

  • Improved Recurrent Neural Networks for Session-based Recommendations
  • Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks

比较代表性的有ListNet。

损失函数:

  • 和评价指标相关:
  • 和评价指标不相关:

3.4 一些问题以及解决方案

一些问题:

  • 多样性问题:在top-k的推荐系统中非常重要。
  • item间的关联性:推荐的k个item之间不应该相互独立应该是相互关联的。比如某些相关的结果同时出现,会显著提升CTR。同时将高CTR的item放在list的前面,在一些情况下不如将高CTR的item分散到list的不同位置中。
  • position bias:信息流推荐的position bias与搜索引擎的position bias有着本质区别,cascade click model等模型的假设在信息流推荐系统中很难满足。
  • 全局最优的问题:一个一个挑选item组成list并不能保证全局最优;他只能考虑到上文信息,考虑不到下文信息。
  • 实时性问题:天下武功,唯快不破,论推荐系统的「 实时性」 如何增强推荐系统模型更新的「实时性」?

什么是position bias(没看)

什么是cascade click model假设(没看)

Position bias & Click Model(没看)

点击模型(没看)

解决方案:

  • 在排序模型中加入context特征(context特征就是前面位置的主题、类别、子类别等信息),使得模型在考虑CTR信息的时候也会考虑上下文信息。同时也加入针对position bias的处理
  • 两阶段的list-wise排序框架。该框架将这个排序阶段分为“list生成”和“list评估”两个阶段。从而使得我们的框架能够从list-wise的维度来考虑排序,这个过程中,综合考虑了item之间的关联、position bias以及list全局信息
  • list生成,set-to-sequence模型+强化学习的方法,将list评估模型用于帮助list生成模型训练,提升list生成的候选的效果。

线下AUC与线上CTR不一致问题

4. 推荐系统和知识图谱

推荐算法不够精准?让知识图谱来解决

如何将知识图谱特征学习应用到推荐系统?

ABTest

一文搞懂AB Testing的分层分流

谷歌是如何高效做AB实验的

Abtest那些事

一文看懂AB测试

对照/实验、域/层/桶

博客

Ad-papers

参考

美团 深度学习在文本领域的应用

关于个性化主页定制的新闻推荐算法研究

推荐系统中的点击率预估 – Advertising & Recommendation

排序学习实践---ranknet方法

pair-wise rank

【点击模型学习笔记】A survey on click modeling in web search 点击模型不同层次的假设

Releases

No releases published

Packages

No packages published