使用Amazon Personalize在StockX上拓展個(gè)性化用戶體驗(yàn)

來(lái)源: AWS
作者:Sam Bean & Nic Roberts II
時(shí)間:2021-03-09
17506
本文將分享StockX使用Amazon Personalize的整個(gè)過(guò)程,探討如何借此提供出色的定制化用戶體驗(yàn)。

1615272471(1).png

本文為StockX公司Sam Bean與Nic Roberts II撰寫的客座文章。援引他們的表述,“StockX是一家來(lái)自底特律的初創(chuàng)公司,希望以獨(dú)特的競(jìng)價(jià)/出價(jià)市場(chǎng)革新電子商務(wù)體系。我們平臺(tái)的設(shè)計(jì)靈感源自紐約證券交易所,并將運(yùn)動(dòng)鞋與街頭潮牌服飾等商品視為高價(jià)值可交易商品。憑借運(yùn)營(yíng)透明化的市場(chǎng)交易體驗(yàn),StockX將幫助消費(fèi)者以真實(shí)市場(chǎng)價(jià)購(gòu)買備受追捧的真品?!?/em>

2019年,StockX公司正經(jīng)歷高速增長(zhǎng),我們的機(jī)器學(xué)習(xí)(ML)工程師小組也開(kāi)始嘗試使用Amazon Personalize在主頁(yè)上添加“為您推薦”產(chǎn)品推薦行。最終,這項(xiàng)新功能成了主頁(yè)上最受歡迎的部分。在本文中,我們將分享StockX使用Amazon Personalize的整個(gè)過(guò)程,探討如何借此提供出色的定制化用戶體驗(yàn)。

我們的市場(chǎng)動(dòng)態(tài)需要提供個(gè)性化的用戶體驗(yàn)。StockX網(wǎng)站的流量激增,在很大程度上源自相關(guān)商品市場(chǎng)供應(yīng)量的下降。沒(méi)錯(cuò),在運(yùn)動(dòng)鞋與街頭潮牌服飾市場(chǎng)上,最受歡迎的一定是那些需要提前預(yù)訂的限量版產(chǎn)品。雖然客戶對(duì)于產(chǎn)品多樣性的追求一直在增加,但是客戶經(jīng)常搜索的還是那些最新發(fā)布的特定熱門款式。最終,我們的平臺(tái)開(kāi)始經(jīng)歷一波又一波強(qiáng)度幾乎接近DDoS的合法流量,讓我們意識(shí)到再不擴(kuò)大后端的規(guī)模伸縮能力、我們將無(wú)法順利開(kāi)展自身業(yè)務(wù)。另外,我們的團(tuán)隊(duì)還計(jì)劃在黑色星期五之前上線“為您推薦”功能。這項(xiàng)功能的基礎(chǔ),自然是強(qiáng)大的推薦引擎——我們希望該引擎同樣擁有強(qiáng)大的擴(kuò)展能力,可以實(shí)時(shí)調(diào)整以適應(yīng)不斷變化的客戶意圖。

在公司成立的三年當(dāng)中,我們逐漸將用戶體驗(yàn)的個(gè)性化視為核心發(fā)展目標(biāo)。我們的客戶群體已經(jīng)從單純的運(yùn)動(dòng)鞋愛(ài)好者,逐步發(fā)展為越來(lái)越多休閑及抱有好奇心的新用戶。感恩節(jié)購(gòu)物季則為我們提供絕佳機(jī)會(huì),以更具個(gè)性化的體驗(yàn)吸引這些新客戶,最終提高整體客戶忠誠(chéng)度。盡管即將到來(lái)的2019年假期為我們的計(jì)劃增加了額外的時(shí)間限制,但Amazon Personalize切實(shí)幫助我們?yōu)椴粩喟l(fā)展的用戶群體打造精心設(shè)計(jì)且引人入勝的體驗(yàn),最終順利應(yīng)對(duì)季節(jié)性流量激增帶來(lái)的一系列挑戰(zhàn)。

早期階段

我們的團(tuán)隊(duì)最初打算尋求第三方供應(yīng)商來(lái)填補(bǔ)平臺(tái)中的個(gè)性化缺失環(huán)節(jié)。但是,購(gòu)買現(xiàn)成解決方案不僅成本高昂,而且對(duì)于我們獨(dú)特的電商業(yè)務(wù)而言也缺少靈活性。我們需要更大的靈活施展空間,但又不太可能單純依靠?jī)?nèi)部解決方案搞定全部難題。

