虚拟淘宝-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…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...

VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...

DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...

QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

【Linux】自动化构建-Make/Makefile
前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具:make/makfile 1.背景 在一个工程中源文件不计其数,其按类型、功能、模块分别放在若干个目录中,mak…...