流程介紹
溫馨提示:圖中的內容必須都配置上,類目預測才會生效。
流程示範
建立並訓練類目預測模型
-
在左側導覽列中,進入排序配置->類目預測頁面,點擊“建立”,進入建立流程。
-
進入建立流程後,需要填入模型名稱,資料類型,商品ID,商品標題,類目ID,類目名稱,過濾條件等資訊。
樣本中,目標應用選擇Ha3引擎下的keep_algo_metrics_enh_vpc,模型名稱填寫
test_categroy_model,資料類型勾選物品資料,欄位對應中商品ID選擇id,商品標題選擇title,類目ID選擇cate_id,類目名稱選擇title。-
資料類型:
-
物品資料即為當前應用中已有的文檔資料,但需要應用中需要事先儲存類目ID、物品標題以及類目名稱三個欄位的資料;
-
行為資料為上傳的使用者點擊行為採集資料,具體可參考資料擷取文檔。
-
-
類目ID:應用中表示類目ID的欄位,支援INT類型。必填。
-
物品標題:應用中表示物品標題的欄位,支援TEXT、LITERAL類型。必填。
-
類目名稱:應用中表示類目名稱的欄位,支援TEXT、LITERAL類型。必填。
-
過濾條件:選填。如果要填寫,需要保證過濾條件中出現的欄位名稱必須是應用結構中的欄位名稱。過濾條件支援的操作運算子有:<、>、<=、>=、=、!=。多個過濾條件之間為AND關係,必須要使用英文逗號(,)分隔,表示且關係(暫不支援或關係)。例如,過濾條件為 is_onsale > 0。
-
-
配置完成後點擊完成進入類目預測模型詳情頁。
-
模型建立完成後,返回類目預測頁面,看到模型狀態為“待訓練”,點擊“啟動訓練”,訓練模型資料。
類目預測訓練狀態:
-
待訓練:表示模型剛建立完成,但未做資料訓練的模型。
-
訓練中:表示模型建立完成後進入訓練但還未完成訓練的模型。
-
訓練失敗:表示資料錯誤造成的模型訓練失敗的模型。
-
未應用:表示模型訓練成功,但並未在召回和排序功能中應用該模型。
配置查詢分析和排序運算式
-
在左側導覽列中,進入召回配置->查詢分析頁面,點擊“建立”,進入建立流程。
-
進入建立流程後,按下圖流程進行規則的編輯和建立。
-
然後在粗排或者精排中生效類目預測模型。在左側導覽列中,進入 排序配置->策略管理 頁面,點擊“建立”,進入建立流程。
以下為應用到基礎排序中的流程:
-
進入建立流程後填寫策略名稱稱,首先選擇基礎排序(第一輪粗排),選擇類型(目前控制台配置僅支援運算式,後續還會支援自訂外掛程式)。
-
然後在排序配置中,選中算分特徵下的category_score()
-
並配置搜尋欄位以及該算分特徵的權重,並儲存配置。
例如,選擇算分特徵為
category_score(),搜尋欄位為is_onsale,將權重設定為 13。
以下為應用到業務排序中的流程:
-
進入建立流程後填寫策略名稱稱,首先選擇業務排序(第二輪精排),選擇類型(目前控制台配置僅支援運算式,後續還會支援自訂外掛程式)。
在目標應用下拉框中選擇需要配置排序策略的應用。策略名稱稱長度為1-30個字元,以字母開頭,可包含大小寫字母、數字和底線,且不能與其他同類型策略名稱稱相同。
-
然後在排序配置中,選中內建函數下的category_score(cate_id_field)
-
將cate_id_field改為模型的類目ID,並儲存配置。
在排序配置的文本編輯地區中,輸入運算式
category_score(cate_id),將其中的cate_id替換為實際的類目 ID,然後單擊完成。 -
模型應用成功後的狀態。
模型在查詢分析以及策略管理中應用成功後,模型管理列表中該模型的近一次訓練狀態列顯示為已應用。
-
搜尋測試效果展示,需要添加參數raw_query=查詢詞。
在搜尋測試頁面選擇應用test_1及線上應用,query輸入框填寫
default:'糯米',子句配置為config=start:0;hit:10;format:fulljson,在參數地區即可看到raw_query值為糯米。
通過SDK調用查詢介面
設定查詢參數raw_query:
-
用於類目預測查詢;只有查詢詞和raw_query的內容一致時,查詢時,才會去查查詢分析中配置的類目預測;
-
一般建議設定為終端使用者輸入的原始查詢詞。格式:
raw_query=content //API傳參content需要URL_ENCODE(SDK不需要encode);content為原始查詢詞執行個體:假設某個應用的查詢分析規則配置如下表所示:
|
索引名 |
查詢分析規則名 |
配置類目預測 |
|
index1 |
rule1 |
No |
|
index2 |
rule2 |
Yes |
|
index3 |
rule3 |
Yes |
-
查詢的索引沒有配置類目預測,請求中有raw_query,不會查詢類目預測,查詢正常返回;
-
查詢的索引沒有配置類目預測,請求中無raw_query,不會查詢類目預測,查詢正常放回;
-
查詢的索引配置類目預測,請求中無raw_query,不會查詢類目預測,查詢正常返回:a.
query=index2:'search_query' -
查詢的索引配置類目預測,請求中有raw_query,但和查詢索引中的查詢詞不同,不會查詢類目預測,查詢正常返回:a.
query=index2:'search_query'&raw_query=raw_query -
查詢的索引配置類目預測,請求中有raw_query,且和查詢索引中的查詢詞相同,查詢類目預測,查詢正常返回:a.
query=index2:'search_query'&raw_query=search_query -
查詢包含多個索引時,且query中有raw_query:a.
query=index2:'index_query' AND index3:'search_query'&raw_query=search_query # 類目預測在index3上生效;b.query=index2:'search_query' AND index3:'search_query'&raw_query=search_query # 類目預測會優先在index2上生效,如沒有結果,會查詢index3上的類目預測
注意事項
-
單個應用最多建立5個類目預測模型。
-
查詢分析規則中配置的類目預測模型,其訓練欄位必須是該包含在該查詢規則所應用的索引中;
-
在建立類目預測模型之前,需要保證類目預測所使用的相關欄位(類目ID)已添加到屬性欄位列表中
-
當查詢分析中配置了類目預測時,如果查詢請求中設定了category_prediction參數,查詢會報錯。
-
必須同時配置了查詢分析(類目預測)、排序運算式(category_score)以及查詢時帶有固定參數(raw_query),類目預測模型才會生效。
-
如果建立模型時勾選了行為資料,類目預測模型會預測最近14天內被點擊過的查詢(query),換言之,如果沒有被點擊,就不會有類目預測結果。
-
類目ID必須為正數,不能為負數,否則查詢會報錯server error。
-
訓練類目預測需要滿足最近一天的獨立query數量大於100 , 獨立query數量表示在搜尋請求中添加raw_query參數請求成功的次數。
-
相關管控API:演算法周邊
-
請勿勾選“查詢分析-文本向量化”功能,文本向量化有預設的查詢策略,會觸發多路查詢,查詢策略裡面有個結果歸併排序,這個歸併排序裡面不支援擷取類目預測的排序得分。
模型訓練失敗排查
當類目預測模型訓練失敗時,可按以下步驟排查原因並解決:
-
查看異常報表:在模型詳情頁查看最新版本狀態,若狀態顯示異常,可查看異常報表,定位訓練失敗的具體原因。
-
查看完整度等級與升級條件:查看完整度等級及對應的升級條件,按升級條件調整資料以提升完整度,滿足訓練要求。
-
T-1 資料邏輯(新建立模型首次訓練報欄位不存在):模型訓練使用前一天(T-1)的統計資料。若模型是當天新建立的,因當天尚無前一天的資料,首次訓練可能報"訓練欄位不存在"錯誤。此情況屬正常現象,等待次日資料就緒後重新啟動訓練即可。
-
資料量要求(L1 條件):訓練需滿足以下資料量條件:
-
資料表中的資料量不少於 1000 條。
-
最近一天的獨立 query 數量大於 100(獨立 query 數量為搜尋請求中添加 raw_query 參數請求成功的次數)。
-
-
過濾條件式格式設定:若配置了過濾條件,欄位名須為應用結構中的欄位名稱,多個條件之間為 AND 關係,必須使用英文逗號(,)分隔。格式不符會導致訓練失敗。
進階
-
查詢規則中配合實體識別功能使用類目預測,可以擴大類目預測的召回。查詢分析會更加實體識別的結果,在原query查詢得到類目預測無結果時,會按照一定規則對query進行丟詞,進一步查詢類目預測,並將丟詞後的類目預測結果作為最終的類目預測結果返回。具體見實體識別的文檔。
-
目前支援對訓練出的類目預測模型進行人工幹預。使用者實現幹預操作的過程與查詢分析幹預類似,類目預測幹預的操作步驟,請點擊查看文檔。