計分 Matchbox 推薦

使用 Matchbox 推薦評定資料集的預測分數

類別: 機器學習/分數

注意

適用于 : Machine Learning Studio (傳統)

此內容僅適用于 Studio (傳統) 。 Azure Machine Learning 設計工具中已新增類似的拖放模組。 若要深入瞭解 這兩個版本,請參閱這篇文章

模組概觀

本文說明如何使用 Azure Machine Learning Studio (傳統) 中的 計分 Matchbox 推薦 模組,根據 Microsoft Research 的 Matchbox 演算法,根據定型的建議模型來建立預測。

Matchbox 推薦可能會產生四種不同的預測:

建立後三種預測時,您可以在 生產模式評估模式下 操作。

  • 生產模式 會考慮所有使用者或專案,而且通常會在 web 服務中使用。

    您可以為新的使用者建立分數,而不只是在定型期間看到的使用者。 如需詳細資訊,請參閱本節

  • 評估模式 會在一組精簡的使用者或可進行評估的專案上運作,而且通常會在實驗期間使用。

提示

瞭解在本教學課程中,從 .NET 開發小組建立建議系統的端對端體驗所需瞭解的一切。 包含範例程式碼,以及如何從應用程式呼叫 Azure Machine Learning 的討論。

使用 Azure Machine Learning 建立 .NET 應用程式的建議引擎

深入瞭解 Matchbox 推薦

建立建議系統的目標是將一或多個「專案」建議給系統的「使用者」。 項目的範例可能是電影、餐廳、書籍或歌曲。 使用者可以是個人、人員群組或具有項目喜好設定的其他實體。

Recommender 系統有兩種主要方法。 第一種是 以內容為基礎的 方法,其利用使用者和項目的特徵。 使用年齡和性別等屬性可描述使用者,而使用作者和製造者可以描述項目。 在社交配對網站上可以找到以內容為基礎的建議系統的典型範例。 第二種方法是 協同篩選,該方法僅使用使用者和項目的識別項,並從使用者提供的項目評等 (疏鬆) 矩陣取得有關這些實體的隱含資訊。 我們可以從使用者所評等的項目以及從已評等相同項目的其他使用者了解使用者。

Matchbox Recommender 結合了協同篩選與以內容為基礎的方法。 因此被視為 混合 Recommender。 當使用者是系統較新的使用者時,可利用有關使用者的特徵資訊來改善預測,因而處理知名的「冷起始」問題。 不過,一旦有來自特定使用者的足量評等時,就可能根據其特定評比 (而不只是根據其特徵) 進行完全個人化的預測。 因此,可從以內容為基礎的建議順利轉換成以協同篩選為基礎的建議。 即使使用者或專案功能無法使用,Matchbox 仍可在其共同作業篩選模式下運作。

如需 Matchbox Recommender 與其基礎概率演算法的詳細資訊,請參閱相關的研究報告:

範例

如需如何從建議引擎建立分數的範例,請參閱 AZURE AI 資源庫

  • 推薦:影片建議:此範例示範專案的建議,其中專案為電影,也會示範評等預測。

  • 推薦:餐廳評等:此範例示範使用專案功能和使用者功能的專案建議。

  • 隨處建議:此 blog 文章提供許多視覺化輔助推薦系統的高階簡介。

如何設定計分 Matchbox 推薦

此模組支援不同類型的建議,各有不同的需求。 按一下您擁有之資料類型的連結,以及您想要建立的建議類型。

預測評等

當您預測評等時,此模型會根據定型資料計算指定的使用者回應特定專案的方式。 因此,評分的輸入資料必須同時提供使用者和專案的費率。

  1. 將已定型的建議模型新增至您的實驗,並將其連接到 定型的 Matchbox 推薦。 您必須使用 [ 定型 Matchbox 推薦] 來建立模型。

  2. 推薦預測種類:選取 評等預測。 不需要更多的參數。

  3. 新增您想要進行預測的資料,並將其連接至 資料集以進行評分

    若要預測評等,輸入資料集必須包含使用者-專案配對。

    資料集可以在第一個和第二個數據行中包含使用者-專案組的選擇性第三個數據行,但在預測期間會忽略第三個數據行。

  4. (選擇性) 如果您有使用者功能的資料集,請將它連接到 使用者功能

    使用者特徵的資料集應包含第一個資料行中的使用者識別碼。 其餘的資料行應該包含可描述使用者的值,例如其性別、喜好設定、位置等。

    計分 Matchbox 推薦 會忽略已評等專案之使用者的特徵,因為它們在定型期間已經過學習。 因此,請事先篩選您的資料集,使其只包含 冷啟動使用者,或是未分級任何專案的使用者。

    警告

    如果未使用使用者功能來定型模型,您就無法在評分期間引進使用者功能。

  5. 如果您有專案特徵的資料集,您可以將它連接到 專案功能

    專案功能資料集必須包含第一個資料行中的專案識別碼。 其餘的資料行應該包含可描述專案的值。

    計分 Matchbox 推薦 會忽略已評等專案的特徵,因為它們在定型期間已瞭解。 因此,請將評分資料集限制為 冷啟動專案,或未由任何使用者評等的專案。

    警告

    如果未使用專案特徵來定型模型,您就無法在評分期間引進專案特徵。

  6. 使用選擇性的第五個輸入埠(名為「 訓練資料集」)來移除已從預測結果分級的專案。

    若要套用此篩選準則,請將原始訓練資料集連接至輸入埠。

  7. 執行實驗。

