工业界推荐_Industrial RS(3)

Industrial RS

Baidu

Xiangyu et al. Whole-Chain Recommendations. CIKM, 2020.
随着强化学习(RL)的流行,基于强化学习(RL)的推荐系统得到了广泛的关注。在实际的推荐会话中,用户将依次访问多个场景,如入口页面和项目详情页面,每个场景都有其特定的特征。然而,大多数现有的基于rl的推荐系统都专注于为所有场景优化一个策略,或者快速地优化每个策略,这可能会导致整体性能不佳。本文研究了多(连续)场景下的推荐问题,即全链推荐问题。我们提出了一种基于多智能体rl的方法(DeepChain),该方法可以捕获不同场景之间的顺序相关性,共同优化多个推荐策略。具体来说,所有的推荐代理(RAs)共享相同的用户历史行为的记忆,他们协作或最大限度地提高一个会话的整体回报。需要注意的是,在现有的无模型RL模型[22]-中,多个推荐策略的优化共同面临两个挑战:(1)需要大量的用户行为数据,(2)奖励(用户反馈)的分配极不平衡。
改论文引入了基于模型的RL技术,以减少训练数据的需求,并执行更精确的策略更新。在一个真实的电子商务平台上进行的实验结果验证了该框架的有效性。

Criteo

Yuchin et al. Field-aware Factorization Machines for CTR Prediction. RecSys, 2016.
FFM(Field-aware Factorization Machine)最初的概念来自Yu-Chin Juan(阮毓钦,毕业于中国台湾大学,现在美国Criteo工作)与其比赛队员,是他们借鉴了来自Michael Jahrer的论文[14]中的field概念提出了FM的升级版模型。通过引入field的概念,FFM把相同性质的特征归于同一个field。以上面的广告分类为例,“Day=26/11/15”、“Day=1/7/14”、“Day=19/2/15”这三个特征都是代表日期的,可以放到同一个field中。同理,商品的末级品类编码生成了550个特征,这550个特征都是说明商品所属的品类,因此它们也可以放到同一个field中。简单来说,同一个categorical特征经过One-Hot编码生成的数值特征都可以放到同一个field,包括用户性别、职业、品类偏好等。在FFM中,每一维特征 x i x_i xi ,针对其它特征的每一种field f j f_j fj ,都会学习一个隐向量 v i , f j v_{i,f_j} vi,fj 。因此,隐向量不仅与特征相关,也与field相关。也就是说,“Day=26/11/15”这个特征与“Country”特征和“Ad_type"特征进行关联的时候使用不同的隐向量,这“Country”和“Ad_type”的内在差异相符,也是FFM中“field-aware”的由来。

Facebook

Xinran et al. Practical Lessons from Predicting Clicks on Ads at Facebook. KDD, 2014.
这篇文章主要介绍了CTR预估模型LR(Logistic Regression)+GBDT。当时深度学习还没有应用到计算广告领域,而在此之前为探索特征交叉而提出的FM(见本系列第一篇)和FFM(本系列忘写了…)虽然能够较好地解决 数据稀疏性 的问题,但他们仍停留在二阶交叉的情况。如果要继续提高特征交叉的维度,不可避免的会发生组合爆炸和计算复杂度过高等问题。在此基础上,2014年Facebook提出了基于GBDT+LR组合模型的解决方案。简而言之,Facebook提出了一种 利用GBDT(Gradient Boosting Decision Tree)自动进行特征筛选和组合,进而生成新的离散特征向量 ,再把该特征向量当作LR模型输入,预估CTR的模型结构。随后Kaggle竞赛也有实践此思路,GBDT与LR融合开始引起了业界关注。
LR+GBDT相比于单纯的LR或者GBDT带来了较大的性能提升,论文中给出数据为3%,这在CTR预估领域确实非常不错。除此之外,Facebook还在在线学习、Data freshness、学习速率、树模型参数、特征重要度等方面进行了探索。

Maxim et al. Deep Learning Recommendation Model for Personalization and Recommendation Systems. arXiv, 2019.
DLRM是facebook在2019年提出的一套基于ctr预估的模型,颇具工业色彩,它的结构集成了DNN和FM的特点,相比起FM和DeepFM模型,这套方案能够同时接受高度离散化特征(sparse feature)与稠密特征(dense feature), 在上层通过FM式的inner product进行交叉,最后经过softmax/sigmond层进行预估。

Google

