使用訓練改善結果相關性

在 IBM Watson® Discovery 中,自然語言查詢結果的相關性可以藉由訓練來改善。

相關性模型會決定要在搜尋結果中傳回的最相關文件。 如果沒有相關性訓練,則會使用標準機制來根據一般因素來判定相關性。 當您訓練相關性模型時,您可以協助 Discovery 使用文件特有的特性,因為它會判定相關性。

只有在提交自然語言查詢時,才會在執行時期使用與專案相關聯的相關性訓練模型。 模型未套用至「探索查詢語言 (DQL)」查詢。

您無法將相關性訓練套用至 內容採礦 專案類型。

若要訓練相關性模型,您可以提供自然語言查詢範例,提交它們以從文件取得結果,然後對這些結果進行評等。 當您新增更多範例時,會使用您提供的每一個查詢的結果相關性相關資訊來瞭解您的專案。 系統會使用您的評量,將重要性指派給文件內不同類型的結構資訊。 例如,它會瞭解搜尋查詢中的關鍵字出現在標題與文件的標頭、內文或 meta 資料中的重要性。 它也會從一個相符關鍵字與另一個相符關鍵字之間的距離重要性中學習。 在成功的相關性訓練階段作業之後,會建立排序器模型。 Discovery 會自動將模型與下一個自然語言查詢搭配使用。 探索會重新排序文件結果,以便先顯示根據相關性訓練模型最相關的結果。

訓練適用於整個專案。 無法針對一個集合跳過它,並將它套用至相同專案中的其他集合。 您不透過指定查詢參數來啟用訓練模型的使用。 如果存在的話,會將模型用於提交給專案的每個自然語言查詢。 無論您是將搜尋限制為一個集合還是所有集合,都會使用此模型。 基於此原因,訓練資料代表專案中所有集合可能回答的查詢是很重要的。 若要停止專案使用相關性訓練模型,您可以使用 API 來刪除模型。

相關性訓練不會持續執行。 只有在您起始訓練時才會進行訓練。 每個專案一次最多使用一個訓練相關性模型。 如果您重新訓練模型,則會使用現有模型,直到順利訓練新模型為止,此時新模型會取代舊模型。

構成訓練資料的文件集僅在訓練處理程序期間使用。 如果對用來訓練模型的文件進行後續變更,則不會變更訓練模型,也不會觸發新的訓練階段作業。 請記住,如果專案中有許多文件變更,則可能需要重新訓練模型,以使用已更新文件中的特性。

您新增至集合的停止字組及查詢擴展不會直接影響相關性訓練模型。 不過,他們可以變更從搜尋傳回的文件,這會影響依相關性模型分級的文件。 模型會將針對查詢傳回的前 100 個文件分級。 您對停止單字或查詢擴充所做的變更不會起始相關性訓練更新。 如果您新增的構件大幅變更搜尋所傳回的文件,請考量重新訓練模型。

如果先前用來訓練模型的文件已從集合中移除,則在開始重新訓練模型之前,您必須先從訓練資料中移除對它們的任何參照。 模型預期來自訓練資料配對的文件及查詢會繼續存在。 若要移除這些參照,請刪除傳回已刪除文件的訓練查詢。 如果查詢仍然相關,您可以將它們新增回訓練資料,並將它們與其他文件配對。

如需相關性訓練 API 的相關資訊,請參閱 API 參考文件

何時使用相關性訓練

相關性訓練是選用的。 測試搜尋結果的品質。 如果查詢結果符合您的需求,就不需要進一步的訓練。

訓練可改善查詢回應中所傳回文件的相關性。 它不會改善每個文件所傳回的段落或回答。 如果您使用段落擷取,且測試結果傳回良好文件,但文件中的錯誤段落,則相關性訓練將無法提供協助。

如需何時使用相關性訓練的相關資訊,請閱讀 Medium 上的 Relevancy training for time-sensitive users 部落格文章。

如何處理欄位

