embedding在工业界是非常常用的手段。例如双塔模型学习用户与内容的隐式向量表达,其产出可以用于召回,粗排,精排模型等多个阶段。
以下为一些使用的细节:
1、大规模粗排用离线计算的embedding加速,可以扩大粗排规模
2、利用预训练的embedding为模型提供更好的用户表达(一些模型对于某目标的预测不会使用用户的全量行为特征,所以能获取其在全量行为下计算的embedding作为初始化便能提升效果)这与CV和NLP领域的pre training + fine turning是一样的方法
3、对于很多离散值,使用embedding输入dnn更有利于学习
4、对于一些连续值,也使其离散化后再用emb输入dnn
5、一些长尾用户的embedding更新几率很小,会导致其学习不充分。利用用户一些特征的刻画做用户分桶或聚类可以提升其学习效率(airbnb kdd1028)
6、对embedding层做专门的loss函数(multi-task),只更新其对应参数梯度,能加快其收敛。
7、也可以对一些过于低频的特征值做过滤,能减少参数空间,同样能提升其emb的收敛速度,避免过拟合
8、可以利用embedding做特征扩展。通过embedding做特征“扩展”
9、建立单独的网络,仅对embedding层进行训练(参见狼厂的abacus)
网友评论