James et al. The YouTube Video Recommendation System. RecSys, 2010.
用户使用YouTube时一般有三种目的:1. 观看特定的video;2.观看特定topic的video;3.浏览并寻找感兴趣的视频。推荐系统主要为第三种需求服务,因此,推荐系统的目标是为用户推荐高质量并贴合他们的兴趣的视频,推荐结果应该随时间和用户最近的行为更新。在YouTube的推荐应用中,存在一些特殊的挑战:

  1. 用户在YouTube上传的视频一般没有非常全的metadata,很多除了题目以外就没有什么有价值的信息。
  2. YouTube上的视频一般很短(小于10分钟),因此用户行为也短暂、多变而且噪声很多。
    YouTube上的视频生命周期很短。
  3. 这是YouTube的推荐和普通视频网站的推荐不一样的地方,也是现在的很多段视频公司会关注的问题。

系统设计
推荐系统的输入主要由内容相关的信息和用户行为相关的信息组成。其中,用户行为包括explicit和implicit feedback。前者是指用户评分、明确表示喜欢、不喜欢等行为,后者是浏览、观看等行为。原始数据中还含有非常多的噪声,很多不可控因素会影响原始数据的质量。
为了确定要推荐哪些视频,文章给出了相关视频的定义:视频v的相关视频是指可能在视频v之后被用户观看的视频。两个视频的相关性由关联规则挖掘方法来确定。 将用户观看过的视频、喜欢过的视频、收藏过的视频等等作为种子集合,再把它们的相关视频集合合并到一起,就得到了一个最简单的召回策略。但实际上,由于用户的口味在一定时期往往保持一致,这些种子视频的范围往往很狭窄。
为了扩大多样性,YouTube选择召回的不是1步相关视频,而是n-步相关视频,即种子视频迭代n次后得到的相关视频集合。
Ranking:在得到召回的视频集合以后,需要对这些相关视频进行排序。
用于排序的数据主要包括:1.视频质量:包括观看次数、视频评分、评论、喜欢和分享次数等等; 2.用户数据:视频和当前用户的兴趣的match程度; 3.多样性:要在被推荐的视频集合的类别中做一个平衡,以保持结果的多样性。这些数据最终被线性组合起来,得到ranking的评分。

Jason et al. Label Partitioning For Sublinear Ranking. JMLR, 2013.
现实场景中有很多任务需要对海量物品打分并排序,例如在推荐系统里,响应一个用户的请求时,可能需要对数百万个视频打分并排序,然后把前k个视频呈现给用户。以往的方法是对每个物品逐个打分,这样的话,时间复杂度随着物品数量线性增长(不算排序),当面对百万量级的物品时,这些算法不能够满足实时性。
本文提出一种基于物品(也称作标签,label)分割的算法,只需要套在原有算法的外层(wapper),就可以实现亚线性排序,甚至可以改善原有算法的精度。

note: y = x z y=x^z y=xz ,当 z = 1 z=1 z=1 时,y是x的线性函数,当z<1时,y是x的亚线性函数,当z>1时,y是x的超线性函数。
note: 本文方法并不能提高原有算法的训练速度,只能应用在原有算法推理阶段,提高实时响应速度。

Paul et al. Deep Neural Networks for YouTube Recommendations.** RecSys, 2016.
本文提出了一种高效的基于深度学习的推荐系统。该系统和工业界经典的推荐流程一样,系统分为候选集生成(也称为搜索或召回)和排序两个阶段,这两个阶段分别使用了一个深度神经网络,本文从实践的角度对特征处理,模型训练和调优都有详细介绍。
ytb面临的主要问题有:

  1. 海量数据:现有的推荐算法通常在小数据集有良好的表现,但是在YouTube这样规模的数据集上未必表现良好,同时YouTube用户基数庞大,对服务系统的响应时间有严格要求。
  2. **新鲜度:**YouTube系统每秒钟都有大量新视频上传,推荐系统应该能够快速的对视频及用户行为作出反馈,并平衡新老视频的综合推荐。
  3. 噪声: 用户通常多种外界因素干扰,推荐系统通常不能够准确获得用户对视频的反馈信息,所以推荐算法必须对数据足够鲁棒。

作者之所以用DNN解决这些问题,是因为Google目前通用的学习方案都开始转向深度学习,该系统基于TensorFlow搭建在Google Brain上,推荐模型的变量将近10亿,并经受了超千亿的样本训练。其结构图和工业届常规的推荐系统结构图并无二致,整个推荐系统分为候选集生成(也称为搜索/召回)和排序两个阶段:

  1. 召回阶段负责基于用户画像及场景数据从海量的视频库(百万级别)中将相关度最高的资源检索出来,作为候选集;
  2. 排序阶段负责基于更加精细的特征对候选集(百级别)进行排序,最终呈现给用户的只是很少一部分数据。

