最近在开发双塔召回,目前初有成效,还需继续调优,这里简单谈下双塔召回的一些实践经验,避免一些人在这一块走一些弯路。

  1. 使用batch内采样会减少自己构造负样本的成本,减少训练数据量,加快训练速度,另外shuffle机制也能让负样本选取的更多

  2. 两侧向量余弦相似度乘以一定数值,再过softmax,会加快训练速度,效果比较好

  3. 可以考虑做下采样修正

  4. 由于是batch内负采样,所以可以设置大的batch_size,这样采样也充分

  5. 提高迭代次数,迭代次数越多,训练也越充分

  6. 实现下batch内的hitrate计算,可以帮助分析双塔训练效果

  7. 其他的模型、特征等层面的优化就不做细致介绍了

上文主要是在2020年发表的内容,到目前为止业界已经有很多突破双塔的工作,如二向箔召回等,大家可以进一步了解相关工作 阿里二向箔召回算法NANN