百度搜索Push个性化:新的突破

作者 | 通用搜索产品研发组

导读

本文简单介绍了百度搜索Push个性化的发展过程,揭示了面临的困境和挑战:如何筛选优质物料、如何对用户精准推荐等。我们实施了一系列策略方法进行突破,提出核心的解决思路和切实可行的落地方案。提升了搜索DAU和点击率,希望本文的内容能为相关从业者带来启发和借鉴价值。

全文5573字,预计阅读时间14分钟。

01 背景

百度搜索一直以来都致力于为用户提供快速、准确的信息获取服务。而搜索Push是百度搜索的一种重要功能,可以帮助用户快速获取他们所需的信息,同时还可以主动触达用户。与传统信息流Push不同,搜索Push通过query的形式推送给用户,用户可以获取自己需要的信息。这种推送方式更加精准,从而更好地满足自己的需求。用户可以通过搜索Push快速获取自己需要的信息,从而更加频繁地使用百度搜索,进而提升搜索DAU。

图片

百度在Push方面也拥有着相当的规模和影响力。然而,百度搜索Push在整体Push中的发送量、点击量UV占比较小,搜索Push还有很大的增长空间,需要采取高效的策略来提升点击率。从以下几个方面进行优化和提升:

1.筛选优质物料:目前搜索物料较为充裕,需从海量的数据中筛选出能够通过审核、具有较高点击率(ctr)的物料。这需要建立一套完善的筛选机制,从内容质量、用户需求、合规性等多个维度进行评估和筛选。

2.用户精准推荐:精准触达在推荐系统中具有重要的作用,可以提高用户体验,满足用户的兴趣和需求。在Push推送中,需要通过高效的策略算法,精确找到合适的人群进行推送。这需要对用户画像、兴趣爱好、行为习惯等多方面进行深入分析和挖掘。

综上,搜索Push作为一种便捷的信息获取服务,不仅可以帮助用户快速获取自己需要的信息,还可以主动触达用户,业务目标是在不影响Push大盘的基础上扩大个性化搜索push影响面,提升搜索的DAU。

02 整体方案设计

整体流程包括物料生产、搜Push策略以及与Push下发等环节。这些环节相互关联,共同构成了整个流程。

1.物料生产:是整个流程的关键,我们通过人工审核、LLM大模型改写等方式,筛选出优质的物料。

2.搜索push策略:是整个流程的重要环节,通过高效的模型算法,找到与用户需求和兴趣相匹配的内容,并进行精准推送。

3.push通路:是整个流程中不可或缺的一环,搭建一个高效的搜索push通路的可以帮助搜索更好地进行推广。

2.1 搜索push通路建设

搜索Push作为百度APP Push的重要来源,需要建设稳定、高效的通路进行数据下发。需要从多个方面进行优化和改进,包括离线匹配的高效性、策略匹配的准确性和物料的质量性等方面。只有这样,才能更好地满足用户的需求和提高用户的使用体验。按照上述各方面的要求,搜索Push的总体流程如下:

图片

在搜索Push场景下,需要下发的数据由<ID,ITEM>对组成。在经过粗排、精排等逻辑处理后,对各个通路来的物料进行打分。最终,选取分数最高的物料进行下发。

面临现有机制的情况下,搜索Push的挑战主要有两点:第一,需要有足够优质的物料。第二,需要有足够精确的模型和策略,将物料与用户的需求相匹配。

2.2 筛选优质物料

基于搜索物料池,我们进行了两个版本的尝试:第一版根据不同的策略规则从搜索物料池中挖掘出万级物料进行个性化推荐。第二版是基于后验的优质物料筛选方式。

图片

在挖掘出优质物料之后,运营同学可以对这些物料进行进一步的筛选和优化,以确保其质量和效果。在这个过程中,我们保证了物料的多样性和丰富性,避免了重复和过度相似的内容。并尝试使用LLM大模型技术对物料摘要进行改写,可以更好地适应搜索引擎的算法和用户的需求,从而提高物料的点击率和转化率,筛选后经过后验分析,得出优质的物料进入精排模型,详细设计如下:

