本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
準備項目中繼資料以供訓練
項目中繼資料包含使用者互動項目的數值和分類資料。項目中繼資料的範例包括建立時間戳記、價格、類型、描述和可用性。您可以將項目的中繼資料匯入 Amazon Personalize Items 資料集。
根據您的網域使用案例或自訂配方,項目中繼資料可協助 Amazon Personalize 向使用者建議更相關的項目、更準確地預測類似的項目,或建議更有意義的使用者客群。它可協助 Amazon Personalize 在建議中加入新項目。某些網域使用案例需要項目中繼資料,而所有自訂配方都是選用項目中繼資料。如需詳細資訊,請參閱 中網域使用案例或配方的資料需求將您的使用案例與 Amazon Personalize 資源配對。
訓練時,Amazon Personalize 不會使用非分類字串項目資料,例如項目標題或作者資料。不過,匯入此資料仍然可以增強建議。如需詳細資訊,請參閱非分類字串資料。
Amazon Personalize 在訓練期間考量的項目數上限取決於您的使用案例或配方。只有訓練期間考慮的項目才能顯示在建議中。
-
對於 User-Personalization-v2 或 Personalized-Ranking-v2,模型在訓練期間考慮的項目數量上限為 500 萬。這些項目來自項目和項目互動資料集。
-
對於 User-Personalization-v2 和 Personalized-Ranking-v2 以外的所有網域使用案例和自訂配方,模型在訓練和產生建議期間考慮的項目數量上限為 750,000。
對於所有網域使用案例和自訂配方,您的大量項目資料必須位於 CSV 檔案中。檔案中的每一列都應該代表唯一的項目。完成資料準備後,您就可以建立結構描述 JSON 檔案。此檔案會告知 Amazon Personalize 您資料的結構。如需詳細資訊,請參閱為 Amazon Personalize 結構描述建立結構描述 JSON 檔案。
下列各節提供如何準備 Amazon Personalize 項目中繼資料的詳細資訊。如需所有資料類型的大量資料格式指導方針,請參閱大量資料格式指導方針
項目資料需求
以下是 Amazon Personalize 的項目中繼資料需求。
如果您不確定自己有足夠的資料,或對資料品質有疑問,您可以將資料匯入 Amazon Personalize 資料集,並使用 Amazon Personalize 進行分析。如需詳細資訊,請參閱分析 Amazon Personalize 資料集中的資料品質和數量。
-
對於所有網域使用案例和自訂配方,您必須有一個 ITEM_ID 資料欄,該資料欄會存放每個項目的唯一識別符。每個項目都必須有一個項目 ID。它必須是長度
string
上限為 256 個字元的 。 -
對於自訂配方,您的資料必須至少有一個分類字串或數值中繼資料資料欄。項目中繼資料資料欄可以包含空白/無效值。我們建議這些資料欄至少完成 70%。
-
對於網域使用案例,所需的資料欄取決於您的網域。如需詳細資訊,請參閱 VIDEO_ON_DEMAND 網域需求 或 ECOMMERCE 網域需求。
-
中繼資料資料欄的數量上限為 100。
VIDEO_ON_DEMAND 網域需求
某些使用案例需要項目中繼資料 (請參閱 VIDEO_ON_DEMAND 使用案例)。選用時,我們仍建議您匯入項目中繼資料,以取得最相關的建議。如果您匯入項目中繼資料,您的資料必須包含下列資料欄:
-
ITEM_ID
-
GENRES (類別
string
) -
CREATION_TIMESTAMP (Unix epoch 時間格式)
以下列出其他建議的欄及其所需的類型。null
類型表示資料欄可能缺少值。我們建議這些資料欄至少完成 70%。包含這些資料欄可以改善建議。
價格 (浮水印)
持續時間 (浮水印)
GENRE_L2 (類別
string
、null
)GENRE_L3 (類別
string
、null
)AVERAGE_RATING (
float
、null
)PRODUCT_DESCRIPTION (文字
string
、null
)CONTENT_OWNER (類別
string
、null
) – 擁有影片的公司。例如,值可能是 HBO、Paramount 和 NBC。CONTENT_CLASSIFICATION (類別
string
、null
) – 內容的評分。例如,值可能是 G、PG、PG-13、R、NC-17 和未評分。
ECOMMERCE 網域需求
項目中繼資料對於所有 ECOMMERCE 使用案例都是選用的。如果您有項目資料,建議您匯入,以取得最相關的建議。如果您匯入項目中繼資料,您的資料必須具有下列資料欄:
-
ITEM_ID
-
價格 (
float
) -
CATEGORY_L1 (類別
string
) – 如需格式化類別資料的相關資訊,請參閱 分類中繼資料。
以下列出其他建議的欄及其所需的類型。null
類型表示資料欄可能缺少值。我們建議這些資料欄至少完成 70%。包含這些資料欄可以改善建議。
CATEGORY_L2 (類別
string
、null
)CATEGORY_L3 (類別
string
、null
)PRODUCT_DESCRIPTION (文字
string
、null
)CREATION_TIMESTAMP (
float
)AGE_GROUP (類別
string
、null
) – 項目的年齡群組。值可能是新生兒、嬰兒、兒童和成人。ADULT (類別
string
、null
) – 此項目是否僅限於成人,例如酒精。值可能是是或否。GENDER (類別
string
、null
) – 項目的性別。值可以是男性、女性和中性。
建立時間戳記資料
建立時間戳記資料必須是 Unix epoch 時間格式,以秒為單位。例如,2020 年 7 月 31 日以秒為單位的 Epoch 時間戳記為 1596238243。若要將日期轉換為 Unix epoch 時間戳記,請使用 Epoch 轉換器 - Unix 時間戳記轉換器
Amazon Personalize 使用建立時間戳記資料 (以 Unix epoch 時間格式,以秒為單位) 來計算項目的存留期,並相應地調整建議。
如果一或多個項目缺少建立時間戳記資料,Amazon Personalize 會從互動資料推斷此資訊,如果有的話,並使用項目最舊互動資料的時間戳記作為項目的建立時間戳記。如果項目沒有互動資料,其建立時間戳記會設定為訓練集中最新互動的時間戳記,而 Amazon Personalize 會將其視為新項目。
分類中繼資料
在某些配方和所有網域使用案例中,Amazon Personalize 會在識別基礎模式時,使用類別中繼資料,例如項目的類型或顏色,以向使用者顯示最相關的項目。您可以根據使用案例定義自己的值範圍。分類中繼資料可以是任何語言。
對於具有多個類別的項目,請以垂直長條 '|' 分隔每個值。例如,對於 GENRES 欄位,項目的資料可能是 Action|Crime|Biopic
。如果您有多個層級的分類資料,而且有些項目在階層中每個層級都有多個類別,請針對每個層級使用個別的資料欄,並在每個欄位名稱後面附加層級指標:GENRES、GENRE_L2、GENRE_L3。這可讓您根據子類別篩選建議,即使項目屬於多個多層級類別 (如需建立和使用篩選條件的資訊,請參閱 篩選建議和使用者區段)。例如,影片可能具有每個類別層級的下列資料:
-
GENRES:Action|Adventure
-
GENRE_L2:Crimer|Western
-
GENRE_L3:生物特徵
在此範例中,影片位於動作 > 犯罪 > 生物特徵階層和冒險 > 西部 > 生物特徵階層。我們建議最多只使用 L3,但如有必要,您可以使用更多層級。
分類值最多可有 1000 個字元。如果您有類別值超過 1000 個字元的項目,您的資料集匯入任務將會失敗。我們建議分類資料欄最多有 1000 個可能的值。匯入具有更多值的分類資料可能會對建議產生負面影響。下列可協助您減少分類資料欄的可能值數量:
-
確保值遵循一致的命名慣例,並檢查是否有錯字。例如,使用 "Men's Shoes",而不是混合使用 "Men's Shoes"、"Mens Shoes" 和 "Male Footwear"。
-
整合使用略有不同詞彙的類似類別,這些詞彙是指相同的基礎類別,例如 "Shoes" 和 "Sneakers"。
-
如果您的資料具有階層式結構,其中更廣泛的類別 (例如 "Footwear") 包含更具體的子類別 (例如 "Men's Shoes"、"Women's Shoes"、"Children's Shoes"),則每個層級使用單獨的資料欄,並在每個欄位名稱後面附加關卡指標。例如,CATEGORY_1、CATEGORY_2 和 CATEGORY_3。這可以減少不明確或重疊的類別。
使用所有配方和網域,您可以匯入分類資料,並根據項目的屬性來篩選建議。如需篩選建議的相關資訊,請參閱 篩選建議和使用者區段。
非結構化文字中繼資料
使用某些配方和網域,Amazon Personalize 可以從非結構化文字中繼資料中擷取有意義的資訊,例如產品描述、產品評論或電影摘要。Amazon Personalize 使用非結構化文字來識別使用者的相關項目,特別是當項目是新的或互動資料較少時。您最多可以新增 1 個文字欄位。在您的項目資料集中包含非結構化文字資料,以提高目錄中新項目的點擊率和對話率。
當您準備非結構化文字中繼資料時,請以雙引號包裝文字,並移除任何新的行字元。使用 \
字元來逸出資料中的任何雙引號或 \ 字元。Amazon Personalize 會以字元限制截斷文字欄位。請確定文字中最相關的資訊位於 欄位的開頭。
非結構化文字值在所有語言中最多可以有 20,000 個字元,但中文和日文除外。對於中文和日文,您最多可以有 7,000 個字元。Amazon Personalize 會將超過字元限制的值截斷為字元限制。
您可以以多種語言提交非結構化文字項目,但每個項目的文字應該只有一種語言。文字可以採用下列語言:
-
簡體中文
-
繁體中文
-
英文
-
法文
-
德文
-
日文
-
葡萄牙文
-
西班牙文
數值資料
Amazon Personalize 可以使用數值項目中繼資料,例如價格或影片持續時間,為使用者產生更相關的建議。此數值資料可以以整數或小數值表示。
如果您使用 使用者個人化或 個人化排名 自訂配方,除了最大化關聯性之外,您還可以最佳化項目中繼資料相關目標的 Amazon Personalize 解決方案,例如最大化收入。當您設定解決方案時,您可以選擇與目標相關的項目資料集中的數值中繼資料資料欄。例如,您可以選擇 VIDEO_LENGTH 資料欄來最大化串流分鐘,或選擇 PRICE 資料欄來最大化收入。
如需詳細資訊,請參閱針對其他目標最佳化解決方案。
非分類字串資料
除了項目 IDs 之外,Amazon Personalize 不會在訓練時使用非類別的非文字字串資料,例如項目標題或作者資料。不過,Amazon Personalize 可以搭配下列功能使用。非類別值最多可有 1000 個字元。
-
Amazon Personalize 可以在建議中包含項目中繼資料,包括非分類字串值。您可以使用中繼資料來豐富使用者介面中的建議,例如將導演的名稱新增至電影建議輪播。如需詳細資訊,請參閱建議中的項目中繼資料。
-
如果您使用 類似項目,則可以使用 主題產生批次建議。當您使用主題產生批次建議時,您必須在批次推論任務中指定項目名稱欄。如需詳細資訊,請參閱內容產生器中具有主題的批次建議。
-
您可以建立篩選條件,以根據非類別字串資料從建議中包含或移除項目。如需篩選條件的詳細資訊,請參閱篩選建議和使用者區段。
項目中繼資料範例
CSV 檔案中的前幾行電影中繼資料可能如下所示。
ITEM_ID,GENRES,CREATION_TIMESTAMP,DESCRIPTION 1,Adventure|Animation|Children|Comedy|Fantasy,1570003267,"This is an animated movie that features action, comedy, and fantasy. Audience is children. This movie was released in 2004." 2,Adventure|Children|Fantasy,1571730101,"This is an adventure movie with elements of fantasy. Audience is children. This movie was release in 2010." 3,Comedy|Romance,1560515629,"This is a romantic comedy. The movie was released in 1999. Audience is young women." 4,Comedy|Drama|Romance,1581670067,"This movie includes elements of both comedy and drama as well as romance. This movie was released in 2020." ... ...
資料ITEM_ID
欄為必要項目,並存放每個個別項目的唯一識別符。資料GENRE
欄會儲存每部電影的分類中繼資料,而資料DESCRIPTION
欄是非結構化文字中繼資料。資料CREATION_TIMESTAMP
欄會以秒為單位,以 Unix epoch 時間格式儲存每個項目建立時間。
完成資料準備後,您就可以建立結構描述 JSON 檔案。此檔案會告知 Amazon Personalize 您資料的結構。如需詳細資訊,請參閱為 Amazon Personalize 結構描述建立結構描述 JSON 檔案。這是上述範例資料結構描述 JSON 檔案的外觀。
{ "type": "record", "name": "Items", "namespace": "com.amazonaws.personalize.schema", "fields": [ { "name": "ITEM_ID", "type": "string" }, { "name": "GENRES", "type": [ "null", "string" ], "categorical": true }, { "name": "CREATION_TIMESTAMP", "type": "long" }, { "name": "DESCRIPTION", "type": [ "null", "string" ], "textual": true } ], "version": "1.0" }