新闻推荐论文笔记(1):A Multi-Channel Deep Fusion Approach

image.png
  • IJCAI2018
  • 微软研究院出品
  • 本文为自己的论文阅读笔记,如有错误欢迎指正,转载请注明链接及作者
  • 不得不承认,公司做推荐研究更加有优势,其有实际应用场景和数据,能够直接发现实际问题和解决方案;原文链接:https://www.ijcai.org/proceedings/2018/0529.pdf

摘要

每天都有数以百万计的新闻文章出现。如何提供个性化的新闻推荐已成为服务提供商的关键任务。在过去的几十年中,潜在因子模型(LF)已广泛用于构建推荐系统。越来越多的研究人员一直在尝试利用深度神经网络来学习高级RS的潜在表示。继主流的基于深度学习的RS以来,我们提出了一种新颖的深度融合模型(Deep Fusion Model,DFM),旨在提高深度RS中的表示学习能力,可用于候选检索和项目重新排序
DFM方法有两个关键组成部分,即inception moduleattention 注意机制

inception module通过同时利用各种级别的交互来改善普通的多层网络(GoogleNet),而注意力机制则以定制的方式合并从不同渠道学到的潜在表示。

问题

  • 协同过滤CF主要瓶颈是数据稀疏性问题和冷启动问题,对于新闻阅读场景而言尤其如此。
  • 新闻文章具有高度的时间敏感性,新闻服务中90%的文章在两天内不会再推荐给用户。
  • 基于内容的过滤(CBF)可以作为CF补充,可减少冷启动问题。
    因此综上,作者认为:对于新闻推荐,在统一模型中同时使用CF和CBF是比使用纯CF模型更好的选择。

物品表示建模
受著名的ResNet和GoogleNet架构的启发,作者发现可以通过更改多层架构的结构来改善纯全连接网络。 因此,提出了从内容中学习物品表示的inception module 。 基本上,inception module并行学习具有不同深度的多个网络,并根据不同的网络结构为最终激活层提供不同级别的功能组合。
用户表示建模
商业系统中的常见做法是从多个渠道/服务收集数据以丰富用户功能。我们认为,简单地平等对待来自不同渠道的特征并通过针对所有用户的相同静态神经模型获取用户向量并不是最佳解决方案

一方面,不同的用户在不同的渠道/服务上具有不同的参与分布。当用户在新闻阅读渠道中更加活跃时,我们更有信心仅从新闻阅读渠道推断出他的新闻阅读兴趣,从而可以减轻其他渠道的功能权重;相应地,对于新加入的用户,我们更多地依赖于辅助渠道的数据。

另一方面,可能存在域差异(domain discrepancy),我们需要根据特征内容选择有用的信号。因此,我们建议使用上述inception module 在不同的通道上学习不同的用户表示,并通过关注网络动态融合它们。

DFM模型介绍

典型的商业推荐系统中常包含候选物品检索/召回层排序/推荐层,DFM可用于召回和排序

inception module

使用field-wise格式存储特征信息,如下所示,假设有m个不同field的特征
x_u=[x_{fd0},x_{fd1},...,x_{fdm-1}],第i个领域特征x_{fdi}可以是连续的或者离散的

  • 离散特征可以进一步分为两种类型:单一变量(univalent 例如用户ID或索引)和多变量(multivalent 例如用户已跟踪的主题集)。 每个字段都映射到一个D维向量,我们称其为字段嵌入。
  • 连续特征,嵌入是通过完全连接的层进行的;对于多价字段,我们在查找每个变量的嵌入后使用平均池,以使字段嵌入的长度固定。

    嵌入层输出结果为:大小为m \times D
    l_0=[l_{fd0},l_{fd1},...,l_{fdm-1}]
    输入全连接层,激活层函数为ReLU
    l_{h+1}=\sigma(W_hl_{h}+b_h)
    ReLu
    h \in [0,H],隐藏层大小为H.
    在此基础上,利用更先进的框架对模型进行改造:

GoogleNet2015引入了inception module,其并行使用各种卷积,然后将所生成的特征图进行级联,然后转到下一层。 这样,模型可以自动选择最佳卷积大小,并同时恢复较小卷积的局部特征和较大卷积的高抽象特征。

除了卷积大小,网络深度对于学习潜在特征也至关重要。 但是,堆叠更多的层可能会导致精度降低问题,网络训练难度增大。

因此,提出了ResNet [2016],让某些层适合残差映射,而不是直接适合所需映射。 受inception和ResNet框架的启发,提出了用于学习潜在表示的inception模块:

知识补充【GoogleNet与ResNet】

资料引用 https://my.oschina.net/u/876354/blog/1637819
https://www.bilibili.com/video/av16195031/?spm_id_from=333.788.videocard.1
https://www.jianshu.com/p/93990a641066
https://my.oschina.net/u/876354/blog/1622896

GoogeLeNet inception v1

一般来说,提升网络性能最直接的办法就是增加网络深度和宽度,深度指网络层次数量、宽度指神经元数量。但这种方式存在以下问题:
(1)参数太多,如果训练数据集有限,很容易产生过拟合;
(2)网络越大、参数越多,计算复杂度越大,难以应用;
(3)网络越深,容易出现梯度弥散问题(梯度越往后传递容易消失),难以优化模型。
解决这些问题的方法是在增加网络深度和宽度的同时减少参数,为了减少参数,自然就想到将全连接变成稀疏连接。但在实现上,全连接变成稀疏连接后计算量并不会有质的提升,因为大部分硬件是针对密集矩阵计算优化的,稀疏矩阵虽然数据量少,但是计算所消耗的时间却很难减少。
那么,有没有一种方法既能保持网络结构的稀疏性,又能利用密集矩阵的高计算性能。大量的文献表明可以将稀疏矩阵聚类为较为密集的子矩阵来提高计算性能,就如人类的大脑是可以看做是神经元的重复堆积,因此,GoogLeNet团队提出了Inception网络结构,就是构造一种“基础神经元”结构,来搭建一个稀疏性、高计算性能的网络结构
Inception架构的主要思想是找出如何用密集成分来近似最优的局部稀疏解

1x1的卷积核有什么用呢?
1x1卷积的主要目的是为了减少维度,还用于修正线性激活(ReLU)。比如,上一层的输出为100x100x128,经过具有256个通道的5x5卷积层之后(stride=1,pad=2),输出数据为100x100x256,其中,卷积层的参数为128x5x5x256= 819200。而假如上一层输出先经过具有32个通道的1x1卷积层,再经过具有256个输出的5x5卷积层,那么输出数据仍为为100x100x256,但卷积参数量已经减少为128x1x1x32 + 32x5x5x256= 204800,大约减少了4倍。

ResNet,Deep Residual Network深度残差网络

在上图的残差网络结构图中,通过“shortcut connections(捷径连接)”的方式,直接把输入x传到输出作为初始结果,输出结果为H(x)=F(x)+x,当F(x)=0时,那么H(x)=x,也就是上面所提到的恒等映射。于是,ResNet相当于将学习目标改变了,不再是学习一个完整的输出,而是目标值H(X)和x的差值,也就是所谓的残差F(x) := H(x)-x,因此,后面的训练目标就是要将残差结果逼近于0,使到随着网络加深,准确率不下降。
这种残差跳跃式的结构,打破了传统的神经网络n-1层的输出只能给n层作为输入的惯例,使某一层的输出可以直接跨过几层作为后面某一层的输入,其意义在于为叠加多层网络而使得整个学习模型的错误率不降反升的难题提供了新的方向。
至此,神经网络的层数可以超越之前的约束,达到几十层、上百层甚至千层,为高级语义特征提取和分类提供了可行性

注意力机制

为了更好地进行用户建模,我们利用不同来源/渠道的数据来丰富功能。

一种常见的方法是,平等地对待来自不同领域的所有功能,并将其直接馈送到模型中以学习最终的用户嵌入。这种方法在表征学习中缺乏灵活性。用户在不同来源/渠道的使用情况不同,信息分布不同。对于新闻领域的新/冷门用户而言,借鉴其在其他领域的数据具有重要意义。但是,对于常用新闻的用户,已经从新闻系统中积累了一定数量的数据,因此不必过多依赖其他领域的数据。

另外,合并依赖于域的知识可能会为目标域产生噪声,需要考虑偏差。

我们利用注意力机制来减轻上述因素,并使模型动态地组合来自不同领域的知识。

采用了两层神经网络实现注意力机制,具体公式
符号上标表示网络层数,为辅助信息,包括用户在不同域之间的活动分布等。
注意分数是通过softmax获得

一个小技巧是,我们将所有通道中的数据合并在一起,然后将此假通道命名为合并通道。
与用户建模不同,对于物品,我们没有多个域的数据。 这意味着没有相应的物品融合过程,我们直接使用初始模块的输出向量;

召回策略

召回通过LF等基本模型,使用ANN近似最近邻搜索初步得到候选物品集

排序

召回完成之后,与目标用户相关的物品被缩小为一小组。
排序的目的是通过更复杂的模型以及更多功能(例如上下文感知功能)来提供详尽的个性化推荐。 一些最新的深度模型,例如Deep&Wide [2016]揭示了结合记忆和泛化大大改善推荐系统。

通过 添加异构组件,例如线性模型和深度神经模型。如上图所示,将线性模型和深度模型相结合,最后用于预测的形式如下:

训练损失函数如下:表示损失函数

总结

本文主要是新闻推荐中的一篇论文,具有一定的使用价值,在特征表示方面使用inception module和attention机制;其针对的问题比较新,针对应用中用户在不同渠道/系统的使用情况不同,提出的特征融合以服务于新闻推荐。
用于推荐排序的具体框架中,同样借鉴了DeepWide框架的设计,此外注意力机制设计方面也有一定的创新性。总体而言,模型创新性一般,但问题新,有工业特点。

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

推荐阅读更多精彩内容