自学内容网 自学内容网

召回06 双塔模型two-tower(DSSM)

双塔模型的结构

相比于矩阵补充模型,双塔模型考虑了id之外的多种特征作为输入。

对于每个离散特征用单独的enbadding层得到向量,对于性别等类别较少的特征直接使用one-hot编码;对于连续特征,最简单的直接归一化,对于长尾分布的特征取log或做分桶等。

神经网络可以是简单的全连接网络,或更复杂的结构,例如深度交叉网络等。输出向量,即表征,用于召回。

余弦相似度范围 [-1 ,1],相当于对两个向量a b归一化然后求内积。

双塔模型的训练

pointwise: 把正样本和负样本组成一个数据集,在数据集上做随机梯度下降训练双塔模型;

pairwise: 每次取一个正样本和负样本组成一个二元组,损失函数用triplet hinge loss或者 triplet logistic loss;

listwise: 每次取一个正样本和多个负样本组成一个list,训练类似于多元分类。

pointwise训练

正负样本数量约定俗成

pairwise训练

正负样本embadding层使用一样的参数

m是超参数,可以调整,例如设置为1。训练就是最小化损失函数,用梯度更新双塔神经网络的参数,triplet hinge loss是一种损失函数;triplet logistic loss函数中的sigma是一个大于0的超参数,控制损失函数的形状,手动设置。

listwise训练:

鼓励正样本余弦相似度接近1,负样本都接近于-1。输入到softmax激活函数,输出分数s介于0-1之间。希望s+接近1,s-接近0,鼓励s接近y。用y和s的交叉熵-logs+作为损失函数,训练来最小化交叉熵,即鼓励softmax输出s接近标签y,也就是最大化s+。

总结:

这是粗排和精排,前期融合,将特征在神经网络之前就拼接融合,不适用于召回,适用于排序模型;召回使用双塔模型,是在最终输出相似度的时候才融合。


原文地址:https://blog.csdn.net/DEVIL_hym/article/details/142593904

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!