闲鱼如何利用端计算提升推荐场景的ctr

背景

闲鱼作为一个电商场景的app,最丰富的部分就是作为商品宝贝浏览承载的feeds,比如首页下面的宝贝信息流,搜索结果页以及详情页下面的猜你喜欢,这些feeds场景都少不了推荐算法在背后的支撑。

传统的推荐算法是依托于云上沉淀的埋点数据来。随着4G网络资费的下降,产生了越来越多的数据,如果将如此大量的数据都上传到运算,并且由云端来做中心化的存储/计算和处理,不仅会产生大量无必要的网络流量,而且还会给云端带来高昂的存储成本,实时性也无法保证。

我们观察到随着手机计算能力的提升,某些计算可以在端上直接计算,再统一上报到后端,这样相比云计算有很多明显的优势:

1、更加实时性:我们可以在端上完成原始特征的处理和实时打分,从原始特征的抽取到计算结果的上报完成,可以在1s左右完成。

2、计算资源的节约:大量数据如果都汇集到云端上计算,可能会造成计算资源的不足,我们可以将计算量分散到各个端上,可以降低计算资源开销。

3、多维度数据采集:一些类似于细粒度的行为数据、采集频率过高的数据或者涉及用户隐私的数据等,可以在端上直接消费掉而不需要上传。

马里奥

介绍

马里奥是闲鱼首页的一个创新形式的业务,其业务逻辑是:用户在闲鱼首页feeds部分点击来一个宝贝卡片,那么同时就会请求云端,根据后端算法拉取回来算法召回的query词和对应的推荐宝贝信息,以四个方块的形式展示在一个张卡片中,这样来给用户点击之后,跳到二级承接页面来给用户推荐更相关的宝贝,来达到提升首页feeds部分点击率和成交的效果。

效果图:

初始版本流程图:

问题

初始上线之后,我们统计马里奥卡片一跳和二跳的ctr,发现并比不上普通的宝贝,那么问题出在了哪里呢?

分析

闲鱼上每天都会诞生数以亿计的商品点击,这里有个很自然的问题:用户对他的这次商品点击满意吗?考虑两个简单的例子:

1)用户点击商品后,在详情页面上停留时间很短,那么我们可以认为这可能是次误点击。

2)用户点击商品后,他在这个详情页面上有很多的行为,比如他可能查看了产品参数、商品的颜色尺码、或者又点击了该商品的全部评价,最后还通过和卖家进行了聊天,那么我们就认为这可能是次真实意愿的点击,或者说他对这次点击满意度分很高。

那么很自然的,我们推测,只有在满意度较高的情况下,我们去做关联推荐才是有意义和有价值的,否则如果用户误点击的情况,我们也去推荐,只会适得其反,对此我们进行了解法的尝试。

解法

在这个场景下,需要在用户点击进入宝贝详情,然后离开详情页的时候,就需要给出用户对该宝贝的意向,只有满足某个阈值的情况,才应该出现马里奥卡片。这种场景下,如果使用传统的云端算法,把数据都收集好,再计算出结果,再返回到端上,这时候很可能插入卡片的时机早就过去了,没法抓到用户这个关键点。因为用户在浏览详情页的过程中,所有的点击和曝光都是在端上实时产生的,很可能在最后一刻退出页面之前,用户都在一直产生有价值的动作,这时候不断的往云端回传数据再计算,显然是不可行的方案。

当用户在闲鱼Feeds页点击推荐商品(如上面左图的汽车玩具商品)后,进行触发并展现马里奥(如上面左图虚线红框所示),引导用户进行搜索并进行更多商品点击和下单。不同于Feeds里一般的推荐项,马里奥的每一次触发其实是存在触发成本的。一个显然的成本是马里奥的触发会挤占后续商品的展现。如果用户每一次详情页点击后都触发马里奥,那么就会有大量的马里奥被展现,并挤占相应的Feeds坑位。当马里奥点击率相比Feeds过低的时候,将影响整体Feeds的展现效率及用户体验。

解法流程图:

因而在推荐流和搜索结果流中,触发型展现一个显而易见的成本是,当前触发的内容展现会压缩后续推荐的内容展现。从更高效的流量分发角度来看,对这类展现的控制是有必要性的。

不同于此前纯云端的触发展现,云端此前更多做内容侧的控制,基于用户与内容的匹配程度去决策是否展现以及展现什么。而端侧用户更加实时、更加详细、更加细粒度的行为,更偏好与刻画用户交互习惯以及对当前触发模块的需求。

为此,我们提出了智能展现模型,通过用户在端侧的细粒度交互行为建模用户对触发模块的实时偏好,将原始的触发展现模块解藕为两部分:

1、CTR(端):端侧做展现控制:基于用户当下细粒度交互行为及交互习惯决定是否请求(展现)相关模块

2、CTR(云):云侧做内容控制:决定展现的相关内容

所以我们最终采用端计算和云计算结合的方案,所有依赖数据都实时在端上产生,而且计算处理数据的过程也在端上,借助于集团提供的端计算容器,我们可以很方便的把模型部署到端上并运行它得到我们用户点击之后对点击宝贝的满意度的数值。

结果

新的马里奥方案,对整个链路和现有体系是最小侵入,也让整体更加简洁。闲鱼马里奥项目上,智能展现模型在保证94.4%的马里奥点击量和96%的二跳点击量下,马里奥服务端请求量减少了-28.0%,点击率提升+31.1%,成交率增长了10%。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

Hadoop集群安装部署_分布式集群安装_02

