2016-《Wide&Deep Learning for Recommenders Systems》论文笔记

1. 背景

  本文提出Wide&Deep模型,旨在使得训练得到的模型能过同时获得记忆(memorization)和泛化(generalization)能力:

  (若只有Wide部分,推荐具有极高的相关性而缺少泛化内容;若只有Deep部分,推荐存在过度泛化和推荐缺乏相关性的问题;所以将两者相结合使模型同时获得记忆和泛化能力。)

  - 记忆(memorization)即从历史数据中发现item或者特征之间的相关性。

  - 泛化(generalization)即相关性的传递,发现在历史数据中很少或者没有出现的新的特征组合。

  在推荐系统中,记忆体现的准确性而泛化体现的是新颖性。

  在本文中,利用Wide & Deep模型,使训练出来的模型能够同时拥有上述的两种特性。


2. 模型整体架构

推荐系统整体架构

  推荐系统的整体架构,由两个部分组成,检索系统(或者说候选生成系统排序系统(排序网络)

  用检索(retrieval) 的方法对大数据集进行初步筛选,返回最匹配query的一部分物品列表,这里的检索通常会结合采用机器学习模型(machine-learned models)人工定义规则(human-defined rules)两种方法。从大规模样本中召回最佳候选集之后,再使用排序系统对每个物品进行算分、排序,分数P(y|x),y是用户采取的行动(比如说下载行为),x是特征,包括:

  - User features:

  eg:country, language, demographics;

  - Contextual features:

  eg:device, hour of the day, day of the week;

  - Impression features

  eg:app age, historical statistics of an app;

  Wide & Deep Model就是用在排序系统中。


3. Wide & Deep模型

  简单来说,人脑就是一个不断记忆(memorization)并且归纳(generalization)的过程,而这篇论文的思想,就是将宽线性模型(Wide Model,用于记忆,下图左侧)和深度神经网络模型(Deep Model,用于归纳,下图右侧)结合,汲取各自优势形成了 Wide & Deep 模型用于推荐排序(下图中间)。

Wide & Deep模型

3.1 Wide Model

Memorization can be loosely defined as learning the frequent co-occurrence of items or features and exploiting the correlation available in the historical data.

  要理解的概念是 Memorization,主要是学习特征的共性或者说相关性,产生的推荐是和已经有用户行为的物品直接相关的物品。

  用的模型是 逻辑回归(logistic regression, LR),LR 的优点就是简单(simple)、容易规模化(scalable)、可解释性强(interpretable)。LR 的特征往往是二值且稀疏的(binary and sparse),这里同样采用 one-hot 编码,如 “user_installed_app=netflix”,如果用户安装了 Netflix,这个特征的值为 1,否则为 0。

  为了达到 Memorization,我们对稀疏的特征采取 cross-product transformation,比如说 AND(user_installed_app=netflix, impression_app=pandora”) 这个特征,只有 Netflix 和 Pandora 两个条件都达到了,值才为 1,这类 feature 解释了 co-occurrence 和 target label 之间的关系。一个 cross-product transformation 的局限在于,对于在训练集里没有出现过的 query-item pair,它不能进行泛化(Generalization)

  到此,总结一下,宽度模型的输入是用户安装应用(installation)和为用户展示(impression)的应用间的向量积(叉乘),模型通常训练 one-hot 编码后的二值特征,这种操作不会归纳出训练集中未出现的特征对。

  Linear model 大家都很熟悉了

  x=[x1,x2,…,xd]是包含了 d 个特征的向量,w=[w1,w2,…,wd]是模型参数,b 是偏置。最终在y的基础上增加Sigmoid函数作为最终的输出。也即是LR。

  特征包括了原始的输入特征以及 cross-product transformation 特征,cross-product transformation 的式子如下:

  ckj是一个布尔变量,如果第 i 个特征是第 k 个 transformation φk 的一部分,那么值就为 1,否则为 0,作用:

This captures the interactions between the binary features, and adds nonlinearity to the generalized linear model.

3.2 Deep Model

Generalization is based on transitivity of correlation and explores new feature combinations that have never or rarely occurred in the past.

  要理解的概念是 Generalization,可以理解为相关性的传递(transitivity),会学习新的特征组合,来提高推荐物品的多样性,或者说提供泛化能力(Generalization)

  泛化往往是通过学习 low-dimensional dense embeddings 来探索过去从未或很少出现的新的特征组合来实现的,通常的 embedding-based model 有 Factorization Machines(FM) 和 Deep Neural Networks(DNN)。特殊兴趣或者小众爱好的用户,query-item matrix 非常稀疏,很难学习,然而 dense embedding 的方法还是可以得到对所有 query-item pair 非零的预测,这就会导致 over-generalize,推荐不怎么相关的物品。这点和 LR 正好互补,因为 LR 只能记住很少的特征组合。

  为了达到 Generalization,我们会引入新的小颗粒特征,如类别特征(安装了视频类应用,展示的是音乐类应用,等等)AND(user_installed_category=video, impression_category=music),这些高维稀疏的类别特征(如人口学特征和设备类别)映射为低纬稠密的向量后,与其他连续特征(用户年龄、应用安装数等)拼接在一起,输入 MLP 中,最后输入逻辑输出单元。

  一开始嵌入向量(embedding vectors)被随机初始化,然后训练过程中通过最小化损失函数来优化模型。每一个隐层(hidden-layer)做这样的计算:

  f 是激活函数(通常用 ReLU),l 是层数。

  总结一下,基于 embedding 的深度模型的输入是 类别特征(产生embedding)+连续特征。

3.3 Joint Training

  对两个模型的输出算 log odds ratio 然后加权求和,作为预测。

  Joint Training vs Ensemble

  - Joint Training 同时训练 wide & deep 模型,优化的参数包括两个模型各自的参数以及 weights of sum;

  - Ensemble 中的模型是分别独立训练的,互不干扰,只有在预测时才会联系在一起;

  用 mini-batch stochastic optimization 来进行训练。

  在论文提到的实验中,训练时 Wide Model 部分用了 Follow-the-regularized-learder(FTRL)+ L1 正则,Deep Model 用了 AdaGrad。对于逻辑回归,模型预测如下:


4 System Implementation

  pipeline 如下图

4.1 Data Generation

  Label: 标准是 app acquisition,用户下载为 1,否则为 0

  Vocabularies: 将类别特征(categorical features)映射为整型的 id,连续的实值先用累计分布函数CDF归一化到[0,1],再划档离散化。

  Continuous real-valued features are normalized to [0, 1] by mapping a feature value x to its cumulative distribution function P(X ≤ x), divided into nq quantiles. The normalized value is (i−1)/(nq−1) for values in the i-th quantiles.

4.2 Model Training

  训练数据有 500 billion examples, Input layer 会同时产生稀疏(sparse)的和稠密(dense)的特征,具体的 Model 上面已经讨论过了。需要注意的是,当新的训练数据来临的时候,我们用的是热启动(warm-starting)方式,也就是从之前的模型中读取 embeddings 以及 linear model weights 来初始化一个新模型,而不是全部推倒重新训练。

4.3 Model Serving

  当模型训练并且优化好之后,我们将它载入服务器,对每一个 request,排序系统从检索系统接收候选列表以及用户特征,来为每一个 app 算分排序,分数就是前向传播的值(forward inference)啦,可以并行训练提高 performance。








Reference:

  1. 简单易学的深度学习算法——Wide & Deep Learning

  2. 论文笔记 - Wide and Deep Learning for Recommender Systems

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容

  • 该文章为转载文章,作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,从事过搜索和推荐相关工作。 T...
    名字真的不重要阅读 5,260评论 0 3
  • 不知不觉居然有一个月没写简书了,不来简书的日子总会有那么一刻觉得心有点空。今天抽时间把近一个月的早餐整理出来,做个...
    xyz心若幽兰阅读 767评论 2 6
  • 何谓小品?以小见大,寥寥数笔一方天地。观止顿生“清风出岫,明月入怀”之感。 画上说,不是小画就是小品,寥寥数笔是从...
    画苑阅读 627评论 0 2
  • 菲诺完全看不到马老和孙德胜眼中惊骇的目光,眼睛里全都是小星星。 孙德胜的眼里同菲诺一样完全看不到别人的表情,只见他...
    展煲阅读 280评论 0 0
  • 最近和英语杠上了,开始的时候觉得自己的发音还可以,但是听了专业课之后才发现其实很多发音只是听起来像,实际发音其实是...
    湉湉丫头阅读 235评论 0 1