虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)
目录
1 论文简介
2 文章的主要贡献
3 文章技术的简要说明
4 技术的详细说明
4.1 GAN-SD:生成客户特征
4.2 MAIL:生成交互过程
4.3 ANC:动规范约束
5 实验设定及结果
6 结论
7 参考
1 论文简介
南京大学LAMDA团队的侍竞成、俞扬等人在AAAI 2019发表了一篇论文,介绍了在淘宝这个大型在线零售平台上利用强化学习进行商品搜索的项目。论文题为“Virtual-Taobao: Virtualizing Real-World Online Retail Environment for Reinforcement Learning”,详细描述了该项目的实施过程。
在这项研究中,团队没有直接在淘宝平台上训练强化学习模型,而是提出了一种环境构建方法:首先构建虚拟淘宝(Virtual-Taobao)。这个虚拟淘宝是一个从历史客户行为数据中学习的模拟器。通过在虚拟淘宝上训练策略,可以避免实物采样的高成本。实验结果表明,纯粹在虚拟淘宝上训练的策略,通过在线A/B测试,其性能显著优于传统的监督方法,并且无需物理采样成本。
论文链接:https://arxiv.org/pdf/1805.10000.pdf。研究人员希望这项工作能够为在复杂物理环境中应用强化学习提供新的启示。
2 文章的主要贡献
为了提高仿真精度,我们提出了用于分布匹配的客户特征生成方法——GAN-SD(Generative Adversarial Network for Simulation Distribution)。此外,我们引入了MAIL(Multiagent Adversarial Imitation Learning),以生成更具一般化的客户行为。同时,为了进一步避免模拟器缺陷带来的过拟合,我们提出了ANC(Action Norm Constraint)策略来规范策略模型。
Virtual-Taobao架构专为强化学习构建,并在实验中基于数以亿计的真实淘宝客户记录进行训练。与真实淘宝相比,Virtual-Taobao忠实地还原了真实环境的重要属性。研究表明,在虚拟淘宝上纯粹训练的策略,通过在线A/B测试,其物理采样成本为零,且在现实世界中的性能显著优于传统的监督方法。
3 文章技术的简要说明
在这些场景中直接应用强化学习 (RL) 的一个主要障碍是,当前的RL算法通常需要与环境进行大量交互,这会带来很高的物理成本,如实际的金钱消耗、长时间的实验周期、糟糕的用户体验,甚至可能危及生命(如在医疗任务中)。为了避免这些物理成本,RL训练通常使用模拟器。例如,谷歌在数据中心冷却方面的应用展示了一个成功的案例:使用神经网络模拟系统动态,然后在模拟环境中通过先进的RL算法训练策略。
在淘宝商品搜索项目中,我们采用了类似的方法:构建一个模拟器,即虚拟淘宝 (Virtual-Taobao),并在模拟器中离线训练策略,以实现长期收益最大化。理想情况下,这样获得的策略在真实环境中也能表现良好,或者至少可以为更经济的在线调优提供良好的初始条件。然而,与模拟数据中心动态不同,模拟数亿客户在动态环境中的行为更具挑战性。
我们通过生成客户和交互数据来构建虚拟淘宝。现有的模仿学习方法可以从数据中推导出策略。例如,行为克隆 (Behavior Cloning, BC) 方法通过监督学习从状态-行为数据中学习策略,但需要满足独立同分布 (i.i.d.) 假设,这在RL任务中不总是适用。逆强化学习 (IRL) 方法从数据中学习奖励函数,再根据奖励函数训练策略,放松了i.i.d.假设,但假设环境是静态的,当环境变化时可能会失败。因此,这些方法在构建虚拟淘宝时不太实用。
为了更好地生成虚拟客户,我们提出了GAN-for-Simulating Distribution (GAN-SD) 方法,因为我们发现传统方法(如GMM和GAN)不适合处理这种高维数据。为了生成交互数据,我们提出了多主体对抗模仿学习 (Multi-agent Adversarial Imitation Learning, MAIL) 方法。MAIL同时学习客户策略和平台策略,采用了GAIL的思想,使用生成对抗框架训练一个鉴别器来区分模拟交互和真实交互,并将区别信号作为奖励反馈,训练客户策略和平台策略,从而产生更真实的交互。
在生成客户和交互数据后,虚拟淘宝就完成了,可以用于训练平台策略。然而,我们注意到RL算法的强大足以过拟合虚拟淘宝的不足,即在虚拟环境中表现良好但在现实中表现差。因此,我们提出了行动规范约束 (Action Norm Constraint, ANC) 来规范策略。
综上所示,整个过程用到了三种算法:
- GAN-SD:生成虚拟客户
- MAIL:生成虚拟交互
- ANC:平台策略(RL容易过拟合)
在实验中,我们从数亿条客户记录中构建了虚拟淘宝,并与真实环境进行对比。结果显示,虚拟淘宝成功地重现了接近真实环境的属性。我们利用虚拟淘宝训练平台策略,实现了收益最大化。与传统的监督学习方法相比,虚拟淘宝训练的策略在真实环境下的收益提高了2%以上,且无需物理实验成本。
4 技术的详细说明
商品搜索是淘宝的核心业务,淘宝可以被视为一个与客户交互的搜索引擎系统。淘宝的搜索引擎需要在毫秒级响应数十亿次商品搜索请求,同时客户对商品的偏好也非常多样化。从引擎的角度来看,淘宝平台的工作原理如下:
1)客户访问淘宝并发送搜索请求。
2)搜索引擎对相关商品进行排序,然后显示页面视图 (PV) 以响应搜索请求。
3)客户根据页面视图进行反馈,例如购买商品、浏览下一页或离开淘宝。
4)搜索引擎接收反馈信号,并为下一个PV请求做出新的决定。
淘宝的业务目标之一是通过优化PV显示策略来实现销售量的最大化。由于客户行为会受到之前PV的影响,在优化搜索引擎策略时,将其视为多步骤决策问题,而不是单步监督学习问题,是更为合理的选择。因此,考虑到搜索引擎作为代理,以及客户的反馈作为环境,淘宝中的商品搜索是一个连续决策问题。假设客户只记住有限数量的最新PV,这意味着反馈信号仅受搜索代理的m个历史行为的影响。
如上图所示,淘宝搜索在搜索引擎和客户的视角下具有以下特性:
1)搜索引擎视角:搜索引擎根据客户的搜索请求和之前的反馈信号,进行商品排序并显示PV。
2)客户视角:客户对搜索引擎显示的商品做出反应,其行为(即反馈信号)受到最近m个PV的影响。这些PV由搜索引擎生成,并受到客户最后反馈的影响。
从这个角度来看,搜索引擎和客户互为彼此的环境,二者的策略是耦合在一起的。如果客户只是浏览下一页而没有其他行为,那么搜索引擎记录的客户特征和搜索请求将保持不变。如果客户发送了另一个请求或离开淘宝,记录状态就会发生变化。
考虑到客户对环境更为敏感,我们对客户行为进行了特别设计。客户行为受其想要的内容 (S) 和看到的内容 (A) 的影响,其中S是引擎观察结果,即包含请求的客户特征,A是引擎动作,即向客户显示的页面视图。由于顾客的购买意图会随浏览页数的变化而变化,我们设Sc = S×A×N,其中N表示页面索引空间。
总结来说,淘宝商品搜索是一个复杂的连续决策过程,涉及搜索引擎和客户之间的动态交互。通过合理的设计和优化,我们可以提高搜索引擎的效率,从而最大化销售量。
4.1 GAN-SD:生成客户特征
为了构建虚拟淘宝,首先需要生成客户特征,即对用户 Uc进行采样,包括来自 Pc的请求,以触发交互过程。生成的客户分布应与真实分布相似。然而,在高维空间中学习分布是一个极具挑战性的任务。像高斯混合模型(GMM)这样的经典方法很难实现这种相似分布。
众所周知,GAN(生成对抗网络)框架在生成接近于原始数据的样本方面表现出色,尤其在生成图像方面取得了巨大成功。然而,传统的GAN判别器虽然能够判断某个实例是否来自真实世界,但它们缺乏捕获整体客户分布架构的能力。为了解决这一问题,并生成分布而不是单个实例,我们提出了用于模拟分布的生成对抗网络(GAN-SD),其算法如算法1所示。
GAN-SD与传统的GAN类似,由生成器G和判别器D组成。在GAN-SD中,判别器的主要目标是通过最大化特定的目标函数来有效区分生成的数据和训练数据。而更新后的生成器则通过最大化另一目标函数,利用KL散度和熵约束,从真实数据中学习更丰富的指导信息。这使得GAN-SD能够生成比传统GAN更优秀的分布。
GAN-SD(用于模拟分布的生成对抗网络)和传统的GAN在应用和设计目标上存在一些关键区别。以下是对这些差异的详细解释:
传统的生成对抗网络 (GAN) 主要包括两个部分:生成器 (Generator) 和判别器 (Discriminator)。其工作流程如下:
- 生成器 (G):从随机噪声中生成数据样本,尝试骗过判别器。
- 判别器 (D):试图区分真实数据和生成器生成的数据样本。
传统GAN的训练目标是让生成器生成的样本尽可能接近真实数据分布,而判别器尽可能准确地区分真实样本和生成样本。具体步骤如下:
GAN-SD的改进之处:
4.2 MAIL:生成交互过程
在用户策略是未知的情况下同时训练customer policy 和 engine policy,因为不知道customer reward function,所以采用IRL(模仿学习中的一种算法)去生成决策模型。
通过模拟客户策略在虚拟的淘宝平台上生成客户与平台之间的互动是本文的目标。文章采用基于GAIL思想的多智能体对抗模仿学习(MAIL)方法来实现这一目标。GAIL允许智能体在训练期间与环境进行交互,并且奖励函数在训练过程中不断优化。需要注意的是,在GAIL的训练过程中,智能体可以访问环境。然而,训练客户策略时需要将淘宝平台视为未知或动态环境。
MAIL与在静态环境中训练单一智能体策略的GAIL有所不同,它是一种面向多智能体的训练策略,适用于客户策略和平台引擎策略的训练。通过这种方法,生成的客户策略可以包含多种搜索引擎策略。
MAIL算法同时训练两种策略——代理和环境(平台),只需使用历史数据而无需访问真实环境。以下是MAIL算法的伪代码示例:
MAIL(Multi-Agent Imitation Learning)利用了模仿学习技术,并且涉及多智能体的训练方法。这种方法借鉴了GAIL(Generative Adversarial Imitation Learning)的理念,但在实现上有所不同。GAIL通过直接从专家数据中学习策略,首先学习专家数据的奖励函数(通过IRL,Inverse Reinforcement Learning),然后使用强化学习方法学习到与专家策略相近的策略。
而MAIL则需要训练两个智能体(agents)。这两个智能体可以是互相对抗的,也可以是协作的,彼此之间进行学习和优化。MAIL的目标是通过模仿学习技术,同时训练多个智能体,使它们能够在多智能体环境中学习有效的策略。通过这种方法,能够同时得到推荐策略和客户行为策略。
4.3 ANC:动规范约束
动规范约束(Action Norm Constraint, ANC),目的为了减少虚拟淘宝的过拟合。上一步使用IRL,会导致学到的策略和历史策略一样,即没有提升。提出用于控制所采取行动的范数的约束方法。
所采取行动的范数大于大多数历史行为的范数时,加上惩罚。
5 实验设定及结果
为了验证 “虚拟淘宝” 的效果,我们使用以下量度指标:
总营业额(TT):所售商品的总价值。总量(TV):销售商品的数量。购买页面的购买(R2P):产生购买行为的 PV 数量占总 PV 的比例。
图 学习后的顾客分布的对比
图 真实淘宝和虚拟淘宝之间的 R2P 对比
本文在线实验中采用了全部测量方式。在离线实验中只使用了 R2P 方法,因为我们没有对客户数量和商品价格做出预测。了便于在真实环境和虚拟环境之间比较这些指标,我们提前在真实环境(特别是淘宝网的在线 A/B 测试)中部署了随机引擎策略,并收集了相应的轨迹作为历史数据(约 4 亿条记录)。本文没有假设生成数据的引擎策略,也就是说,在构建虚拟环境时,可能采用的是任何未知的复杂模型。
表 虚拟数据和真实数据之间的 KL 分歧
表 采用行为克隆和 MAIL 算法的模拟器随时间的 R2P 性能提升
6 结论
为了解决淘宝网站中面向商品搜索的强化学习的高成本问题,本文提出了一个 “虚拟淘宝模拟器”,根据历史数据进行训练的。首先通过 GAN-SD 生成虚拟客户,并通过 MAIL 生成虚拟交互过程。研究结果表明,“虚拟淘宝” 能够忠实反映真实环境中的特征。
本文提出通过 ANC 策略训练性能更高的平台策略,让新的策略具备比传统监督学习方法更好的真实环境下的性能。“虚拟淘宝” 具备实际应用意义,也颇具挑战性。希望这项工作能够为将强化学习应用于复杂物理任务提供一些启示。
7 参考
https://blog.csdn.net/strawberry47/article/details/124558046
https://baijiahao.baidu.com/s?id=1626945450349711651&wfr=spider&for=pc
相关文章:

虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)
目录 1 论文简介 2 文章的主要贡献 3 文章技术的简要说明 4 技术的详细说明 4.1 GAN-SD:生成客户特征 4.2 MAIL:生成交互过程 4.3 ANC:动规范约束 5 实验设定及结果 6 结论 7 参考 1 论文简介 南京大学LAMDA团队的侍竞成、俞扬等…...

低代码组件扩展方案在复杂业务场景下的设计与实践
组件是爱速搭的前端页面可视化模块的核心能力之一,它将前端研发人员从无休止的页面样式微调和分辨率兼容工作中解放了出来。 目前,爱速搭通过内置的上百种功能组件(120),基本可以覆盖大部分中后台页面的可视化设计场景…...

震撼科技界的GPT-4o发布首日即遭“越狱破防”
前言 本文主要解读分析OpenAI最新推出的大型模型GPT-4o可能存在的越狱风险。 5 月14 日凌晨的科技圈再一次被OpenAI轰动,其发布的最新大模型GPT-4o,能力横跨语音、文本和视觉,这一成果无疑再次巩固了OpenAI在人工智能领域的领先地位。 然而…...

保护密码安全,探讨密码加盐及其在Go语言中的实现
介绍 在当今数字化时代,个人隐私和数据安全成为了人们关注的焦点之一。随着网络犯罪的不断增加,用户的密码安全性变得尤为重要。密码加盐作为一种常见的安全措施,被广泛应用于密码存储和认证系统中。本文将深入探讨密码加盐的概念、重要性以…...