本文是工业届对DNN在推荐系统上的应用的最新报告。其最突出的贡献应当在于如何结合业务实际和用户场景,选择等价问题,实现推荐系统。主要贡献如下:

  1. 首先,作者对问题的拆解合理,将整个推荐仍然分为召回和排序两个阶段。
  2. 其次,作者对特征的处理策略,非常细致,又充满智慧。比如,对example age特征的加入,对单个用户生成的样本个数进行限制,对CF中held-out方式的优化,类别及连续特征的处理等。
  3. 最后,排序阶段,对评估指标的选择能够结合业务,取期望观看时间进行训练。

Heng-Tze et al. Wide & Deep Learning for Recommender Systems. DLRS, 2016.

现在推荐系统的一个难点就是同时实现Memorization以及Generalization,这个难点与搜索排名问题相似。

  1. Memorization:
    之前大规模稀疏输入的处理是:通过线性模型 + 特征交叉。通过特征交叉能够带来很好的效果并且可解释性强。但是Generalization(泛化能力)需要更多的人工特征工程。
  2. Generalization:
    相比之下,DNN几乎不需要特征工程。通过对低纬度的dense embedding进行组合可以学习到更深层次的隐藏特征。但是,缺点是有点over-generalize(过度泛化)。推荐系统中表现为:会给用户推荐不是那么相关的物品,尤其是user-item矩阵比较稀疏并且是high-rank(高秩矩阵)

本文中,介绍了一种新的方法,Wide&Deep,包括两部分-Wide Part和Deep Part。

  • Wide部分:利用了广义线性模型,提高可解释性。
    在大规模的在线推荐系统中,logistic regression应用非常广泛,因为其简单、易扩展、可解释性。LR的输入多半是二值化后的one-hot稀疏特征。Memorization可通过在稀疏特征上做特征交叉来实现,例如:user_installed_app=netflix,impression_app=pandora,当user_installed_app与impression_app的取值都为1时,其组合特征AND(user_installed_app=netflix, impression_app=pandora)的值则为1,否则为0。
    缺点:无法学习高阶组合特征,并且需要进行人工特征工程。

  • Deep部分:主要是发现训练集中未出现的高阶组合特征。
    Embedding-based模型可以在很少的特征工程情况下,通过学习一个低维的embedding vector来学习训练集中从未见过的组合特征。例如,FM与DNN。不需要进行复杂的特征工程。
    缺点:当query-item矩阵是稀疏并且是high-rank的时候(比如user有特殊的爱好,或item比较小众),很难非常效率的学习出低维度的表示。这种情况下,大部分的query-item都没有什么关系。但是dense embedding会导致几乎所有的query-item预测值都是非0的,这就导致了推荐过度泛化,会推荐一些不那么相关的物品。

Wide&Deep结合以上两者的优点,平衡Memorization和Generalization。相比于wide-only和deep-only的模型,Wide&Deep提升显著。

Ruoxi et al. Deep & Cross Network for Ad Click Predictions. KDD, 2017.
CTR预估是一个大规模的问题。在做特征工程时如果能探索到少量的cross feature,这会产生一个好的预测结果。但是大规模的稀疏特征,对于特征的探索产生了极大的挑战。
本文提出一个新颖的网络结构,cross network,其主要优势:

  • 在多个层都实现了自动化的cross feature,也不需要进行人工特征工程
  • 最高的多项式度在每一层增加,并由层深度决定。 网络由度数的所有交叉项组成,直到最高,其系数都不同。
  • cross network内存效率高,并且利于实现。
  • 本文的实验结果显示,DCN的logloss小于DNN,且其参数数量几乎少一个数量级。

Alex et al. Latent Cross: Making Use of Context in Recurrent Recommender Systems. WSDM, 2018.
在本文中,作者首先研究了在前馈神经网络中将情景特征上下文信息(时间、地点、场景…)直接构造出特征的方式对于捕捉特征交叉效果一般。然后作者介绍了Youtube中使用的RNN模型,最后提出了Latent Cross模型,通过将情景特征和RNN中隐状态做点积的方式将情景信息添加到模型中。
主要贡献:

  1. 展示了一阶神经网络建模低阶关系的挑战。
  2. 描述了我们如何为YouTube构建了一个大规模的RNN推荐系统。
  3. 提供了一个简单的技术,称为“潜在的交叉”,在我们的模型中包含更有表现力的上下文特征。具体来说,潜在交叉在上下文嵌入和神经网络隐藏状态之间执行一个元素-明智的乘积。
  4. 提供的实证结果验证了我们的方法提高了推荐的准确性

你可能感兴趣的:(推荐系统,推荐算法)