双塔模型
构建两座塔——用户塔和物品塔,每个塔分别将用户/物品的离散/连续特征进行处理,输入模型,分别得到用户emb和物品emb
训练
Pointwise:独立地看待每个正样本、负样本,做二元分类
Pairwise:每次取一个正样本、一个负样本
Listwise:每次取一个正样本、多个负样本
正负样本选择:
正样本:用户点击的物品;少部分物品具有大量点击,对负样本不公平——对正样本降采样或对负样本过采样
负样本:
简单负样本
显然,未被召回的物品是负样本,数量极大,可近似为全局采样,采样如果是均匀抽样,那么负样本大多是冷门物品会打压冷门,因此全局随机采样要非均匀抽样
Batch内负样本,Batch内正样本通常是点击较高的,直接batch内负采样容易造成对正样本打压过度,训练时可以增加一个偏置进行纠偏
困难负样本
被粗排淘汰的物品、在精排中靠后或淘汰的物品
部署
离线计算好物品emb并存入向量数据库,在线计算(更新快)用户emb做召回
全量更新,天级别全量更新权重,重新发布模型和物品emb
增量更新,小时级别更新Embedding层权重,发布新Embedding层
加入自监督学习
数据长尾问题严重,热门物品表征学习较好而冷门物品表征不够好
自监督学习应用在物品塔
先进行数据增强,同一物品的不同视图应该接近,不同的物品的视图应该远离(对比学习)
增强方法有Mask、Dropout(对多值特征按概率丢弃)、互补(特征进行分组,每个分组缺失特征填充默认值)、Mask关联特征(计算特征间的相关度、互信息,同时mask相关的特征)
在训练损失中加入自监督损失