

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Factorization Machines 演算法
<a name="fact-machines"></a>

Factorization Machines 演算法為一般用途的監督式學習演算法，可以用來分類與迴歸任務。該演算法旨在延伸線性模型的用途，藉此在高維度稀疏資料集內，以經濟實惠方式擷取各特徵之間的互動。舉例來說，因式分解機模型可以在點閱預測系統中，觀察特定頁面類別上所放置的特定廣告類別，並擷取該頁面上的廣告點擊率模式。對於處理點閱預測、項目推薦等高維度稀疏資料集的任務，Factorization Machines 將會是您的最佳選擇。

**注意**  
採用 Amazon SageMaker AI 實作的 Factorization Machines 僅會考量各特徵之間的逐對 (二階) 互動。

**Topics**
+ [Factorization Machines 演算法的輸入/輸出介面](#fm-inputoutput)
+ [Factorization Machines 演算法的 EC2 執行個體建議](#fm-instances)
+ [Factorization Machines 範例筆記本](#fm-sample-notebooks)
+ [Factorization Machines 的運作方式](fact-machines-howitworks.md)
+ [Factorization Machines 超參數](fact-machines-hyperparameters.md)
+ [調校 Factorization Machines 模型](fm-tuning.md)
+ [因式分解機回應格式](fm-in-formats.md)

## Factorization Machines 演算法的輸入/輸出介面
<a name="fm-inputoutput"></a>

您可以在二元分類模式或迴歸模式中，執行 Factorization Machines 演算法。在每一種模式下，系統皆會連同訓練通路的資料集，將資料集一併提供給**測試**通道。評分取決於所使用的模式。在迴歸模式中，系統會透過均方根誤差 (RMSE) 為測試資料集評分。而二元分類模式則會透過二元交叉熵 (損失函式)、準確度 (閾值 = 0.5) 與 F1 分數 (閾值 = 0.5)，對測試資料集進行評分。

對於**訓練**，Factorization Machines 演算法目前僅支援採用 `Float32` 張量 (tensor) 的 `recordIO-protobuf` 格式。該演算法的使用案例主要是針對稀疏資料，所以 `CSV` 並不適合。檔案模式與管道模式皆支援已包裝 recordIO 的 protobuf。

對於**推論**，因式分解機演算法支援 `application/json` 和 `x-recordio-protobuf` 格式。
+ 對於**二進位分類**問題，演算法預測評分和標籤。標籤是一個數字，可以是 `0` 或 `1`。分數是一個數字，表示演算法相信標籤為 `1` 的強度。演算法首先會計算分數，然後從分數值衍生標籤。如果分數大於或等於 0.5，則標籤為 `1`。
+ 對於**迴歸**問題，只會傳回分數，且它是預測值。例如，如果 Factorization Machines 用來預測影片分級，則分數是預測的分級值。

如需訓練與推論檔案格式的詳細資訊，請參閱[Factorization Machines 範例筆記本](#fm-sample-notebooks)。

## Factorization Machines 演算法的 EC2 執行個體建議
<a name="fm-instances"></a>

Amazon SageMaker AI Factorization Machines 演算法具備高可擴展性，且能夠在各個分布的執行個體中進行訓練。建議您透過 CPU 執行個體，加以訓練、推論稀疏資料集與密集資料集。在某些情況下，透過一個或多個 GPU 來訓練密集資料也許能讓使用者從中獲益。請注意，GPU 訓練僅適用於密集資料。若是稀疏資料，請使用 CPU 執行個體進行訓練。因式分解機演算法可支援 P2、P3、G4dn 和 G5 執行個體，進行訓練和推論。

## Factorization Machines 範例筆記本
<a name="fm-sample-notebooks"></a>

如需使用 SageMaker AI Factorization Machines 演算法，在 MNIST 資料集中分析 0 到 9 手寫數字的範例筆記本，請參閱[使用 MNIST 的 Factorization Machines 簡介](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/factorization_machines_mnist/factorization_machines_mnist.html)。如需如何建立並存取 Jupyter 筆記本執行個體以用來執行 SageMaker AI 中範例的指示，請參閱[Amazon SageMaker 筆記本執行個體](nbi.md)。在建立並開啟筆記本執行個體後，請選取 **SageMaker AI 範例**索引標籤以查看所有 SageMaker AI 範例的清單。使用 Factorization Machines 演算法的範例筆記本位於 **Amazon 演算法簡介**一節。若要開啟筆記本，請按一下其**使用**標籤，然後選取**建立複本**。