接下來(lái),我們開(kāi)始考慮構(gòu)建起與Amazon Personalize核心推薦引擎(分層遞歸神經(jīng)網(wǎng)絡(luò),簡(jiǎn)稱HRNN)類似的自定義神經(jīng)網(wǎng)絡(luò)。雖然我們的團(tuán)隊(duì)具備一定的自主建模能力,但卻難以處理一系列令人頭痛的變量:健壯性、可擴(kuò)展性以及開(kāi)發(fā)周期等等。我們需要爭(zhēng)分奪秒地構(gòu)建優(yōu)質(zhì)服務(wù),為我們的客戶提供引人入勝的體驗(yàn)并在假期購(gòu)物季來(lái)臨前及時(shí)將其上線。為了確定到底是該自建模型、還是直接選擇現(xiàn)成解決方案,我們列舉了構(gòu)建機(jī)器學(xué)習(xí)微服務(wù)架構(gòu)的基本要求。經(jīng)過(guò)整理,我們的具體要求如下:

1.數(shù)據(jù)收集——建立高性能推薦程序的第一步,自然是對(duì)網(wǎng)站進(jìn)行正確跟蹤。除了通過(guò)調(diào)查、評(píng)級(jí)以及偏好設(shè)置等方式收集明確的客戶喜好指標(biāo)之外,我們還需要考慮從原始點(diǎn)擊流中提取隱式證據(jù),借此建立起更加精彩的使用體驗(yàn)。而收集點(diǎn)擊流數(shù)據(jù),自然成為創(chuàng)建高性能推薦程序的重要基礎(chǔ)。

2.數(shù)據(jù)位置——在收集到正確的數(shù)據(jù)類型之后,下一步就是為該數(shù)據(jù)確定準(zhǔn)確的存儲(chǔ)位置。為此,我們需要找到點(diǎn)擊流與產(chǎn)品目錄數(shù)據(jù)所在的位置,并獲取訪問(wèn)權(quán)限。

3.數(shù)據(jù)整理與特征工程——在找到數(shù)據(jù)源與存儲(chǔ)位置之后,接下來(lái)需要找到其中真正有價(jià)值的部分。這是一項(xiàng)高度依賴于經(jīng)驗(yàn)的過(guò)程,因?yàn)樵谶M(jìn)行實(shí)際嘗試之前,我們往往很難預(yù)判算法如何從數(shù)據(jù)當(dāng)中提取信號(hào)。

4.模型開(kāi)發(fā)——這一步也是整個(gè)開(kāi)發(fā)生命周期當(dāng)中,數(shù)據(jù)科學(xué)元素最為密集的部分。大多數(shù)團(tuán)隊(duì)會(huì)以notebook中的原型為起點(diǎn),逐步嘗試解決業(yè)務(wù)問(wèn)題,而后以面向?qū)ο蟮姆绞竭M(jìn)行模型訓(xùn)練。這一步驟與之前各步驟相互依存,前者中的數(shù)據(jù)可用性也將直接影響候選模型集的實(shí)際組成。

5.模型測(cè)試與評(píng)估——在完成模型訓(xùn)練之后,必須啟用快速健全性檢查以執(zhí)行定性分析,借此補(bǔ)充訓(xùn)練指標(biāo)。我們建議大家先創(chuàng)建一個(gè)小規(guī)??梢暬瘧?yīng)用程序,用于在模型提出的建議內(nèi)容旁邊提示用戶正在與哪些產(chǎn)品進(jìn)行交互。這能讓我們更直觀地審視不同算法以及超參數(shù)設(shè)置對(duì)建議結(jié)果產(chǎn)生的影響,同時(shí)結(jié)合業(yè)務(wù)經(jīng)驗(yàn)對(duì)結(jié)果做出比較。

