前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >西湖大学、中科院、谷歌:对等协同学习在推荐系统中的应用

西湖大学、中科院、谷歌:对等协同学习在推荐系统中的应用

作者头像
秋枫学习笔记
发布2022-09-19 10:18:52
4210
发布2022-09-19 10:18:52
举报
文章被收录于专栏:秋枫学习笔记

关注我们,一起学习~

title:Enhancing Top-N Item Recommendations by Peer Collaboration link:https://arxiv.org/pdf/2111.00429v3.pdf from:SIGIR 2022

1. 导读

peer collaboration learning:对等协同学习

基于DNN的推荐系统通常需要大量参数,而这多多少少会带来一些冗余的神经元和权重,这种现象被称为过度参数化。本文提出一个topN商品推荐框架PCRec方法,利用这种冗余现象来提高 RS 的性能。

PCRec协同训练两个具有相同网络结构的DNN推荐模型,这称为对等协同。PCRec可以在训练过程中重新激活和加强不重要(冗余)的权重,从而实现更高的预测精度,保持其原有的推理效率。

  • 首先,引入两个指标来识别给定推荐模型的权重的重要性。
  • 然后,通过从其对等网络移植外部信息(即权重)来恢复不重要的权重。
  • 经过这样的操作和再训练,增强模型的表征能力。

2. 懒人阅读

本文采用对等协同学习来加强对DNN中冗余神经元(权重)的利用。利用两个相同网络结构的DNN推荐模型进行训练,采用L1-norm或熵来衡量神经元的重要性,选取对等网络中相应位置的神经元对当前网络中不重要的神经元进行补充,增强模型的泛化能力。

3. 方法

3.1 指标

3.1.1 L1-norm

W_i \in \mathbb{R}^{d_{i-1}\times d_i}

表示为模型中第i层的权重矩阵。可以从两个角度来识别权重的重要性:单权重视角和全层视角

  • 单个权重的重要性直接由其绝对值(L1-norm)决定,绝对值越高,越重要。可以用阈值来区分重要和不重要的权重。
  • 从整个层的角度来看,我们可以通过使用神经网络层作为度量单元来识别所有权重的重要性。

衡量一个层的重要性可以尽可能地保持层的一致性,这将有利于后面提到的信息移植过程,公式如下,

\left\|W_{i}\right\|=\sum_{m=1}^{d_{i-1}} \sum_{n=1}^{d_{i}}\left|W_{i, m, n}\right|

W_i^1

W_i^2

为两个协同推荐模型的第i层的L1范数。令

H(W_i^k)

表示层的相关信息,公式如下,其中%是取模运算,k是模型ID。

\mathrm{H}\left(W_{i}^{k}\right)=\frac{\left\|W_{i}^{k}\right\|}{\left\|W_{i}^{k}\right\|+\left\|W_{i}^{k \% 2+1}\right\|}, \quad k=1,2

3.1.2 熵

L1只关心权重的大小,而忽略了权重的变化,这里采用熵的方式来度量每一层权重的变化。熵通常用于评估系统中的混乱程度。将权重矩阵转换为向量,并将向量离散化为m个桶。然后可以计算每个桶的概率。首先根据向量的实际值对向量中的权重进行排序,然后将向量划分为具有相等数值区间的m个桶(

\frac{max-min}{m}

) .第j个桶的概率以下式计算,N为权重向量的参数大小,nj为第j个桶的参数大小

p_j=\frac{n_j}{N}

然后计算权重矩阵

W_i

的熵,公式如下,

H(W_i)=-\sum_{k=1}^{m}{p_k\log p_k}

3.2 PCRec方法

PCRec 框架如图3所示。假设两个模型都有N层。将

W^1_i

W_i^2

表示为两个模型的第i层的权重矩阵。PCRec的核心思想是利用两个网络对应的权重信息,生成更具表现力的权重

\hat{W}_i

,公式如下,权重

W^1_i

W_i^2

是明显不同,因为它们使用不同的超参数和初始化进行了优化。即一个层的不重要权重可能对应于他对等层中同一层的重要权重,反之亦然。

\hat{W}_i=f(W_i^1,W_i^2)

3.2.1 逐参数(PW)协同

