写点什么

京东 LBS 推荐算法实践

  • 2023-04-07
    北京
  • 本文字数:3444 字

    阅读完需:约 11 分钟

京东LBS推荐算法实践

作者:京东零售 郑书剑

1、推荐 LBS 业务介绍

1.1 业务场景

现有的同城购业务围绕京东即时零售能力搭建了到店、到家两种业务场景。同城业务与现有业务进行互补,利用高频,时效性快的特点,可以有效提升主站复访复购频次,是零售的重要战略方向。

1.2 名词解释

LBS:基于位置的服务(Location Based Services)。


下文 LBS 商品代指京东小时购商品;LBS 推荐代指京东基于地理位置的推荐能力,需要考虑到附近的供给和履约能力。


B2C:直接面向消费者销售产品和服务商业的零售模式。


下文 B2C 商品代指京东主站商品,包括自营/pop 等非小时购商品;B2C 推荐指主站主流推荐能力,不需要考虑当前地理位置的供给,而是面向全国用户的推荐模式。

1.3 推荐模式

主要推荐模式集中在一下四种流量场域:


1、附近-商品推 feeds 推荐;


2、附近-纯门店推荐;


3、附近-门店-商品列表页推荐;


4、主站核心推荐场景 lbs 商品混排推荐(首页为你推荐、购物车、我的京东等);


2、推荐系统设计

目前主站核心场景从支持 b2c 商品推荐,b2c 内容素材/聚合素材推荐拓展到更丰富的业务形式,支持 lbs 业务逻辑推荐,给用户带来更多元化的体验,同时给线下商家和运营提供了更丰富的流量渗透策略。


目前 lbs 商品推荐架构和 b2c 商品推荐架构的推荐流程紧密的耦合在一起,上线 lbs 商品推荐相关策略,都需要考虑到 b2c 推荐业务的逻辑无 diff,效率低,兼容性差,迭代成本高,不利于后续优化策略的快速迭代。通过对 lbs 商品推荐的整体链路进行升级,与目前的 b2c 商品推荐链路进行解耦,提升系统的拓展性,更易维护,提高算法策略接入的效率。b2c 商品和 lbs 商品均具备独立 quota 空间,推荐链路更加清晰,效果优化空间更大。


3、算法实践

3.1 概述

我们的前端展现形态分为纯商品、纯门店、门店-商品三种形态,且推荐位分布较多,为了减少人力维护成本,同时考虑到 LBS 推荐模式和传统电商模式的差异,以及流量场域分布和推荐展示形态的区别,我们针对 LBS 推荐能力进行了单独的设计,抽象出一套推荐模板可以同时解决三种推荐模式,支持跨场景复用。


首先前端请求入参用户当前的经纬度信息,推荐系统从 gis 系统获取当前可履约的门店信息;推荐系统根据用户个性化信息和门店-商品信息,为用户推荐感兴趣的附近门店-商品。


此时的 item 粒度为门店+商品粒度,为了同时保证用户对门店和商品兴趣的同时感知,区别于 b2c 商品的推荐模式,我们将整个系统分为两个阶段。在一阶段对用户感兴趣的门店进行推荐,在二阶段对用户的感兴趣的门店下的商品进行推荐。在两个阶段内完成门店推荐、商品推荐、门店-商品推荐三种模式,三种推荐模式可复用算子达到 80+%,覆盖站点从京东主站到小程序,覆盖场景从首页-为你推荐到营销推荐位,总计覆盖核心推荐位 30+。


3.2 LBS 召回算法实践

3.2.1 背景概述

背景:LBS 推荐是基于地理位置的推荐场景,和主站 b2c 推荐模式有所差异;用户对更多维度的因素敏感,如门店质量,配送距离,配送时效等等;


所以推荐系统需要在召回的时候就考虑到这些体验因素,所以我们将 LBS 的召回算法设计成两阶段的模式。一阶段根据用户兴趣(user-store 兴趣)和门店质量(ka/销量/距离/时效)等因素召回用户感兴趣的高质量/距离近/配送快的门店。在二阶段进行商品召回用于召回用户感兴趣的商品。


同时我们面临着以下几个问题:


冷启问题:我们是新业务+新场景,新品多,新用户多,相比较成熟的 b2c 场景,lbs 场景交互稀疏问题严重;


跨场域兴趣迁移:用户在 b2c 场景和 lbs 场景的兴趣表达往往是不一样的,不同场景的兴趣表达往往存在着一定的差异和联系,怎么精准捕捉和表达用户跨场景体现出的兴趣是新场景初期发展的重要工作;


兴趣激发周期短:lbs 场景用户决策成本低,转化链路短,高转化场景下更要关注物品相关关系的表达;


我们初期也对以上几个问题进行了简单的探索,通过跨域兴趣探索和优化 i2i 关联关系简单的验证了我们的想法。

3.2.2 召回算法实践

1、冷启动召回

冷启动召回一般有以下几种方案:


•商圈热门:缺点是和 user 无关,纯热门 item 召回,相关性差;这里我们将全局热销/poi 热销商品作为兜底召回,用于补充;


•cross domain:是一种基于不同场域(如京东 b2c 场景/lbs 场景)共同用户的行为将不同域的用户映射到同一个向量空间,然后借助其他域的丰富行为提升本域冷启动用户的召回效果。


我们这里主要针对 cross domain 的方式进行了一些简单探索来优化跨场域用户的冷启体验效果。


