产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

京东 618:揭秘大促销背后的个性化推荐

  • 2015-06-17
  • 本文字数:2594 字

    阅读完需:约 9 分钟

写在前面:京东作为国内最大的自营 B2C 平台,目前个性化推荐成交的订单数已占到总量的 13%。这其中,数据驱动的个性化推荐系统发挥着越来越重要的作用。在 7 月 17~18 日即将举行的 ArchSummit 深圳 2015 “电商和零售业的转型”专题论坛上,京东推荐搜索部技术总监刘尚堃也将分享《京东数据驱动下的个性化推荐》。在一年一度的“6·18”大促销活动到来之际,InfoQ 走进京东,带你领略背后的技术之谜。

受访嘉宾介绍:刘尚堃,京东推荐搜索部技术总监。2011 年加入京东组建了京东搜索团队,2013 年在继续负责搜索引擎相关工作的同时,开始组建广告算法团队,通过一年的算法优化,京东快车广告系统为公司过亿的收入。2013 年年底负责京东推荐系统和搜索系统包括架构、算法、产品在内的全部工作。2014 年带领团队全方位向千人千面推荐和搜索产品目标迈进。

InfoQ:首先请介绍下自己及您的团队所负责的事情。

刘尚堃:我 2011 年初加入京东,开始组建搜索团队,并带领团队用 C++ 研发了一套分布式搜索引擎,在此之前京东的搜索是基于开源系统构建的。2012 年底系统上线之后,京东的转换率有 2%的提升,性能提升了 100%。在这个过程中团队也得到了磨练。2012 年开始组建了广告团队,并开发了”京东快车”,2013 年年中该广告系统已经给京东创造了上亿元的营收。在后来的对比中发现,京东 45% 的品类点击超过淘宝。2014 年广告团队剥离出去独立运作,我开始负责搜索和推荐团队,现在部门有大概 80 人的规模。

InfoQ:您能介绍一下京东的分布式搜索引擎系统的开发过程及其系统架构吗?

刘尚堃:简单说一下吧。如上图所示,从上到下。首先是搜索引擎的前台部分,有一个意图分析的模块对用户的类型以及请求 query 进行分析。然后进入搜索过程,搜索分两部分,一部分是业务逻辑层,一部分是分布式的 search 引擎阵列。最下面的是数据更新,全量更新与实时增量更新。经过多年的打磨,现在基于 Hadoop 的数据全量更新每天进行一次,实时增量更新则是滚动进行。我们刚刚采用流水线推送技术进行全量更新,性能比过去提升了 20%。

此外,搜索引擎也会连接到用户画像,对其进行更精准的匹配。接下来就是数据分析的部分了。一般我们每周会进行 3 次小流量的算法改进,主要是对 GMV(Gross Merchandise Volume)和转化率的调整测试。

InfoQ:有一个问题我问过不同的相关公司,也想再问下您,商品推荐、广告推荐与内容推荐有哪些异同?在技术实现上各有什么特点?

刘尚堃:其实商品推荐更侧重用户的购买行为,即把大量的商品定位到海量的人群中去,促成订单的成交,这可以用明确的财务指标来衡量;广告的重点是吸引用户点击,以满足商家的推广与展示需求;内容推荐的衡量比较负责,需要看用户兴趣、内容新颖度、以及点击率等多维度指标。

因此,商品与广告的财务指标更容易激起团队的成就感与激情。

这三者的技术实现是有一些通用的步骤可循。以我们京东的推荐系统为例,首先是召回模型,即底层架构和计算平台,比如数据提取、分布式任务的调度与计算等;上面是离线模型,主要是对用户画像、协同过滤以及关联度匹配,这一层用户实时行为对结果的影响更大;再之上是排序模型部分,主要是规则排序、机器学习等。比如我们近期上线了 leaning to rank 对排序优化提升了 20%;再之上是 A/B 测试的框架以及业务架构。

广告推荐更类似于离线部分以及排序里的 CTR(Click-through Rate)预估。有一个很大的不同在于,广告系统里的产品池远小于商品推荐的规模,因此更侧重 RPM(注:广告请求每千次展示收入,(Estimated earnings / Number of ad requests) * 1000),客户关注的是 ROI(Return On Investment)。

InfoQ:京东快车系统在持续优化的过程中,遇到了哪些比较有代表性的或者说有意思的问题?这些问题是怎么解决的?

刘尚堃:现在广告系统叫”精准通”。2014 年之后独立运作了我了解不多,我说一下 2014 年之前的吧。我们广告系统刚上线的时候,广告商品的库存量比较小,这时候定向投放的相关性会比较差,但是又不能过度增加其曝光量,否则会破坏京东用户的体验。为了保证二者的平衡,我们采取减少曝光、保证用户体验和广告主利益,但是牺牲了部分收入的做法。

这类似于”饥饿营销”,也源于我们当时的谨慎。由于精准度较高,商家的热情一下子被拉起来了。但是广告资源有限,后期随着广告资源的不断丰富,我们才逐渐放开了这个限制。

InfoQ:今年 QCon 北京的时候我们就深度学习方面的内容采访了一下李成华博士。您能否谈谈深度学习 / 机器学习在京东现有业务系统中的应用?