6.ETL開(kāi)發(fā)——在確定數(shù)據(jù)中的主要特征之后,我們還應(yīng)該建立一套自動(dòng)化ETL體系,用于提取原始數(shù)據(jù)、執(zhí)行特征工程,并將數(shù)據(jù)放置在生產(chǎn)訓(xùn)練程序能夠輕松訪問(wèn)的位置。這一步至關(guān)重要,因?yàn)镋TL中的任何細(xì)微錯(cuò)誤都可能拉低輸入數(shù)據(jù)質(zhì)量、最終影響輸出結(jié)果的置信度。更可怕的是,這類錯(cuò)誤往往很難在訓(xùn)練結(jié)束后、輸出可視化之前被檢測(cè)出來(lái)。

7.后端服務(wù)開(kāi)發(fā)——將模型推理機(jī)制與后端服務(wù)打包在一起,可以顯著改善監(jiān)控、穩(wěn)定性與抽象性水平。對(duì)我們來(lái)說(shuō),這也是一條重要的“護(hù)堤”,防止流量的過(guò)度涌入。我們?cè)贏WS Lambda中選擇了無(wú)服務(wù)器解決方案,將getRecommendations API打包在Amazon Personalize當(dāng)中。

8.生產(chǎn)部署——CI/CD等自動(dòng)化流程,用于訓(xùn)練并部署模型的最新版本,保證建議結(jié)果始終符合客戶的實(shí)際需求。一旦這一步驟出現(xiàn)問(wèn)題,可能導(dǎo)致建議結(jié)果過(guò)時(shí),最終降低客戶參與度。在完成這一部分之后,我們的機(jī)器學(xué)習(xí)微服務(wù)架構(gòu)也就構(gòu)建完成了。

構(gòu)建本地解決方案,意味著我們需要從頭開(kāi)始完成以上八個(gè)具體步驟。Amazon Personalize提供自動(dòng)化特征工程與模型開(kāi)發(fā)(步驟3和4)功能,幫助我們快速搞定這兩個(gè)最為耗時(shí)的環(huán)節(jié)。使用Amazon Personalize提供的標(biāo)準(zhǔn)HRNN(一套由Amazon本身使用過(guò)的、經(jīng)過(guò)重重考驗(yàn)的實(shí)踐模型),我們的用例只需要一套僅包含五列數(shù)據(jù)的簡(jiǎn)單數(shù)據(jù)集即可開(kāi)始訓(xùn)練。將這兩個(gè)步驟交由Amazon Personalize之后,我們得以專注于實(shí)現(xiàn)強(qiáng)大的ETL、后端與生產(chǎn)部署系統(tǒng)。此外,我們還省下了更多時(shí)間用于實(shí)現(xiàn)第5步中提到的可視化流程——這是以往需要開(kāi)發(fā)完整技術(shù)棧時(shí),我們根本不敢想象的。當(dāng)然,直接使用Amazon Personalize也會(huì)帶來(lái)一定妥協(xié),意味著我們將無(wú)法對(duì)標(biāo)準(zhǔn)算法中的具體杠桿做出針對(duì)性調(diào)整。

這自然在我們的團(tuán)隊(duì)內(nèi)部引發(fā)激烈討論:我們到底是該承擔(dān)起高昂的成本,以換取對(duì)模型的完全控制;還是以可調(diào)整性為代價(jià),完全信任AWS提供的解決方案?最終,我們決定信任AWS在構(gòu)建企業(yè)級(jí)機(jī)器學(xué)習(xí)模型方面的專業(yè)水平。我們的團(tuán)隊(duì)預(yù)見(jiàn)到,內(nèi)部開(kāi)發(fā)的深度學(xué)習(xí)推理引擎在可擴(kuò)展性方面一定會(huì)帶來(lái)巨大風(fēng)險(xiǎn)。如果不拿出時(shí)間進(jìn)行負(fù)載測(cè)試,我們將很難衡量大規(guī)模流量涌入時(shí)系統(tǒng)的實(shí)際彈性,這將把StockX的整體業(yè)務(wù)置于隨時(shí)可能崩潰的危險(xiǎn)境地。另外,生產(chǎn)型深度學(xué)習(xí)微服務(wù)架構(gòu)是個(gè)相對(duì)較新的議題,與此相關(guān)的文獻(xiàn)資料并不完備,這同樣令問(wèn)題變得更加復(fù)雜。

開(kāi)發(fā)

