你的位置:久久这里只有精品视频6国产官方网 > 精品福利 > 搜索实时个性化模型—基于FTRL和个性化推荐的搜索排序优化
搜索实时个性化模型—基于FTRL和个性化推荐的搜索排序优化
发布日期:2021-10-25 07:14    点击次数:88

本文来自网易云社区。

作者:穆雪峰。

导读:传统的个性化搜索方式是定义个性化标签,通过个性化标签将用户与产品关联起来,以便在搜索时进行匹配。传统的用户特征基本上是通过离线计算得到的,并不是实时的。个性化标签虽然具有一定的泛化能力,但其准确性不足,无法准确个性化。本文提出了两种创新的优化方法。一是打通实时用户行为的获取过程,利用FTRL算法在实时用户流量下不断更新用户特征权重,从而对用户感兴趣的产品进行实时加权,实现在线训练;。二是在保证相关性的前提下,采用推荐的思路,避免个性化标注,结合用户的实时和历史行为,直接估计用户对商品的偏好,并在搜索排名中进行加权。这两种优化在实际ABTest结果中表现突出,对改善窄口径紫外搜索具有重要价值。它们都是在用户实时行为的基础上完成的,所以统称为搜索实时个性化模型。

背景

传统的个性化搜索应用是基于个性化标签的。例如,我们会假设用户在购物时对商品的某些属性有独特的偏好,然后构建属性标签,并基于用户的历史行为构建算法模型,将商品上的标签打在用户身上,估计其偏好程度,构成用户对特定类别下某些属性标签的偏好。模型一旦建立,属性标签就会形成商品集群,模型的泛化能力会很强。当用户对某类商品的行为巨大时,这种方法会更有效,但一般来说,用户的行为会分散/稀疏,所以模型的准确率一般不高。比如用户A买了一件大嘴猴图案的莫代尔t恤,因为是购买行为,这是表达强烈偏好的特征。然后模型最后计算出一个高概率,会显示用户A对动物图案标签和材质模态标签有一定的偏好,但实际上有可能用户A只关心t恤是圆领的。

怎么办?一种方法是丰富个性化标签并添加通用标签,这将是一个巨大而漫长的剖析过程。另一种方式,我们可以改变思维,就是如果用户A对商品B有行为,那么A对B有一定的偏好,所以我们只需要得到用户A做过的所有产品的集合,然后构建模型计算出最感兴趣的产品推给用户。至于用户喜欢B的特点和原因是什么,我们不需要描述。因为特点太多,我们目前做得不好。系统框架。

要解决上述问题,首先必须在搜索中获取实时的用户行为流数据。因此,我们设计并实现了以下系统结构:。

从Offline到Nearline,再到Online,全方位获取用户最近的行为数据,存储在ncr缓存中。行为包括点击、购买、收藏、购买、搜索等。离线任务从hdfs中收集用户最近在考拉App上的商品历史行为数据,计算历史行为特征,每天转储到缓存中;近线任务收集并格式化用户近一个小时的行为,然后将其放入NCR缓存。实时(Online)任务直接解析Jstorm中的用户行为日志,梳理所需的行为数据,并将其插入缓存。这样,可以在搜索中检索用户最近的所有行为和特征。

同时,Jstorm在分析用户行为的同时,利用FTRL算法进行在线训练,不断迭代学习用户特征权重。另一方面,离线部分每天计算一个UserItemPrefer模型,两个模型的参数都存储在NCR。

考拉APP中商品的每一个行为数据都会影响到FTRL模型和UserItemPrefer模型的参数和特性。当用户来搜索时,SR会再次精细安排NDIR召回的产品集合。精排时,SR会获取个性化标签、UserItem Preferred & FTRL模型的参数、NCR用户的历史和实时行为特征,并计算出排名分数。根据这个分数,SR加上一些业务逻辑,比如下沉缺货、重复商品过滤等。,将订购的商品清单返回到上层。用户在当前搜索结果页面上的行为会受到这个数据流对FTRL模型参数和U2I用户行为特征的影响,从而达到随着用户行为变化自动学习个性化偏好的目的。算法实现。

1.ftrl模型的实现。

根据用户的实时行为生成相应的特征,利用FTRL模型实时更新用户的偏好模型。FTRL算法如下:

对算法的两处修改:

FTRL在每个特征维度上做梯度下降,随着用户行为的累积,频繁更新的特征权重更新步长越来越小,趋于一个稳定的值,而实际上用户的关注点会随时间变化,累积的特征并不一定产生正向的效果,因此增加了时间维度,记录每个维度特征更新的时间,根据时间进行衰减。FTRL具有比较好的稀疏性,但是用户的实时行为会产生大量的特征,还是会有很多低频特征的权重不为0,保存在用户模型里,一方面使得用户模型太大,另一方面对效果影响也不大,因此,对FTRL输出的特征再进行一轮筛选:1)最近1小时的特征按时间保留TOP100;2)最近12小时的特征按权重保留TOP100;3)所有特征按权重保留TOP100。

useritempreferred模型的实现。

描述:选择点击、加购、收藏、购买等行为构成特征,预估用户对商品偏好程度样本:– 历史user-goods pair– Target:当日搜索是否有点击 特征:– User-goods pair维度的特征– Goods维度的特征 机器学习方法:SPARK-LR 训练结果:经调试,AUC 0.73 效果展示

1.FTRL模型。

demo示例:

这是一个在线用户的行为序列:用户先搜索“拖鞋”,点击产品1464699,翻了几页,搜索品牌“melissa”,最后购买了产品1511276。2017-06-04 20:41:48搜索Slipper iOS2017-06-04 20:41:55点击1464699 iOS ...... 2017-06-092017-06-04 21:05:44 pay 1511276 *-搜索结果中商品位置的变化(红框中的商品1511276):无用户实时模型的商品排序:。

增加了用户实时模型的商品排序:

测试结果:共进行了两轮迭代,测试周期为2017年2月初至2017年2月中旬,2017年5月底至2017年6月初。

2。user item首选模型。

测试方法:搜索内ABTest测试时间: 2017.05月底~2017.06月初测试结果:经过11天的线上测试,窄口径UV价值提升2.55%。

3.补充说明。

A/B测试:简单来说,就是为同一个目标制定两个方案(比如两个页面、两个算法),让一部分用户使用 A 方案,另一部分用户使用 B 方案,记录下用户的使用情况,看哪个方案更符合设计。其实这是一种“先验”的实验体系,属于预测型结论,与“后验”的归纳性结论差别巨大。A/B测试的目的在于通过科学的实验设计、采样样本代表性、流量分割与小流量测试等方式来获得具有代表性的实验结论,并确信该结论在推广到全部流量可信。关于A/B Test指标增长的说明:各位看官可能觉得增长2%有点微不足道,但对于算法模型来说,已经比较可观了。首先,A/B测试比对的两者是剔除了自然增长、大促等其他因素的,是纯算法带来的增长,比较真实可靠。另外,举个业界的实例:一般淘宝会由几十人组件一个大项目团队,经过一年的算法迭代,在双11大促时拿到5~10%的指标增长。由此可见一斑。UV价值:名词解释,公式上 UV价值=引导的成交额/访问UV,约等于uv转化率*客单价,一般在搜索中所说的引导的成交额指严口径成交额(即点此买此),访问UV是指访问搜索的UV数。因此,以成交额作为考核指标的考拉,采用uv价值更吻合平台kpi。涵义上,UV价值的是指访问搜索的用户的平均价值,是搜索内功的体现。

未来计划。

目前,第一版实时个性化已经完成,我们将从以下几个方面进一步探索。

类似用户偏好的产品也包含在内,在搜索时也适时呈现给用户,以提高购物效率,探索用户行为序列中的频繁模式,并尝试推荐序列模式 参考。

H. B. McMahan, G. Holt, D. Sculley, M. Young, D. Ebner, J. Grady, L. Nie, T. Phillips, E. Davydov, and D. Golovin. Ad click prediction: a view from the trenches. In KDD, 2013.A/B测试 百度百科B Mobasher, H Dai, T Luo, M Nakagawa. Effective personalization based on association rule discovery from web usage data

原文:实时个性化搜索模型——基于FTRL和个性化推荐的搜索排名优化,作者穆雪峰授权。

了解网易云:

网易云官网:https://www.163yun.com网易云社区:sq.163yun.com/blog网易云新用户礼包:https://www.163yun.com/gift.

更多关于网易研发、产品、运营的经验分享,请访问网易云社区。