當您從產品使用者介面訓練專案時,一律會從文件的 text 欄位取得結果。 如果您的文件沒有 text 欄位,請改用 API 來訓練專案。 如果您上傳的 CSV 檔沒有名稱為 text的直欄,或上傳的 JSON 檔沒有名稱為 text的物件,或您使用「智慧型文件理解」工具來定義具有其他名稱的欄位,而這些名稱現在會儲存文件的大部分內容,則您的文件可能沒有 text 欄位。

當您從 API 訓練專案時,會從所有根層次欄位取得結果,並將它們全部視為具有相等顯著性。 與「探索查詢語言」查詢不同,使用自然語言查詢時,您無法指定您所關心的文件中的哪些欄位,或提供給每一個欄位的重要性。 當您使用範例來教導 Discovery 時,服務會為您提供每個欄位的加權。

探索會建置模型,為每個根層次欄位指派不同的加權給術語、二元圖和跳格圖相符項,並根據所有其他文件欄位的相符項來平衡它們。 有了足夠的範例,Discovery 可以傳回更好的答案,因為它知道通常儲存最佳答案的位置。

相關性訓練無法用來為巢狀欄位提供更多加權。 巢狀欄位會分組並指派一個整體評分。 無論您訓練多少,「探索」絕不會提供巢狀欄位比根層次欄位更多的加權。 如需巢狀欄位的相關資訊,請參閱 常見問題

訓練專案

用來訓練相關性模型的訓練資料包括下列部分:

  • 代表使用者可能提交之查詢的自然語言查詢
  • 服務所傳回的查詢結果
  • 您套用至結果的評等,指出結果是 relevant 還是 not relevant

若要將相關性訓練套用至專案,請完成下列步驟:

  1. 移至 改善及自訂 頁面。 在改善工具畫面上,選取改善相關性,然後選取相關性訓練

  2. Enter a question to train(輸入要訓練的問題 )欄位中輸入自然語言查詢。

    不要在查詢中包含問號。 請使用與使用者相同的措辭。 例如,IBM Watson in healthcare。 撰寫包含目標回答中所提及的部分術語的查詢。 評估自然語言查詢時,術語重疊會改善起始結果。

  3. 按一下 Add+

  4. 按一下 分級結果

  5. 在顯示結果之後,請評量每一個結果,然後選取 相關不相關(在給定結果品質下適用的選項)。

    在 Discovery 使用者介面中,當您將文件標示為 Relevant 時,服務會將 10 的相關性評分套用至結果,並將它標示為 Not relevant0 的評分。 當您透過 Discovery 使用者介面套用相關性訓練時,只能指派兩個評分值 010

    在 Discovery API 中,您可以指派 0 與最多 100 之間的每一個整數之間的相關性評分值。 在同一專案中,您無法將在 Discovery 使用者介面中建立的訓練範例 ( 010 的評分) 與使用 010 以外的信任評分層次建立的範例混合。 如果您透過 API 使用任何自訂評分比例,則必須繼續透過 API 套用所有訓練。 您無法在 Discovery 使用者介面中編輯透過 API 套用的訓練範例,除非它們只使用 010 的兩個評分。

    如果結果顯示訊息「此文件沒有可用的內容預覽」,則表示傳回的文件不包含 text 欄位,或其 text 欄位是空的。 如果集合中沒有任何文件具有 text 欄位,請使用 API 來訓練專案,而不是從產品使用者介面來訓練專案。

  6. 完成後,按一下返回查詢

  7. 繼續新增查詢並對其進行評級。

    當您評估結果時,會顯示您的進度。 請檢查您的進度,以查看何時有足夠的評等資訊可符合訓練臨界值需求。 您的進度分為下列作業:

    • 新增更多查詢
    • 對更多結果評級
    • 為評級引入更多差異

    您必須評估至少 50 個唯一查詢 (可能更多),視資料的複雜性而定。 您無法新增超過 10,000 個訓練查詢。

  8. 達到臨界值後,您可以繼續新增查詢和評等結果。 輸入您認為使用者將詢問的所有查詢。

    若要刪除訓練查詢,請按一下 刪除 圖示。 若要一次刪除集合中的所有訓練查詢,請使用 API。 如需詳細資訊,請參閱 刪除訓練查詢