图片

2.3 用户精准推荐:模型算法优化

我们从初期的双塔模型,到全连接模型,再到升级模型特征、网络结构,经过了几个版本的迭代升级,并借助paddlepaddle机器学习平台,完成了千亿级参数离散模型训练,最后综合考虑pctr和用户uctr的bias,在模型中引入deltaCTR策略。

图片

2.3.1 提升模型准确性

准确性的核心在于通过对用户画像、兴趣爱好、行为信息等多方面进行深入分析和挖掘,通过高效的模型算法,找到与用户需求和兴趣相匹配的内容,并进行精准推送,提高推送效果和用户体验。在整个过程中,特征非常重要,我们对特征进行了迭代升级,构建搜索push专有的画像,和行为序列,并引入交叉特征,id类特征等,AUC提升显著。列举了以下几个关键特征:

1.itemid特征:由于推送的文章均是有过点击行为的文章,id类特征在训练样本中存在,模型可以学习到细粒度的文章信息。

2.用户id特征:用户id特征比较稀疏,因此我们回溯了较长时间的样本,保证模型可以更好拟合出的用户id特征

3.push场景画像和序列信息:这些特征的加入使得模型能够更好地理解数据和用户行为,从而进一步提升DAU

图片

2.3.2 pctr校准

为什么要校准?

由于正负样本不均衡,在构造模型样本时,对样本进行了负采样通常可以提升模型精度,但是pctr值会发生变化,与真实ctr差距扩大。建立deltaCTR模型时会用到pctr减uctr,负采样带来的pctr值的变化会对最终结果产生影响,因为需要校正。

校准公式:

p c t r ( 校准后 ) = c t r s / p c t r m ∗ p c t r pctr(校准后)=ctr_s / pctr_m* pctr pctr(校准后)=ctrs/pctrmpctr

其中, c t r s ctr_s ctrs为模型训练样本中的 c t r ctr ctr p c t r a pctr_a pctra为模型预测 p c t r pctr pctr打分的均值。

以上是简单的校准逻辑,后续会进行迭代升级,主要有以下几种尝试方法:

方式一:基于负样本采样率调整ctr

来源:Facebook公开的论文《Practical Lessons from Predicting Clicks on Ads at Facebook》里面提到一种基于负采用率来进行ctr纠偏的计算公式

q = p p + ( 1 − p ) w q=\frac{p}{p+\frac{(1-p)}{w} } q=p+w(1p)p其中,p是预估值,w是负采样的比例,q是校准后的ctr值。

方式二:保序回归

保序回归法目前是业界最常用的校准方法。常见的算法是保序回归平滑校准算法(Smoothed Isotonic Regression,SIR)。

保序回归法的整体思想就是:不改变原有数据的pctr排序,仅在原有pctr的排序上进行纠偏。最终纠偏出来的ctr数据分布的单调性不变,AUC指标不变。

整体执行步骤如下:

Step1—区间分桶

首先将pctr值从小到大进行排序,然后按照区间分为K个桶。假设我们分为100个桶:(0,0.01], (0.01,0.02], (0.02,0.03],…, (0.99,1]。这里我们认为精排模型给出pctr值是具有参考意义的,同一个区间里的PV请求具有近似的真实点击率,每一个区间可作为一个合理的校准维度(分簇维度)。然后实际应用时,我们再统计每一个桶里的后验ctr值。比如今天线上一共有1000次预估的pctr落在了桶 (0.02,0.03]之间,然后我们统计这1000个预估的后验CTR,假设后验CTR为0.23%。关于每个桶里Pctr和Actr平均值的计算公式如下:

i i i个桶的后验 C T R CTR CTR A C T R i = Σ 点击 P V Σ 曝光 P V ACTRi= \frac{\Sigma 点击PV}{\Sigma 曝光PV} ACTRi=Σ曝光PVΣ点击PV ,预估 c t r ctr ctr均值为 p c t r pctr pctr平均值 i = Σ p c t r Σ 曝光 P V i= \frac{\Sigma pctr}{\Sigma 曝光PV} i=Σ曝光PVΣpctr

