闲鱼推荐,让智能计算从云走向端

关键词: 
智能推荐、特征工程、特征处理。

术语解释:

  • 机器学习(Machine Learning):是关于在计算机上从数据中产生“模型”(model)的算法;
  • 数据集(Data Set):一组记录的集合;
  • 模型(Model):泛指从数据中学得的结果;
  • 特征(Feature):是从原始数据中抽取出来的对结果预测有用的信息,可以是文本或者数据;
  • 特征工程(Feature Engineering):是使用专业背景知识和技巧处理数据,使得特征能在机器学习算法上发挥更好的作用的过程。过程包含了特征提取、特征构建、特征选择等模块;
  • 端计算/边缘计算:与传统的中心化思维不同,它的计算节点更靠近终端,使服务响应高于传统中心化的云计算。

1. 背景

近些年,随着云计算和大数据的快速发展,以机器学习为基础的智能推荐也得到了迅猛发展。利用云计算,不但可以每日更新模型,双11更是小时级更新模型,以实现更准确的推荐。为了更好的优化推荐系统,丰富实时特征,通常会采集大量的行为数据上报到云端。随着闲鱼DAU(日活跃用户数量)的不断增长,这种云端中心化计算模式的问题也暴露了出来。

中心化模式不但要消耗大量的服务器资源,还要面对海量数据处理所带来的延迟问题(分钟级延迟,不可原谅)。

2. 推荐系统的实时性

为什么说,延迟问题对推荐系统是致命的,不可原谅的? 
推荐系统的实时性越高,更新速度越快,推荐越准。现在的用户越来越没有耐心,如果不快速抓住用户的心,用户很容易流失。

推荐系统的实时性是指: 
(1)“模型”的实时性; 
(2)“特征”的实时性

2.1 “模型”的实时性

“模型”的实时性:不断更新模型,可以让模型找到最新的流行趋势,以及最新的相关性信息。

比如,大家都去关注某个明星,模型会通过大多数人的行为数据,发现该明星成为了流行趋势,以及大家所关注的内容。

暂时不对模型的实时性进行详细分析,现在的模型训练还强依赖云计算。 
当然,很多人也在尝试,端计算和云计算的联合训练。相信不久的将来,应该会有成果落地。

2.2 “特征”的实时性

“特征”的实时性:以用户最近的行为数据作为输入特征,模型就会发现用户最近的行为习惯,并进行相关的预测和推荐。

比如,你浏览了一部手机,系统就会给你推送不同品牌、不同价位的手机;如果你连续浏览华为手机,系统就会给你推送不同价位的华为手机。你连续行为数据越丰富,推荐越准确。

PS:我们说的,中心化计算模式数据处理所带来的延迟问题,就是影响了特征的实时性。

3. 推荐系统的实时特征

为什么,特征更新只是存在分钟级延迟就不可原谅了?而模型只需要每日更新? 
模型的实时性代表流行趋势,通常情况流行趋势不会实时变化,只需要满足活动的趋势变化就可以了。 
而特征的实时性代表个体用户的实时行为,如果无法对用户的实时行为做出响应,用户就可能流失。

特征的实时性很重要,其实并不是所有特征都有实时性要求,比如:性别、年龄等。对实时性有要求的特征,我们称之为实时特征。

闲鱼推荐实时特征包括: 
(1)浏览行为特征,如曝光、曝光时长、滚动速度等; 
(2)详情页行为特征,如进入详情页、询单、收藏、评论、点赞、点击大图等; 
(3)购买行为特征,下单后不再进行相关推荐。

浏览行为特征

在推荐场景,连用户都不知道自己想要什么的情况下。我们希望通过细化用户浏览行为特征,来判读他所关注的商品。

引入端计算后,我们可以采集更多维度的用户行为数据,使用户模型更准确。

PS:长时间以来,闲鱼推荐的浏览行为特征几乎是缺失的。算法一直在用伪曝光(下发即曝光)数据做推荐,因为云端根本没有足够多的服务器对曝光数据进行特征处理。曝光数据量实在是太大了,每个用户随意的一次滚动就会产生多条曝光数据。

4. 实时聚类特征 & 实时意图特征

为了解决云端处理延迟问题,我们对实时特征进行了抽象,沉淀了两种端上的实时特征处理方案: 
(1)实时聚类特征; 
(2)实时意图特征。

4.1 实时聚类特征