1)潜客画像召回:根据用户在 b2c 场景的相关行为(诸如偏好类目是否为 lbs 转化优势类目)以及是否对 lbs 相关场景有前置行为的用户(推荐下浏览过附近/搜索内点击过小时购通栏等),来判断当前用户是否为 lbs 的潜在转化用户,给这些用户推荐其在 b2c 偏好下的高转化 lbs 商品;


2)跨域类目召回:通过对 b2c/lbs 共现商品进行挖掘,得到 b2c 到 lbs 的类目协同关系,根据用户在 b2c 场景下的偏好类目推荐对应的 lbs 类目下的商品;


3)跨域 i2i 召回:结合 b2c/lbs 的用户的跨场域行为,对 lbs 商品和 b2c 商品进行 i2i 关系挖掘,得到 b2c sku 到 lbs sku 的相似相关关系,使用 b2c 的用户行为为其推荐 lbs 商品;


4)间接召回:基于 b2c 召回结果,为用户召回相似相关的 lbs 商品。

2、i2i 直接召回

基于用户在 lbs 场景的行为直接召回 lbs 商品,常见方法有如 itemCF,swingCF 等。


我们针对 lbs 场景高转化的特点对 i2i 召回进行了针对性的优化。我们对 lbs 场景的用户行为进行了分析,发现用户的点击行为体现了商品的相似性(同品比较等),订单行为体现了商品之间的相关关系(搭配购等),但是用户的订单行为往往非常稀疏,且考虑到 lbs 商品还含有地域属性,直接使用订单行为构建相关的 i2i 关系得到的结果非常稀疏,召回的下发占比往往比较低。


于是我们把订单的 i2i 关系抽象为类目-类目,产品词-产品词的的粗粒度相关关系。然后对全站 lbs 行为进行 i2i 关系挖掘,得到的结果使用粗粒度相关关系进行过滤,得到了比直接使用定订单行为构建 i2i 关系更丰富的结果,召回效率也比相似关系的效率更高。

3、向量化召回

i2i vs embed:i2i 的相似相关关系表现的更加精准,但是覆盖率低;embed 方式新颖性好,覆盖率高,但是关系表达相对不这么精准。


为了解决前文中提到的问题,对用户行为进行预处理,对异常用户和异常表现的商品先进行过滤,防止脏数据对整体数据分布造成影响,行为选取时,优先保留订单行为附近的用户行为(高质量行为),同时历史行为序列进行了 session 划分,保证行为的连续性和相关性,更能体现出用户决策周期内的集中兴趣,优化 i-i 的关联关系。


模型方面我们采用了随机游走的 graph embedding 建模方式,和传统方案差异不大:行为序列挖掘 -> 同构图构建 -> 带权重游走序列采样 -> skip-gram+负采样训练,得到物品的 item embedding。


同时这里的用户行为序列的选取也可以参考跨域的思路,使用 b2c 行为进行补充,进一步解决 lbs 场域召回稀疏的问题。线上即可以使用 i2i 的方式进行召回,也可以使用 u2i 的方式进行召回。相比 i2i 直接召回,曝光占比更高,效率更高。

4、其他召回通道

还有诸如其他的根据品类兴趣和常购行为的兴趣画像召回,复购、常购召回等。

3.3 排序模型实践

排序准备方面,由于历史遗留原因,目前无论是用户在 lbs 场域的行为,还是 lbs 商品画像都有所缺失。于是第一步,我们首先对基础数据进行了维护:1)统一了全站 lbs 行为接入口径:通过门店 pv 和商详的 pv 埋点,捕捉全站 lbs 行为;2)建立了 user-sku 和 user-store 的用户画像和 lbs 商品画像。


排序特征方面:在复用了 b2c 商品的部分精排特征的基础上,构建了 lbs 场景的特有特征,如 lbs 场景用户行为序列,lbs 场景商品/门店反馈特征,以及配送时效,配送费,配送距离等 context 类特征。


模型优化方面:引入了用户在 b2c 场景的用户行为,同时引入了 b2c 训练样本做样本增强。


模型结构方面:在模型输入的方面分为和 b2c 共享的部分,以及 lbs 独立特征输入的部分,异构 b2c/lbs 用户行为序列提取多场域用户兴趣,与 B2C 场景进行多场景联合优化。上线时进行拆图,仅使用 lbs task tower 进行打分。


4、总结

lbs 推荐能力作为创新业务,我们通过模板化推荐能力,快速承接推荐位 30+,支持三种推荐模式,初期快速的助力了全渠道的业务发展。


后续针对业务理解,经过对 LBS 推荐链路的独立拆分,以及召回和精排迭代优化。在首页-为你推荐上,lbs 商品曝光 UV 占比相对 Q3 提升 488% ,CTR 相对 Q3 提升 159.52%。同时带动整体大盘指标提升,首页整体浏览深度显著提升 0.39%,推荐整体 uctr 显著提升 0.79%,推荐人均三级类目点击数显著提升 0.76%,推荐外页 uctr 显著提升 0.37%。


后续我们将继续结合场景特点和业务理解,逐渐完善优化 LBS 流量分发能力,更好服务商家和用户,提升京东 LBS 推荐能力。

发布于: 刚刚阅读数: 3
用户头像

拥抱技术,与开发者携手创造未来! 2018-11-20 加入

我们将持续为人工智能、大数据、云计算、物联网等相关领域的开发者,提供技术干货、行业技术内容、技术落地实践等文章内容。京东云开发者社区官方网站【https://developer.jdcloud.com/】,欢迎大家来玩

评论

发布
暂无评论
京东LBS推荐算法实践_算法_京东科技开发者_InfoQ写作社区