在決定將推薦程序的核心模型開(kāi)發(fā)與生產(chǎn)推理擴(kuò)展交由AWS負(fù)責(zé)之后,我們開(kāi)始使用Amazon Personalize進(jìn)行開(kāi)發(fā),并很快感受到將其集成至全擴(kuò)展機(jī)器學(xué)習(xí)工作流所帶來(lái)的卓越便捷性。下圖所示,為這套解決方案的基本架構(gòu)。

pioneering-personalized-user-experiences-at-stockx1.png

我們將Amazon Personalize插入兩部分代碼庫(kù)當(dāng)中,這兩套代碼庫(kù)分別用于創(chuàng)建數(shù)據(jù)集以及配置Amazon Personalize基礎(chǔ)設(shè)施。以此為基礎(chǔ),我們成功實(shí)現(xiàn)了由Amazon Personalize驅(qū)動(dòng)的實(shí)時(shí)推薦引擎的創(chuàng)建、部署與重新訓(xùn)練流程的全面自動(dòng)化。

創(chuàng)建數(shù)據(jù)集

Amazon Personalize為用戶提供多種選項(xiàng),能夠根據(jù)用戶特征與推薦引擎的特定應(yīng)用方式進(jìn)行選擇。部分recipe選項(xiàng)允許您在模型訓(xùn)練過(guò)程中考量用戶特征(例如HRNN元數(shù)據(jù)),另一部分recipe則只關(guān)注平臺(tái)上各用戶間的交互(與單一特征/HRNN無(wú)關(guān))。我們對(duì)具體recipe的選擇,決定了訓(xùn)練數(shù)據(jù)集的實(shí)際構(gòu)建方式、以及最終將向Amazon Personalize提供多少訓(xùn)練數(shù)據(jù)集以建立模型解決方案。

我們首先開(kāi)發(fā)出用于訓(xùn)練及測(cè)試所有三種HRNN變體(純文本、元數(shù)據(jù)以及冷啟動(dòng))的基礎(chǔ),并對(duì)結(jié)果做出比較。在添加元數(shù)據(jù)集時(shí),我們剛開(kāi)始并未發(fā)現(xiàn)推薦內(nèi)容獲得任何重大改進(jìn);而且發(fā)現(xiàn)HRNN-冷啟動(dòng)在未進(jìn)行額外特征工程開(kāi)發(fā)的情況下,并不能生成更為有機(jī)的推薦結(jié)果。雖然我們懷疑在元數(shù)據(jù)特征工程方面投入更多精力也許能最終提高性能,但我們?nèi)詻Q定嘗試其他更為簡(jiǎn)單、且同樣有望提供高質(zhì)量建議的解決方案。

要使用Amazon Personalize HRNN recipe,我們需要為其提供單一數(shù)據(jù)集,并在其中包含任意時(shí)段之內(nèi)的用戶交互數(shù)據(jù)。這套交互數(shù)據(jù)集將包含并定義影響核心推薦算法的訓(xùn)練特征。對(duì)于像StockX這樣的電子商務(wù)平臺(tái),這種交互特征可能表現(xiàn)為產(chǎn)品頁(yè)面瀏覽量、搜索結(jié)果點(diǎn)擊流或者與購(gòu)買行為相關(guān)的操作等指標(biāo)。

為了構(gòu)建起交互數(shù)據(jù)集,我們創(chuàng)建了一條自動(dòng)化Python ETL工作流以查詢我們的點(diǎn)擊流數(shù)據(jù)源與產(chǎn)品目錄、處理交互數(shù)據(jù)以提取所需特征,并最終執(zhí)行CSV格式化操作以支持Amazon Personalize的攝取要求。由于Amazon Personalize原生支持從Amazon Simple Storage Service(Amazon S3)導(dǎo)入數(shù)據(jù)集,因此創(chuàng)建這樣的自動(dòng)化管道并不困難,我們可以節(jié)約下大量時(shí)間和精力來(lái)考慮如何選擇最佳recipe以及最佳交互時(shí)段。

自動(dòng)創(chuàng)建Amazon Personalize基礎(chǔ)設(shè)施

接下來(lái),我們開(kāi)始著手對(duì)Amazon Personalize整體基礎(chǔ)設(shè)施進(jìn)行自動(dòng)化創(chuàng)建。大家當(dāng)然可以在AWS管理控制臺(tái)上手動(dòng)建立Amazon Personalize服務(wù),但配合AWS SDK for Java,我們能夠在規(guī)模更大的推薦服務(wù)管道中實(shí)現(xiàn)全自動(dòng)化與可重復(fù)性能力。在這里,我們選擇Scala作為客戶端以創(chuàng)建Amazon Personalize基礎(chǔ)設(shè)施,具體包含以下內(nèi)容:

·數(shù)據(jù)集組

·數(shù)據(jù)集

·導(dǎo)入任務(wù)

·解決方案

·解決方案版本

·實(shí)時(shí)活動(dòng)

對(duì)于一次性訓(xùn)練來(lái)說(shuō),在控制臺(tái)上構(gòu)建基礎(chǔ)設(shè)施確實(shí)更為簡(jiǎn)單;但要打造出一套真正的全自動(dòng)化可復(fù)用管道,SDK絕對(duì)是不二之選。

部署策略

更重要的是,我們的Scala客戶端還承擔(dān)起對(duì)生產(chǎn)部署流程進(jìn)行仲裁的額外責(zé)任,負(fù)責(zé)保證在推薦模型在重新訓(xùn)練過(guò)程中不會(huì)造成停機(jī)狀況。隨著用戶與平臺(tái)的持續(xù)交互,我們當(dāng)然有必要對(duì)模型進(jìn)行重新訓(xùn)練,從而及時(shí)包含新的交互信息并據(jù)此提供最新的推薦。當(dāng)每天用最新的交互數(shù)據(jù)重新訓(xùn)練模型時(shí)會(huì)導(dǎo)致長(zhǎng)時(shí)間服務(wù)中斷,因?yàn)樵诖似陂g活動(dòng)端點(diǎn)將不可用。我們可以建立兩個(gè)獨(dú)立的實(shí)時(shí)活動(dòng)端點(diǎn)(以及解決方案版本)來(lái)緩解這個(gè)問(wèn)題,但相關(guān)成本過(guò)高——意味著即使不提供任何實(shí)時(shí)流量,我們都需要為各端點(diǎn)支付相應(yīng)的AWS費(fèi)用。

為了解決這項(xiàng)部署挑戰(zhàn)并建立起更具成本效益的微服務(wù)架構(gòu),我們圍繞中間Lambda函數(shù)建立起獨(dú)特的部署策略。該函數(shù)負(fù)責(zé)響應(yīng)活動(dòng)端點(diǎn)并向前端客戶端提供推薦內(nèi)容。我們還將一套特殊的數(shù)據(jù)集組標(biāo)簽(下圖最左側(cè)的兩個(gè)框體)打包至Lambda環(huán)境變量當(dāng)中,用于指示當(dāng)前處于活動(dòng)狀態(tài)并服務(wù)于生產(chǎn)流量的活動(dòng)端點(diǎn)。

每天夜間,Scala客戶端都會(huì)啟動(dòng)新的訓(xùn)練任務(wù),并首先檢查實(shí)時(shí)數(shù)據(jù)集組中產(chǎn)生的Lambda環(huán)境變量。客戶端將加載新的交互數(shù)據(jù)集,重建休眠的數(shù)據(jù)集組,而后在端點(diǎn)上執(zhí)行心跳檢查以保證端點(diǎn)創(chuàng)建成功。接下來(lái),客戶端會(huì)指示Lambda函數(shù)更新其活動(dòng)的相關(guān)環(huán)境變量并指向新的端點(diǎn)。最后,不再使用的Amazon Personalize基礎(chǔ)設(shè)施將被撤銷。

通過(guò)這種方式,我們的微服務(wù)架構(gòu)能夠自動(dòng)高效對(duì)Amazon Personalize模型進(jìn)行重新訓(xùn)練,每天按時(shí)更新用戶推薦內(nèi)容,且不會(huì)帶來(lái)昂貴的冗余支出或者任何服務(wù)停機(jī)問(wèn)題。另外,使用Lambda函數(shù)還允許我們啟用自定義指標(biāo)對(duì)系統(tǒng)進(jìn)行跟蹤與故障監(jiān)控,及時(shí)提醒模型訓(xùn)練的問(wèn)題或活動(dòng)端點(diǎn)的錯(cuò)誤。這種圍繞Amazon Personalize精心設(shè)計(jì)的強(qiáng)大微服務(wù)部署策略,在公司發(fā)展歷史中最為繁忙的購(gòu)物季期間為StockX推薦引擎帶來(lái)了近乎完美的可用性。下圖所示,為這套解決方案的基本架構(gòu)。