我们利用端计算,对行为数据进行实时聚类统计。 
我们现在是按60秒的时间插槽聚类统计(时间插槽太大效果不好,太小数据上报太频繁,QPS太高); 
我们统计60秒内,某个类目(手机、女裙、美妆等)的曝光次数、曝光时长、点击PV等数据; 
如果是强特征事件(点击事件)会实时触发特征上报,如果是弱特征事件(曝光事件)会累计到10个再上报。

全量发布两周后数据统计:

4.2 实时意图特征


该方案,是利用端智能模型,对行为数据进行实时意图判读,并上报到云端。 
PS:该方案,我们还没有全量,还在尝试。

5. 总结

本文,利用端计算(边缘计算)将特征工程前置,实现了去中心化,解决了大量原始数据在云端堆积无法实时处理的问题,提高了推荐系统的特征实时性。 
端计算的引入,不但提高了推荐系统的实时性,同时完善了用户行为数据,让之前很多不可能的事情变成了可能,大大提升了推荐效率。 
实践证明,端云协同将成为未来的趋势。

6. 延展

现在,我们已经将特征数据实时上报到了云端,但是需要到下一次接口请求才会出现相关商品的推荐。这里存在响应的实时性问题。 
最近,我们正在尝试对未曝光商品进行数据重刷(还在线上AB测试,效果挺好的,应该马上就会全量了)。 
方案概述:由端模型判断是否进行数据重刷,然后客户端发起接口请求(请求新推荐的商品数据),再替换未曝光商品。 


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

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

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

相关文章

mybatis plus实现多表分页条件查询

文章目录前言一、二、如何实现1 配置mybatis plus分页插件2.准备三张表2.1 学生表2.2 老师表2.3 老师和学生Vo表3. 编写SQL语句4. 编写mapper层5. service层6.controller层演示效果【补充】 XML 自定义分页总结前言 没啥可说的 一、 没啥可说的 二、如何实现 1 配置mybatis pl…

神仙在双11晚上,都干了些啥?

11月,阿里巴巴西溪园区夜凉如水,双11作战室内,却有人身着短袖衬衫,只见她屏住呼吸,握紧微微出汗的手心,静静立于数字大屏前,等待今年最重要的一个数据。 距离双11结束,还有1分钟。 …

nginx(windows环境安装)

介绍 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好。 文章…

“编程能力差的程序员,90%输在了这点上!”谷歌AI专家:都是瞎努力!

我见过市面上很多的 Python和人工智能的教程和书籍,他们大都这样讲的:先从 Python 人工智能的发展历史开始,介绍的基本语法规则,Python 的 list, dict, tuple 等数据结构,然后再介绍机器学习、深度学习的常用框架等等&…

阿里巴巴的云原生应用开源探索与实践

导读:从拥抱开源、贡献开源、自主开源,到赋能开源,开源已升级为阿里技术战略之一,且正为开发者源源不断地输送切实可见的价值。云原生是阿里开源的重要领域,短短几年,以 K8s 为核心的云原生开源生态迅猛发展…

RuoYi-Vue 部署 Linux环境 若依前后端分离项目(war 包+nginx版本)

文章目录一、软件安装部署1. 安装jdk2. mysql8安装部署3. redis安装4. nginx 安装部署5. Tomcat10 下载和配置 Linux 环境6. 克隆项目二、后端项目2.1. 修改数据库连接2.2. 修改Redis连接信息2.3. 文件路径2.4. 日志存储路径调整2.5. 修改war打包2.6. 编译打包三、前端项目3.1.…

技术直播:讲一个Python编写监控程序的小故事

今年疫情“黑天鹅”事件改变了大家的生活。相信大家都经历过,每天早晨起床第一件事,就是查看数据。这些数据不仅仅是人们对活着的渴望,也是在建立对战胜疫情的决心。那么技术人怎么能通过自己所学的去进行数据监控呢?今天CSDN邀请…

高精地图中地面标识识别技术历程与实践

导读:本文将主要介绍高德在高精地图地面标识识别上的技术演进,这些技术手段在不同时期服务了高精地图产线需求,为高德地图构建高精度地图提供了基础的技术保证。 1.面标识识别 地面标识识别,指在地图道路中识别出各种类型的地面…

RuoYi-Cloud 部署篇_04(windows环境 mysql+nginx版本)

