如何構建一個可伸縮的廣而深的產品推薦
2021年6月9日 在工程的博客
下載筆記本電腦在本文中引用。
我有一個最喜歡的咖啡店,我一直有造訪多年。當我走進去時,咖啡師知道我的名字,問我想喝。在大多數情況下,答案是“是的”,但時不時地,我看到他們有一些季節性商品和尋求建議。知道我通常點輕甜與額外的拿鐵咖啡,咖啡師可能推薦黑巧克力摩卡——而不是水果混合物堆滿生奶油和巧克力屑。咖啡師的知識我的明確的偏好和概括的能力基於我過去的選擇為我提供了一個高度個性化的體驗。因為我知道咖啡師知道和理解我,我相信他們的建議。
就像我最喜歡的咖啡店的咖啡師,推薦係統的廣而深的學習記憶和歸納的能力產品推薦基於用戶行為和客戶交互。首先,我調度由穀歌使用穀歌應用商店,廣而深的機器學習(ML)模型已成為流行的各種在線個性化用戶活動場景的能力,即使在冷啟動問題的場景與稀疏數據輸入。
又寬又深的推薦係統的目標是提供相同級別的客戶親密關係,例如,我們最喜歡的咖啡師。這個模型使用顯式和隱式反饋擴大為客戶考慮設置。beplay体育app下载地址廣而深的推薦係統超越簡單的加權平均客戶反饋中發現一些協作過濾來平衡有什麼了解個人知道是什麼類似的客戶。beplay娱乐iosbeplay体育app下载地址如果操作得當,建議讓客戶感到理解和這應該轉化為更大的價值的客戶和業務。
理解模型設計
理解深刻的概念及廣泛的建議,最好是把它作為兩個單獨的,但合作,引擎。廣泛的模型,通常指在文學線性模型,記下用戶和他們過去的產品選擇。輸入可由簡單的用戶標識符和一個產品標識符,雖然其他屬性相關的模式(如時間)也可以注冊。
深度模型的一部分,所以命名為深層神經網絡,探討了可概括的屬性的用戶和他們的產品選擇。從這些,模型學習廣泛的特點,傾向於用戶的產品選擇。
被訓練在一起,又寬又深的子曆史產品選擇通過個人用戶來預測未來產品選擇。最終的結果是一個模型能夠計算的概率用戶將購買一個給定的項目,鑒於記住過去的選擇和概括關於用戶的偏好。這些概率形式特定於用戶的產品排名的基礎,可用於提出建議。
建築模型
的直覺邏輯廣而深的推薦掩蓋了其實際施工的複雜性。必須定義輸入分別為每個模型的很大部分,每個必須訓練以協調的方式到達一個輸出,但調整使用優化特定於每個子模型的性質。值得慶幸的是,Tensorflow DNNLinearCombinedClassifier估計量提供了一個預包裝的結構,極大地簡化了裝配的總體模型。
培訓
大多數組織麵臨的挑戰是然後培訓推薦的大量用戶產品組合中找到他們的數據。使用Petastorm,一個開源庫為大型數據集服務聚集在Apache火花™Tensorflow(和其他毫升庫),我們可以在高速緩存數據,臨時存儲在可控的增量,然後讀取數據模型在訓練。在這一過程中,我們限製了內存開銷與訓練,同時保留相關性能。
調優
調優模型成為下一個挑戰。各種模型參數控製其達到一個最優解的能力。最有效的方式通過潛在的工作參數組合就是遍曆某個數的訓練周期,每次運行比較模型的評價指標和確定理想的參數組合。通過利用與SparkTrails hyperopt,我們可以在許多計算節點並行處理這項工作,使優化及時執行。
部署
最後,我們需要部署模型與各種零售應用程序集成。利用MLflow讓我們堅持我們的模型和方案部署在各種microservices層,包括Azure機器學習、AWS Sagemaker, Kubernetes和磚模式。
雖然這似乎是一個彙集了大量的技術構建一個模型,磚集成所有這些技術在單一平台,提供數據科學家,工程師和數據Beplay体育安卓版本MLOps工程師一個統一的體驗。這些技術的前期整合意味著各種角色工作更快,可以利用額外的功能,如自動跟蹤的模型,以提高組織的模型建設的透明度。
看到一個端到端的廣而深的推薦模型的例子可能是建立在磚,請查看以下筆記本: