论文解读 | 数十亿商品中,长尾和新品怎么找到新主人?

简介: 在推荐系统的发展历程中,面临两个核心问题:用户的长尾覆盖度以及新商品的冷启动,在这两个维度下的模型扩展能力的瓶颈一直以来对广大推荐算法工程师都是不小的挑战。本文基于Graph Embedding的理论知识提出了创新框架,旨在提升商品推荐的多样性和发现性。

小叽导读:在推荐系统的发展历程中,面临两个核心问题:用户的长尾覆盖度以及新商品的冷启动,在这两个维度下的模型扩展能力的瓶颈一直以来对广大推荐算法工程师都是不小的挑战。本文基于Graph Embedding的理论知识提出了创新框架,旨在提升商品推荐的多样性和发现性。


一、背景介绍

淘宝个性化推荐场景所面对的数以十亿计的用户、商品、交互数据和各类属性构成了一个规模庞大的异构网络,如果能将网络中的各类信息统一建模在同一个维度空间,用向量的方式进行表达,它的简洁和灵活性会有巨大的应用空间。据我们所知,业界尚未有对如此大规模复杂网络进行graph embedding建模的成熟应用。

在本篇论文中,我们针对推荐场景,基于Graph Embedding的理论知识创新框架:

利用用户的序列化行为构建graph,结合随机游走技术对用户行为进行"虚拟采样"拟合出多阶的潜在兴趣信息;同时利用side information-based模型进行知识泛化学习,提出了Graph Embedding with Side Information(GES)和Enhanced Graph Embedding with Side Information (EGES)两种向量聚合算法,对上亿级别的商品和其side-information进行embedding建模,并作为一种全新的召回在手淘首图个性化场景部署应用。

实验结果显示,新提出的GES和EGES算法得到显著效果提升,并解决了用户覆盖和商品冷启动问题,提升了商品推荐的多样性和发现性。

二、Base Graph Embedding算法框架

Graph Embedding在淘宝推荐的核心框架如图所示:

image.png

首先是构建网络,由于商品推荐的整个网络是大规模的异构网络,我们利用用户对商品的行为序列,提出并定义了新的转移概率连接图,有效克服用户真实session行为中存在的大量热点节点问题:以每个节点为中心,利用其扩散子节点的连接频次及行为共现频次计算转移概率,构建全网的转移概率连接图。

其次则根据构建好的有向带权图,在此基础上进行random walk随机游走,构造出千亿级别的多阶虚拟样本,用于后续的深度网络学习。最后则是对采样数据进行模型训练,将离散的网络节点表示成向量化,最大化节点共现,使用Sampled Softmax来做超大规模分类的分类器,优化的目标是:

image.png

三、GES 和 EGES 算法

相比于传统CF算法,上述的推荐Graph Embedding框架能够捕捉商品的高阶相似度,拥有发现能力,但是商品冷启动问题仍然是一个挑战,为了解决这一难题,我们在 Graph Embedding 的 Skip-Gram阶段融入节点的side-information,提出GES算法,核心是同时学习网络节点和节点各side-information的隐式表达,将多维隐向量融合在一起作为商品的最终表示。

在 GES 的基础上,不同商品对不同维度的信息的贡献程度是不一样的,比如 iPad 和 iPhone的相似性来自于他们拥有共同的品牌,两件秋装的相似性则源于它们在同一个店铺销售。因此进一步提出了 EGES,用加权pooling层来加强向量融合的准确性。GES和 EGES 的融合公式分别为:

image.png

EGES 的 Embedding 网络结构如下图所示:

image.png

引入side-information后同店、相似店铺、同品牌、相似品牌等宝贝在排序中更为靠前;同时对于一些没有出现行为的、新鲜上架的宝贝,根据它的side-information对它进行embedding表达,有效解决了冷启动问题。

四、实验结果

为了验证算法的有效性,我们分别在淘宝内部数据集和 Amazon 开放数据集上进行了实验,并进一步将算法部署到淘宝首图个性化线上业务中,均得到显著的效果提升:

image.png

下图直观的解释了结果,运动鞋类目下的宝贝embedding向量降维,颜色代表不同子类目,每一个点代表一个商品降维后的坐标,可以看出同一个类目下的宝贝embedding向量聚合在一起。

image.png

下图冷启动商品的召回的示例中,冷启动商品和所找到的相似商品在side-information维度上的泛化相似度,证明我们提出的EGES算法用泛化学习的方式处理了冷启动问题。

image.png

五、系统部署

EGES 算法在17年双十一前夕部署上线,完整的工程架构如下图所示:

image.png

本篇为《Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba》的论文解读,该论文收录于 SIGKDD 2018 ,点击文末“阅读原文”,即可进入论文下载页面。

目录
相关文章
【IntelliJ IDEA】idea修改文件的file is read-only
【IntelliJ IDEA】idea修改文件的file is read-only
3464 0
|
9月前
|
SQL Java 数据库连接
事务的七种传播行为及其应用场景
本文介绍了事务的七种传播行为及其应用场景,包括 PROPAGATION_REQUIRED、PROPAGATION_SUPPORTS、PROPAGATION_REQUIRES_NEW 等,帮助开发者理解事务管理机制。同时讲解了 Java 中 SQL 操作与对象数据不同步的问题,强调重新查询与手动管理的必要性,并说明 MyBatis 批量操作的最佳实践。
|
6月前
|
存储 人工智能 自然语言处理
AI 十大论文精讲(五):RAG——让大模型 “告别幻觉、实时更新” 的检索增强生成秘籍
本文解读AI十大核心论文之五——《Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks》。该论文提出RAG框架,通过“检索+生成”结合,解决大模型知识更新难、易幻觉、缺溯源等问题,实现小模型高效利用外部知识库,成为当前大模型落地的关键技术。
1791 155
|
8月前
|
机器学习/深度学习 存储 人工智能
论文阅读——Agile-Quant:面向大语言模型边缘端更快推理的激活引导量化框架
Agile-Quant是一种针对大语言模型(LLMs)在边缘设备上高效推理的激活引导量化框架。它通过分析激活特性,提出了一种结合激活引导量化与token剪枝的优化策略,有效缓解了激活量化中的异常值问题,并提升了模型在边缘设备上的推理速度。该方法在LLaMA、OPT和BLOOM等主流LLMs上验证,实现了高达2.5倍的实际加速,同时保持了优异的模型性能。
686 3
|
5月前
|
人工智能 自然语言处理 安全
AI 十大论文精讲(六):拆解 LLM 智能体的 “通用密码”
本文解读复旦NLP团队2023年重磅综述《The Rise and Potential of Large Language Model Based Agents》,系统剖析LLM智能体“大脑-感知-行动”三大核心模块,涵盖单智能体、多智能体、人机协作与智能体社群四大应用场景,提炼工具SKMA体系、安全护栏、结果检查三大落地要点,并提出AGI路径、虚拟到物理迁移等开放问题,为构建通用智能体提供统一范式,被誉为该领域“入门圣经”。
862 4
|
5月前
|
Linux C++ iOS开发
C++ SDL库入门指南(从零开始学习SDL2图形与游戏开发)
本教程来源https://www.vpshk.cn/带你使用C++和SDL2从零开始创建图形窗口,涵盖环境搭建、代码解析与编译运行,适合入门游戏开发与多媒体应用,轻松掌握跨平台图形编程基础。
|
数据可视化 Linux 网络安全
零基础搭建WordPress博客全流程指南!
本指南详细介绍如何使用宝塔面板与WordPress搭建个人博客。宝塔面板提供可视化操作,简化服务器管理;WordPress拥有丰富的主题和插件生态,支持快速建站。教程涵盖准备阶段(服务器、域名、面板安装)、环境配置、站点创建、SSL证书申请、WordPress一键部署及网站配置等步骤,并推荐必备插件提升安全性和性能。零基础用户也可轻松上手,适合日均5000PV以下的博客需求,扩展性强,助你开启创作之旅。
1395 7
|
搜索推荐 测试技术
对淘宝购物车进行测试用例设计
对淘宝购物车进行测试用例设计
1252 0
|
缓存 算法 搜索推荐
618省心凑背后的新算法——个性化凑单商品打包购推荐
作为购物导购链路的一个重要环节,凑单旨在快速帮助用户找到达成某个满减门槛(比如满300减50)的商品,完成性价比最高的跨店组合结算。
1377 0
618省心凑背后的新算法——个性化凑单商品打包购推荐
|
存储 Serverless C语言
【C语言基础考研向】11 gets函数与puts函数及str系列字符串操作函数
本文介绍了C语言中的`gets`和`puts`函数,`gets`用于从标准输入读取字符串直至换行符,并自动添加字符串结束标志`\0`。`puts`则用于向标准输出打印字符串并自动换行。此外,文章还详细讲解了`str`系列字符串操作函数,包括统计字符串长度的`strlen`、复制字符串的`strcpy`、比较字符串的`strcmp`以及拼接字符串的`strcat`。通过示例代码展示了这些函数的具体应用及注意事项。
1086 7