Step2—桶间合并

如果说后验ctr的值超出了对应分桶的pctr取值区间怎么办?假如原本分桶在(0.02,0.03]之间结果的后验ctr为0.35%,这时已经进入到了下一个桶里了(0.03,0.04]。如果我们将原本pctr在(0.02,0.03]桶里面的值往下一个桶里的区间值进行校准,这就破坏了原有桶之间的顺序,保序回归的基本逻辑是不能破坏原pctr的顺序。此时我们需要把(0.02,0.03]和(0.03,0.04]桶进行合并得到新的桶(0.02,0.04],再重新对落入两个桶里的数据进行后验ctr统计,得到新桶里面的 actr和pctr平均值。我们以pctr为x,actr为y轴,最终得到一个如下图所示单调递增的散点图:

图片

Step3—桶间插值分段校准

我们需要基于上述散点图去构造一个校准函数,输入x值以后就可以输出校准后的y值。如果直接拟合一个 y = k x + b y = kx + b y=kx+b函数,最终预估的结果不够平滑。目前业界的标准做法都是构造分段校准函数。

图片

如上图所示,我们将两个桶之间坐标点连接起来,然后去构造一个分段的 y = k x + b y = kx + b y=kx+b校准函数,假设pctr一共分为了100个桶,那么最终就构造100个分段校准函数,这样既保证单调性,又保证平滑地校准。已知两点坐标计算对应的 y = k x + b y = kx + b y=kx+b

2.4 基于deltaCTR策略设计

通过对大量物料的后验ctr表现进行排序,选取出表现最好的topK个物料。使用模型对物料打分,对预测的pctr值进行校准,以确保预测结果更加准确。然后,建立deltaCTR策略,即根据校正后的pctr值和用户uctr计算物料的deltaCTR,即增量点击率。并根据pctr和deltaCTR两个队列,找到最佳的参数组合,从而制定出最佳的推送策略。最后,我们需要选择合适的人群进行推送。在选择人群时,我们还需要考虑受众的规模和受众的活跃度等因素。

综上所述,通过物料的后验ctr表现选取出topK个物料,通过模型对物料pctr打分后校准,建立deltaCTR策略寻找最佳的参数,选择合适的人群进行推送是提高推送效果的关键步骤。在实际操作中,我们需要不断优化和调整这些步骤,以确保推送效果的最大化。

图片

2.4.1 兼顾收益和DAU最大

我们需要每天下发topK个物料。在k个候选物料确定的情况下,需要精准地寻找目标人群进行下发。通常来说,模型打分越高,所带来的点击率就越高,进而能够带来更高的DAU。因此,按照pctr排序取topx,可以保证带来更多的点击。同时,由于用户本身存在自己的uctr,因此我们需要考虑这个bias因素对模型pctr的影响。为了更准确地评估系统带来的收益,我们可以按照模型预测点击率pctr减去用户点击率uctr得到deltaCTR,然后按照deltaCTR排序取topy,我们可以更准确地评估每个物料对系统带来的实际收益。

因此,topx和topy这两个参数寻优非常重要。

图片

2.4.3 deltaCTR参数寻优

在我们的策略中,使用了两个重要的参数a和b进行优化。通过调整这两个参数,我们得到了不同的topx和topy数据结论。当a和b的值不同时,x和y的表现会有所不同。因此,我们决定采用离线分析和在线实验相结合的方法,以找到最佳的参数组合。

在离线分析阶段,我们根据历史数据和理论推导,选择了几个可能的a和b的组合。然后,我们在线上实验中测试了这些组合的性能。通过不断调整x和y参数,我们发现了一些表现优秀的参数组合。最后,我们选择了一组最佳的参数组合,进行全量。

这一组最佳的参数组合是通过大量的实验和数据分析得出。后续将不断优化我们的模型和参数,以提高我们的整体性能和效果。

图片

2.4.3.1 离线理论推导