文章目录一、nginx 操作流程1. nginx 安装启动2. nginx 配置3. nginx 重新启动二、前端项目编译2.1. 前端编译打包2.2. 静态复制迁移三、后端项目启动2.1. 我启动了6个服务2.2. 测试验证一、nginx 操作流程 1. nginx 安装启动 nginx(windows环境安装) …

从P4到P9, 在马云家写代码到双11前端PM

阿里妹导读:今年的双11已经是阿里资深前端技术专家舒文来阿里的第11年,从应届生到双11前端PM,他一路升级打怪,实现了岗位上从P4到P9的晋升。这第11届双11顺利结束之际,他把在阿里这些年的成长经历做一个总结和分享&…

在Java虚拟机上班是一种怎样的体验?

来源 | 编程技术宇宙责编| Carol封图 | CSDN 下载自视觉中国本文用知乎体的风格简单介绍了JVM中几个内置线程的工作,希望对大家学习JVM有一点帮助。匿名用户JVM老鸟228 人赞同了该回答利益相关,匿了!JVM公司里面线程众多,派系林立…

微服务架构四大金刚利器

概述 互联网应用发展到今天,从单体应用架构到SOA以及今天的微服务,随着微服务化的不断升级进化,服务和服务之间的稳定性变得越来越重要,分布式系统之所以复杂,主要原因是分布式系统需要考虑到网络的延时和不可靠&…

RuoYi-Cloud 部署篇_01(linux环境 Oracle +nginx版本)

文章目录一、基础准备1. 技术选型2. 源码克隆3. 安装依赖4. 安装oracle5. 安装启动Mysql6. 安装启动Redis7. 创建数据库,执行 SQL脚本文件二、安装与配置 nacos2.1. 下载nacos2.2. 安装 nacos2.3. nacos持久化配置2.4. 执行脚本文件2.5. nacos连接 mysql 配置信息2.…

当60亿次攻击来袭,人机联合打了一场漂亮的防御战

云是大规模体量下各种小概率事件常态化的一个复杂场,云上的攻防对抗是攻击者和防御者在这张复杂场上的博弈与演化。大规模的环境之中充斥着各种各样转瞬即逝的信息,对于威胁,没有什么是比「大规模」和「转瞬即逝」还更好的隐匿与庇护。任何一…

RuoYi-Cloud 部署篇_02(linux环境 Oracle +nginx版本)

文章目录一、模块配置修改1. ruoyi-gateway-dev.yml2. ruoyi-auth-dev.yml3. ruoyi-system-dev.yml4. ruoyi-gen-dev.yml5. ruoyi-job-dev.yml6. ruoyi-file-dev.yml二、后端配置预启动2.1. 部署资料整合2.2. 模块端口划分2.3. 组件端口划分2.4. 服务脚本编写2.5. 前端编译生产…

一个多业务、多状态、多操作的交易链路?闲鱼架构这样演进

前言 双十一刚刚结束,成交额2684亿震惊全世界,每秒订单峰值达54.4W笔。在闲鱼2000万DAU,交易数额同样增长迅速的今天,我们如何保障交易链路的稳定与快速支撑业务?这篇文章从客户端开发的角度,介绍闲鱼交易…

RuoYi-Cloud 部署篇_03(linux环境 Oracle +nginx版本)

请参考RuoYi-Cloud 分布式部署_03(linux环境 Mysqlnginxredis版本)

没想到 Google 排名第一的编程语言,为什么会这么火?

没想到吧,Python 又拿第一了! 在 Google 公布的编程语言流行指数中,Python 依旧是全球范围内最受欢迎的技术语言!01为什么 Python 会这么火?核心还是因为企业需要用它!因为其易用、逻辑简单并拥有海量扩展包…

写1行代码影响1000000000人,这是个什么项目?

不带钱不带卡,只带手机出门就能畅行无阻,这已是生活的常态。益普索发布的《2019第一季度第三方移动支付用户研究》报告显示,移动支付在手机网民中的渗透率高达95.1%,截至今年1月,支付宝全球用户数已经突破10亿。你或许…

高德客户端及引擎技术架构演进与思考

2019杭州云栖大会上,高德地图技术团队向与会者分享了包括视觉与机器智能、路线规划、场景化/精细化定位、时空数据应用、亿级流量架构演进等多个出行技术领域的热门话题。现场火爆,听众反响强烈。我们把其中的优秀演讲内容整理成文并陆续发布出来&#x…