評等預測的結果

輸出資料集包含三個數據行,其中包含使用者、專案,以及每個輸入使用者和專案的預測評等。

此外,評分期間會套用下列變更:

  • 使用者或專案功能資料行中的遺漏值會自動取代為其非遺漏定型集值的 模式

  • 所有使用者和專案功能都是由定型中所顯示的對應最大絕對值所重新調整。

  • 功能值不會套用轉譯,以維護其稀疏。

  • 字串值的特徵會轉換成一組二進位值的指標特徵。

推薦

若要為使用者建議專案,請提供使用者和專案的清單做為輸入。 從這項資料中,模型會使用其現有專案和使用者的知識,來產生可能吸引每位使用者的專案清單。 您可以自訂傳回的建議數目,並設定產生建議所需的先前建議數目閾值。

  1. 將已定型的建議模型新增至您的實驗,並將其連接到 定型的 Matchbox 推薦。 您必須使用 [ 定型 Matchbox 推薦] 來建立模型。

  2. 若要針對指定的使用者清單建議專案,請將 [ 推薦預測種類 ] 設定為 [ 專案建議]。

  3. 建議的專案選取:指出您是否在生產環境中使用評分模組,或選擇下列其中一個值來評估模型:

    • 從 [模型評估的評分專案 (]):如果您正在開發或測試模型,請選取此選項。 此選項會啟用 評估模式,而此模組只會根據輸入資料集中已分級的專案來提出建議。

    • 從所有專案:如果您要設定要在 Web 服務或生產環境中使用的實驗,請選取此選項。 此選項會啟用 生產模式,而此模組會從定型期間看到的所有專案提出建議。

  4. 新增您想要進行預測的資料集,並將它連接至 資料集以進行評分

    • 如果您選擇 [ 從所有專案] 選項,輸入資料集應該只包含一個資料行,其中包含要提出建議的使用者識別碼。

      如果資料集包含一個以上的資料行,則會引發錯誤。 您可以使用 [ 選取資料集中的資料行 ] 模組,從輸入資料集移除額外的資料行。

    • 如果您選擇 [ 評估專案 (中的 [模型評估)] 選項,則輸入資料集應由 使用者-專案配對 所組成。 第一個資料行應該包含 使用者 識別碼。 第二個數據行應該包含對應的 專案 識別碼。

      資料集可以包含使用者-專案評等的第三個數據行,但會忽略此資料行。

  5. (選擇性) 如果您有 使用者功能 的資料集,請將它連接到 使用者功能

    使用者功能資料集中的第一個資料行應該包含使用者識別碼。 其餘的資料行應該包含表示使用者的值,例如其性別、喜好設定、位置等。

    計分 Matchbox 推薦 會忽略已評等專案之使用者的功能,因為這些功能在定型期間已瞭解。 因此,您可以事先篩選資料集,使其僅包含 冷啟動使用者,或是未分級任何專案的使用者。

    警告

    如果未使用使用者功能來定型模型,您就無法在評分期間使用套用功能。

  6. (選擇性) 如果您有 專案特徵 的資料集,您可以將它連接到 專案功能

    專案功能資料集中的第一個資料行必須包含專案識別碼。 其餘的資料行應該包含可描述專案的值。

    計分 Matchbox 推薦 會忽略已評等專案的特徵,因為這些功能在定型期間已經過瞭解。 因此,您可以將評分資料集限制為 冷啟動專案,或未由任何使用者評等的專案。

    警告

    如果未使用專案特徵來定型模型,則在評分時請勿使用專案特徵。

  7. 要對 使用者建議的最大專案數:輸入每位使用者要傳回的專案數。 依預設,建議使用5個專案。

  8. 每位使用者的建議集區大小下限:輸入值以指出需要的先前建議數量。 根據預設,此參數設定為2,表示至少必須有兩個其他使用者建議該專案。

    只有當您在評估模式中評分時,才應該使用這個選項。 如果您選取 [ 從所有專案],則無法使用此選項。

  9. 執行實驗。

專案建議的結果

計分 Matchbox 推薦 所傳回的評分資料集會列出每個使用者的建議項目。

  • 第一個資料行包含使用者識別碼。
  • 會產生一些額外的資料行,這取決於您為 使用者建議的最大專案數 所設定的值。 每個資料行都包含依識別碼) (的建議專案。 這些建議依使用者-專案親和性排序,具有最高親和性的專案會放在資料行 [ 專案 1] 中。

警告

無法使用 [ 評估推薦 ] 模組來評估此計分資料集。

如果您要建議「像您一樣的人」,或是要建立類似使用者的集區,以做為其他類型的預測,則尋找相關使用者的選項會很有用。

  1. 將已定型的建議模型新增至您的實驗,並將其連接到 定型的 Matchbox 推薦。 您必須使用 [ 定型 Matchbox 推薦] 來建立模型。

  2. 推薦預測種類:選取 [ 相關使用者]。

  3. 相關的使用者選取:指出您將如何使用模型進行評分,並指定要做為分數依據的使用者集區,如下所示:

    • 從所有使用者:如果您要設定要在 Web 服務或生產環境中使用的實驗,或如果您需要為新使用者進行預測,請選取此選項。 此選項會啟用 生產模式,而模組只會以定型期間看到的使用者做為其建議的基礎。

    • 從評等專案 (評估模型的使用者):如果您正在開發或測試模型,請選取此選項。 此選項會啟用 評估模式,而模型會以測試集中已分級一些一般專案之使用者的建議為基礎。

  4. 連接包含要產生預測之使用者的資料集。 此資料集的格式取決於您是在生產模式或評估模式中使用計分模組。

    • 生產模式,使用 于所有專案

      要評分的資料集必須由您要尋找其相關使用者的 使用者 所組成。 第一個和唯一的資料行應該包含使用者識別碼。 如果包含其他資料行,則會引發錯誤。 您可以使用 [ 選取資料集中的資料行 ] 模組來移除不必要的資料行。

    • 評估模式, 從評分專案使用 (用於模型評估)

      要評分的資料集應包含包含使用者-專案配對的2-3 資料行。 第一個資料行應該包含使用者識別碼。 第二個數據行應該包含專案識別碼。 資料集可以針對資料行 2) 中的專案,在資料行1中包含使用者 (評等的第三個數據行,但會忽略 [評等] 資料行。

  5. 要為使用者尋找的相關使用者數目上限:輸入數位,指出您想要為每個使用者指定的最大預測數目。 預設值是5,表示最多可以傳回五個相關使用者,但在某些情況下,可能會少於5個。

  6. 在 [評估模式] 中 ([從評等 專案的使用者 ]) 中,設定這些額外的參數:

    • 查詢使用者和相關使用者的最小專案數目必須有共同的等級:此值會設定建議的臨界值。 您輸入的數位代表目標使用者和潛在相關使用者必須評等的最少專案數。 預設值為2,表示至少必須由兩個使用者分級兩個專案。

    • 單一使用者的相關使用者集區大小下限:這個值會控制建立建議所需的相似使用者數目下限。 根據預設,此值為2,這表示如果您的使用者人數與相同專案的評等有很多,您可以將它們視為相關並產生建議。

  7. (選擇性) 如果您有使用者功能的資料集,請將它連接到 使用者功能

    使用者功能資料集中的第一個資料行應該包含使用者識別碼。 其餘的資料行應該包含表示使用者的值,例如性別、喜好設定、位置等。

    計分 Matchbox 推薦 會忽略已評等專案之使用者的功能,因為這些功能在定型期間已瞭解。 因此,請事先篩選您的資料集,使其只包含 冷啟動使用者,或是未分級任何專案的使用者。

    警告

    如果未使用使用者功能來定型模型,您就無法在評分期間套用使用者功能。

  8. (選擇性) 如果您有專案特徵的資料集,請將它連接到 專案功能

    專案功能資料集中的第一個資料行必須包含專案識別碼。 其餘的資料行應該包含可描述專案的值。

    計分 Matchbox 推薦 會忽略已評等專案的特徵,因為這些功能在定型期間已瞭解。 因此,您可以將評分資料集限制為 冷啟動專案,或未由任何使用者分級的專案。

    警告

    如果未使用專案特徵來定型模型,則在評分時請勿使用專案特徵。

  9. 執行實驗。

計分 Matchbox 推薦 所傳回的評分資料集會列出與輸入資料集中每個使用者相關的使用者。

針對輸入資料集中指定的每個使用者,結果資料集包含一組相關的使用者。

  • 第一個資料行包含 (使用者提供做為輸入) 之目標使用者的識別碼。

  • 系統會產生額外的資料行,其中包含相關使用者的識別碼。 額外的資料行數目取決於您在選項中設定的值、 要尋找給使用者的相關使用者數目上限

    相關使用者是依與目標使用者的關聯強度來排序,而資料行中的最強相關使用者則是 [ 相關使用者 1]。

藉由預測相關的專案,您可以根據已分級的專案來產生使用者的建議。

  1. 將已定型的建議模型新增至您的實驗,並將其連接到 定型的 Matchbox 推薦。 您必須使用 [ 定型 Matchbox 推薦] 來建立模型。

  2. 推薦預測種類:選取 相關專案

  3. 連接包含要產生預測之使用者的資料集。 此資料集的格式取決於您是在生產模式或評估模式中使用計分模組。

    • 生產模式,使用 于所有專案

      要評分的資料集必須由您要尋找其相關使用者的專案所組成。

      第一個和唯一的資料行應該包含專案識別碼。 如果包含其他資料行,則會引發錯誤。 您可以使用 [ 選取資料集中的資料行 ] 模組來移除不必要的資料行。

    • 評估模式, 從評分專案使用 (用於模型評估)

      要評分的資料集應包含包含使用者-專案配對的2-3 資料行。 第一個資料行應該包含使用者識別碼。 第二個數據行應該包含專案識別碼。

      資料集可以針對資料行 2) 中的專案,在資料行1中包含使用者 (評等的第三個數據行,但會忽略 [評等] 資料行。

  4. 要尋找專案> 的相關專案數上限 :輸入數位,指出您想要為每個專案指定的最大預測數目。

    預設值是5,表示最多可以傳回五個相關的專案,但可能會少於5個。

  5. 如果您使用評估模式 (從評等 專案的使用者) ,請設定下列其他參數:

    • 查詢專案和相關專案的最小專案數目必須已依共同等級 計算:此值會設定建議的臨界值。 您輸入的數位代表目標使用者和一些相關使用者已分級的專案數目下限。 預設值為2,表示至少必須由目標使用者和相關使用者分級兩個專案。

    • 單一專案的相關專案集區大小下限:這個值會控制建立建議所需的類似專案數目下限。 根據預設,此值為2,也就是說,如果您擁有的兩個專案都是由相同的使用者評等,您可以將它們視為相關並產生建議。

  6. (選擇性) 如果您有使用者功能的資料集,請將它連接到 使用者功能

    使用者功能資料集中的第一個資料行應該包含使用者識別碼。 其餘的資料行應該包含表示使用者的值,例如其性別、喜好設定、位置等。

    計分 Matchbox 推薦 會忽略已評等專案之使用者的功能,因為這些功能在定型期間已瞭解。 因此,您可以事先篩選資料集,使其僅包含 冷啟動使用者,或是未分級任何專案的使用者。

    警告

    如果未使用使用者功能來定型模型,您就無法在評分期間套用使用者功能。

  7. (選擇性) 如果您有專案特徵的資料集,您可以將它連接到 專案功能

    專案功能資料集中的第一個資料行必須包含專案識別碼。 其餘的資料行應該包含描述專案的值。

    計分 Matchbox 推薦 會忽略已評等專案的特徵,因為這些功能在定型期間已經過瞭解。 因此,您可以將評分資料集限制為 冷啟動專案,或未由任何使用者分級的專案。

    警告

    如果未使用專案特徵來定型模型,則在評分時請勿使用專案特徵。

  8. (預測性實驗中的選擇性) ,您可以使用名為 訓練資料集 的第五個輸入埠,從預測結果移除模型定型資料中包含的現有使用者。

    若要套用此篩選準則,請將原始訓練資料集連接至輸入埠。

  9. 執行實驗。

計分 Matchbox 推薦 所傳回的評分資料集會列出輸入資料集中每個專案的相關專案。

  • 第一個資料行包含目標專案的識別碼, (做為輸入) 提供的專案。

  • 系統會產生額外的資料行,其中包含相關專案的識別碼。 額外的資料行數目取決於您在 [選項] 中設定的值、 為專案尋找的相關專案數上限

    相關的專案會依目標專案的關聯強度來排序,而資料行中的最強相關專案則是 相關專案 1

技術說明

本節包含有關使用推薦來建立預測的一些常見問題解答。

冷啟動使用者和建議

一般而言,若要建立建議, 計分 Matchbox 推薦 模組需要您在定型模型時所使用的相同輸入,包括使用者識別碼。 這是因為演算法必須知道它是否已在定型期間瞭解這項使用者的相關資訊。

不過,對於新的使用者,您可能沒有使用者識別碼,只有一些使用者功能,例如年齡、性別等等。

您仍然可以為系統很陌生的使用者建立建議,方法是將他們視為 冷啟動使用者 來處理。 對於這類使用者,建議演算法不會使用過去的歷程記錄或先前的評等,只會使用使用者特徵。

基於預測的目的,會將冷啟動使用者定義為具有尚未用於定型之識別碼的使用者。 若要確保識別碼不符合用於定型的識別碼,您可以建立新的識別碼。 例如,您可能會在指定的範圍內產生隨機識別碼,或針對冷啟動使用者預先配置一系列的識別碼。

不過,如果您沒有任何共同作業的篩選資料 (例如使用者特徵的向量),您最好使用分類或迴歸學習因子。

Matchbox 推薦的生產環境使用

如果您已實驗 Matchbox 推薦,然後將模型移至生產環境,請注意在評估模式中使用推薦和在生產模式中時,這些主要的差異:

  • 根據定義,評估需要可在測試集中進行 地真 驗證的預測。 因此,當您評估推薦時,它必須只預測已在測試集中評等的項目。 這一定會限制預測的可能值。

    不過,當您作業化模型時,通常會變更預測模式,根據所有可能的項目提出建議,以取得最佳預測。 針對這些預測當中的許多,沒有對應的基礎,因此建議的精確度無法以實驗期間的相同方式進行驗證。

  • 如果您未在運作中提供使用者識別碼,只提供特徵向量,您可能會得到所有可能使用者的所有建議清單做為回應。 請務必提供使用者識別碼。

    若要限制傳回的建議數目,您也可以指定每個使用者傳回的項目數上限。

  • 不可能只針對先前尚未評等的項目產生預測。 這是原廠設定。

    原因是,為了只建議尚未評等的專案,推薦需要儲存整個訓練資料集與模型,這樣會增加您的儲存體使用量。

    如果您只想要建議使用者尚未看到的項目,您可以要求建議更多項目,然後手動篩選出已經評等的項目。

推薦的連續更新

Azure Machine Learning 目前不支援建議模型的線上更新 (或持續定型) 。 如果您想要捕獲使用者對建議的回應,並使用這些建議來改善模型,建議您定期重新訓練完整的模型。 無法進行累加定型,但您可以將滑動視窗套用至訓練資料,以確保資料量在使用最新的資料時最小化。

預期的輸入

名稱 類型 Description
定型的 Matchbox 推薦 .Ilearner 定型的 Matchbox 推薦
要計分的資料集 資料表 要計分的資料集
使用者特徵 資料表 包含特徵來描述使用者的資料集

這項資料是選擇性的
項目特徵 資料表 包含特徵來描述項目的資料集

這項資料是選擇性的

模組參數

Name 範圍 類型 預設 描述
推薦預測種類 List 預測種類 項目建議 指定推薦應該輸出的預測類型
選擇建議項目 List 項目選取 從評等項目 (用於模型評估) 選取據以提出建議的項目集
選擇相關使用者 List 使用者選取 從評等項目的使用者 (用於模型評估) 選取尋找相關項目時要使用的一組使用者
選擇相關項目 List [專案選取 從評等項目 (用於模型評估) 選取尋找相關項目時要使用的一組項目

輸出

名稱 類型 Description
計分的資料集 資料表 計分的資料集

例外狀況

例外狀況 描述
錯誤 0022 如果輸入資料集中選取的資料行數目不等於預期的數目,就會發生例外狀況。
錯誤 0036 如果未給定的使用者或項目提供多個特徵向量,就會發生例外狀況。
錯誤 0013 如果傳遞給學習模組的類型無效,就會發生例外狀況。
錯誤 0035 若未提供指定使用者或項目的特徵,就會發生例外狀況。
錯誤 0053 當 Machbox 建議沒有使用者特徵或項目時,就會發生例外狀況。
錯誤 0003 如果一或多個輸入為 Null 或空白,就會發生例外狀況。

如需 Studio (傳統) 模組特定的錯誤清單,請參閱 機器學習錯誤碼

如需 API 例外狀況的清單,請參閱 機器學習 REST API 錯誤碼

另請參閱

定型 Matchbox 推薦
評估推薦
分數