概述
- 自监督学习可以改进双塔模型,提升业务指标
- 自监督学习的目的是为了把物品塔学的更好

双塔模型的问题
- 推荐系统头部效应眼中:
- 少部分物品占据大部分点击
- 大部分物品点击次数不高
- 高点击物品的表征学的好,长尾物品的表征学的不好。这是因为长尾物品的点击和曝光太少,训练的样本不够
- 自监督学习:对物品做 data augmentation,更好地学习长尾物品的向量表征
复习:双塔模型的训练
Batch内负样本
- 双塔模型做Listwise训练,用batch内负样本。

Listwise训练
- 由于物品池子非常大,所以可以认为对于所有 i≠ji ≠ ji=j 都是负样本

损失函数

纠偏

训练双塔模型

自监督学习
- 对两种物品分别做两种不同的特征变换,分别得到 i′i'i′,i′′i''i′′ 和 j′j'j′,j′′j''j′′

- 把变换过的特征输入物品塔。模型只有一个物品塔,意义为下图的四个物品塔共享参数

- 由于下面的随机特征变换,导致 bi′b_i'bi′ 和 bi′′b_i''bi′′ 其实不相等
- 如果物品塔足够好,那么两个向量应该有很高的相似度。训练的时候会鼓励两者的余弦相似度足够大

- 而不同的向量应该尽量远,尽量分散开,而不是集中在一小块区域。例如 bi′b_i'bi′ 和 bj′b_j'bj′ 应该有尽量低的余弦相似度,同理 bj′′b_j''bj′′ 也应该尽量与 bi′b_i'bi′ 有尽量低的余弦相似度

- 物品 iii 的两个向量表征 bi′b_i'bi′ 和 bj′b_j'bj′ 有较高的相似度
- 物品 iii 和 jjj 的向量表征 bi′b_i'bi′ 和 bj′′b_j''bj′′ 有较低的相似度
- 鼓励 cos(bi′,bi′′)cos(b_i',b_i'')cos(bi′,bi′′) 尽量大,cos(bi′,bj′′)cos(b_i',b_j'')cos(bi′,bj′′) 尽量小,即相同物品的不同表征尽量相似,不同物品尽量不相似
特征变换:Random Mask
- 随机选一些离散特征(比如类目),把它们遮住
- 例:
- 某物品的类目特征是 u={数码,摄影}u=\{数码,摄影\}u={数码,摄影},一个物品可以有多个类目
- 如果不做 Random Mask,正常的特征处理方法是对数码和摄影分别做 embedding,得到两个向量,再取加和或者平均,最终输出一个向量,表征物品的类目
- 如果对类目特征做mask,mask 后的类目特征是 u′={default}u'=\{default\}u′={default}。意思是默认的缺失值,然后对 default 做embedding,得到一个向量表征类目。也就是做 mask 之后物品的类目特征就直接被丢掉了
特征变换:Dropout (进对多值离散特征生效)
- 一个物品可以有多个类目,那么类目是一个多值离散特征
- Dropout:随机丢弃特征中 50% 的值
- 例:
- 某物品的类目特征是 u={美妆,摄影}u=\{美妆,摄影 \}u={美妆,摄影}
- Dropout 后的类目特征是 u′={美妆}u'=\{ 美妆 \}u′={美妆}
特征变换:互补特征
- 假设物品一共有 4 中特征:ID,类目,关键词,城市
- 随机分成两组:{ID,关键词}\{ID, 关键词\}{ID,关键词} 和 {类目,城市}\{类目, 城市\}{类目,城市}
- 对于每一组,我们把另外两个特征 mask 掉
- {ID,default,关键词,default}→物品表征\{ID, default, 关键词, default\} → 物品表征{ID,default,关键词,default}→物品表征
- {default,类目,default,城市}→物品表征\{default, 类目, default, 城市\} → 物品表征{default,类目,default,城市}→物品表征

特征变换:Mask一组关联的特征
- 遮住一个特征并不会损失太多的信息,模型可以从其他强关联的特征中取到被遮住的特征,最好是把一个特征的关联特征一次全部遮住
- 受众性别:U={男,女,中性}U=\{男,女,中性 \}U={男,女,中性}
- 类目: V={美妆,数码,足球,摄影,科技,⋅⋅⋅}V=\{美妆,数码,足球,摄影,科技,··· \}V={美妆,数码,足球,摄影,科技,⋅⋅⋅}
- u=女u=女u=女 和 v=美妆v=美妆v=美妆 同时出现的概率 p(u,v)p(u,v)p(u,v) 大
- u=女u=女u=女 和 v=数码v=数码v=数码 同时出现的概率 p(u,v)p(u,v)p(u,v) 小

- 离线计算特征两两之间的关联,利用互信息衡量:两个特征关联越强,互信息就越大,主要是 p(u,v)p(u,v)p(u,v) 会越大

- 设一共有 kkk 种特征,离线计算特征两两之间 MI,得到 k×kk×kk×k 的矩阵
- 随机选一个作为种子,找到种子最相关的 k/2 种特征
- mask 种子及其相关的 k/2 种特征,保留其余的 k/2 种特征
- 好处:比 random mask,dropout,互补特征等方法效果更好
- 坏处:方法复杂,实现的难度大,不容易维护,每添加一个新特征都需要重新算一遍 MI
训练模型
- 从全体物品中均匀抽样,得到 m 个物品,作为一个 batch,冷门物品和热门物品被抽样到的概率是相同的。注意和双塔是有区别的,训练双塔的数据是根据点击行为抽样的,热门物品被抽到的概率大
- 做两类特征变换,物品塔输出两组向量
- b1′,b2′,⋅⋅⋅,bm′b_1',b_2',···,b_m'b1′,b2′,⋅⋅⋅,bm′
- b1′′,b2′′,b3′′,⋅⋅⋅,bm′b_1'',b_2'',b_3'',···,b_m'b1′′,b2′′,b3′′,⋅⋅⋅,bm′
- 第 iii 个物品的损失函数



总结



2883

被折叠的 条评论
为什么被折叠?



