写点什么

eBay 开发新的推荐模型,从数据中挖掘商机

作者:Claudio Masolo

  • 2023-03-02
    北京
  • 本文字数:1109 字

    阅读完需:约 4 分钟

eBay开发新的推荐模型,从数据中挖掘商机

eBay 基于自然语言处理(NLP)技术,特别是BERT模型开发了一个新的推荐模型。这个被称为“Ranker”的新模型使用词袋之间的距离得分作为特征,从语义角度分析商品标题信息。与之前的模型相比,Ranker 帮助 eBay 将原生应用(Android 和 iOS)和 Web 平台上的购买、点击和广告指标分别提升了 3.76%、2.74%和 4.06%。

 

eBay Promoted Listing Similar Reccomendation Model(PLSIM)由三个阶段组成。其中获取 Promoted Listing Similar,也就是所谓的“召回集”,是最为相关的。应用使用离线历史数据训练过的 Ranker,根据购买的可能性对召回集进行排序,通过合并卖家广告率对列表进行重新排序。这个模型的特征包括:推荐商品历史数据、推荐商品与种子商品的相似性、产品类别、国家和用户个性化特征。使用梯度提升树对模型进行连续训练,根据相对购买概率对商品进行排序。在相似度检测中加入基于深度学习的特征显著提升了性能。

 

之前的推荐排名模型使用 Term Frequency-Inverse Document Frequency(TF-IDF)和Jaccard相似度来评估产品标题。这种基于节点标记的方法存在最基本的局限性,并且它不会考虑句子的上下文和同义词。相反,基于深度学习的 BERT 在语言理解方面表现出色。由于 eBay 语料库不同于书籍和维基百科,eBay 工程师引入了 eBERT,一种 BERT 变体,使用 eBay 商品标题数据进行了预训练。它使用维基百科的 2.5 亿个句子和 eBay 的 30 亿个多语言标题进行了训练。在离线评估中,这个 eBERT 模型在 eBay 的一组标记任务上的表现显著优于开箱即用的 BERT 模型,F1 得分为 88.9。

 

eBERT 架构对于高吞吐量推断来说太重了,可能无法及时推送推荐结果。为了解决这个问题,eBay 开发了另一个模型 microBERT,它是 BERT 的另一个轻量级版本,并针对 CPU 推理进行了优化。microBERT 将 eBERT 作为训练阶段的老师,使用了知识蒸馏过程。通过这种方式,microBERT 保留了相当于 eBERT 95%到 98%的推理质量,而时间减少了 300%。

 

最后,microBERT 使用了叫作InfoNCE的对比损失函数进行微调。商品标题被编码成词袋向量,模型的训练目标为增加已知彼此相关的这些向量(表示标题的词袋)之间主题距离的余弦相似度,同时降低迷你批次中所有其他商品标题对的余弦相似度。

 

这种新的排名模型在购买排名(售出商品的平均排名)方面有 3.5%的改进,但其复杂性导致难以进行实时的推荐。这就是为什么要通过日批处理作业生成标题词袋,并存储在 NuKV(eBay 的云原生键值存储)中,将商品标题作为键,词袋作为值。通过这种方法,eBay 能够满足其在延迟方面的要求。

 

原文链接

https://www.infoq.com/news/2023/01/ebay-recommendations-odel/


相关阅读:

构建生产可用的推荐系统需要注意哪些问题?

京东电商推荐系统的应用实践|InfoQ 公开课

推荐系统的未来发展

2023-03-02 08:002625

评论

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

https 与 http 区别

一个大红包

8月日更

毕业设计:电商秒杀系统

唐高为

Linux之rcp命令

入门小站

Linux

架构训练营毕业总结

Neil43

架构训练营

Seata搭建与分布式事务入门

码农参上

SpringCloud spring cloud alibaba seata 8月日更

Vue进阶(三十七):created、mounted等钩子函数整理

No Silver Bullet

Vue 8月日更

在线日期计算器

入门小站

工具

crudapi增删改查接口零代码产品成功案例之商会联盟卡项目

crudapi

Java Vue 零代码 crudapi qusar

【Dubbo3.0 技术专题】总体技术体系介绍及技术指南(目录)

洛神灬殇

dubbo Dubbo服务 8月日更 Dubbo3

Flutter Android 端 FlutterEngine Java 相关流程源码分析

工匠若水

flutter android 面试 8月日更

docker介绍与安装

Rubble

Docker 8月日更

实战架构训练营总结

贯通

#架构实战营

【Flutter 专题】66 图解基本约束 Box (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

模块五作业

Mr.He

架构实战营

Vue进阶(三十六):created() 详解

No Silver Bullet

Vue 8月日更

有书香气的七夕节

箭上有毒

8月日更

配置Flink流式应用(九)

Databri_AI

flink Kubernetes YARN

QDS04 TensorFlow

耳东@Erdong

tensorflow 8月日更 qds

「让我们一起Golang」让协程自己kill自己

Regan Yue

协程 Go 语言 8月日更

LeetCode题解:208. 实现 Trie (前缀树),对象,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

入职新公司后如何快速上手项目

咔咔

php MySQL 数据库

【设计模式】中介者模式

Andy阿辉

C# 后端 设计模式 8月日更

手撸二叉树之二叉树的堂兄弟节点

HelloWorld杰少

数据结构与算法 8月日更

架构实战营毕业总结

唐高为

python-类,对象--》多态,封装,继承

加里都好

Python

JavaScript 中如何比较变量的相等

devpoint

JavaScript ES6 8月日更

架构实战营 | 毕业总结

架构实战营

Android开发:Android Studio插件GsonFormat根据Json自动生成javabean的方法

三掌柜

8月日更 8月

MySQL 系列教程之(四)MySQL 中的数据类型

若尘

MySQL 数据库 8月日更

如何设计一个容错的微服务架构

架构精进之路

架构 微服务 8月日更

Python开发篇——基于React-Dropzone开发上传组件

吴脑的键客

Python flask React

eBay开发新的推荐模型,从数据中挖掘商机_AI&大模型_InfoQ精选文章