美文网首页
论文笔记之Wide & Deep Learning for Re

论文笔记之Wide & Deep Learning for Re

作者: 小弦弦喵喵喵 | 来源:发表于2020-05-26 15:25 被阅读0次

    Wide & Deep Learning for Recommender Systems

    文中指出推荐系统的一个挑战是同时实现memorization和generalization。
    memorization指在历史数据中挖掘一些频繁共现的物品或特征,以及一些相互作用关系。
    generalization指探索一些在过去未出现的新的特征组合。
    基于memorization的推荐通常更加关注user已经有过动作的item。而基于generalization的推荐会使得推荐的item更加的丰富和多样化。
    模型中通常有用one-hot编码的二维稀疏特征,比如说二维特征user_installed_app = netflix(one-hot中的表示netflix的一位)当用户下载过netflix时为1。
    memorization可以通过在稀疏特征上的cross-product transformation来实现,比如AND(user_installed_app=netflix, impression_app=pandora)当这其中的两项都取到时才为1。
    generalization的实现可以通过一些粗粒度的组合特征,比如AND(user_installed_category=video, impression_category=music)。
    但是这些组合特征都是需要人工来设计的。
    这种方法的一个限制在于不能泛化到一些训练数据中没有出现过的物品特征对。
    基于embedding的模型,比如说FM,DNN能够通过学习物品特征的低维稠密embedding向量来泛化到以前没见过的物品特征对,并且不需要人工做额外的特征组合。然而,当物品矩阵稀疏时很难有效的学习到好的embedding向量。
    本文提出了Wide&Deep模型,同时实现memorization和generalization,同时训练一个线性模块和一个深度网络模块。

    WIDE & DEEP LEARNING

    The Wide Component

    wide模块就是一个普通的线性模型y = wT * x + b,其中y是prediction,x=[x1, x2,..., xd]是d维的特征向量,w = [w1,w2,...,wd]是模型参数,b是bias。其中特征集合中包括原始的输入特征和转换特征(transformed feature)。最重要的transformation是cross-product transformation,定义如下

    cki是一个boolean变量,当第i个特征是第k个transformation φk的一部分时为1,否则为0。比如对于binary特征,有cross-product transformation AND(gender=female, language=en),只有当其中的两个特征都为1时才为1,否则为0。
    式1的理解非常重要,以gender和language这个transformation为例进行说明。gender和language都是one-hot的,如果我们希望组合gender=female, language=en,那么去找到这两个对应的特征(分别是两个one-hot中的一维),这两个特征对应的cki是1,其他都是0(任何数的0次方都是1,也就是说,和其他的特征都没有关系了)。只有当这两个特征对应的xi都是1时,整个transformation φk才为1。
    通过这种方式实现了binary特征的交互,增加了模型的非线性。

    The Deep Component

    先对one-hot做embedding,需要注意的是这里的embedding是和模型一起训练的。即先对embedding vector随机初始化,然后最小化loss function来训练。然后放入MLP中

    激活函数f通常用relu。

    Joint Training of Wide & Deep Model

    将wide模块和deep模块带权求和,然后输入logistics loss function共同训练(joint training)。
    文中强调了joint training和ensemble的区别,简单说ensemble是不同模块各自分别训练,训练好了再装起来,joint training是各个模块直接合成一个模型一起训练。ensemble需要子模块size更大,而joint training各个子模块是互补的,相对来说size更小。
    用back-pop来训练整个模型,模型的预测为

    x是原始特征,φ(x)是cross product transformation得到的特征,b是bias,a(lf)是deep模块最后一层输出。
    具体的模型结构如下图。

    可以看到连续型特征不需要做embedding,直接往前输入,离散型种类特征(one-hot)做embedding(32维)。cross product transformation是人工设计组合的一部分特征。

    相关文章

      网友评论

          本文标题:论文笔记之Wide & Deep Learning for Re

          本文链接:https://www.haomeiwen.com/subject/irqvahtx.html