【CTR预测、神经网络参数自适应生成】 APG: Adaptive Parameter Generation Network for Click-Through Rate Prediction

#论文题目:APG: Adaptive Parameter Generation Network for Click-Through Rate Prediction(APG:点击率预估中的自适应参数生成网络)
#论文地址:https://arxiv.org/pdf/2203.16218.pdf
#论文源码开源地址:暂无
#论文所属单位:Alibaba
在这里插入图片描述

一、论文背景

这是一篇阿里发表的关于神经网络中网络参数自适应生成的文章,不仅可以做到不同的样本有不同的网络参数,同时通过拆分矩阵等操作大大提升了推理性能。

当前CTR预估的主要研究方向大致可以分为两个方面:

  1. 丰富输入特征:构建异质网络而不是传统的二部图,如引入用户行为序列,多模态信息,知识图谱信息等等
  2. 更先进的网络结构设计:考虑更加复杂的网络结构,如设计多样的特征交叉模块,自动的网络结构搜索等等

但是,从理论上来说,还有一种提升模型效果的方面,网络参数的优化,则很少受到关注。目前大多数模型针对所有的输入样本都采用相同的网络参数。这种方式存在以下两方面的缺点:

  1. 通过共享的参数W可以学习样本的共性模式,但对于学习样本中的特有模式则并不友好。以淘宝为例,如下图所示,不同用户如高频用户和冷启动用户的样本分布存在较大的差距,对所有的样本使用相同的网络参数很难从不同的分布中捕捉每个样本的特性。
    在这里插入图片描述
  2. 模型学习到的共性模式,容易被高频的用户或特征所主导,以至于并不是对所有样本都是适合的。

因此,除学习样本中的共性模式外,网络参数应该更加具有适应性,能够随着不同的输入样本动态改变来捕获样本中的特有模式。但是,想要实现针对不同样本的自适应参数生成,需要解决以下两方面的挑战:

  1. 高效的计算和存储
  2. 同时学习样本间的共性模式和单个样本内的特有模式

为了解决以上两方面的挑战,论文提出了Adaptive Parameter Generation network
(以下简称APG)。该方法是一个优化权重参数的方法,并不是一个完整的推荐系统算法,此方法适用于带有权重的推荐算法中。

二、APG介绍

2.1 APG框架

可以看到,针对输入样本i,xi为样本i的输入特征,zi为样本i的状态(condition)向量。
在这里插入图片描述
APG的目标是对于不同的zi,动态生成参数Wi
在这里插入图片描述

之后,利用Wi和本身的xi用于DeepCTR部分的前向计算,得到点击率预估值:在这里插入图片描述
样本i的状态向量zi是如何生成的呢?模型参数生成如何保证高效性和有效性呢?接下来的两节进行分别的介绍。

2.2 状态(condition)向量生成

论文给出了三种状态向量zi生成的方式,分别为Group-wise,Mix-wise和Self-wise。
在这里插入图片描述

Group-wise

Group-wise基于一定的规则对样本进行聚类,同一类别下的样本使用相同的状态向量来生成网络参数,以此来学习不同类别的特有模式。如使用用户id的embedding作为状态向量,相同用户的不同样本使用相同的参数,不同的用户参数则不同。

Mix-wise

Mix-wise策略使用多个状态向量,如用户id的embedding和最近点击item的embedding的组合。不同的状态向量之间的组合可以有输入聚合和输出聚合两种聚合方式。

  1. 输入聚合(Input Aggregation):首先对不同的状态向量进行聚合,随后生成网络参数。聚合可以采用拼接,avg-pooling或者attention的方式。
  2. 输出聚合(Output Aggregation):不同的状态向量生成对应的网络参数,随后对参数进行聚合。聚合同样可以采用拼接,avg-pooling或者attention的方式。

Self-wise

前面两种方式需要额外的先验知识对状态向量进行设计,而Self-wise策略则使用简单易获取的知识进行状态向量设计,如网络的第1层对应的状态向量为样本输入向量xi,第l层对应的状态向量为网络第l-1层的输出。

2.3 参数设计

基本思路

这一节,我们以最简单的一层全连接网络作为DeepCTR部分进行介绍。
当状态向量获取后,最基本的思路是通过MLP层得到网络参数,用于DeepCTR部分的前向计算:
在这里插入图片描述
重构操作(reshape)是将MLP产生的向量进行重构,形成矩阵形式。其中,Wi是N×M维,状态向量zi维度为D,则有APG的DeepCTR模型可表示为:
在这里插入图片描述
但是生成这样的一个Wi权值矩阵有两个困难:时间效率和内存效率、模式的有效性。

  1. 时间效率和内存效率:这种方式的计算(时间)复杂度为O(NMD+NM)(参数生成的计算复杂度为O(NMD),DeepCTR部分的计算复杂度为O(NM)),存储(空间)复杂度为O(NMD)。相比于传统的共享参数的方式(计算复杂度和存储复杂度均为O(NM)),计算复杂度为D+1倍,存储复杂度为D倍。
  2. 模式的有效性:Wi完全依赖于给定的条件zi,可能会忽略常见的模式建模。
