本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
神經主題模型 (NTM) 演算法
Amazon SageMaker NTM 是一種無監督式學習演算法,用於將文件語料庫組織成包含以統計分佈為基礎的文字群組的主題。舉例來說,經常出現「自行車」、「車輛」、「火車」、「里程」和「速度」這類字詞的文件可能會共享「運輸」主題。主題模組化可用來根據偵測到的主題分類或摘要文件,或根據主題相似之處擷取資訊或建議內容。來自 NTM 學習的文件主題具有「潛在表達」特徵,因為這些主題是從主體中觀察到的字詞分布來推論。主題的語意通常透過檢查其中包含排序最高的字詞來推論。因為方法無人監管,只有主題的數量會預先指定,而非主題本身。此外,主題不保證與人類自然分類文件的方式相同。
就學習主題而言,主題模組化提供一種將大型文件語料庫的內容視覺化的方式。與各主題相關的文件可能被編制索引或根據它們的可變主題標籤來搜尋。文件的潛在表達還可能用於尋找主題空間中的類似文件。您也可以將主題模型學習的文件潛在表達運用於輸入到另一個受監管的演算法中,例如文件分類器。由於文件的潛在表達預期會擷取基礎文件的語意,以這些表達為基礎的演算法效果預期會比單獨以辭典功能為基礎的表達更好。
雖然您可以同時使用 Amazon SageMaker NTM 和 LDA 演算法進行主題建模,但它們是獨特的演算法,可預期在相同的輸入資料上產生不同的結果。
如需 NTM 背後的數學原理詳細資訊,請參閱 Neural Variational Inference for Text Processing
NTM 演算法的輸入/輸出界面
Amazon SageMaker 神經主題模型支援四個資料通道:訓練、驗證、測試和輔助。驗證、測試和輔助資料通道為選擇性的。如果您指定這些選用通道,請將其 S3DataDistributionType
參數值設定為 FullyReplicated
。如果您提供驗證資料,此資料上的損失會記錄於每個 epoch,而模型會在偵測到驗證損失未改善時停止培訓。如果您不提供驗證資料,演算法會根據培訓資料於初期停止,但是這可能較不具效率。如果您提供測試資料,演算法從最終模型回報測試損失。
NTM 的訓練、驗證和測試資料通道同時支援 recordIO-wrapped-protobuf
(密集與稀疏) 和 CSV
檔案格式。針對 CSV
格式,若字詞未顯示於對應文件中,則每個資料列必須以含有零計數的密集方式顯示,且維度等於:(記錄的數量) * (詞彙的數量)。您可以使用檔案模式或管道模式,以 recordIO-wrapped-protobuf
或 CSV
格式的資料來訓練模型。輔助通道是用來提供包含詞彙的文字檔案。提供詞彙檔案時,使用者即可查看日誌中所示每個主題最常使用的字詞,而不是其整數 ID。使用詞彙檔案也可讓 NTM 計算 Word Embedding Topic Coherence (WETC) 分數,這是日誌中顯示的新指標,其可有效擷取每個主題常用字詞的相似性。輔助通道的 ContentType
是 text/plain
,其中每一行包含單一字詞,順序與資料中提供的整數 ID 對應。詞彙檔案必須命名為 vocab.txt
,且目前只支援 UTF-8 編碼。
針對推論,可支援 text/csv
、application/json
、application/jsonlines
和 application/x-recordio-protobuf
內容類型。也可對 application/json
和 application/x-recordio-protobuf
傳遞稀疏資料。NTM 推論會傳回 application/json
或 application/x-recordio-protobuf
的「預測」,其中包含每個觀察的 topic_weights
向量。
如需如何使用輔助通道和 WETC 分數的詳細資訊,請參閱部落格文章
如需輸入和輸出檔案格式的詳細資訊,請參閱適用於推論的 NTM 回應格式以及 NTM 範例筆記本。
NTM 演算法的 EC2 執行個體建議事項
NTM 培訓支援 GPU 和 CPU 執行個體類型。我們建議使用 GPU 執行個體,但是對於特定的工作負載,CPU 可能產生較低的培訓成本。CPU 執行個體應足以用於推論。NTM 訓練可支援 P2、P3、G4DN 和 G5 GPU 執行個體系列,進行訓練和推論。
NTM 範例筆記本
如需使用 SageMaker NTM 演算法從已知主題發佈的合成資料來源中找出文件主題的範例筆記本,請參閱 NTM 基本功能簡介