关注我们,一起学习
标题:Deep Task-specific Bottom Representation Network for Multi-Task Recommendation
地址:https://arxiv.org/pdf/2308.05996.pdf
会议:CIKM 2023
学校,公司:中科大,阿里
(这次尝试只讲重点,而不是像以往一样从头把方法都写一遍,如果喜欢这种形式的可以点赞告诉我)
本文是针对推荐系统中的多任务学习提出的相关方法,MMoE,PLE都是采用基于门控机制的共享层,通过共享层隐式学习公共表征,但是如果任务之间存在冲突就会导致性能退化,在共享层的底部表征上会出现负迁移效应。本文针对多任务学习中的共享层提出DTRN来缓解负迁移问题。整体框架如图所示,输入为用户特征,item特征,上下文信息和用户行为序列。用户行为序列有多种类型,不同的任务中不同的行为类型表达的兴趣也会有所不同。因此作者提出了
- TIM,这部分用超网络提取任务类型和行为类型对反应的兴趣信息,产生用于transformer的LN中的γ和β系数,从而得到条件transformer。条件transformer用于编码用户的行为序列,得到在当前任务和行为类型下该序列反应的兴趣偏好。
- TRM,将用户,item特征,上下文信息和用户行为反应的兴趣信息输入到细化模块中,细化模块就是在上述特征emb的基础上经过MLP得到emb的重要性权重,与原输入emb相乘后得到细化后的emb。
- 最后将得到的emb输入到各个任务的分支当中
如图所示TIM包含两个子模块,Hypernetwork和Conditional Transformer。
-
(1) 超网络使用任务类型embedding和行为序列类型embedding作为输入来动态生成条件参数。生成的参数应该捕捉相应任务和行为序列之间的相关性。(ps:任务类型emb:不同任务的emb,行为序列类型:用户有许多不同的行为类型(收藏,点击,购买等),因此需要用不同的emb来表示不同的类型)
-
(2)条件Transformer,用基础的transformer结构来处理用户的行为序列,这部分被所有任务类型和行为序列对共享。超网络生成的条件参数被注入到layer norm中来捕获任务特定的兴趣
超网络 :TIM的关键是控制统一的行为序列建模网络,为每个任务和行为对产出特定的兴趣。应用超网络来获取任务和行为序列类型emb,并为任务和行为序列对生成条件参数。这些参数将作为额外的缩放参数,并将参数用到Transformer中的LN,以生成隐藏在针对特定任务的行为序列中的细粒度用户的兴趣。使用两个超网络分别生成缩放和平移参数,用两层MLP实现超网络,并使用ReLU作为激活函数。公式如下,表示LN在transformer中的位置,t和b表示任务和行为的类型索引,通过两个MLP分别得到了LN中的缩放和平移的参数
条件transformer : 条件transformer中主要修改的是LN层,即转变为CLN条件layer norm,将上述得到的γ和β输入到transformer中的LN中,公式如下,即在原始LN的基础上多考虑超网络的γ和β
其他流程可见图3,与基础的transformer类似,将该任务i下不同类型的行为序列经过条件transformer和超网络后,可以得到对应的输出(解码器输出的第i个任务对应的第j个类型的行为序列的兴趣表征),将所有行为类型的输出拼接后得到当前任务特定的兴趣表征
2.2 TRM:任务特定的表征细化模块
TRM中以用户特征,item特征,上下文信息以及前面得到的兴趣表征作为输入。一方面,使特征表征可以对不同的上下文进行自适应,比如KFC在疯狂星期四和其他工作日用户的兴趣应该是有所不同的。另一方面,是在任务维度,不同的特征在不同的任务中具有不同的重要性。
为了达到上述作用,本文基于SENet思想,做了一个类似的操作。基于上下文信息,给每个任务的特征产生一个重要性向量来表示特征在当前上下文和任务中的重要性。首先,拼接任务i的所有的emb得到。然后,以拼接后的emb为输入经过类SENet网络得到一个重要性向量。看着很玄乎,实际操作的时候就是将raw经过两层的MLP(激活函数为ReLU),得到一个emb这个emb就是重要性向量,最后和raw相乘得到细化后的emb。
最后将得到的emb输入到多任务的每个分支中进行预测。
image.png
交流群:点击“联系 作者”--备注“研究方向-公司或学校”
欢迎|论文宣传|合作交流
往期推荐
KDD'23 交大,华为 | MAP:用于点击率预估的模型无关的预训练框架
CIKM'23 美团 | DCIN:考虑点击item上下文信息的CTR预估方法
长按关注,更多精彩
点个在看你最好看