2025年多场景建模:快手参数及Embedding个性化网络PEPNet

多场景建模:快手参数及Embedding个性化网络PEPNetParameter and Embedding Personalized Network PEPNet 背景 多场景 双列 Tab Double Columned Discovery Tab 精选 Tab the Featured Video Tab 沉浸单列 Tab the

大家好,我是讯享网,很高兴认识大家。

Parameter and Embedding Personalized Network (PEPNet)

背景

在这里插入图片描述
讯享网

user及item在不同场景有交叉重叠,场景之间存在共性;任务之间也存在相互关系,单独为每个场景训练单独的模型既耗费人力也无法利用全量的数据,忽略了场景之间的共性,因此需要多场景多任务建模。

业务挑战&难点:

双跷跷板效应

  1. 所有样本混合在一起训练,不同场景有不同的数据分布,容易出现场景跷跷板效应(domain seesaw)
  2. 不同的目标有不同的稀疏性,而且目标之间有相关性,会相互影响,容易出现任务跷跷板效应(task seesaw)

在这里插入图片描述

解决方案

点评:通过输入的个性化先验信息通过gate机制动态缩放底层的Embedding参数以及上层的DNN隐层参数
在这里插入图片描述

方案详情:

EPNet和PPNet的基本单元都是Gate NU(Gate Neural Unit),详解下Gate NU,这个结构受语音识别领域的LHUC结构启发而来的,目的是将个性化的先验信息注入到网站中。LHUC是通过speaker的先验信息来缩放模型的隐层单元达到语音识别的个性化。但是LHUC仅仅是用userID来作为个性化的先验信息,并没有用到用户的年龄、性别等其他画像信息,而这些信息在推荐系统非常重要,包括itemID,item的类别、作者等等先验信息,当然也包括场景ID等先验。Gate NU就是将这些信息都当做先验信息输入来个性化调节DNN网络隐层,达到场景、任务的个性化。
在这里插入图片描述

Gate NU是由两层网络结构实现,第一层目的是交叉输入的先验信息 x \mathbf x x,通过非线性函数relu进行激活,第二层通过sigmoid函数产生gate缩放分数,用 γ \gamma γ来调节缩放的程度
x ′ = R e l u ( x W + b ) \mathbf x^{'} = Relu(\mathbf x \mathbf W + \mathbf b) x=Relu(xW+b)

δ = γ ∗ S i g m o i d ( x ′ W + b ′ ) \mathbf \delta = \gamma * Sigmoid(\mathbf x^{'} \mathbf W + \mathbf b^{'}) δ=γSigmoid(xW+b)

Embedding Personalized Network(EPNet)

sparse特征和dense特征合拼接起来,经过Embedding层,作为主体网络的输入
E = E ( F S ) ⊕ E ( F D ) \mathbf E = E(F_S) \oplus E(F_D) E=E(FS)E(FD)
场景特征像场景ID、场景的统计特征(用户曝光量和点击量)等表示为 F d F_d Fd

经过GateNU后,GateNU的输出为
δ d o m a i n = G a t e N U ( E ( F d ) ⊕ ( ⊘ ( E ) ) ) \mathbf \delta_{domain} = GateNU( E(F_d) \oplus (\oslash (\mathbf E)) ) δdomain=GateNU(E(Fd)((E)))

这里 ⊘ \oslash 表示GateNU不对原来的Embedding层做梯度回传,也就是说虽然GateNU会缩放改变Embedding,但是不对Embedding进行梯度回传,避免和主体网络的梯度回传冲突混乱。GateNU这种参数缩放的方式,其实是一种注入的方式,还是尽量减少对原始Embedding的影响。

EPNet的输出如下,这样就实现了对Embedding输入的场景个性化
δ d o m a i n ⊗ E \mathbf \delta_{domain} \otimes \mathbf E δdomainE

Parameter Personalized Network(PPNet)

user、item、author的相关特征表示为 F u F_u Fu/ F i F_i Fi/ F a F_a Fa,这部分先验输入拼接起来再和底层经过场景先验注入的Embedding拼接在一起作为PPNet的网络输入

经过GateNU后,GateNU的输出为
δ t a s k = G a t e N U ( ( E ( F u ) ⊕ E ( F i ) ⊕ E ( F a ) ) ⊕ ( ⊘ ( δ d o m a i n ) ) ) \mathbf \delta_{task} = GateNU( (E(F_u) \oplus E(F_i) \oplus E(F_a) ) \oplus ( \oslash (\mathbf \delta_{domain}) ) ) δtask=GateNU((E(Fu)E(Fi)E(Fa))((δdomain)))
这里GateNu也是不对DNN网络进行回传梯度,减少对主网络的影响

这里 H \mathbf H H表示DNN的隐层 H = [ H 1 , H 2 , . . . , H T ] \mathbf H=[H_1,H_2,...,H_T] H=[H1,H2,...,HT],其中 H t ∈ R h H_t \in R^h HtRh表示任务 t t t任务塔的隐层单元数量, δ t a s k ∈ R h ∗ T \mathbf \delta_{task} \in R^{h*T} δtaskRhT需要split拆分成 T T T h h h维度的向量,这样好乘到任务的隐层单元上面,达到改变任务塔隐层的目的。

PPNet的输出如下,这样就实现了对DNN塔参数的任务个性化
δ t a s k ⊗ H \mathbf \delta_{task} \otimes \mathbf H δtaskH

对DNN每一层进行这样的处理,假设有 L L L
O l = δ t a s k l ⊗ H l \mathbf O^l = \mathbf \delta_{task}^l \otimes \mathbf H^l Ol=δtasklHl
H l + 1 = f ( O l W + b l )     l ∈ { 1 , 2 , . . . , L } \mathbf H^{l+1} = f( \mathbf O^l \mathbf W + \mathbf b^l ) \ \ \ l \in \{1,2,...,L\} Hl+1=f(OlW+bl)   l{ 1,2,...,L}

消融分析

A场景
在这里插入图片描述
B场景
在这里插入图片描述
C场景
在这里插入图片描述

without EPNet、without PPNet、without both EPNet and PPNet
在这里插入图片描述

PPNet在单场景多任务上的表现
在这里插入图片描述

EPNet在多场景单任务上的表现
在这里插入图片描述

PPNet在单任务单场景上的表现
在这里插入图片描述

超参数分析

Embedding维度,维度在16维的时候已经能取得较好的效果

在这里插入图片描述

DNN层数,4层最好,太深了可能过拟合
在这里插入图片描述

GateNU的缩放系数,2最好,因为输出是(0,2),中心是1,这样缩放比较平衡
在这里插入图片描述

把GateNU对input的后向梯度传播加/不加进来,说明不对主网络进行更新效果更好

在这里插入图片描述

小讯
上一篇 2025-01-09 11:14
下一篇 2025-02-19 08:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60302.html