Low-rank parameterization(低秩参数化)降低复杂度

针对第一点,论文利用了Low-rank parameterization降低复杂度,将网络参数Wi拆解为三个矩阵:
在这里插入图片描述
Ui,Si,Vi的维度分别为N×K,K×K,K×M。则此时的APR过程变为:
在这里插入图片描述
图示如下:
在这里插入图片描述
进行如上的优化后,网络的存储复杂度变为O((NK+MK+KK)D),由于K往往远小于N和M的最小值,因此存储复杂度可以近似为O((NK+MK)D),而计算复杂度为O((NK+MK)(D+1))(参数生成的计算复杂度为O((NK+MK)D),DeepCTR部分的计算复杂度为O(NK+MK))。

Parameter sharing学习共性模式

背景中提到,APG需要解决两方面的挑战,上述Low-rank parameterization的方式,使得模型的计算和存储更加高效。接下来需要解决的挑战是:如何同时学习样本间的共性模式和单个样本内的特有模式?

论文采用的是参数共享的方式,即U和V矩阵所有实例共享,学习所有样本的共性模式,S矩阵为样本独有,学习样本的特有模式:
在这里插入图片描述

Over Parameterization(再参数化)提升模型表达能力

虽然已经解决了APG所面临的两方面的挑战,但是共享的矩阵U和V由于维度K的限制(K<<min(N,M)),在一定程度上约束了模型的表达能力,因此论文提出了一种过度参数化(Over Parameterization)的方法,进一步将矩阵U和V拆解为两个大矩阵的相乘:
在这里插入图片描述
在这里插入图片描述
尽管使用了过度参数化的方法,但模型训练完成后,可以直接存储V和U,不必存储对应的拆分的大矩阵,因此并没有带来额外的线上的预测耗时和存储空间。
在这里插入图片描述
下附完整版APG图例:
在这里插入图片描述

2.4 复杂度分析

关于模型的复杂度前面也介绍过一些了,这里就不再做更详细的介绍:
在这里插入图片描述

三、实验结果及分析

最后来看下实验结果:
在这里插入图片描述
这是不同策略下的AUC数值对比:
在这里插入图片描述

四、结论

在本文中,我们提出了一个高效、有效、通用的模块,以适应不同实例的生成参数。这样,模型就可以通过采用不同的参数来仔细地描述不同实例的模式。实验结果表明,在APG的帮助下,现有的所有深度CTR模型都能得到很大的改进,这也促进了APG的广泛应用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
APG(Accelerated Proximal Gradient)算法是一种用于优化问题的迭代算法。以下是一个简单的 MATLAB 代码实现: 假设我们要求解以下的优化问题: ``` minimize f(x) subject to g(x) <= 0 ``` 其中, `f(x)` 和 `g(x)` 是可微分的凸函数。以下是 MATLAB 代码: ```matlab function [x, obj] = apg(f, g, x0, lambda, max_iter, tol) % f: objective function % g: inequality constraint function % x0: initial point % lambda: step size % max_iter: maximum number of iterations % tol: tolerance % initialization x_prev = x0; y_prev = x0; t_prev = 1; for i=1:max_iter % gradient step grad_f = grad(f, y_prev); x = prox(y_prev - lambda * grad_f, lambda); % projection step x = proj(x, g); % acceleration t = (1 + sqrt(1 + 4 * t_prev^2)) / 2; y = x + (t_prev - 1) / t * (x - x_prev); % convergence check if norm(y - y_prev) < tol break; end % update x_prev = x; y_prev = y; t_prev = t; end % return solution and objective value x = y; obj = f(x); end function [x] = prox(x, lambda) % proximal operator for L1 norm x = sign(x) .* max(abs(x) - lambda, 0); end function [x] = proj(x, g) % projection operator for inequality constraint if g(x) <= 0 % x satisfies the constraint, no need to project return; else % find the projection of x onto the feasible set f = @(t) norm(x - t*g(x))^2; options = optimoptions('fmincon', 'Display', 'off'); x = fmincon(f, x, [], [], [], [], [], [], @(x) g(x), options); end end ``` 在代码中,`grad` 函数计算函数 `f` 的梯度,`prox` 函数是 L1 范数的 proximal 运算符,`proj` 函数是约束条件的投影运算符。在主函数 `apg` 中,我们按照 APG 算法的步骤进行迭代,直到满足收敛条件为止。 需要注意的是,这只是一个简单的实现,可能需要根据实际问题进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值