广告排序和推荐排序优化的目标都是点击率,技术栈包括LR/FTRL、FM/FFM、GBDT、DNN等模型。
排序问题的演进- 策略排序
- 相关性;
- 质量度,质量更好的结果排在前面如时效性;
- 时效性,视频从上传开始,其相关性随着时间不断衰减;
- 点击行为。
- 学习排序
- 基于用户在历史的排序结果的点击行为收集起来构造 label,根据用户在搜索时候给出的 query 以及展现给用户的 video 以及上下文信息构造特征向量,与 label 进行 join,得到 ground turth,之后进入学习系统进行学习,训练出一个排序模型,就可以对数据进行预测排序
- 深度学习模型
业界应用比较广泛的有
- 广告排序
- 广告排序比如Google和百度的关键字广告排序,今日头条、腾讯的展示广告排序
- 推荐排序
- 推荐排序比如快手、抖音这些短视频平台,以及各大App、浏览器的信息流
- 推荐排序比如快手、抖音这些短视频平台,以及各大App、浏览器的信息流
2.1 人工标注
人工标注的数据主要有以下几大类型:
对于每个查询文档打上绝对标签
二元标注:相关 vs 不相关
五级标注:完美(Perfect),出色(Excellent),好(Good),一般(Fair),差(Bad) ,一般后面两档属于不相关
好处:标注的量少O(n)
坏处:难标。。。不好统一
对于一个查询Query,要标注文档d1比文档d2是否更加相关 (q,d1)≻(q,d2)?
好处:标注起来比较方便
坏处:标注量大 估计得有O(n^2)
对于一个查询Query,将人工理想的排序整个儿标好
好处: 相对于上面两种,标的效果会很好
坏处: 标注量极大。
2.2 搜索日志
当搜索引擎搭建起来之后用户的点击数据就变得非常好使。
比如,结果ABC分别位于123位,B比A位置低,但却得到了更多的点击,那么B的相关性可能好于A.
点击数据隐式反映了同Query下搜索结果之间相关性的相对好坏。在搜索结果中,高位置的结果被点击的概率会大于低位置的结果,这叫做”点击偏见”(Click Bias)。但采取以上的方式,就绕过了这个问题。因为我们只记录发生了”点击倒置”的高低位结果,使用这样的”偏好对”作为训练数据。
在实际应用中,除了点击数据,往往还会使用更多的数据。比如通过session日志,挖掘诸如页面停留时间等维度,即认为停留时间长打得分越大。在实际场景中,搜索日志往往含有很多噪音。且只有Top Query(被搜索次数较多的Query)才能产生足够数量能说明问题的搜索日志。
搜索与推荐下的排序搜索场景下更加关注排序问题的评价指标
- cg
- 逐条对搜索结果进行分等级的打分。CG并不考虑在搜索结果页面中结果的位置信息,它是在这个搜索结果list里面所有的结果的等级对应的得分的总和。如一个搜索结果list页面有P个结果
- CG的统计并不能影响到搜索结果的排序,CG得分高只能说明这个结果页面总体的质量比较高并不能说明这个算法做的排序好或差。
- dcg
- Discounted Cumulative Gain
- DCG的思想是等级比较高的结果却排到了比较后面,那么在统计分数时,就应该对这个结果的得分有所打折。
- ndcg
- top指标
推荐场景下的业务指标
- 核销率 领取率
CPC、CPA、CPM