如果有兩個以上使用者嘗試同時訓練相同的查詢,則其中一個使用者所提交的評等會改寫其他使用者。

測試及反覆運算結果的相關性

當您完成分級結果並完成訓練時,請測試以查看查詢結果是否更好。 為此,請執行與訓練查詢相關(但不完全相同)的測試自然語言查詢。 檢閱結果。

如果您想要在測試之後繼續改善結果,您可以:

  • 將更多文件新增至集合。
  • 新增更多訓練查詢。
  • 評比更多結果,並確保同時使用 RelevantNot relevant 評比。

信賴度評分

Discovery 會傳回已訓練集合的自然語言查詢的 confidence 評分。 此 confidence 得分與未經訓練的集合所傳回的 confidence 得分不可互換。

confidence 評分範圍可以從 0.01.0。 數字越大,結果相關性越高。

confidence 評分可以在查詢結果中每個文件的 result_metadata 下找到。 此數字是根據結果相對於已訓練模型的估計相關性來計算的。

{
  "matching_results": 4,
  "retrieval_details": {
    "document_retrieval_strategy": "trained"
  },
  "results": [
    {
	  "id": "eea16dfd5fe6139a25324e7481a32f89_13",
	  "result_metadata": {
	    "confidence": 0.08793
	  }
    }
  ]
}

可以在 document_retrieval_strategy 下找到 retrieval_details。 如果您使用 Discovery 查詢語言來查詢已訓練的資料集、或已訓練的模型暫時失效,document_retrieval_strategy untrained

如需查詢專案的相關資訊,請參閱 查詢概觀

相關性訓練限制

下列限制適用於相關性訓練模型:

  • 每個專案一個模型
  • 每個模型 10,000 個查詢
  • 針對 Enterprise 及 Premium 方案,每個服務實例 40 個模型; 針對 Plus 方案實例,每個服務實例 20 個模型

執行最佳訓練階段作業

下列範例說明如何針對專案中的相關性訓練,以最佳方式執行階段作業。

假設您將 100 個訓練查詢新增至新專案,並且 Discovery 在一個訓練階段作業中執行 100 個查詢以建立排序器模型。 稍後,如果您新增其他 20 個查詢,則模型會開始重新訓練,且 Discovery 總共執行 120 個查詢。 不過,若要新增最後 20 個查詢,如果您先新增 10 個查詢,等待一小時左右,然後新增接下來 10 個查詢,則 Discovery 會訓練模型兩次。 在此情況下,第一個訓練階段作業會執行 110 個查詢,第二個訓練階段作業會執行 120 個查詢。 這種新增查詢的方式 (散置在時間間隙之間) 會導致 Discovery所執行的訓練階段作業數及查詢總數增加。

相反地,若要最小化訓練階段作業數目,您可以使用「更新訓練查詢 API」。 API 方法會一次更新一個專案下多個集合的訓練資料。 如需相關資訊,請參閱 API 參考資料中的 更新訓練查詢

若要減少 Discovery上的處理負載,您應該在專案中的所有集合都已完成處理文件之後,透過相關性訓練來建立或更新排序器模型。 此外,在排序器模型訓練處理程序期間,您應該具有低查詢活動,以便並行要求的限制不會超出。

改善相關性的其他方法

如果您偏好使用 Discovery API 來訓練 Discovery,請參閱 API 參考資料

您也可以使用 API 來新增策展。 「策展」是測試版特性,您可以用來教導 Discovery 每次提交特定查詢時都會傳回特定文件。 如需相關資訊,請參閱 策劃

新增自訂非索引字清單也可以改善自然語言查詢結果的相關性。 如需相關資訊,請參閱 識別要忽略的單字

瞭解相關性訓練

有關專案訓練的常見問題解答。

我如何知道我的系統是否經過訓練?

執行自然語言查詢並檢查 document_retrieval_strategy。 請參閱信賴分數

如果您使用 API,請參閱 列出訓練查詢

訓練模型需要多久?

