南京大學LAMDA Jing-Cheng Shi、俞揚等人團隊的最新研究,描述了在淘寶這個大型在線零售平臺、同時也是一個采樣成本較高的物理環境中,利用強化學習來更好地進行商品搜索的項目。
在物理世界的任務中應用強化學習是極具挑戰性的。根據當前強化學習方法的要求,在物理環境中進行大量實驗是不可行的。
南京大學LAMDA侍競成、俞揚等人團隊最近發表在AAAI 2019的論文,描述了在淘寶這個大型在線零售平臺、同時也是一個采樣成本較高的物理環境中,利用強化學習來更好地進行商品搜索的項目。
論文地址:https://arxiv.org/pdf/1805.10000.pdf
他們沒有直接在淘寶上訓練強化學習,而是提出了一個環境構建方法:先構建虛擬淘寶(Virtual-Taobao),這是一個從歷史客戶行為數據中學習的模擬器,然后在虛擬淘寶上訓練策略,不需要實物采樣成本。
此外,本研究的貢獻如下:
為了提高仿真精度,我們提出了GAN-SD(GAN for simulation distribution),用于更好地匹配分布的客戶特征生成;
我們還提出MAIL(Multiagent Adversarial Imitation Learning)來產生更好的一般化的客戶行為。
為了進一步避免過擬合模擬器的缺陷,我們提出了ANC(Action Norm Constraint)策略來規范策略模型。
為強化學習構建的Virtual-Taobao架構
在實驗中,Virtual-Taobao是從數以億計的真實淘寶客戶記錄中訓練出來的。與真實淘寶相比,虛擬淘寶忠實地還原了真實環境的重要屬性。
該研究進一步證明,純粹在虛擬淘寶上訓練的策略,通過在線A/B測試,其物理采樣成本為零,可以顯著優于傳統的監督方法在現實世界中的性能。
研究人員希望這項工作可以為在復雜物理環境中應用強化學習提供一些啟示。
此外,Virtual-Taobao模型也已經開源:
https://github.com/eyounx/VirtualTaobao
接下來,新智元帶來這篇論文的翻譯解讀:
在物理世界應用RL為何重要
隨著深度神經網絡的融合,強化學習(RL)最近取得了許多重要進展,在游戲、機器人、自然語言處理等領域取得了很多成功。然而,關于RL在物理世界任務中的應用的研究較少,如與客戶交互的大型在線系統,這可能對用戶體驗和社會財富產生很大的影響。
大型在線系統雖然很少與RL方法相結合,但確實追求應用RL。實際上,許多在線系統都涉及到序列決策和延遲反饋。
例如,自動化交易系統需要根據歷史指標和所有相關信息高頻率地管理投資組合,并通過分析長期收益仔細調整其策略。
同樣的,電子商務搜索引擎也會觀察到買家的需求,并將排名好的商品頁面顯示給買家,然后在得到用戶反饋后更新其決策模型,追求收益最大化。在這期間,如果買家繼續瀏覽,它會根據買家的最新信息不斷顯示新的頁面。
以往的解決方案主要基于監督學習。它們無法學習序列決策和最大化長期回報。因此,RL解決方案非常有吸引力。
三大算法克服虛擬淘寶應用RL的障礙
在這些場景中直接應用RL的一個主要障礙是,當前的RL算法通常需要與環境進行大量的交互,這需要很高的物理成本,比如實際的金錢、幾天到幾個月的時間、糟糕的用戶體驗,甚至是生命(醫療任務中)。
為了避免物理成本,RL訓練經常使用模擬器。谷歌在數據中心冷卻方面的應用(Gao and Jamidar 2014)就展示了一個很好的實踐:用一個神經網絡來模擬系統動態,然后通過一些最先進的RL算法在模擬環境中訓練策略。
在這個淘寶商品搜索項目中,我們使用了類似的過程:建立一個模擬器,即Virtual-Taobao,然后就可以在模擬器中離線訓練策略,利用RL算法實現長期收益最大化。
理想情況下,這樣獲得的策略在真實環境中可以同樣表現良好,或者至少可以為更便宜的在線調優提供良好的初始化。
然而,與模擬數據中心的動態不同,模擬數億客戶在動態環境中的行為更具挑戰性。
我們處理了根據客戶策略生成的客戶行為數據。現有的模仿學習方法可以實現從數據中推導出一個策略。
行為克隆(behavior cloning, BC)方法(Pomerleau 1992)主要是從狀態-行為數據中通過監督方法來學習策略。BC要求對RL任務中不滿足的演示數據進行i.i.d.假設。
逆強化學習(IRL)方法從數據中學習一個獎勵函數,然后根據這個獎勵函數訓練一個策略。IRL放松了數據的i.i.d.假設,但仍然假設環境是靜態的。當環境(即淘寶平臺)發生變化時,學習策略可能會失敗。上述問題使得這些方法在構建虛擬淘寶時不太實用。
在這項工作中,我們通過生成客戶和生成交互來構建虛擬淘寶。有搜索需求的客戶進入淘寶并觸發平臺搜索引擎,這類搜索需求的分布非常復雜和廣泛。
但是,從數據庫中抽取的樣本并不能生成數據之外的客戶,從而導致最終模型的泛化程度較低。我們提出了GAN-for-SimulatingDistribution(GAN-SD)方法來生成虛擬客戶,因為我們發現傳統的方法,如GMM和GAN,并不適合這種高維數據。
為了生成交互(interactions),我們提出多主體對抗模仿學習(Multi-agent Adversarial Imitation Learning, MAIL)方法。我們可以直接在虛擬淘寶中調用淘寶平臺策略,但這會導致創造一個無法適應真實環境變化的靜態環境。因此,MAIL同時學習客戶策略和平臺策略。
為了同時學習這兩個策略,MAIL采用了GAIL (Ho and Ermon 2016)的思想,使用生成對抗框架(Goodfellow et al. 2014)。MAIL訓練一個鑒別器來區分模擬的交互和真實的交互;區別信號作為獎勵反饋,以訓練客戶策略和平臺策略,從而產生更真實的交互。
在生成客戶和交互后,虛擬淘寶就完成了,接下來可以用于訓練平臺策略。然而,我們注意到強化學習算法的強大程度足以過擬合虛擬淘寶的不足,這意味著它可以在虛擬環境中做得很好,但在現實中卻很差。因此,我們提出行動規范約束(Action Norm Constraint, ANC)來使策略規范化。
在實驗中,我們從數以億計的客戶記錄中構建了虛擬淘寶,并與真實環境進行對比。我們的結果顯示,虛擬淘寶成功地重構了非常接近真實環境的屬性。然后,我們利用虛擬淘寶訓練平臺策略,以實現收入最大化。
與傳統的監督學習方法相比,虛擬淘寶訓練的策略在真實環境下的收益提高了2%以上,物理實驗成本為零。
接下來,本文繼續介紹虛擬淘寶方法、離線和在線實驗,以及結論。
如何構建一個虛擬淘寶?
問題描述
商品搜索是淘寶的核心業務。淘寶可以被視為搜索引擎與客戶交互的系統。淘寶的搜索引擎負責處理對數十億商品搜索請求的毫秒級響應,而客戶對商品的偏好也豐富多樣。從引擎的角度來看,淘寶平臺的工作原理如下??蛻粼L問,向搜索引擎發送搜索請求。
然后,搜索引擎對相關商品進行排序,并向客戶顯示頁面視圖(PV),對搜索請求做出適當響應??蛻艚o出反饋信號,比如買東西,然后轉到下一頁,或根據頁面試圖或買方自身意愿離開淘寶。搜索引擎接收反饋信號,并為下一個 PV 請求做出新的決定。淘寶的業務目標之一是通過優化顯示 PV 的策略來實現銷售量的最大化。
作為反饋信號,比如,會受之前的 PV 影響的客戶行為,在優化搜索引擎策略時,將其視為多步驟決策問題,而不是單步監督學習問題,是更為合理的選擇。因此,考慮到搜索引擎作為代理,以及客戶的反饋作為相應的環境,淘寶中的商品搜索是一個連續決策問題。假設客戶只記住有限數量的最新 PV,這是合理的,這意味著反饋信號僅受搜索代理的 m 個歷史行為的影響。
圖 2:搜索引擎視角和客戶視角下的淘寶搜索
注意,如果假設 m = 1,即客戶的反饋僅受最后一個引擎行為的影響,這就是標準馬爾可夫決策過程。
另一方面,如果我們將客戶視為 agent,將搜索引擎視為環境,那么客戶的購物流程也就可視作順序決策流程。客戶對排名后的商品,也就是搜索引擎的動作做出響應。客戶的行為即反饋信號,它會受到最近 m 個 PV 的影響,這些 PV 由搜索引擎生成,并受到來自客戶的最后反饋的影響??蛻舻男袨橐簿哂旭R爾可夫屬性。為客戶制定購物政策的過程可以視為對客戶的淘寶購物偏好的優化過程。
如圖 2 所示,搜索引擎和客戶互為彼此的環境,二者的策略是耦合在一起的。
如果客戶只是轉向下一頁而沒有其他行為,那么負責記錄客戶特征和搜索請求的引擎的觀察結果將保持不變。如果客戶發送了另一個請求,或離開了淘寶,記錄狀態就會發生變化。
與搜索引擎相比,客戶個人對環境往往更敏感,因此我們為客戶進行了一些特別的設計??蛻粜袨閷⑹艿?TA 想要的以及 TA 看到的內容的影響,分別用 S 和 A 表示,其中 S 是引擎觀察結果,即包含請求的客戶特征,A 是引擎動作,即向客戶顯示的頁面視圖。考慮到顧客的購買意圖會隨瀏覽頁數的變化而變化,設 Sc = S×A×N,其中 N 表示頁面索引空間。
Trasition 函數定義如下:
對于搜索引擎而言,如果客戶買了東西,我們給引擎獎勵為 1,否則為 0。對于客戶,獎勵函數目前尚不明確。
GAN-SD:生成客戶特征
為了構建虛擬淘寶,需要首先生成客戶特征,即對包括來自 P c 的請求的用戶 U c 進行采樣,以觸發交互過程。生成的客戶分布應與真實分布相似。
在高維空間中對分布進行學習很具有挑戰性。像高斯混合模型(GMM)之類的經典方法很難實現這種相似分布。而眾所周知,GAN 框架可以很好地生成接近于原始數據的樣本,并在生成圖像方面取得了巨大成功。
然而,傳統的 GAN 判別器能夠判定某一實例是否來自真實世界,但缺乏捕獲客戶分布架構的能力。為了生成分布而不是單個實例,我們提出了用于模擬分布的生成性對抗網絡(GAN-SD),如算法 1 中所示。
GAN-SD 算法偽代碼示意圖
與 GAN 類似,GAN-SD 也包括生成器 G 和判別器 D。其中,判別器試圖通過最大化以下目標函數:
來正確區分生成的數據和訓練數據。
而更新后的生成器則在實現以下目標函數的最大化:
利用 KL 分歧和熵約束,GAN-SD 從真實數據中學習具有更多引導信息的生成器,并且可以產生比傳統 GAN 更好的分布。
MAIL:生成交互過程
通過模擬客戶策略,在虛擬淘寶之間生成客戶與平臺之間的交互。本文通過基于 GAIL 思想的多智能體對抗模仿學習(MAIL)方法來實現這一目標。 GAIL 允許智能體在訓練期間與環境交互,同時獎勵功能也在不斷優化。注意,在 GAIL 訓練期間應該能夠訪問環境。但是,訓練客戶策略需要將引擎視為未知環境或動態環境。
與在靜態環境中訓練一個智能體策略的 GAIL 不同,MAIL 是一種面向多智能體的訓練策略,可用于訓練客戶策略和引擎策略。以這種方式得到客戶策略能夠包含不同的搜索引擎策略。
由于 MAIL 將兩個策略一起訓練,即代理和環境,只需要歷史數據,不需要訪問真實環境。MAIL 算法偽代碼如下圖所示:
實驗設定及結果
為了驗證 “虛擬淘寶” 的效果,我們使用以下量度指標:
總營業額(TT):所售商品的總價值。
總量(TV):銷售商品的數量。
購買頁面的購買(R2P):產生購買行為的 PV 數量占總 PV 的比例。
圖 3:學習后的顧客分布的對比
圖 4:真實淘寶和虛擬淘寶之間的 R2P 對比
本文在線實驗中采用了全部測量方式。在離線實驗中只使用了 R2P 方法,因為我們沒有對客戶數量和商品價格做出預測。了便于在真實環境和虛擬環境之間比較這些指標,我們提前在真實環境(特別是淘寶網的在線 A/B 測試)中部署了隨機引擎策略,并收集了相應的軌跡作為歷史數據(約 4 億條記錄)。本文沒有假設生成數據的引擎策略,也就是說,在構建虛擬環境時,可能采用的是任何未知的復雜模型。
表 1:虛擬數據和真實數據之間的 KL 分歧
表 2:采用行為克隆和 MAIL 算法的模擬器隨時間的 R2P 性能提升
結論
為了解決淘寶網站中面向商品搜索的強化學習的高成本問題,本文提出了一個 “虛擬淘寶模擬器”,根據歷史數據進行訓練的。首先通過 GAN-SD 生成虛擬客戶,并通過 MAIL 生成虛擬交互過程。研究結果表明,“虛擬淘寶” 能夠忠實反映真實環境中的特征。
本文提出通過 ANC 策略訓練性能更高的平臺策略,讓新的策略具備比傳統監督學習方法更好的真實環境下的性能。“虛擬淘寶” 具備實際應用意義,也頗具挑戰性。希望這項工作能夠為將強化學習應用于復雜物理任務提供一些啟示。
開源模型:VirtualTaobao
VirtualTaobao開源項目提供了以淘寶的真實數據為基礎訓練的虛擬淘寶模擬器。在淘寶上,當客戶輸入一些查詢時,推薦系統將根據查詢和客戶配置文件返回一個商品列表。該系統預計將返回一個良好的列表,讓客戶有很高的可能性點擊這些商品。
使用 VirtualTaobao模擬器,用戶可以像訪問真實的淘寶環境一樣訪問“實時”環境。每次生成一次虛擬客戶,虛擬客戶啟動查詢,推薦系統需要返回一個商品列表。虛擬客戶將決定是否單擊列表中的商品,類似于真實客戶。
本次開源的虛擬淘寶模型,用于推薦系統研究和強化學習研究(參見下面的監督學習和強化學習用例)。
目前,我們提供 VirtualTaobao V0 模型(VirtualTB-v0),該模型是在中等規模的匿名淘寶數據集進行訓練的。更大型的模型即將發布。
安裝
pipinstall-e.
模擬環境
虛擬淘寶模擬客戶、商品和推薦系統。
一個客戶與13個靜態屬性和3個動態屬性相關聯。這里,靜態/動態表示該屬性是否會在交互過程中發生變化。屬性信息包括客戶年齡、客戶性別、客戶瀏覽歷史等。
一個商品與27維屬性相關聯,這些屬性指示價格、銷售額、CTR等。
系統和客戶之間的交互過程如下:
虛擬淘寶采用客戶的特征向量,包括客戶描述和客戶查詢。
系統根據整個商品集的查詢表單檢索一組相關的商品。
系統使用一個模型來分配與商品屬性對應的權重向量。
系統計算每個商品的權重向量與商品屬性的乘積,并選擇值最高的前10個商品。
選定的10個商品將發送給客戶。然后,客戶將選擇單擊某些項(CTR++),瀏覽下一頁,或離開平臺。
在上述過程中,將訓練步驟3中的模型。模型輸入客戶特征,輸出27維權重向量。
監督學習的用法
數據集在:
virtualTB/SupervisedLearning/dataset.txt
數據集的每一行都包含一個特性、標簽和單擊次數的實例,由制表符分隔。
為了從數據集訓練模型,下面的代碼使用PyTorch進行了演示
virtualTB/SupervisedLearning/main.py
它包含從數據集加載、模型訓練和模型測試的完整過程。
強化學習的用法
下面是一個使用VirtualTaobao作為強化學習環境的最簡單示例。每一步都取樣一個隨機操作來執行推薦。
import gymimport virtualTBenv = gym.make('VirtualTB-v0')print(env.action_space)print(env.observation_space)print(env.observation_space.low)print(env.observation_space.high)state = env.reset()while True: env.render() action = env.action_space.sample() state, reward, done, info = env.step(action) if done: breakenv.render()
下面是一個采用DDPG強化學習算法和PyTorch的更完整的例子
virtualTB/ReinforcementLearning/main.py
-
算法
+關注
關注
23文章
4607瀏覽量
92837 -
模擬器
+關注
關注
2文章
874瀏覽量
43208 -
強化學習
+關注
關注
4文章
266瀏覽量
11246
原文標題:物理實驗成本為零!南大LAMDA開源虛擬RL訓練環境
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論