在后验数据的基础上,我们针对x和y进行优化,旨在确保实验组和对照组的CTR保持一致,同时实现点击量的最大化。这种优化方法可以通过调整x和y的参数,使得实验组和对照组的点击率达到相等水平,进而最大化整体点击量。在实施这种优化策略时,需要注意数据采集和分析的准确性,以及实验组和对照组的平衡性。具体步骤:

1、计算模型预测的CTR(pctr)

2、 计算用户活跃度分群cluster_ctr和实际用户uctr

3、 处理不置信的uctr值

4、 计算deltaCTR

5、 对pctr和deltaCTR进行排序

将pctr和deltaCTR进行排序,得到两个队列,如下:

队列1: s o r t D e l t a C T R = s o r t ( d e l t a C T R ) sortDeltaCTR=sort(deltaCTR) sortDeltaCTR=sort(deltaCTR)

队列2: s o r t P c t r = s o r t ( p c t r ) sortPctr=sort(pctr) sortPctr=sort(pctr)

6、 寻找最优x和y值

设置不同的 t o p x topx topx t o p y topy topy,可以得到不同的 f ( x ) f(x) f(x) g ( y ) g(y) g(y),为了方便起见,本文将x和y按照从0%到100%,每10%作为一个分段进行取值分析。其中:

f ( x ) = s u m ( d e l t a C T R ) f(x)=sum(deltaCTR) f(x)=sum(deltaCTR),当 s o r t D e l t a C T R sortDeltaCTR sortDeltaCTR t o p x topx topx

g ( y ) = s u m ( d e l t a P C T R ) g(y)=sum(deltaPCTR) g(y)=sum(deltaPCTR),当 s o r t P c t r sortPctr sortPctr t o p y topy topy,且 y y y的<用户, i t e m > p a i r item>pair item>pair对,不在 x x x

通过寻找 x x x y y y,保证当 a ∗ f ( x ) + b ∗ g ( y ) = 0 a*f(x)+b*g(y)=0 af(x)+bg(y)=0时, s u m ( p c t r ) sum(pctr) sum(pctr)最大。其中 a a a b b b是超参数。

伪代码如下:

图片

通过理论计算,经过几组参数的选取,在不同实验参数下,得出不同的结论如下:

图片

2.4.3.2 离线分析和在线实验相结合

离线分析和在线实验是两种不同的数据分析方法,各有其优缺点。离线分析通常在数据收集后进行,可以处理大量数据,但无法实时反映数据的变化。在线实验则可以实时监测数据的变化,但通常缺乏理论支撑,存在波动的影响。为了克服这两种方法的缺点,可以采用离线分析和在线实验相结合的方法。在离线分析阶段,可以对大量数据进行处理和分析,以发现数据中的模式和趋势。然后,可以将这些模式和趋势应用于在线实验中,以实时监测数据的变化。最终我们选择三组比较好的x和y参数分别是

图片

△注:x1~x3,y1~y3均是线上真实数据,不便于公开。

三组实验,DAU均显著提升。其中,x=x1,y=y1,ctr相比大盘提升最大;x=x3,y=y3,DAU提升最大,但ctr存在略微负向不显著。后续继续对x=x3,y=y3进行优化,通过模型迭代、pctr校准优化等提升整体ctr和DAU。

03 小结

本文主要介绍了百度搜索Push个性化方案的设计和落地过程。通过挖掘优质物料、迭代模型算法等步骤,我们成功地提高了搜索Push的点击率和提升了搜索DAU。在模型算法迭代方面,我们重点优化了模型准确性、pctr校准和基于deltaCTR策略设计。离线分析和在线实验相结合的方法帮助我们找到了最佳的参数组合,进一步提高了整体效果。实验结果表明,我们的方案在DAU和ctr提升方面均取得了显著成果。未来,我们将继续优化模型和参数,以实现更高的性能提升。

——END——

推荐阅读

数据交付变革:研发到产运自助化的转型之路

百度搜索exgraph图执行引擎设计与实践

百度搜索&金融:构建高时效、高可用的分布式数据传输系统

“踩坑”经验分享:Swift语言落地实践

移动端防截屏录屏技术在百度账户系统实践

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/633341.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