pioneering-personalized-user-experiences-at-stockx2.png

實(shí)時(shí)功能

在完成了訓(xùn)練與部署流程的設(shè)計(jì)之后,我們只剩下最后一個(gè)問(wèn)題需要解決:如何在不同訓(xùn)練運(yùn)行輪次之間,隨用戶興趣的變化更新推薦內(nèi)容。Amazon Personalize在這方面提供一套簡(jiǎn)單的解決方案,即事件交互數(shù)據(jù)集。我們使用Amazon Personalize putEvents API將點(diǎn)擊流事件添加到模型當(dāng)中。此點(diǎn)擊流源將把各項(xiàng)事件實(shí)時(shí)推送至Lambda函數(shù),該函數(shù)又將事件編組為Amazon Personalize能夠處理的既定格式。事件被添加至數(shù)據(jù)集后的幾秒內(nèi),建議內(nèi)容即可獲得快速體現(xiàn)。下圖所示,為這一工作流的基本架構(gòu)。

pioneering-personalized-user-experiences-at-stockx3.png

測(cè)試與部署

我們的發(fā)布方案現(xiàn)在已經(jīng)成為StockX公司的內(nèi)部標(biāo)準(zhǔn)——“向您推薦”主頁(yè)集合被部署在用于A/B測(cè)試的功能標(biāo)記后面,內(nèi)部團(tuán)隊(duì)能夠安全地將該功能推廣至1%的用戶以執(zhí)行初始金絲雀測(cè)試。最終,我們的測(cè)試范圍將涵蓋60%的用戶——其中30%的用戶繼續(xù)獲得舊有體驗(yàn),30%的用戶則獲得個(gè)性化首頁(yè)體驗(yàn),另外40%用戶不受測(cè)試影響。在逐步擴(kuò)大功能涵蓋范圍的過(guò)程中,我們發(fā)現(xiàn)錯(cuò)誤率或延遲并沒(méi)有隨之增長(zhǎng)。為了保證萬(wàn)全,我們進(jìn)行了為期兩周的測(cè)試。

盡管“向您推薦”顯示在首頁(yè)中的第二行位置,但其點(diǎn)擊率卻超過(guò)了顯示在最頂端的“最受歡迎”行。按百分比計(jì)算,“向您推薦”已經(jīng)成為我們表現(xiàn)最好的購(gòu)買通道。而在其支持下,我們整個(gè)主頁(yè)的總體客戶參與度提高了50%,這證明個(gè)性化、甚至只是單一頁(yè)面的個(gè)性化,也足以提高業(yè)務(wù)體系的總體使用感受。

時(shí)至今日,個(gè)性化已經(jīng)成為企業(yè)高管團(tuán)隊(duì)的一大核心戰(zhàn)略目標(biāo)。而我們打造的推薦引擎,正是其中一項(xiàng)關(guān)鍵成果。與負(fù)責(zé)產(chǎn)品發(fā)現(xiàn)體驗(yàn)的產(chǎn)品負(fù)責(zé)人共同制定出戰(zhàn)術(shù)決策之后,作為獨(dú)角獸初創(chuàng)企業(yè)的我們深刻意識(shí)到個(gè)性化的重要性,并通過(guò)A/B測(cè)試實(shí)際證明了個(gè)性化的強(qiáng)大能力。在獲得初步成果之后,困擾我們的已經(jīng)不再是要不要推廣個(gè)性化,而是如何保證個(gè)性化元素能夠滲透至StockX客戶體驗(yàn)的每一個(gè)角落。機(jī)器學(xué)習(xí)團(tuán)隊(duì)一直是StockX內(nèi)部最具數(shù)據(jù)驅(qū)動(dòng)能力的工程團(tuán)隊(duì)之一,而此次進(jìn)行的實(shí)驗(yàn)也證明我們完全有能力通過(guò)可量化的KPI改善客戶的實(shí)際體驗(yàn)。

總結(jié)

在項(xiàng)目實(shí)施期間,機(jī)器學(xué)習(xí)團(tuán)隊(duì)學(xué)到關(guān)于構(gòu)建機(jī)器學(xué)習(xí)微服務(wù)架構(gòu)的許多知識(shí)。我們將這些心得體會(huì)總結(jié)如下:

·盡早集成——在項(xiàng)目生命周期中盡早發(fā)布演示方案非常重要。即使是簡(jiǎn)單的推薦算法,也會(huì)給各相關(guān)方留下深刻的印象,并幫助我們順利爭(zhēng)取到內(nèi)部資源與更高的項(xiàng)目?jī)?yōu)先級(jí)。

·可視化——可視化工具對(duì)于機(jī)器學(xué)習(xí)模型的測(cè)試至關(guān)重要。單純將原始產(chǎn)品ID作為健全性檢查對(duì)象還遠(yuǎn)遠(yuǎn)不夠,我們需要并行提供推薦產(chǎn)品的圖片與隱性關(guān)聯(lián)證據(jù),借此評(píng)估推薦程序的實(shí)際效果。

·預(yù)防過(guò)度復(fù)雜——Amazon Personalize提供多種機(jī)器學(xué)習(xí)框架選項(xiàng),各選項(xiàng)在復(fù)雜度方面也有著巨大差異。我們也曾嘗試從復(fù)雜的recipe起步,并發(fā)現(xiàn)很難理解其為何會(huì)提出一些奇怪的建議。而從簡(jiǎn)單的HRNN recipe起步,我們得以快速開(kāi)發(fā)出令人印象深刻的工作示例。

·估算成本——機(jī)器學(xué)習(xí)成本高昂。請(qǐng)保證對(duì)于工程決策的對(duì)應(yīng)預(yù)算需求擁有明確的估計(jì)。除了云基礎(chǔ)設(shè)施使用成本之外,開(kāi)發(fā)人員為此投入的時(shí)間也是一種重要的成本構(gòu)成元素。

·了解擴(kuò)展特性——要構(gòu)建自己的深度學(xué)習(xí)推薦系統(tǒng),請(qǐng)首先保證對(duì)推理任務(wù)的擴(kuò)展特性擁有充分了解。忙活了半天,卻發(fā)現(xiàn)自己的解決方案跟不上流量峰值期間的業(yè)務(wù)要求,絕對(duì)會(huì)令人陷入崩潰。

·徹底消除手動(dòng)操作——相較于傳統(tǒng)后端服務(wù)架構(gòu),機(jī)器學(xué)習(xí)微服務(wù)架構(gòu)包含有更多活動(dòng)部件。因此,請(qǐng)務(wù)必自動(dòng)處理工作流中的所有內(nèi)容——只要還有任何一部分ETL或者部署流程需要人工干預(yù),即代表著項(xiàng)目失敗。機(jī)器學(xué)習(xí)的工程部分已經(jīng)相當(dāng)困難了,沒(méi)人愿意同時(shí)再承擔(dān)一部分運(yùn)營(yíng)壓力。

“為您推薦”成為我們團(tuán)隊(duì)乃至整個(gè)StockX公司的一次巨大勝利。我們開(kāi)始迅速將機(jī)器學(xué)習(xí)技術(shù)整合至企業(yè)中的各個(gè)層面。而我們獲得成功的秘密,在于企業(yè)決策者同意將Amazon Personalize集成至更多StockX體驗(yàn)當(dāng)中,并不斷擴(kuò)大我們?cè)跈C(jī)器學(xué)習(xí)領(lǐng)域投入的精力。可以肯定地講,個(gè)性化如今已經(jīng)成為StockX內(nèi)部的頭等大事。

我們的團(tuán)隊(duì)在這場(chǎng)假期購(gòu)物季的幾周之前著手項(xiàng)目開(kāi)發(fā),并在購(gòu)物季到來(lái)時(shí)及時(shí)將其上線??梢宰院赖卣f(shuō),在Amazon Personalize的幫助下,我們的微服務(wù)架構(gòu)在整個(gè)假期當(dāng)中都表現(xiàn)出近乎完美的可用性。

原文鏈接:https://amazonaws-china.com/cn/blogs/machine-learning/pioneering-personalized-user-experiences-at-stockx-with-amazon-personalize/

立即登錄,閱讀全文
版權(quán)說(shuō)明:
本文內(nèi)容來(lái)自于AWS,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
個(gè)人VIP