文章目录一、上传与 解压1. 上传安装包2. 解压hadoop安装包二、修改hadoop相关配置文件2.1. hadoop-env.sh2.2. core-site.xml2.3. hdfs-site.xml2.4. mapred-site.xml2.5. yarn-site.xml2.6. workers2.7. 修改启动脚本三、同步初始化3.1. 安装包同步3.2. 主节点格式化HDFS3.3.…

基于融合计算?蚂蚁金服的在线机器学习是如何做的

金融领域越来越多的活动场景,如双十一、双十二、财富日、新春大促,具有活动持续时间短强度高的特点,解决场景中的计算冷启动问题,优化系统效率和用户体验的需求越来越多。在生产环境的应用中,还需要满足高吞吐和端到端…

重要的节日那么多,要及时「缓存」你们的珍贵时光

作者 | 后端学长责编 | Carol出品 | 程序员 cxuan缓存概述在很久很久以前人类和洪水作斗争的过程中,水库发挥了至关重要的作用 : 在发洪水时可以蓄水,缓解洪水对下游的冲击;在干旱时可以把库存的水释放出来以供人们使用。这里的水库就起着缓存…

冒泡排序(重要)

冒泡排序(重要) 冒泡排序无疑是最为出名的排序算法之一,一共有八大排序!冒泡代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖中人尽皆知。我们看到嵌套循环&#xff0…

K8S中手动扩容云盘数据卷

介绍: 云盘数据卷扩容包括以下几个部分: 云盘物理空间扩容,需要在云盘控制台操作; 文件系统扩容,需要挂载云盘到一个物理节点手动操作; PV、PVC Size更新,需要更新StorageClass、PVC&#xff1…

我和面试官之间关于操作系统的一场对弈 | 原力计划

作者 | Guide哥责编 | 伍杏玲出品 | CSDN博客大家好,我是 Guide 哥!很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到。所以,我带着我整理好的操作系统的常见问题来啦&am…

LaTex中参考文献引用

一、引用参考文献 这里我们使用的是BibTeX的引用格式,因此文件中应包括两个文件(.bib-参考文献 和 .bst-文献格式)。 有了这两个文件后,我们在bib文件中创建参考文献:(注意,作者的名字是逗号前…

如何在Flutter上实现高性能的动态模板渲染

背景 最近小组在尝试使用一套阿里dinamicX的DSL,通过动态模板下发,实现Flutter端的动态化模板渲染;本来以为只是DSL到Widget的简单映射和数据绑定,但实际跑起来的效果出乎意料的差,列表卡顿严重,帧率丢失严…

稀疏数组(数据结构)

稀疏数组(数据结构) 需求:编写五子棋游戏中,有存盘和续上盘的功能 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 …

揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?

本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识、实践、调优、内部实现等各个方面,带你由浅入深地全面了解 Flink SQL。 1. 发展历程 今年的8月22日 Apache…

centos7 修改yum源为阿里源

# 1.先检查是否有wget命令,如果没有wget,先下载: yum install -y wget# 2.安装base reop源cd /etc/yum.repos.d# 3.接着备份旧的配置文件 mv CentOS-Base.repo CentOS-Base.repo.bak# 4.下载阿里源的文件 wget -O /etc/yum.repos.d/epel.re…

阿里面试官整理的JVM面试要点,99%的你都不知道!

最近网上出现一个面试题:“一个线程OOM后,其他线程还能运行吗?”网上出现了很多答案。这道题其实很有难度,涉及的知识点有jvm内存分配、作用域、gc等,不是简单的是与否的问题。在面试时被问到这个问题你是会哑口无言还…

开发函数计算的正确姿势——借助 Ghostscript 将 PDF 转换成 JPG

前言 首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute):函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计…

面向对象编程(OOP)

面向对象编程(OOP) 面向过程&面向对象 面向过程思想(线性) ​ 1.步骤清晰简单,第一步做什么,第二步做什么…… ​ 2.面对过程适合处理一些较为简单的问题 面向对象思想(分类&#xff0…

6 个 K8s 日志系统建设中的典型问题,你遇到过几个?

作者 | 元乙 阿里云日志服务数据采集客户端负责人,目前采集客户端 logtail 在集团百万规模部署,每天采集上万应用数 PB 数据,经历多次双 11、双 12 考验。 导读:随着 K8s 不断更新迭代,使用 K8s 日志系统建设的开发者…

腾讯视频云支持超300万场次直播带货 助力企业一天搭建直播间

5月21日,腾讯产业互联网沙龙通过腾讯会议线上举办,围绕“科技助力中小微企业破局”话题,腾讯视频云业务总经理李郁韬 、腾讯云生态建设总经理王莹、腾讯云云开发产品负责人王倩与数百家企业代表探讨了在疫情之下,中小微企业如何借…

CentOS 7.8使用devtoolset-9使用高版本gcc version 9.3.1

问题原因 CentOS 7的gcc版本为4.8.5,Redis 6.0.5最低需要gcc4.9,因此需要升级gcc版本 from redis 6.0.5, building redis from source code needs C11 support.The version of gcc in CentOS 7 is 4.8.5, but C11 was introduced in 4.9. 解决办法 1、手…

如何加快 Node.js 应用的启动速度

我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。 目前,集团 Serve…

技术人看《长安十二时辰》的正确姿势是?

阿里妹导读:从“叉手礼”、“水盆羊汤”、“酒晕妆”这些唐朝人的生活细节,到精美的坊间造型、充满意境的诗词歌赋,《长安十二时辰》不仅以缜密剧情赢得赞誉,更还原了一个真实的大唐长安。在精良制作之上,技术人如何让…