postman案例

一、表单接口 基本正向 有效反向 无效反向 JSON接口 基本正向 有效反向 无效反向 文件上传接口 token 获取token值 一&#xff1a; 二&#xff1a; Bearer 获取的token的值&#xff0c;至于鉴权方式要根据swagger接口文档要求

uniapp踩坑之项目:canvas第一次保存是空白图片

在ctx.draw()回调生成图片&#xff0c;参考canvasToTempFilePath接口文档 // data imgFilePath: null,// 缓存二维码图片canvas路径//js // 首先在draw&#xff08;&#xff09;里进行本地存储 ...... ctx.draw(false, () >{uni.canvasToTempFilePath({ // 把画布转化成临时…

Zookeeper简介

系列文章目录 Zookeeper安装教程 目录 一、Zookeeper简介 二、Zookeeper的数据结构 三、CPA理论 四、BASE 理论 五、ZooKeeper的特性 前言 这是我的学习笔记&#xff0c;以便后面翻阅。 一、Zookeeper简介 ZooKeeper是一个分布式的、开放源码的分布式应用程序协调服务&a…

轻量化/高效扩散模型文献综述

&#x1f380;个人主页&#xff1a; https://zhangxiaoshu.blog.csdn.net &#x1f4e2;欢迎大家&#xff1a;关注&#x1f50d;点赞&#x1f44d;评论&#x1f4dd;收藏⭐️&#xff0c;如有错误敬请指正! &#x1f495;未来很长&#xff0c;值得我们全力奔赴更美好的生活&…

适合进阶学习的 机器学习 开源项目(可快速下载)

