定型 Matchbox 推薦
重要
Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning。
自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。
ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。
使用 Matchbox 演算法來為貝氏推薦定型
類別:機器學習/定型
模組概觀
本文說明如何使用機器學習 Studio (傳統) 中的「訓練 Matchbox 推薦模組來訓練建議模型。
機器學習中的建議演算法是以Microsoft Research所開發的Matchbox模型為基礎。 若要下載詳細說明演算法的論文,請按一下 Microsoft Research 網站上的此連結。
[定型 Matchbox 推薦] 模組會讀取使用者-項目-評等三合一的資料集,以及選擇性讀取某些使用者和項目功能。 它會傳回定型的 Matchbox Recommender。 然後,您可以使用 計分 Matchbox 推薦 模組,使用定型的模型來產生建議、尋找相關的使用者,或尋找相關的專案。
深入瞭解建議模型和 Matchbox 推薦
建議系統的主要目標是對系統的使用者建議一或多個項目。 項目的範例可能是電影、餐廳、書籍或歌曲。 使用者可以是個人、人員群組或具有項目喜好設定的其他實體。
Recommender 系統有兩種主要方法。
- 第一種是以內容為基礎的方法,其利用使用者和項目的特徵。 使用年齡和性別等屬性可描述使用者,而使用作者和製造者可以描述項目。 在社交配對網站上可以找到以內容為基礎的建議系統的典型範例。
- 第二種方法是協同篩選,該方法僅使用使用者和項目的識別項,並從使用者提供的項目評等 (疏鬆) 矩陣取得有關這些實體的隱含資訊。 我們可以從使用者所評等的項目以及從已評等相同項目的其他使用者了解使用者。
Matchbox 推薦結合了這些方法,並使用以內容為基礎的方法來共同作業篩選。 因此被視為混合 Recommender。
運作方式:當使用者是系統較新的使用者時,可利用有關使用者的特徵資訊來改善預測,因而處理知名的「冷起始」問題。 不過,一旦向特定使用者收集足量的評等時,就可能根據其特定評比 (而不只是根據其特徵) 進行完全個人化的預測。 因此,可從以內容為基礎的建議順利轉換成以協同篩選為基礎的建議。 即使使用者或項目特徵均無法使用,但 Matchbox 仍可在其協同篩選模式中運作。
如需 Matchbox 推薦及其基礎概率演算法的詳細資訊,請參閱相關的研究白皮書: Matchbox:大規模貝氏建議建議。 此外,機器學習的Blog也有一篇標題為建議隨處的文章,提供建議演算法的高階簡介。
如何設定定型 Matchbox 推薦
準備資料
在嘗試使用模組之前,您的資料必須是建議模型所預期的格式。 需要使用者-項目-評等三合一的定型資料集,但是您也可以在不同的資料集中包含使用者特徵和項目特徵 (如果有的話)。
若要將來源資料分割成定型和測試資料集,請使用分割資料模組中的推薦分割選項。
必要的使用者-項目-評等資料集
用於定型的輸入資料必須以正確的格式包含正確的資料類型,是很重要的:
- 第一個資料行必須包含使用者識別碼。
- 第二個資料行必須包含項目識別碼。
- 第三個資料行包含使用者-項目配對的評等。 評等值必須是數值或類別。
在定型期間,分級值不能全部相同。 此外,如果是數值,則最小值與最大分級值之間的差異必須小於100,且最好不要大於20。
機器學習 Studio (傳統) 中的餐廳評等資料集 (按一下 [已儲存的資料集],然後) 範例示範預期的格式:
userID | placeID | rating |
---|---|---|
U1077 | 135085 | 2 |
U1077 | 135038 | 2 |
從這個範例中,您可以看到單一使用者已評等兩個不同餐廳。
使用者特徵資料集 (選用)
使用者特徵的資料集必須包含使用者的識別碼,並使用使用者-項目-評等資料集的第一個資料行中所提供的相同識別碼。 其餘的資料行可以包含可描述使用者的任意數目特徵。
如需範例,請參閱機器學習 Studio (傳統) 中的餐廳客戶資料集。 一般的一組使用者功能看起來像這樣:
userID | 氛圍 | Dress_preference | 傳輸 | 吸煙者 |
---|---|---|---|---|
U1004 | family | 非正式 | 在墊腳 | FALSE |
U1005 | friends | 無喜好設定 | 汽車擁有者 | TRUE |
項目特徵資料集 (選用)
項目特徵的資料集必須包含其第一個資料行中的項目識別碼。 其餘的資料行可以包含項目的任意數目描述性特徵。
如需範例,請參閱機器學習 Studio (傳統) 中提供的餐廳功能資料集 (按一下 [已儲存的資料集],然後) 範例。 一般的一組專案功能 (在此案例中,專案是餐廳) 可能如下所示:
placeID | 酒精 | Smoking_area | price | Rambience |
---|---|---|---|---|
135106 | Wine-Beer | 無 | low | family |
132667 | No_Alcohol_Served | 允許 | 中 | 休閒 |
將模型定型
將 [ 定型 Matchbox 推薦 ] 模組新增至您在 Studio (傳統) 中的實驗,並將其連接到定型資料。
如果您有使用者功能和/或專案功能的個別資料集,請將它們連接到 定型 Matchbox 推薦 模組。
使用者特徵資料集:連接將使用者描述為第二個輸入的資料集。
項目特徵資料集:連接將項目描述為第三個輸入的資料集。
針對 [ 定型批次數目],輸入在定型期間用來分割資料的批次數目。
根據此值,使用者-專案-評等三合一的資料集會在定型期間分成多個部分或批次。
因為 定型 Matchbox 推薦 會以平行方式執行批次,所以建議將定型批次數目設定為可用核心的數目(如果整個定型資料符合記憶體)。 否則,定型批次的數目應該設定為可用核心數目的最小倍數,定型資料會放入記憶體中。
根據預設,定型資料會分割成四個 (4) 批次。 只會分割使用者-專案-評等三合一的資料集。 使用者或專案功能不會分割,因為功能不需要分割。
針對 [ 特性數目],輸入應針對每個使用者和專案學習的潛在特性數目。
特性的數目愈高,預測通常會越精確;不過,定型的速度較慢。 特性數目通常落在範圍 2-20 個。
如需 建議演算法反覆運算的數目,請指出演算法應該處理輸入資料的次數。
Matchbox 推薦是使用訊息傳遞演算法來定型,可以在輸入資料上反復執行多次。 此數位愈高,預測愈精確;不過,定型的速度較慢。 通常反覆次數是在範圍 1-10 內。
執行實驗,或只選取 定型 Matchbox 推薦 模組,然後選取 [ 執行選取]。
範例
如需如何在機器學習中使用建議模型的範例,請參閱Azure AI 資源庫中的下列範例實驗:
- Movie 推薦範例:示範如何使用建議模型來定型、評估和評分。
技術說明
本節包含實作詳細資料、提示和常見問題集的解答。
使用提示
如果功能資料行有遺漏值,則會使用非遺漏值的模式來取代遺漏值。
所有使用者和專案功能都會重新調整為具有單位長度,因此其最大絕對值為1。 特徵值不會進行轉譯,以維護其「稀疏性」。
限制
在機器學習中,目前不支援建議模型的線上更新 (或持續定型) 。 如果您想要捕獲使用者對建議的回應,並使用這些建議來改善模型,建議您定期重新訓練完整的模型。 無法進行累加定型,但您可以將滑動視窗套用至訓練資料,以確保資料量在使用最新的資料時最小化。
估計推薦記憶體使用量
目前,Matchbox 的記憶體使用量下限是 16 * N\(4\T + 2\R)
位元組,其中 N 是指訓練資料集中的使用者-專案-評等三合一數目、潛在特性的 數目,以及R 與訓練資料集內的最小和最高評等 (之間的差異) 。
序列化 Matchbox 推薦模型的大小大約 16 * T\(U\R + I + X + Y)
是位元組,其中 U 指的是使用者數目、 I 到專案數、 X 到使用者特徵數目,以及 Y 到專案特徵數目。
預期的輸入
名稱 | 類型 | 說明 |
---|---|---|
定型使用者-項目-評等三合一的資料集 | 資料表 | 使用者所做的項目評等,以三個為一組表示 (使用者、項目、評等) |
定型使用者特徵的資料集 | 資料表 | 包含功能的資料集,這些功能會描述使用者 (選擇性) |
定型項目特徵的資料集 | 資料表 | 包含可描述專案 (選用) 功能的資料集 |
模組參數
名稱 | 範圍 | 類型 | 預設 | 描述 |
---|---|---|---|---|
特性數目 | >=0 | 整數 | 10 | 指定要搭配推薦使用的特性數目 (選擇性) |
建議演算法反覆運算次數 | >=1 | 整數 | 5 | 指定在定型建議模型時要執行的反復專案數目上限 (選擇性) |
定型批次數目 | >=1 | 整數 | 4 | 指定要搭配推薦使用的定型批次數目 (選擇性) |
輸出
名稱 | 類型 | 說明 |
---|---|---|
定型的 Matchbox 推薦 | ILearner 介面 | 定型的 Matchbox 推薦 |
例外狀況
例外狀況 | 描述 |
---|---|
錯誤 0022 | 如果輸入資料集中選取的資料行數目不等於預期的數目,就會發生例外狀況。 |
錯誤 0036 | 如果未給定的使用者或項目提供多個特徵向量,就會發生例外狀況。 |
錯誤 0018 | 如果輸入資料集無效,就會發生例外狀況。 |
錯誤 0035 | 若未提供指定使用者或項目的特徵,就會發生例外狀況。 |
錯誤 0034 | 如果給定的使用者/項目配對有多個評等,就會發生例外狀況。 |
錯誤 0053 | 當 Machbox 建議沒有使用者特徵或項目時,就會發生例外狀況。 |
錯誤 0003 | 如果一或多個輸入為 Null 或空白,就會發生例外狀況。 |
如需 Studio (傳統) 模組特定的錯誤清單,請參閱機器學習錯誤碼。
如需 API 例外狀況的清單,請參閱機器學習 REST API 錯誤碼。