全部產品
Search
文件中心

Platform For AI:推薦解決方案綜述

更新時間:Jul 13, 2024

推薦系統和搜尋引擎是現代App解決資訊過載的標配系統,如果從零開發推薦系統,不僅需要耗費大量金錢和時間,而且很難滿足快速上線推薦系統及不斷迭代各種演算法的業務要求。本文為您介紹如何使用阿里雲產品建立推薦系統的資料和模型,從而快速搭建自己的推薦系統。

架構

完整的推薦流程包括召回和排序。召回是指從海量的待推薦候選集中,選取待推薦列表。排序是指對待推薦列表的每個Item與User的關聯程度進行排序。推薦系統的架構如下。推薦系統架構

基於PAI產品實現推薦系統的架構如下。PAI實現的推薦系統架構其中:

  • 資料分為User、Item及Behavior,均儲存於MaxCompute。

  • 使用DataWorks進行資料預先處理和基礎特徵構建。

  • 部分特徵向量寫入Tablestore。

  • 使用Designer進行召回和排序演算法相關計算。

  • 排序模型可以直接通過EAS部署為RESTful API。

  • 可以先將召回結果寫入Tablestore,再使用PAI-AutoLearning進行配置,最終將結果傳入EAS並部署為RESTful API。

完整的推薦流程如下。推薦方案的架構使用者進入PAI平台,首先調用EAS的召回服務擷取召回列表,然後在Tablestore中,使用User ID和Item ID讀取特徵,並將拼接好的樣本傳入EAS排序服務,最終擷取排序結果。

推薦系統的相關資料

冷啟動情境

如果需要推薦很多Item,則可以考慮使用文章的標題和本文訓練一個Doc2vec模型,並對每個Item產生一個向量,詳情請參見文本分析

您可以將向量放至ES引擎中,並添加向量檢索外掛程式,從而使每個向量可以召回相似向量。建議先對Item進行分類,再在同一個大類中尋找相似向量。如果沒有對Item進行分類,則可以標註部分Item,並將其作為分類模型。

基於使用者行為的推薦情境

擁有冷啟動及使用者點擊資料後,您可以按照如下方法構建推薦情境:

  1. 使用使用者點擊序列計算物品和物品之間的關係。您可以通過自然語言處理中的Word2vec演算法,將每個使用者點擊的多個Item作為一個句子,並對該Item序列進行清洗(例如,訪問的Item屬於同一個大類、訪問的Item在同一個Session中或兩次訪問Item的時間間隔不超過30分鐘),詳情請參見文本分析

  2. 獲得足夠的User和Item資料後,您可以通過協同過濾etrec演算法或矩陣分解演算法計算得到Item-Item資料,詳情請參見組件配置使用ALS演算法實現音樂評分預測(舊版)

    說明

    etrec演算法中可以設定權重weight。例如,對點擊、收藏及購買設定不同的權重。

  3. 獲得使用者點擊Item的日誌和曝光日誌後,您可以使用GBDT模型(避免特徵工程)或樹模型(例如PS-SMART)整理使用者特徵和Item特徵,詳情請參見組件配置GBDT迴歸

  4. 使用如下任何一種演算法挖掘特徵(User和Item本身特徵、User-Item交叉特徵及Context特徵):

  5. 模型訓練完成後,使用EAS將其部署為RESTful API,詳情請參見服務部署:控制台

  6. 使用TextRank演算法提取關鍵詞,從而挖掘Item中的標籤資訊,詳情請參見文本分析