机器学习与数据挖掘大数据大学,考研,学习

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

2019-11-02  本文已影响0人  阿瑟_TJRS
image.png

摘要

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

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

问题

物品表示建模
受著名的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}可以是连续的或者离散的

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框架的设计,此外注意力机制设计方面也有一定的创新性。总体而言,模型创新性一般,但问题新,有工业特点。

上一篇下一篇

猜你喜欢

热点阅读