完成訓練可能需要 45 分鐘到 1 小時。 訓練的持續時間視用來訓練相關性模型的資料數量和種類而有所不同。 此外,也會非同步進行訓練。 如果它需要的其他資料因為以其他方式搜尋或處理而無法使用,則可能會延遲。

如何停止將相關性訓練套用至我的專案?

使用 API 來刪除與專案相關聯的相關性模型。 若要刪除模型,您可以刪除與排序器模型相關聯的訓練資料。 如需相關資訊,請參閱 刪除訓練查詢

相關性訓練是否會影響段落搜尋?

次數 相關性訓練僅用於文件搜尋。 它對通道搜尋沒有影響。

相關性訓練是否影響回答發現項目?

不是直接。 相關性訓練會間接影響回答發現項目,因為它會變更從中擷取回答的文件順序。 它會將傳回的文件從最相關重新排列至最不相關。

如何檢查錯誤和警告?

開啟 管理集合 頁面。 選擇集合,然後開啟活動標籤。

如何解釋訓練後自然語言查詢結果中出現的置信度分數?

請參閱信賴分數

解譯相關性訓練錯誤和警告

下列清單提供一些常見錯誤和警告訊息的說明。

建立排序模型時,長時間顯示 Watson將很快開始學習」的訊息

如果現有排序模型總數達到 40 個模型的限制,則可能會出現此問題。 在這種情況下,不會建立新模型,並且 UI 上會長時間顯示 Watson將很快開始學習的訊息。

要解決此問題,您可以從未使用的項目中刪除舊的排名器模型,或聯絡IBM支援以升級至進階執行個體。

警告: Invalid training data found: The document was not returned in the top 100 search results for the given query, and will not be used for training

當訓練資料中的 document_ids 與針對集合執行的搜尋中的 document_ids 不符時,會發生此警告。 檢查您的查詢,以確保您要評等的文件 document_id 會在該查詢的前 100 個結果中傳回。 如果不會,您可能想要檢查兩件事:

  • 如果未在前 100 個中傳回文件,則它可能不是高品質結果的範例。 重新評估是否使用文件。
  • 如果完全沒有傳回文件,則檢查沒有傳回的原因,並查看文件中是否有任何文字符合查詢的部分內容。

此警告指出您可能有一個以上失敗查詢。 這並不表示訓練無法完成。

錯誤:Invalid training data found: Syntax error when parsing query

語法錯誤表示查詢無效。 例如,當您透過將過濾器新增至自然語言查詢來增加查詢的複雜性時,可能會發生語法錯誤。 使用 API 對相關性訓練之外的集合執行查詢。 確認查詢有效並傳回結果之後,您可以將它新增為相關性訓練查詢。

錯誤:Training data quality standards not met: You will need additional training queries with labeled examples. (To be considered for training, each example must appear in the top 100 search results for its query.)

您需要新增更多訓練資料才能順利訓練。 您至少需要 49 個唯一的訓練查詢,每個查詢至少需要一個評比文件。 最小值不代表最佳值;收集的大小和其他因素可能會增加達到最小值所需的訓練範例數量。

錯誤:Training data quality standards not met: Insufficient number of unique training queries. Expected at least n, but found m.

若要符合最低訓練需求,您至少需要 50 個唯一訓練查詢,且每一個查詢必須至少具有一個額定文件。 如果您的查詢數超過下限,且仍在接收此錯誤訊息,請檢查您的注意事項是否有其他錯誤。

錯誤:Training data quality standards not met: No documents found with non-zero relevance labels.

訓練資料需要有足夠的標籤資料來指定哪些文件是高值。 因此,您需要對一些非零值的文件進行評分。 您需要將某些文件評級為 Relevant,將某些文件評級為 Not relevant。 必須至少將一個文件評級為 Relevant

錯誤:Training data quality standards not met: Training examples have no relevance label variety for X queries.

訓練的其中一項需求是要具有足夠的標籤多樣性。 至少 25% 的訓練查詢必須同時包含 RelevantNot relevant 標籤。 如果您使用 API,則至少 25% 的查詢必須包含兩個不同的數值標籤。