百度網(wǎng)站網(wǎng)址是什么化隆網(wǎng)站建設(shè)公司
鶴壁市浩天電氣有限公司
2026/01/22 06:51:14
百度網(wǎng)站網(wǎng)址是什么,化隆網(wǎng)站建設(shè)公司,做防水的網(wǎng)站有哪些,網(wǎng)站焦點(diǎn)圖怎么做鏈接作者#xff1a;來自 Elastic Jhon Guzmn 探索如何構(gòu)建 判斷列表#xff08;judgment lists#xff09; 來客觀評估搜索查詢相關(guān)性#xff0c;并改進(jìn)例如 recall 等性能指標(biāo)#xff0c;以實(shí)現(xiàn) Elasticsearch 中可擴(kuò)展的搜索測試。 Elasticsearch 充滿了新功能#xff0c;…作者來自 Elastic Jhon Guzmán探索如何構(gòu)建 判斷列表judgment lists 來客觀評估搜索查詢相關(guān)性并改進(jìn)例如 recall 等性能指標(biāo)以實(shí)現(xiàn) Elasticsearch 中可擴(kuò)展的搜索測試。Elasticsearch 充滿了新功能可以幫助你為你的用例構(gòu)建最佳搜索解決方案。了解如何在我們關(guān)于構(gòu)建現(xiàn)代 Search AI 體驗(yàn)的實(shí)操網(wǎng)絡(luò)研討會(huì)上將它們付諸實(shí)踐。你也可以開始免費(fèi) cloud 試用或立即在本地機(jī)器上嘗試 Elastic。從事搜索引擎開發(fā)的開發(fā)者經(jīng)常遇到同樣的問題業(yè)務(wù)團(tuán)隊(duì)對某個(gè)特定搜索不滿意因?yàn)樗麄兿M谒阉鹘Y(jié)果頂部出現(xiàn)的文檔卻出現(xiàn)在結(jié)果列表的第三或第四位。然而當(dāng)你修復(fù)了這個(gè)問題時(shí)你會(huì)意外破壞其他查詢因?yàn)槟銦o法手動(dòng)測試所有情況。但你或你的 QA 團(tuán)隊(duì)如何測試一個(gè)查詢的更改是否對其他查詢產(chǎn)生連鎖反應(yīng)或者更重要的是你如何確保你的更改實(shí)際上改進(jìn)了某個(gè)查詢邁向系統(tǒng)化評估這正是判斷列表派上用場的地方。與其在每次更改時(shí)依賴手動(dòng)且主觀的測試你可以定義一組與你的業(yè)務(wù)場景相關(guān)的固定查詢并為這些查詢配上對應(yīng)的相關(guān)結(jié)果。這組數(shù)據(jù)就成為你的基線。每次你實(shí)施更改時(shí)都用它來評估你的搜索是否真的有所改進(jìn)。這種方法的價(jià)值在于它消除不確定性你不再需要猜測你的更改是否影響其他查詢數(shù)據(jù)會(huì)告訴你。停止手動(dòng)測試一旦記錄了 判斷列表 測試就是自動(dòng)的。支持更改你可以展示清晰的指標(biāo)來支持更改帶來的好處。如何開始構(gòu)建你的 判斷列表最簡單的方式之一是拿一個(gè)具有代表性的查詢并手動(dòng)選擇相關(guān)文檔。構(gòu)建列表有兩種方式二元判斷每個(gè)與查詢關(guān)聯(lián)的文檔得到一個(gè)簡單標(biāo)簽相關(guān)通常得分為 “1”或不相關(guān)“0”。分級判斷每個(gè)文檔按不同等級評分。例如使用 0 到 4 的量表類似 Likert 量表其中 0 “完全不相關(guān)”4 “完全相關(guān)”中間有“相關(guān)”“有點(diǎn)相關(guān)”等變化。當(dāng)搜索意圖有明確界限時(shí)二元判斷非常有效這個(gè)文檔是否應(yīng)該在結(jié)果中當(dāng)存在灰色地帶時(shí)分級判斷更有用某些結(jié)果比其他結(jié)果更好因此你可以得到 “非常好” “好”“沒用”之類的結(jié)果并使用重視結(jié)果排序和用戶反饋的指標(biāo)。然而分級量表也帶來缺點(diǎn)不同評審者可能會(huì)以不同方式使用評分等級使判斷的一致性下降。而且由于分級指標(biāo)對高分權(quán)重更大即便是一個(gè)小變化例如把某項(xiàng)從 4 評成 3也可能對指標(biāo)造成比評審者預(yù)期更大的影響。這種額外的主觀性會(huì)讓分級判斷更嘈雜也更難長期管理。我需要自己對文檔進(jìn)行分類嗎不一定因?yàn)橛卸喾N方式可以創(chuàng)建你的 判斷列表 每種方式都有其優(yōu)缺點(diǎn)顯式判斷Explicit Judgments這里由領(lǐng)域?qū)<抑鹨徊榭疵總€(gè)查詢文檔并手動(dòng)決定它是否或如何相關(guān)。雖然質(zhì)量高且可控但可擴(kuò)展性較差。隱式判斷Implicit Judgements這種方法根據(jù)真實(shí)用戶行為如點(diǎn)擊、跳出率、購買等推斷相關(guān)文檔。這種方式可以自動(dòng)收集數(shù)據(jù)但可能有偏差。例如用戶往往更頻繁點(diǎn)擊排在前面的結(jié)果即使它們并不相關(guān)。AI 生成判斷AI-generated Judgments這種方式使用模型例如 LLM自動(dòng)評估查詢和文檔通常稱為 LLM jury。它速度快、易擴(kuò)展但數(shù)據(jù)質(zhì)量取決于模型質(zhì)量以及模型訓(xùn)練數(shù)據(jù)與你的業(yè)務(wù)興趣的契合度。與人工評分一樣LLM juries 也可能帶來自身的偏差或不一致性因此需要將其輸出與少量可信的判斷進(jìn)行驗(yàn)證。由于 LLM 模型本質(zhì)上是概率式的即便把 temperature 設(shè)置為 0也可能對同一結(jié)果給出不同評分。以下是為你的 判斷列表 選擇最佳構(gòu)建方式的一些建議決定哪些特性只有用戶才能正確判斷例如價(jià)格、品牌、語言、風(fēng)格、產(chǎn)品細(xì)節(jié)對你來說是否至關(guān)重要。如果這些很關(guān)鍵你至少需要為部分 判斷列表 做顯式判斷。當(dāng)你的搜索引擎已有足夠流量時(shí)可使用隱式判斷通過點(diǎn)擊、轉(zhuǎn)化率和停留時(shí)間等指標(biāo)檢測用戶趨勢。但你仍需謹(jǐn)慎解讀這些數(shù)據(jù)并與顯式判斷對照以避免偏差例如用戶傾向點(diǎn)擊排名更高的結(jié)果即便排名更低的更相關(guān)。為了解決這個(gè)問題可以使用位置去偏技術(shù)來調(diào)整或重新加權(quán)點(diǎn)擊數(shù)據(jù)以更好地反映真實(shí)用戶興趣。一些方法包括結(jié)果打亂對部分用戶改變搜索結(jié)果順序以估計(jì)位置對點(diǎn)擊的影響。點(diǎn)擊模型包括 Dynamic Bayesian Network DBN、User Browsing Model UBM。這些統(tǒng)計(jì)模型通過滾動(dòng)、停留時(shí)間、點(diǎn)擊順序、返回結(jié)果頁等模式來估計(jì)點(diǎn)擊是否反映真實(shí)興趣而不僅僅是位置影響。示例電影評分 app前提條件要運(yùn)行這個(gè)示例你需要一個(gè)正在運(yùn)行的 Elasticsearch 8.x 集群可在本地或 Elastic Cloud托管或 serverless上并且能夠訪問 REST API 或 Kibana。想象一個(gè)應(yīng)用用戶可以在其中上傳他們對電影的看法也可以搜索想看的電影。由于文本是用戶自己撰寫的因此可能會(huì)有拼寫錯(cuò)誤以及大量表達(dá)方式的變化。因此搜索引擎必須能夠理解這種多樣性并為用戶提供有用的結(jié)果。為了能夠在不影響整體搜索行為的情況下迭代查詢你公司中的業(yè)務(wù)團(tuán)隊(duì)基于最常見的搜索構(gòu)建了以下二元 判斷列表QueryDocIDTextDiCaprio performancedoc1DiCaprios performance in The Revenant was breathtaking.DiCaprio performancedoc2Inception shows Leonardo DiCaprio in one of his most iconic roles.DiCaprio performancedoc3Brad Pitt delivers a solid performance in this crime thriller.DiCaprio performancedoc4An action-packed adventure with stunning visual effects.sad movies that make you crydoc5A heartbreaking story of love and loss that made me cry for hours.sad movies that make you crydoc6One of the saddest movies ever made — bring tissues!sad movies that make you crydoc7A lighthearted comedy that will make you laughsad movies that make you crydoc8A science-fiction epic full of action and excitement.創(chuàng)建索引PUT movies { mappings: { properties: { text: { type: text } } } }BULK 請求POST /movies/_bulk { index: { _id: doc1 } } { text: DiCaprio performance in The Revenant was breathtaking. } { index: { _id: doc2 } } { text: Inception shows Leonardo DiCaprio in one of his most iconic roles. } { index: { _id: doc3 } } { text: Brad Pitt delivers a solid performance in this crime thriller. } { index: { _id: doc4 } } { text: An action-packed adventure with stunning visual effects. } { index: { _id: doc5 } } { text: A heartbreaking story of love and loss that made me cry for hours. } { index: { _id: doc6 } } { text: One of the saddest movies ever made -- bring tissues! } { index: { _id: doc7 } } { text: A lighthearted comedy that will make you laugh. } { index: { _id: doc8 } } { text: A science-fiction epic full of action and excitement. }下面是該 app 使用的 Elasticsearch 查詢GET movies/_search { query: { match: { text: { query: DiCaprio performance, minimum_should_match: 100% } } } }從判斷到指標(biāo)單獨(dú)來看判斷列表提供的信息有限它們只是我們對查詢結(jié)果的預(yù)期。它們真正的價(jià)值在于可以用來計(jì)算客觀指標(biāo)從而衡量我們的搜索性能。如今大多數(shù)流行的指標(biāo)包括Precision衡量在所有搜索結(jié)果中真正相關(guān)結(jié)果的比例。Recall衡量搜索引擎在 x 個(gè)結(jié)果中找到的相關(guān)結(jié)果比例。Discounted Cumulative Gain (DCG)衡量結(jié)果排名的質(zhì)量考慮最相關(guān)的結(jié)果應(yīng)該排在最前面。Mean Reciprocal Rank (MRR)衡量第一個(gè)相關(guān)結(jié)果的位置。它在列表中越靠前得分越高。以同一個(gè)電影評分 app 為例我們將計(jì)算 recall 指標(biāo)查看我們的查詢是否遺漏了信息。在 Elasticsearch 中我們可以使用 判斷列表 通過 Ranking Evaluation API 來計(jì)算指標(biāo)。該 API 接收判斷列表、查詢和你想要評估的指標(biāo)作為輸入并返回一個(gè)值即查詢結(jié)果與 判斷列表 的比較。讓我們對已有的兩個(gè)查詢運(yùn)行 判斷列表 POST /movies/_rank_eval { requests: [ { id: dicaprio-performance, request: { query: { match: { text: { query: DiCaprio performance, minimum_should_match: 100% } } } }, ratings: [ { _index: movies, _id: doc1, rating: 1 }, { _index: movies, _id: doc2, rating: 1 }, { _index: movies, _id: doc3, rating: 0 }, { _index: movies, _id: doc4, rating: 0 } ] }, { id: sad-movies, request: { query: { match: { text: { query: sad movies that make you cry, minimum_should_match: 100% } } } }, ratings: [ { _index: movies, _id: doc5, rating: 1 }, { _index: movies, _id: doc6, rating: 1 }, { _index: movies, _id: doc7, rating: 0 }, { _index: movies, _id: doc8, rating: 0 } ] } ], metric: { recall: { k: 10, relevant_rating_threshold: 1 } } }我們將對 _rank_eval 使用兩個(gè)請求一個(gè)用于 DiCaprio 查詢另一個(gè)用于 sad movies 查詢。每個(gè)請求都包括一個(gè)查詢及其 判斷列表評分。我們不需要對所有文檔進(jìn)行評分因?yàn)樵u分中未包含的文檔被視為無判斷。計(jì)算時(shí)recall 僅考慮 “相關(guān)集合”即評分中被認(rèn)為相關(guān)的文檔。在這種情況下DiCaprio 查詢的 recall 為 1而 sad movies 查詢?yōu)?0。這意味著對于第一個(gè)查詢我們能夠獲取所有相關(guān)結(jié)果而對于第二個(gè)查詢我們沒有獲取任何相關(guān)結(jié)果。因此平均 recall 為 0.5。{ metric_score: 0.5, details: { dicaprio-performance: { metric_score: 1, unrated_docs: [], hits: [ { hit: { _index: movies, _id: doc1, _score: 2.4826927 }, rating: 1 }, { hit: { _index: movies, _id: doc2, _score: 2.0780432 }, rating: 1 } ], metric_details: { recall: { relevant_docs_retrieved: 2, relevant_docs: 2 } } }, sad-movies: { metric_score: 0, unrated_docs: [], hits: [], metric_details: { recall: { relevant_docs_retrieved: 0, relevant_docs: 2 } } } }, failures: {} }也許我們對minimum_should_match參數(shù)要求太嚴(yán)格了因?yàn)橐蟛樵冎械?100% 詞都出現(xiàn)在文檔中可能會(huì)遺漏相關(guān)結(jié)果。我們可以去掉minimum_should_match參數(shù)這樣只要查詢中有一個(gè)詞出現(xiàn)在文檔中該文檔就被視為相關(guān)。POST /movies/_rank_eval { requests: [ { id: dicaprio-performance, request: { query: { match: { text: { query: DiCaprio performance } } } }, ratings: [ { _index: movies, _id: doc1, rating: 1 }, { _index: movies, _id: doc2, rating: 1 }, { _index: movies, _id: doc3, rating: 0 }, { _index: movies, _id: doc4, rating: 0 } ] }, { id: sad-movies, request: { query: { match: { text: { query: sad movies that make you cry } } } }, ratings: [ { _index: movies, _id: doc5, rating: 1 }, { _index: movies, _id: doc6, rating: 1 }, { _index: movies, _id: doc7, rating: 0 }, { _index: movies, _id: doc8, rating: 0 } ] } ], metric: { recall: { k: 10, relevant_rating_threshold: 1 } } }如你所見通過在兩個(gè)查詢中的一個(gè)去掉minimum_should_match參數(shù)現(xiàn)在兩個(gè)查詢的平均 recall 都為 1。{ metric_score: 1, details: { dicaprio-performance: { metric_score: 1, unrated_docs: [], hits: [ { hit: { _index: movies, _id: doc1, _score: 2.0661702 }, rating: 1 }, { hit: { _index: movies, _id: doc3, _score: 0.732218 }, rating: 0 }, { hit: { _index: movies, _id: doc2, _score: 0.6271719 }, rating: 1 } ], metric_details: { recall: { relevant_docs_retrieved: 2, relevant_docs: 2 } } }, sad-movies: { metric_score: 1, unrated_docs: [], hits: [ { hit: { _index: movies, _id: doc7, _score: 2.1307156 }, rating: 0 }, { hit: { _index: movies, _id: doc5, _score: 1.3160692 }, rating: 1 }, { hit: { _index: movies, _id: doc6, _score: 1.190063 }, rating: 1 } ], metric_details: { recall: { relevant_docs_retrieved: 2, relevant_docs: 2 } } } }, failures: {} }總之去掉 minimum_should_match: 100% 條款使我們能夠?qū)蓚€(gè)查詢獲得完美的 recall。我們成功了對吧別急通過提高 recall我們打開了獲取更多結(jié)果的大門。然而每一次調(diào)整都意味著權(quán)衡。這就是為什么要定義完整的測試用例并使用不同指標(biāo)來評估更改。使用 判斷列表 和指標(biāo)可以防止在更改時(shí)盲目操作因?yàn)槟悻F(xiàn)在有數(shù)據(jù)支持。驗(yàn)證不再是手動(dòng)且重復(fù)的你可以在不止一個(gè)用例中測試更改。此外A/B 測試允許你在實(shí)際環(huán)境中測試哪種配置對用戶和業(yè)務(wù)最有效從而實(shí)現(xiàn)從技術(shù)指標(biāo)到真實(shí)世界指標(biāo)的完整閉環(huán)。使用 判斷列表 的最終建議使用 判斷列表 不僅是為了衡量也是在創(chuàng)建一個(gè)讓你可以自信迭代的框架。為此你可以遵循以下建議從小開始但要開始。你不需要有 10,000 個(gè)查詢每個(gè)查詢有 50 個(gè) 判斷列表。你只需識別 5–10 個(gè)對你的業(yè)務(wù)最關(guān)鍵的查詢并定義你希望在結(jié)果頂部看到哪些文檔。這就已經(jīng)提供了一個(gè)基礎(chǔ)。通常你會(huì)從熱門查詢和無結(jié)果查詢開始。你也可以先用易于配置的指標(biāo)如 Precision 進(jìn)行測試然后再逐步增加復(fù)雜性。與用戶驗(yàn)證。在生產(chǎn)環(huán)境中結(jié)合 A/B 測試補(bǔ)充數(shù)據(jù)。這樣你就能知道在指標(biāo)上表現(xiàn)良好的更改是否真正產(chǎn)生了影響。保持列表活躍。你的業(yè)務(wù)會(huì)發(fā)展你的關(guān)鍵查詢也會(huì)變化。定期更新 判斷列表 以反映新需求。將其納入流程。將 判斷列表 集成到開發(fā)流水線中。確保每次配置更改、同義詞或文本分析都能自動(dòng)驗(yàn)證基礎(chǔ)列表。將技術(shù)知識與策略連接。不要只停留在衡量技術(shù)指標(biāo)如 precision 或 recall。使用你的評估結(jié)果來指導(dǎo)業(yè)務(wù)成果。原文https://www.elastic.co/search-labs/blog/judgment-lists-search-query-relevance-elasticsearch