目录 开源项目合集[>> 开源的机器学习平台&#xff1a;mlflow/mlflow](https://gitcode.com/mlflow/mlflow)[>> 机器学习路线图&#xff1a;mrdbourke/machine-learning-roadmap](https://gitcode.com/mrdbourke/machine-learning-roadmap)[>> 机器学习理论和…

5. UE5 RPG使用GAS技能系统

之前也介绍过GAS的使用&#xff1a; UE 5 GAS Gameplay Ability System UE 5 GAS 在项目中处理AttributeSet相关 UE 5 GAS 在项目中通过数据初始化 基础的讲解这里不再诉说&#xff0c;有兴趣的可以翻我之前的博客。 接下来&#xff0c;在RPG游戏中实现GAS系统的使用。 GAS系统…

16.鸿蒙HarmonyOS App(JAVA)滑块组件Slider与评级组件Rating

16.鸿蒙HarmonyOS App(JAVA)滑块组件Slider与评级组件Rating ability_main.xml <?xml version"1.0" encoding"utf-8"?> <DirectionalLayoutxmlns:ohos"http://schemas.huawei.com/res/ohos"ohos:height"match_parent"oh…

redis数据安全(三)数据持久化 AOF

接上一篇RDB&#xff0c;本篇看下Redis数据持久化的第二种方式AOF。 目录 一、AOF原理 1、写入机制&#xff1a; 2、缓冲机制&#xff1a; 3、重写机制 &#xff1a; 4、运行流程 二、AOF文件配置 1、开启AOF&#xff1a; 2、自动触发AOF重写 3、重写规则&#xff1…

unity面试题

一&#xff1a;什么是协同程序&#xff1f; 在主线程运行的同时开启另一段逻辑处理&#xff0c;来协助当前程序的执行&#xff0c;协程很像多线程&#xff0c;但是不是多线程&#xff0c;Unity的协程实在每帧结束之后去检测yield的条件是否满足。 二&#xff1a;Unity3d中的碰…

vue基于Spring Boot共享单车租赁报修信息系统

共享单车信息系统分为二个部分&#xff0c;即管理员和用户。该系统是根据用户的实际需求开发的&#xff0c;贴近生活。从管理员处获得的指定账号和密码可用于进入系统和使用相关的系统应用程序。管理员拥有最大的权限&#xff0c;其次是用户。管理员一般负责整个系统的运行维护…

redis cluster搭建

准备服务器和端口号 IP 地址端口号路径192.168.0.2016001/app/redis-5.0.14/redis-6001192.168.0.2016002/app/redis-5.0.14/redis-6002192.168.0.2026001/app/redis-5.0.14/redis-6001192.168.0.2036002/app/redis-5.0.14/redis-6002192.168.0.2036001/app/redis-5.0.14/redi…

查看神经网络中间层特征矩阵及卷积核参数

可视化feature maps以及kernel weights&#xff0c;使用alexnet模型进行演示。 1. 查看中间层特征矩阵 alexnet模型&#xff0c;修改了向前传播 import torch from torch import nn from torch.nn import functional as F# 对花图像数据进行分类 class AlexNet(nn.Module):d…

Spring Boot整合MyBatis-Plus

引言 在现代软件开发中&#xff0c;我们经常需要处理大量的数据。为了有效地管理这些数据&#xff0c;我们需要使用一些强大的框架。其中&#xff0c;Spring Boot和MyBatis-Plus是两个非常流行的框架。Spring Boot是一个基于Spring的开源Java框架&#xff0c;可以用于创建独立…

[一]ffmpeg音视频解码

[一]ffmpeg音视频解码 一.编译ffmpeg1.安装vmware虚拟机2.vmware虚拟机安装linux操作系统3.安装ftp和fshell软件4.在Ubuntu&#xff08;Linux&#xff09;中编译Android平台的FFmpeg&#xff08; arm和x86 &#xff09;5.解压FFmpeg6.Android编译脚本&#xff08;1&#xff09;…

vue+elementui实现12个日历平铺,初始化工作日,并且可点击

<template><div class"app-container"><el-form :model"queryParams" ref"queryForm" size"small" :inline"true"><el-form-item label"年份" prop"holidayYear"><el-date-…

can数据记录仪自带软件LKMaster——自动化测试篇

LKMaster上位机软件是由南京来可电子发布的CAN&CANFD综合测试分析软件&#xff0c;支持报文收发、数据分析、协议解析、历史回放、文件格式转换、参数配置、记录文件管理、脚本编辑、自动化测试等强大的功能。支持J1939、CANOPEN、J1939BMS、自定义解析&#xff0c;支持曲线…

redis原理(四)redis命令

目录 一、字符串命令&#xff1a; 二、列表命令&#xff1a; 三、集合命令&#xff1a; 四、散列命令&#xff1a; 五、有序集合命令&#xff1a; 六、redis发布与订阅命令&#xff1a; 七、事务命令 八、其他命令 1、排序&#xff1a;SORT 2、键的过期时间&#xff…

【MATLAB源码-第118期】基于matlab的蜘蛛猴优化算法(SMO)无人机三维路径规划,输出做短路径图和适应度曲线。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 蜘蛛猴优化算法&#xff08;Spider Monkey Optimization, SMO&#xff09;是一种灵感来源于蜘蛛猴觅食行为的群体智能优化算法。蜘蛛猴是一种生活在南美洲热带雨林中的灵长类动物&#xff0c;它们在寻找食物时展现出的社会行…

Cleanmymac for mac 4.14.7无弹窗注册版

Cleanmymac for mac是一款先进的、集所有功能于一身的实用系统清理工具&#xff0c;删除系统缓存文件 , 多余的应用程序语言包 , 它能帮助保持您的Mac保持清洁。只需两个简单的点击&#xff0c;就可以删除无用的文件&#xff0c;以节省您宝贵的磁盘空间。 对于很多喜爱摄影朋友…

[HTML]Web前端开发技术14(HTML5、CSS3、JavaScript )鼠标经过图片显示大图 网页标题:表格标签的综合应用——喵喵画网页

希望你开心&#xff0c;希望你健康&#xff0c;希望你幸福&#xff0c;希望你点赞&#xff01; 最后的最后&#xff0c;关注喵&#xff0c;关注喵&#xff0c;关注喵&#xff0c;佬佬会看到更多有趣的博客哦&#xff01;&#xff01;&#xff01; 喵喵喵&#xff0c;你对我真的…