本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Object2Vec 演算法
Amazon SageMaker Object2Vec 演算法是一種可高度自訂的一般用途神經內嵌演算法。它可以學習高維度物件的低維度密集內嵌。透過下列方式學習內嵌:將原始空間物件組之間的關係語意保留在內嵌空間中。例如,您可以使用學習的內嵌有效率地計算物件的最鄰近項,並視覺化低維度空間中相關物件的自然叢集。您也可以將內嵌做為下游受監督任務中對應物件的功能,例如分類或迴歸。
Object2Vec 會針對在 中最佳化的單字,概括已知的 Word2Vec 內嵌技術 SageMaker BlazingText 演算法。如需討論如何將 Object2Vec 套用至某些實際使用案例的部落格文章,請參閱 Amazon SageMaker Object2Vec 簡介
主題
Object2Vec 演算法的 I/O 介面
您可以在多種輸入資料類型上使用 Object2Vec,包括下列範例。
輸入資料類型 | 範例 |
---|---|
句子/句子對 |
“多名男性參與的一場足球比賽。” 和 “一些男士正在運動。” |
標籤/序列對 |
影片 “鐵達尼號” 的風格標籤,例如 “浪漫” 和 “戲劇”,以及其簡短說明:“詹姆斯卡梅隆的鐵達尼號是一部史詩級精彩紛呈的浪漫故事,但 R.M.S. 鐵達尼號的首航卻發生不幸。她是她那個時代最奢華的郵輪 (一艘夢之船),最終在1912 年 4 月 15 日凌晨於北大西洋的冰冷水域中造成 1,500 多人死亡。” |
客戶/客戶對 |
Jane 的客戶 ID 和 Jackie 的客戶 ID。 |
產品/產品對 |
足球的產品 ID 和籃球的產品 ID。 |
項目審核使用者/項目對 |
使用者 ID 和她購買的項目,例如蘋果、梨子和橘子。 |
若要將輸入資料轉換為支援的格式,您必須預先處理資料。目前,Object2Vec 可原生支援兩種類型的輸入:
-
分散式權杖,這會以單一
integer-id
的清單表示。例如:[10]
。 -
一連串分散式權杖,這會以
integer-ids
的清單表示。例如:[0,12,10,13]
。
每一對中的物件可以是非對稱的。例如,對可以是 (權杖、序列) 或 (權杖、權杖) 或 (序列、序列)。若是權杖輸入,演算法支援簡單內嵌做為相容的編碼器。若是權杖向量的序列,演算法支援以下編碼器:
-
平均集區內嵌
-
階層卷積神經網路 (CNNs)、
-
多層雙向長短期記憶體 (BiLSTMs)
每一對的輸入標籤可以是以下其中一個:
-
分類標籤,表示配對中物件之間的關係
-
分數,表示兩個物件之間的相似性強度
若是用於分類的分類標籤,演算法支援跨熵損失函式。對於迴歸中使用的評級/分數型標籤,演算法支援平均平方誤差 (MSE) 損失函數。當您建立模型訓練任務時,請使用 output_layer
超參數指定這些損失函式。
EC2 Object2Vec 演算法的執行個體建議
您使用的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體類型取決於您是訓練還是執行推論。
在 上使用 Object2Vec 演算法訓練模型時CPU,請從 ml.m5.2xlarge 執行個體開始。若要在 上進行訓練GPU,請從 ml.p2.xlarge 執行個體開始。如果在此執行個體上訓練的時間太長,您可以使用較大的執行個體。目前,Object2Vec 演算法只能在單一機器上訓練。不過,它確實支援多個 GPUs。Object2Vec P2, P3, G4dn 和 G5 GPU執行個體系列進行訓練和推論。
若要使用訓練有深度神經網路的 Object2Vec 模型進行推論,建議使用 ml.p3.2xlarge GPU執行個體。由於GPU記憶體不足,可以指定INFERENCE_PREFERRED_MODE
環境變數來最佳化 GPU 最佳化:分類或迴歸或GPU 最佳化:編碼器內嵌推論網路是否載入 GPU。
Object2Vec 範例筆記本
注意
若要在筆記本執行個體上執行筆記本,請參閱存取範例筆記本。若要在 Studio 上執行筆記本,請參閱建立或開啟 Amazon SageMaker Studio Classic Notebook。