推荐系统的rank阶段

文章目录

  • 简述
  • 数据准备
    • features
    • label
  • 特征工程
    • 特征生成
  • LR 模型
    • 公式
    • 工程落地算法
  • GBDT+LR
  • WDL
    • motivation
    • wide linear model
    • deep
    • 实验评测
  • MF
  • FM
    • FFM
  • DeepFM
    • 架构
    • formula
  • 参考

简述

推荐系统一般分为 召回, 排序, 展示打散 等几个阶段. 排序阶段较为重要, 从召回的上千个相关结果中, 预测出用户的点击概率, 以此排序. 一般地, 一个推荐系统在使用排序模型前后, 效果可以提升20% 以上.

数据准备

features

  • user特征
    静态特征, 如人口属性.
    交互统计特征, 如近期偏好类目等.
  • item特征
    静态特征, 如类目, 价格, 标题等.
    交互统计特征, 如近期曝光点击情况.
  • context特征
    上阶段的召回信息, 当时的时间, 季节什么的.

label

l a b e l = { 0 , 只曝光无点击 1 , 曝光且有点击 label = \begin{cases} 0, & \text{只曝光无点击} \\ 1, & \text{曝光且有点击} \end{cases} label={0,1,只曝光无点击曝光且有点击

特征工程

详见参考[3].

  • 普通离散特征
    职业, 婚姻状态等, 同常枚举值不超过100个.
  • id类特征
    如淘宝上的活跃卖家, 可能就上千万了.
  • 连续特征正规化
    如 身高,体重, 点击数. 不一定要缩放到0-1, 对数平滑也是可以的, 如 l n ( 1 + x ) ln(1+x) ln(1+x).

在工业界的特征工程中,大多数做法是构造大量离散特征,再根据经验对特征交叉构造高阶特征。这样的特征构造方式,在大样本的前提下,操作简单有效。简单体现在较少的人工设计。
那么离散特征是不是无所不能的?其实不然。首先,特征交叉不是无限度的,两个万级别的特征,交叉之后就是亿级别,所以一般交叉特征都是2、3阶;其次,特征依赖于数据,当我们的数据来源不能继续增加的时候,新特征的设计就很难做了。

特征生成

叫 feature generate.

一般LR的训练组件, 都只用一个kv格式的string字段来存储特征.
如对于 item_id=1,seller_id=2这样的特征, 一般会要求编码成item_id_1 seller_id_2这样以下划线分隔单个kv, 以空格分隔多个kv 的字符串. 这些特征就是一个bool变量.

LR 模型

公式

  • 预测
    c t r _ p r e d ( x ) = 1 1 + e − ( w T x + b ) ctr\_pred(x)=\frac 1 {1+e^{-(w^Tx+b)}} ctr_pred(x)=1+e(wTx+b)1
  • 训练
    w ^ = arg ⁡ min ⁡ w ∑ i l o s s ( y i , c t r _ p r e d ( x i ) ) + λ ∣ ∣ w ∣ ∣ 2 \hat w=\arg \min_w \sum_i loss(y_i,ctr\_pred(x_i))+\lambda ||w||_2 w^=argwminiloss(yi,ctr_pred(xi))+λw2

工程落地算法

  • OWL_QN
    损失函数一般为交叉熵,平方损失, 优化方法为 OWL_QN, 一种拟牛顿法.
    特征高阶交叉后规模可达百亿, 使用 Parameter Server 训练, 比如 ali 只支持离散特征, 即 x i ∈ { 0 , 1 } x_i\in\{0,1\} xi{0,1}, 损失函数为平方损失.
  • FTRL
    Follow the Regularized Leader(FTRL).
    见参考[8].
  • 二者对比
    ftrl对增量学习更友好. Owlqn容易让模型过于偏重到近期原本.

GBDT+LR

略.

WDL

对应paper, 详见[2]
推荐系统的rank阶段_第1张图片
figure WDL图解

motivation

  • LR
    具有 memorization 特性. 从历史数据中学习并利用各个被交叉特征的共现关系, 推荐结果同历史行为高度相似并因此带来了局限性.
  • NN
    具有 generalization 特性. 从历史数据中学习到了特征的传递性, 因此具有了未见特征组合的探索能力, 推荐结果可提升多样性.

LR是广义的线性模型, 除了工程师精心构造的交叉特征, 此外不具备任何非线性的表达能力.
GBDT都是浅层模型, 表征能力也有限.
基于此, 可以考虑 Wide & Deep Learning.

wide linear model

交叉特征与离散特征.

deep

连续特征与高维稀疏离散特征.
where is the number of unique features in a feature column.

实验评测

推荐系统的rank阶段_第2张图片
figure 评测结果

  • 数据集
    论文中没有提数据集, 直接在 GooglePlay 做三周的线上AB. 这样的论文我还是第一次见 .
  • baseline
    only Wide Component. 与 only Deep Component.
    可以看到后者的AUC较前者低, 但线上表现反而好.
  • WDL approach
    app 安装率(app acquisition)提升了+3.9%.

MF

FM

见[5].

FFM

见[7].

DeepFM

架构

推荐系统的rank阶段_第3张图片
图1, 相应论文中的架构截图.

formula

p r e d _ c t r = s i g m o i d ( y F M + y D N N ) pred\_ctr = sigmoid(y_{FM} + y_{DNN} ) pred_ctr=sigmoid(yFM+yDNN)
where
y F M = w 0 + ∑ i = 1 d w i x i + ∑ i = 1 d ∑ j = i + 1 d < V i , V j > x i x j y_{FM} = w_0 + \sum_{i=1}^d{w_ix_i}+\sum_{i=1}^d\sum_{j=i+1}^d<V_i,V_j>x_i x_j yFM=w0+i=1dwixi+i=1dj=i+1d<Vi,Vj>xixj

参考

  1. TF教程, TensorFlow Wide & Deep Learning Tutorial
  2. google的paper, Wide & Deep Learning for Recommender Systems
  3. 我的blog,特征工程
  4. 他人blog,FFM原理与实践简单理解
  5. paper, FM
  6. s.e.Difference between Factorization machines and Matrix Factorization?
  7. paper, FFM
  8. paper,FTRL
  9. paper,Listwise Collaborative Filtering
  10. paper,2017,DeepFM
  11. paper, 2018, Deep Interest Network for Click-Through Rate Prediction
  12. paper,2018,Deep Interest Evolution Network for Click-Through Rate Prediction

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