刘尚堃:现在深度学习的主要应用是智能机器人方面,我们团队有一位从 Google 过来的博士在做。客服机器人第一步是对用户的问题与 20 多个大类进行匹配是最难的,这一步主要用了很多 DNN(Deep Neural Network)的算法。

InfoQ:作为一个用户量超大的网站,您所负责的系统架构有没有经过大的调整或重构?

刘尚堃:现在更多的是只对系统的痛点部分进行改进。比如,以前全量数据传输比较慢,我们后来用流水线推送进行改进。我们更像是在高速公路上一边跑一边随时随地换轮胎。每次的改进都是一次突破,所有的优化都是立足在架构层面的,比如使得我们的调用更加透明、系统性能更为稳定,使业务开发更加迅速。底层的优化根据我们的具体需求在持续地改进。

InfoQ:在最近这两年的 618 活动中,千人千面计划的实施取得了哪些突破?618 活动对系统和你的团队有哪些挑战?

刘尚堃:京东的 618 可能有点不一样。千人千面作为用户画像的部分,在促销活动中所起的作用主要是对商品的排序。

目前这已经是我第五次做 618 这样的活动了。这个跟你们理解的不大一样,该做的事情平时和 618 之前我们都做完了,团队已经成长起来,我们也都习以为常。否则我也不能坐这里接受你们的采访,而应该在上面忙活着。

InfoQ:明天就是 618 了,您所负责的推荐与搜索系统对历次 618 活动的销售预测情况如何?有什么可以透露的消息吗?

刘尚堃:谈到技术,说的最多的是我们要扛过去啊,其实这是对系统最基本的要求。技术的支撑作用是毋庸置疑的。

现在技术更主要的是推动作用。我们的工程师针对今年的 618 开发了一个促销搜索的 PC 端产品,可以对促销商品的真实性、优惠力度、排序等比较接地气的功能,这里面技术实现了很多。

我们对 618 的原则是,只要能卖出去就不怕赔。今年的预测应该会超过去年淘宝的双十一。到时候在 ArchSummit 深圳 2015 大会上我在给大家做更详细的分享。

2015-06-17 11:477946
用户头像

发布了 64 篇内容, 共 23.6 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

高并发HTTP请求实践

高性能架构探索

写代码这件事

ES_her0

28天写作 3月日更

Hadoop之YARN的内部机制

hanke

大数据 hadoop 开源 YARN

在PostgreSQL中使用ltree处理层次结构数据

PostgreSQLChina

数据库 postgresql 开源 软件 开源社区

阿里P7亲自讲解!整理几个重要的Android知识,最全Android知识总结

欢喜学安卓

android 程序员 面试 移动开发

基于 SparkMLlib 智能课堂教学评价系统 - 系统实现(四)

大数据技术指南

大数据 spark 智能时代 28天写作 3月日更

镁信健康“互联网+医+药+险”模式能否打造出中国版联合健康?

E科讯

Navicat操作MySQL简易教程

Simon

MySQL navicat

学以至用-从“0”到“1”设计千万级交易系统

ninetyhe

高可用 分布式系统 海量数据库的设计与实践 异步削峰

52条SQL语句性能优化策略,建议收藏

Java小咖秀

MySQL 性能优化 后端 MySQL性能优化

AI开发效率低,你可以试试华为NAIE AutoML

华为云开发者联盟

华为 AI 框架 AutoML NAIE平台

一文搞懂PID控制算法

不脱发的程序猿

3月日更 PID 控制算法 智能控制 工业控制

Elasticsearch Segments Merging 磁盘文件合并

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

解析分布式应用框架Ray架构源码

华为云开发者联盟

gRPC API 框架 ray 分布式应用框架

用户行为分析模型实践(一)—— 路径分析模型

vivo互联网技术

大数据 数据分析 用户行为分析

Ubuntu 日常系列:常用软件

TroyLiu

Linux ubuntu Ubuntu20.04

学无定法——知识反转效应

Justin

心理学 28天写作 游戏设计

书单|互联网企业面试案头书之程序员软技能篇

博文视点Broadview

【LeetCode】螺旋矩阵Java题解

Albert

算法 LeetCode 28天写作 3月日更

万物互联网络在企业中的价值和展望 | 趋势解读

物联网

面试官再问你优先级队列,请把这篇文章丢给他

Silently9527

Java 优先级队列 二叉堆

初识Golang之聊聊类型

Kylin

3月日更 21天挑战 Java转go Go 语言

集成融云 IMLib 时,如何实现一套类似于 IMKit 的用户信息管理机制

融云 RongCloud

Spring AOP 执行顺序 && Spring循环依赖(面试必问)

hepingfly

Java spring aop 循环依赖

混合编程:如何用python11调用C++

华为云开发者联盟

c++ 编程 语言 python11 混合编程

啥子叫递归哟!!!(阶乘)

依旧廖凯

28天写作 3月日更

javascript中的Strict模式

程序那些事

JavaScript ES6 程序那些事

利用深度元学习对城市销量进行预测 | AAAI 2021论文解读

京东科技开发者

零售 预测

数据营销“教父”宋星十年倾心之作,让数据真正赋能企业

博文视点Broadview

有状态容器应用,从入门到实践

焱融科技

Kubernetes 容器 云原生 焱融科技 分布式存储

整理 自动备份MYSQL数据库shell脚本

edd

京东618:揭秘大促销背后的个性化推荐_服务革新_魏星_InfoQ精选文章