Multi-Task:针对稀疏的Embedding特征,单独设置一个子损失函数,如下图所示。此时Embedding特征的更新依赖两个损失函数的梯度,而子损失函数脱离了对强特征的依赖,可以加快Embedding特征的收敛。3.3 图片特征
图片在搜索结果页中占据了很大的展示面积,图片质量的好坏会直接影响用户的体验和点击,而点评商户首图来自于商户和用户上传的图片,质量参差不齐。因此,图片特征也是排序模型中较为重要的一类。目前点评搜索主要用了以下几类图片特征:
基础特征:提取图片的亮度、色度饱和度等基础信息,进行特征离散化后得到图片基础特征。泛化特征:使用ResNet50进行图片特征提取[3],通过聚类得到图片的泛化特征。质量特征:使用自研的图片质量模型,提取中间层输出,作为图片质量的Embedding特征。标签特征:提取图片是否是食物、环境、价目表、Logo等作为图片分类和标签特征。
4. 适用于搜索场景的深度学习Listwise排序算法:LambdaDNN
4.1 搜索业务指标与模型优化目标的Gap
通常模型的预测目标与业务指标总会存在一些Gap。如果模型的预测目标越贴近业务目标,越能保证模型优化的同时业务指标也能够有相应的提升;反之则会出现模型离线指标提升,但线上关键业务指标提升不明显,甚至出现负向的问题。工业届大部分深度学习排序采用Pointwise的Log Loss作为损失函数,与搜索业务指标有较大的Gap。体现在如下两个方面:
搜索业务常用的指标有QV_CTR或者SSR(Session Success Rate),更关心的是用户搜索的成功率(有没有发生点击行为);而Pointwise的Log Loss更多是关注单个Item的点击率。搜索业务更关心排在页面头部结果的好坏,而Pointwise的方法则对于所有位置的样本一视同仁。
基于上述理由,我们对于深度学习模型的损失函数进行了优化。
4.2 优化目标改进:从Log Loss到NDCG
为了让排序模型的优化目标尽量贴近搜索业务指标,需要按照Query计算损失,且不同位置的样本具有不同的权重。搜索系统常用的指标NDCG(Normalized Discounted Cumulative Gain)相较于Log Loss显然更贴近搜索业务的要求,NDCG计算公式如下