如图2所示,这部分采用L1正则的方式。首先定义一个正阈值γ,然后如果它们的绝对值小于𝛾,则识别不重要的参数。为了实现从其对等模型的信息传递,将不重要的参数替换为对等模型中相同层的对应索引的参数。

设置一个二分的(0,1)掩码矩阵

I_i^k \in \mathbb{R}^{d_{i-1}\times d_i}

,这个矩阵和

W_i^k

具有相同的尺寸大小,则识别不重要参数和替换的公式如下,

\widehat{W}_{i}^{k}=W_{i}^{k} *\left(1-I_{i}^{k}\right)+W_{i}^{k \% 2+1} * I_{i}^{k}, \quad k=1,2
I_{i, m, n}^{k}={\begin{array}{ll} 0 & \text { if } W_{i, m, n}^{k} \geq \gamma \\ 1 & \text { if } W_{i, m, n}^{k}<\gamma \end{array} \quad 0 \leq m < d_{i-1} \text{ and } 0 \leq n < d_{i}}

其流程的伪代码如下所示,

3.2.2 逐层(LW)协同

这部分采用熵的度量方式,PW使用单个权重作为度量单位只关注权重本身的重要性,忽略了层的一致性,从而可能会损害模型的表达性和性能。使用整个层作为度量单位可以使同一层的所有权重协同地促进层的转换。因此将f定义为线性组合函数来提出一种LW方法,公式如下,

\mu \in [0,1]

\widehat{W}_{i}^{k}=\mu_{i}^{k} W_{i}^{k}+\left(1-\mu_{i}^{k}\right) W_{i}^{k \% 2+1}, \quad k=1,2

将此系数

\mu_i^k

视为自适应参数,以自动促进协作和优化。下面给出两个关于设计合适的自适应参数

\mu_i^k

的说明:

  • 希望信息较少的层可以从其对等模型中获得更多信息。因此,使用
H(W^1_i)-H(W_i^2)

来衡量两层中信息的相对重要性。当差为零时,

\mu_i^k

应设置为0.5,否则𝑊b𝑘𝑖应将大的

\mu_i^k

(即

\mu_i^k > 0.5

)分配给具有更多信息的层。即使

\mu_i^k

也可能会有所帮助,因为根据熵的计算方式,相同的信息并不意味着所有权重都相同。

  • 即使
H(W^1_i)-H(W_i^2)

很大,还是希望融合后的

\hat{W}_i^k

包含融合前的自身的部分信息,并且能够自适应控制

H(W^1_i)-H(W_i^2)

为了满足上面两种要求,作者提出一下公式计算

\mu_i^k

,其中𝛼是一个超参数,用于控制来自外层的信息程度。一个层作为度量单位的信息计算标准可以是L1-范数或熵。在训练过程中,只需要在每个 epoch 执行这个组合操作。在实践中,需要保证每个模型都拥有多样且充足的信息,从而相互补充。在本文中,对这两个模型采用了两种简单的策略来使它们中的每一个都捕获独特的信息,即使用不同的学习率和训练数据的采样

\mu_{i}^{k}=\frac{1}{1+\exp \left(-\alpha\left(H\left(W_{i}^{k}\right)-H\left(W_{i}^{k \% 2+1}\right)\right)\right)} \quad k=1,2

3.3 模型优化

PCRec可以在两种模式下进行优化,即并行和串行训练

并行模式方面,PCRec 的两个独立网络本质上是独立训练的,但每批都是同时训练的。每个相同的推荐模型的信息可以通过使用保存的检查点进行传输。因此,并行优化需要更多的内存和计算,但可以节省大量的训练时间。

另一方面,可以通过按批次顺序训练它们来对每个单独的网络进行串行优化。与并行模式相比,串行优化不可避免地会牺牲训练时间,但不会消耗额外的内存和计算量。

总体而言,维护两个结构相同但学习率和采样顺序不同的网络。当一个训练 epoch 结束时,计算两个模型的每一层的信息并进行协作。同一层的偏置项和归一化项的参数共享基于

W_i^k

计算的相同

\mu_i^k

。预测的时候只需要用到其中一个模型即可。

4. 结果

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋枫学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 3.1 指标
    • 3.1.1 L1-norm
      • 3.1.2 熵
      • 3.2 PCRec方法
        • 3.2.1 逐参数(PW)协同
          • 3.2.2 逐层(LW)协同
          • 3.3 模型优化
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档