工业推荐系统

【paper reading】Wide & Deep L

2018-01-25  本文已影响90人  小豆芽turbo

本文出自Google,是一篇介绍Google Mobile App Store 推荐系统的工程性文章。全文虽只有四页,但却介绍了一个完整的推荐系统框架,可为工程实践、项目提供指导与借鉴。
原文地址:http://arxiv.org/abs/1606.07792

1. Introduction

Memorization 和 generalization 一直是推荐系统十分关注的问题。所谓 memorization 就是基于用户历史数据,挖掘出频繁出现的 item 或 feature。显然,基于 memorization 推荐的通常是那样与用户历史行为数据局部相关或者直接相关的物品。而 generalization 要是基于相关性之间的传递, 探索历史上没有出现的新的特征的组合,着眼于提高推荐的多样性。

1.1 Motivation

因此,作者提出一种 基于 特征组合的 linear model 和 基于embedding 的 feed-forward networks 联合训练互增强的框架。其具有很强的通用性,且能够有效的解决输入特征稀疏的问题。


2. Recommender System Overview

输入(query):用户/用户的query请求
输出(items):rank list
记录(logs):用户的操作:点击,下载等(表明用户喜好)
过滤(retrieval):当 item 数量很大时,rank 将会是一个十分耗时的工作。为了解决这一问题,会事先基于机器学习模型或人工定义的一些规则,筛选出最符合输入要求的候选 items。


3. Wide & Deep Learning

3.1 The Wide Component

Wide component 说白了就是一个广义线性模型:


其中,x 是输入的特征向量(d 维),w 是权重(d 维), b 是偏置。
第 k 维的 transform feature 的构造:
c_ki是示性函数,如果特征 i 在第 k 维 transform feature 中则为1, 否则为0。(显然,这是人工事先定义的组合特征)
3.2 The deep Component
Deep component 是一个前馈神经网络,每个隐层的计算是:
3.3 Joint Training of Wide & Deep Model
通过加权和将两部分的输出组合起来。

结合图和公式,可以发现,模型的输入特性包含两类:

在Wide这边,作者们提出使用FTRL进行优化,而在Deep这边则使用了AdaGrad。
至此,模型已经介绍完毕,关于模型的训练不在此赘述,感兴趣的可以去tensorflow搜索本文模型的API。


4. Wide & Deep Learning


5. 一些思考

比较令人困惑的是,最终作者还是保留了Cross-Product Feature在Wide Model里,并且所有Feature也都经过了Deep Model的Transform。从学术上来讲,并没有完全Justify最初为什么用Deep Model想要避免Feature Engineering的初衷。

上一篇下一篇

猜你喜欢

热点阅读