浅谈百度新一代query-ad 推荐引擎如何提升广告收益率

今天看了一篇论文,是某顶会的被推荐为最值得阅读的论文之一。题目是《MOBIUS: Towards the Next Generation of Query-Ad Matching in Baidu's Sponsored Search》,里面有几个观点挺新颖的,跟大家分享下。

首先query-ad指的就是搜一个信息然后展示一个广告,用户点击广告会付费,向百度这样的体量,单纯这样的广告营收转化每天可能就有上亿元。

屏幕快照 2020-03-19 下午8.15.05.png

在这个论文里,百度的研究员提了一个很有趣的观点:传统的召回-排序架构,可能对于CPM转化不是最理想的(CPM = CTR × Bid

),这个观点挺有趣的,接下来看下百度是怎么证明这个问题并解决的。

01 传统的召回-排序框架有什么问题?

 

传统的推荐架构是这样分工的,将推进分为召回和排序模块,召回负责解决相关性问题,排序解决业务目标的问题。以搜索广告为例,召回模块的作用是首先遍历出跟用户检索信息相关的广告,然后排序模块负责找出那些广告用户点击带来的CPM最高。

屏幕快照 2020-03-19 下午8.20.23.png

百度认为这种做法并不经济,因为如果召回阶段只考虑相关性的话会产生大量没有价值的召回候选集,这些内容在接下来排序的过程中是一种资源浪费。另外对于一些低频出现的但是可能触发高CPM的广告,在召回阶段可能会过滤掉,因为召回并没有考虑CPM。

02怎么解决召回阶段没考虑CPM这个问题呢?

答案就是在召回阶段加一层,这一层负责考虑业务属性。

屏幕快照 2020-03-19 下午8.25.30.png

绿色这一层就是增加的层。这一层他希望给相关性加一个threshold,在召回候选集满足大于threshold的同时让CPM最大(下图上边公式是CPM的计算公式)。

屏幕快照 2020-03-19 下午8.26.25.png

这么做的一个结果我感觉就是那种跟搜索内容没有特别高的相关性的但是很贵的广告也会出现在广告列表。

流程图如下:

屏幕快照 2020-03-19 下午8.30.19.png

先把user和ad做vector,然后做vector compression,这里的compression不是压缩的意思,有点向量分桶的意思,通过kmeans算法吧向量按照index分成不同的类别(我有点没太看懂这一段)。

然后就是常规的ANN&MIPS,ANN就approximate nearest neighbor,ANN简单来说就是向量欧氏距离或者余弦距离。MIPS就是maximum inner product search,就是找出向量机最大的列表。这些都是推荐领域很常规的操作,但是百度很明确说了在大规模数据下ANN比较好的方案是random partition tree method,这个可以了解下。

03 总结

本文提到的方法经过百度自己的测试,能达到很好地业务效果。

屏幕快照 2020-03-19 下午8.37.37.png

我自己的感觉,确实在召回阶段加一些业务的目标还是比较有价值的,把业务属性全由排序模块负责可能有模块1讲的问题。

PS:百度这个项目名字也挺逗的,他是这样解释的:

“Mobius” is Baidu’s internal code name of this project. Coinciden- tally, the well-known “Mobius Loop” is also the bird’s eye view of Baidu’s Technology Park in Beijing, China;

猜你喜欢

转载自blog.csdn.net/gshengod/article/details/104976248