目錄
- 什么是語義排名?
- 語義排名的工作原理
- 如何收集和總結輸入
- 語義排名的輸出
- 如何對摘要進行評分
- 語義功能和限制
在 Azure AI 搜索中,“語義排名”通過使用語言理解對搜索結果重新排名來顯著提高搜索相關性, 本文概括性地介紹了語義排名工作原理。
關注TechLead,分享AI全維度知識。作者擁有10+年互聯網服務架構、AI產品研發經驗、團隊管理經驗,同濟本復旦碩,復旦機器人智能實驗室成員,阿里云認證的資深架構師,項目管理專業人士,上億營收AI產品研發負責人。
什么是語義排名?
語義排名是一組與查詢相關的功能,可提高基于文本的查詢的初始 [BM25 排名]搜索結果的質量。 針對搜索服務啟用它時,語義排名通過兩種方式來擴展查詢執行管道:
-
首先,它在使用 BM25 或 RRF 評分的初始結果集的基礎上添加了二次排名。 此二次排名使用改寫自 Microsoft 必應的多語言深度學習模型來提升在語義上最相關的結果的排名。
-
其次,它會提取并返回響應中的描述和答案,你可以在搜索頁面上呈現它們以改進用戶的搜索體驗。
下面是語義排名的功能。
功能 | 說明 |
---|---|
語義排名 | 使用查詢的上下文或語義含義基于預排名的結果計算新的相關性分數。 |
[語義標題和重點] | 從文檔中提取最能總結內容的逐字句子和短語,并突出顯示關鍵段落,以便于掃描。 當單個內容字段對“搜索結果”頁來說過于密集時,用于總結結果的標題就非常有用了。 突出顯示的文本會提升最相關的術語和短語,這樣用戶就能夠快速確定匹配被視為相關的原因。 |
[語義答案] | 從語義查詢返回的可選附加子結構。 它直接回答了類似問題的查詢。 它要求文檔包含帶有答案特征的文本。 |
語義排名的工作原理
“語義排名”查找詞語之間的上下文和相關性,從而提升對查詢更有意義的匹配項。
下圖說明了這一概念。 請考慮“capital”一詞。 它具有不同的含義,具體取決于上下文是財務、法律、地理還是語法。 通過語言理解,語義排名程序可以檢測上下文并提升符合查詢意向的結果。
語義排名既耗費資源又耗費時間。 為了在查詢操作的預期延遲內完成處理,向語義排名程序提供的輸入將被整合并減少,以便可以盡快完成重新排名步驟。
語義排名有兩個步驟:總結和評分。 輸出包括重新評分的結果、標題和答案。
如何收集和總結輸入
在語義排名中,查詢子系統將搜索結果作為摘要和排名模型的輸入傳遞。 由于排名模型具有輸入大小約束并且是處理密集型的,因此必須將搜索結果進行結構化(總結)并調整其大小以便高效處理。
-
語義排名從文本查詢的 [BM25 排名結果]或混合查詢的 [RRF 排名結果]開始。 重新排名練習中僅使用文本字段,并且只有前 50 個結果才會進入語義排名,即使結果包含 50 個以上的結果也是如此。 通常,語義排名中使用的字段是信息性和描述性的。
-
對于搜索結果中的每個文檔,摘要模型最多接受 2000 個標記,其中一個標記大約為 10 個字符。 輸入由[語義配置]中列出的“標題”、“關鍵字”和“內容”字段組合而成。
-
過長的字符串會被剪裁,以確保總長度滿足摘要步驟的輸入要求。 此剪裁練習演示了為什么必須按優先級順序向語義配置添加字段。 如果你的文檔非常大,其中的字段包含大量文本,則會忽略超過最大限制的任何內容。
語義字段 標記限制 “title” 128 個標記 "關鍵字 128 個標記 “內容” 剩余標記 -
摘要輸出是每個文檔的摘要字符串,由每個字段中最相關的信息組成。 摘要字符串將發送到排名程序進行評分,并發送到計算機閱讀理解模型以獲取標題和答案。
傳遞給語義排名程序的每個生成的摘要字符串的最大長度為 256 個標記。
語義排名的輸出
從每個摘要字符串中,計算機閱讀理解模型查找最有代表性的段落。
輸出為:
-
文檔的[語義標題]。 每個標題都有普通文本版本和突出顯示版本,在每個文檔中通常少于 200 字。
-
一個可選的[語義答案],假設你指定了
answers
參數,查詢以問題的形式提出,并且在長字符串中找到了一個段落,該段落提供了此問題的可能答案。
標題和答案始終是索引中的逐字文本。 此工作流中沒有可創建或撰寫新內容的生成式 AI 模型。
如何對摘要進行評分
評分是針對標題以及用于填充長度為 256 個標記的摘要字符串中的任何其他內容執行的。
-
根據所提供的查詢,對標題的概念和語義相關性進行評估。
-
@search.rerankerScore 根據給定查詢的文檔的語義相關性分配給每個文檔。 分數范圍從 4 到 0(從高到低),分數越高表示相關性越高。
-
匹配項按分數降序列出,并且包含在查詢響應有效負載中。 有效負載包括答案、普通文本標題和突出顯示的標題,以及標記為可檢索的任何字段或在 select 子句中指定的任何字段。
語義功能和限制
語義排名是一項較新的技術,因此,對它能夠做什么和不能做什么設定期望非常重要。 它能夠做什么:
-
提升在語義上更接近原始查詢意向的匹配項。
-
查找要用作標題和答案的字符串。 標題和答案在響應中返回,并且可以在搜索結果頁上呈現。
語義排名不能做的是,在整個語料庫上重新運行查詢來查找語義上相關的結果。 語義排名會對現有結果集重新排名,該結果集由按默認排名算法評分的前 50 個結果組成。 另外,語義排名無法創建新的信息或字符串。 標題和答案是從內容逐字提取的,因此,如果結果不包含與答案類似的文本,則語言模型不會生成它。
雖然語義排名并非在每種情況下都有益處,但某些內容可以顯著受益于其功能。 語義排名中的語言模型最適用于信息豐富并且為散文結構的可搜索內容。 知識庫、聯機文檔或包含描述性內容的文檔可從語義排名功能獲得最大收益。
基礎技術來自必應和 Microsoft Research,并已作為附加產品功能集成到 Azure AI 搜索基礎結構中。 有關用于支持語義排名的研究和 AI 投入的詳細信息,請參閱必應的 AI 功能如何為 Azure AI 搜索提供支持(Microsoft Research 博客)。
關注TechLead,分享AI全維度知識。作者擁有10+年互聯網服務架構、AI產品研發經驗、團隊管理經驗,同濟本復旦碩,復旦機器人智能實驗室成員,阿里云認證的資深架構師,項目管理專業人士,上億營收AI產品研發負責人。