(这次尝试只讲重点,而不是像以往一样从头把方法都写一遍,如果喜欢这种形式的可以点赞告诉我
)
本文是针对推荐系统中的多任务学习提出的相关方法,MMoE,PLE都是采用基于门控机制的共享层,通过共享层隐式学习公共表征,但是如果任务之间存在冲突就会导致性能退化,在共享层的底部表征上会出现负迁移效应。本文针对多任务学习中的共享层提出DTRN来缓解负迁移问题。
整体框架如图所示,输入为用户特征,item特征,上下文信息和用户行为序列。用户行为序列有多种类型,不同的任务中不同的行为类型表达的兴趣也会有所不同。因此作者提出了
如图所示TIM包含两个子模块,Hypernetwork和Conditional Transformer。
超网络: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个类型的行为序列的兴趣表征),将所有行为类型的输出拼接后得到当前任务特定的兴趣表征
TRM中以用户特征,item特征,上下文信息以及前面得到的兴趣表征作为输入。一方面,使特征表征可以对不同的上下文进行自适应,比如KFC在疯狂星期四和其他工作日用户的兴趣应该是有所不同的。另一方面,是在任务维度,不同的特征在不同的任务中具有不同的重要性。
为了达到上述作用,本文基于SENet思想,做了一个类似的操作。基于上下文信息,给每个任务的特征产生一个重要性向量来表示特征在当前上下文和任务中的重要性。首先,拼接任务i的所有的emb得到
。然后,以拼接后的emb为输入经过类SENet网络得到一个重要性向量。看着很玄乎,实际操作的时候就是将raw经过两层的MLP(激活函数为ReLU),得到一个emb这个emb就是重要性向量,最后和raw相乘得到细化后的emb。
最后将得到的emb输入到多任务的每个分支中进行预测。
往期推荐 闲聊因果效应:离线评估方法 KDD'23 交大,华为 | MAP:用于点击率预估的模型无关的预训练框架 CIKM'23 美团 | DCIN:考虑点击item上下文信息的CTR预估方法 KDD'23 蚂蚁 | SAMD:异构多场景推荐方法