推荐系统(一)LR,FM,FFM,Wide&Deep,DeepFM,ESMM

一、LR

(一)简单总结

  • 是广义线性模型,每个特征都是独立的,如果需要考虑特征与特征之间的相互作用,需要人工对特征进行交叉组合。
  • 非线性SVM可以对特征进行核变换,但是在特征高度稀疏的情况下,并不能很好的进行学习。

(二)FTRL


二、FM

Rendle S. Factorization Machines[C]// IEEE International Conference on Data Mining. 2011.

(一)简单背景介绍

  • 解决数据稀疏的情况下,特征怎样组合的问题。
  • 对于一阶参数的训练,只要这个样本中对应的变量不为0,而二阶的参数必须两个变量同时不为0才可以。在数据稀疏时,很多特征交互是模型无法训练的。
  • LR是需要特征工程的,SVM在稀疏场景下无法用。
  • 通过参数矩阵分解,打破了特征组合之间的独立性,使一个组合特征的学习可以受到其他相关组合特征的帮助。
  • 原本预测公式的复杂度:O(kn2),可以通过转换变为 O(kn)。

(二)公式推导

预测公式

O(kn2)变O(kn)

随机梯度下降,O(kn)

三、FFM

2016年发表在 recsys 上的论文

(一)简单介绍

  • FM:一个特征对应一个隐变量;FFM:将特征分为多个field,每个特征对每个field分别有一个隐变量,因为同一个特征对不同field的影响可能是不同的,隐变量也应该不同。
  • 举个例子,我们的样本有3种类型的字段:publisher, advertiser, gender。其中publisher有5种,advertiser有10种,gender有2种,one-hot编码后,每个样本有17个特征,其中只有3个非空。
    FM,17个特征,每个特征对应1个隐变量。
    FFM,17个特征,每个特征对应3个隐变量。

(二)模型介绍

  • 表达式
  • AdaGrad求解

四、Wide & Deep

2016年谷歌团队发表的一篇文章
Cheng H T , Koc L , Harmsen J , et al. Wide & Deep Learning for Recommender Systems[J]. 2016.

(一)wide 和 deep 的比较

  • wide:广泛应用于具有稀疏、大规模场景。组合特征有效且可解释性强,但需要很多特征工程,且对于未出现过的组合无法学习。
  • deep:需要较少的特征工程,泛化能力强,可以通过稀疏特征 embedding 学习到未出现过的特征组合。但容易过泛化,推荐不太相关的东西。
  • wide & deep:记忆和泛化的结合。

(二)memorization 和 generalization(EE问题)

  • memorization:exploit,学习频繁出现的特征组合,从历史数据中学习相关性。容易推荐和用户浏览历史相似的东西。
  • generalization:explore,基于相关性的传递,学习未出现过的特征组合。容易推荐不一样的,新的东西。

(三)模型结构

The spectrum of Wide & Deep models

Wide & Deep model structure for apps recommendation

(四)其他

  • 模型训练:
    wide:FTRL
    deep:AdaGrad

  • 预测公式

五、DeepFM

华为2017年的文章
Guo H, Tang R, Ye Y, et al. DeepFM: A Factorization-Machine based Neural Network for CTR Prediction[J]. 2017.

(一)优势

  • 是端对端的学习模型,wide 部分和 deep 部分共享一样的输入,不需要额外的特征工程,能够同时学习到低阶和高阶的特征交互。
  • 线性模型虽然十分有效,但是无法刻画交互特征,需要很多特征工程,缺点是无法刻画高阶特征交互,也无法学习到在训练集中出现次数很少的特征组合。FM可以学习到2阶的特征组合。

(二)特征

  • 连续特征:值本身,或者离散化后one-hot
  • 离散特征:one-hot
  • CTR预估场景中,特征的特点:
    1)稀疏
    2)连续特征和类别特征混合
    3)根据field分组
    因此加入了embedding层

(三)模型介绍

  • 预测分为两部分


    预测公式

  • FM:能更有效的学习到2阶交互特征,尤其是在稀疏场景下


    FM Component

    FM公式
  • Deep:


    Deep Component
  • embedding


    The structure of the embedding layer

    1)每个 field 的input大小不一样,但是embedding都一样大;
    2)在FM中V是一个m*k阶的矩阵,这里用V来作为input到embedding的权重,一起训练,而不是像其他work一样用FM来预训练。

(四)共享embedding

  • 从原始特征中同时学到了特征之间的低阶和高阶组合
  • 不需要像 wide & deep 一样做特征工程,端到端学习

六、ESMM

ESMM是2018年阿里妈妈团队提出的一个多任务模型。
Ma X , Zhao L , Huang G , et al. Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate[J]. 2018.

(一)传统CVR预估面临的两个问题

  • SSB(sample selection bias )

    impression表示展示,click表示点击,conversion表示转化,用户的行为模式是impression->click->conversion,传统的CVR预估把click(如图灰色)作为training data,而训练出来的模型要在所有impression(如图白色)中进行预测,存在样本选择偏差。

  • DS(data sparsity)
    由于点击行为实在是太少了,利用点击数据作为样本训练CVR预估模型存在数据稀疏问题。

(二)本文怎么解决

  • Modeling over entire space(解决SSB)
    CVR:conversion / click
    CTR:click / impression
    CTCVR:conversion / impression

    通过预测CTCVR和CTR,然后相除得到CVR,由于CTCVR和CTR都是在整个impression样本空间进行估计的,因此解决了SSB问题。
  • (Feature representation transfer)解决DS
    CVR和CTR共享特征embedding表示,CTR训练数据要比CVR训练数据多很多,一定程度上解决了数据稀疏性问题。

(三)技术细节

Modeling over entire space

模型引入两个辅助任务,pCTR和pCTCVR,从而间接学习到pCVR

  • CTR:有点击行为的曝光为正样本,没有点击行为发生的曝光为负样本
    CTCVR:同时点击和购买的曝光为正样本,否则标记为负样本。
    CTR和CTCVR都是在整个样本空间的,解决了SSB问题。
  • 损失函数由两部分组成, CTR 和 CTCVR,两部分都采用交叉熵损失函数。

Feature representation transfer

  • ESMM中,CVR网络和CTR网络共享embedding字典。该共享机制使ESMM中的CVR网络能够从 un-clicked impression 中学习,缓解数据稀疏性问题。
  • 另外,ESMM模型中的子网络结构可以用其他模型替换,ESMM只是提供了一种解决问题的思路,具体应用还需要根据实际业务场景进行调整。

七、DSSM


参考资料

ESSM论文地址
精读&解析 Entire Space Multi-Task Model(ESMM) 阿里2018年CVR预测
推荐系统遇上深度学习(三)--DeepFM模型理论和实践

你可能感兴趣的:(推荐系统(一)LR,FM,FFM,Wide&Deep,DeepFM,ESMM)