Sqoop学习详细介绍!!
一、Sqoop介绍 Sqoop是一款开源的工具,主要用于在Hadoop(HDFS/Hive/HBase)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的H…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)
🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 生成哈夫曼树(100分) 🌍 评测功能需要订阅专栏后私信联系清…...

ctfshow web 单身杯
web签到 <?phperror_reporting(0); highlight_file(__FILE__);$file $_POST[file];if(isset($file)){if(strrev($file)$file){ //翻转函数include $file;}}要进行反转并且包含文件用data协议 自己写不好写可以用函数帮你翻转 <?php $adata:text/plain,<?eval(…...

天锐绿盾加密软件,它的适用范围是什么?
天锐绿盾数据防泄密软件的适用范围广泛,主要可以归纳为以下几点: 行业适用性: 适用于各个行业,包括但不限于制造业、设计行业、软件开发、金融服务等,特别是对数据安全性要求较高的行业。企业规模与类型: 适…...
mysql面试题 Day2
1 长文本如何存储? 可以使用Text存储 TINYTEXT(255长度) TEXT(65535) MEDIUMTEXT(int最大值16M) LONGTEXT(long最大值4G) 2 大段文本存储如何设计表结构? 分表存储 分表后多段存储 3 大段文本查找时如何建立索引࿱…...

Excel加密怎么设置?这5个方法不容错过!(2024总结)
Excel加密怎么设置?如何不让别人未经允许查看我的excel文件?如果您也有这些疑问,那么千万不要错过本篇文章了。今天小编将向大家分享excel加密的5个简单方法,保证任何人都可以轻松掌握!毫无疑问的是,为Exce…...

2024年下一个风口是什么?萤领优选 轻资产创业项目全国诚招合伙人
2024年,全球经济与科技发展的步伐不断加快,各行各业都在探寻新的增长点与风口。在这样的时代背景下,萤领优选作为一个轻资产创业项目,正以其独特的商业模式和前瞻的市场洞察力,吸引着众多创业者的目光。(领取ÿ…...

Redis 网络模型
一、用户空间和内核空间 1.1 linux 简介 服务器大多采用 Linux 系统,这里我们以 Linux 为例来讲解,下面有两个不同的 linux 发行版,分别位 ubuntu 和 centos,其实发行版就是在 Linux 系统上包了一层壳。 任何 Linux 发行版&#…...
【设计模式之组合模式 -- C++】
组合模式 – 树状结构,递归遍历 组合模式(Composite Pattern)是一种结构型设计模式,它可以让你将对象组合成树形结构,并且能像使用独立对象一样使用它们。这种模式定义了包含人和组的类,每个类都有可以在树形结构中显示的方法。这…...

C# 通过Win32API设置客户端系统时间
在日常工作中,有时可能会需要获取或修改客户端电脑的系统时间,比如软件设置了Licence有效期,预计2024-06-01 00:00:00到期,如果客户手动修改了客户端电脑时间,往前调整了一年,则软件就可以继续使用一年&…...

VirtualHere 允许通过网络远程使用 USB 设备,就像本地连接一样!
传统上,USB 设备需要直接插入计算机才能使用。有了 VirtualHere,就不再需要这样做,网络本身就变成了传输 USB 信号的电缆(也称为 USB over IP、USB/IP、USB over WiFi、USB over Ethernet、USB 设备服务器)。 此 USB …...

【Kubernetes】k8s 自动伸缩机制—— HPA 部署
一、在K8s中扩缩容分为两种: ●Node层面:对K8s物理节点扩容和缩容,根据业务规模实现物理节点自动扩缩容 ●Pod层面:我们一般会使用Deployment中的Replicas参数,设置多个副本集来保证服务的高可用,但是这是…...
MT1415 大小相同
题目 给定一个由N(<10)个正整数组成的数组A,生成一些最小元素和最大元素相同的子数组数(可以仅包含1个元素),统计这些子数组的数量并输出。 注:最大元素和最小元素相同就是数组中的元素全部为同一个值。如数组&am…...
使用python库moviepy完成视频剪辑
1.关于moviepy和原理 moviepy事github上面的一个开源项目,地址是:GitHub - Zulko/moviepy: Video editing with Python 官方文档地址: User Guide — MoviePy 1.0.2 documentation 中文版文档可参考: MoviePy中文手册 — mov…...
Java高手的30k之路|面试宝典|精通泛型
泛型 知识点 在Java高级开发中,掌握泛型(Generics)是非常重要的,它是Java语言中的一项重要特性,提供了编译时类型安全检查机制,使得代码更加灵活和可重用。以下是Java高级开发需要掌握的泛型知识点&#…...
清理Linux操作系统buff/cache缓存
清理Linux操作系统buff/cache缓存 清理页缓存 echo 1 > /proc/sys/vm/drop_caches 或者 sysctl -w vm.drop_caches1 清理目录项和inode缓存 echo 2 > /proc/sys/vm/drop_caches 或者 sysctl -w vm.drop_caches2 同时清理页缓存、目录项和inode缓存 echo 3 > /pr…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...

全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...