使用Amazon Kendra進行相關(guān)性調(diào)整

來源: AWS
作者:James Kingsmill
時間:2020-08-24
16886
Amazon Kendra是基于機器學(xué)習(ML)的高度準確且易于使用的企業(yè)搜索服務(wù)。

Amazon Kendra是基于機器學(xué)習(ML)的高度準確且易于使用的企業(yè)搜索服務(wù)。當您的用戶開始使用Amazon Kendra執(zhí)行搜索時,您可以微調(diào)他們收到的搜索結(jié)果。例如,您可能想要對來自某些數(shù)據(jù)源的結(jié)果進行優(yōu)先級排序,這些數(shù)據(jù)源的活動會更主動,因此更具權(quán)威性?;蛘撸绻挠脩艚?jīng)常搜索諸如季度報告之類的文檔,則您可能希望首先顯示最新的季度報告。

相關(guān)性調(diào)整使您可以更改Amazon Kendra處理搜索結(jié)果中某些字段或?qū)傩缘闹匾缘姆绞?。在本文中,我們逐步介紹了如何手動調(diào)整索引以獲得最佳結(jié)果。

了解Amazon Kendra的三種主要響應(yīng)類型非常重要:與FAQ匹配,閱讀理解以提取建議的答案以及文檔排名。相關(guān)性調(diào)整會影響文檔排名。此外,相關(guān)性調(diào)整只是影響用戶搜索結(jié)果的眾多因素之一。您無法更改特定結(jié)果,但可以影響Amazon Kendra對某些字段或?qū)傩詰?yīng)用的權(quán)重。

刻面

由于您要基于字段進行調(diào)整,因此需要在索引中包含這些字段。例如,如果您想增強author字段的信號,則需要使author字段成為索引中可搜索的方面。

執(zhí)行相關(guān)性調(diào)整

您可以通過幾種不同的方式執(zhí)行相關(guān)性調(diào)整,例如通過Amazon Kendra搜索控制臺或通過Amazon Kendra API在AWS管理控制臺上執(zhí)行。調(diào)整時,您還可以使用幾種不同類型的字段:

·日期字段–提高最新結(jié)果

·數(shù)字字段–根據(jù)數(shù)字字段(例如總觀看次數(shù))放大內(nèi)容

·字符串字段–基于字符串字段提升結(jié)果,例如,標記為來自更權(quán)威數(shù)據(jù)源的結(jié)果

先決條件

這篇文章要求您完成以下先決條件:設(shè)置環(huán)境,上載示例數(shù)據(jù)集并創(chuàng)建索引。

設(shè)置環(huán)境

確保您已安裝AWS CLI。打開一個終端窗口并創(chuàng)建一個新的工作目錄。從該目錄下載以下文件:

·樣本數(shù)據(jù)集,可從以下網(wǎng)站獲得:s3://aws-ml-blog/artifacts/kendra-relevance-tuning/ml-blogs.tar.gz

·用于創(chuàng)建索引的Python腳本,可從以下位置獲得:s3://aws-ml-blog/artifacts/kendra-relevance-tuning/create-index.py

以下屏幕截圖顯示了如何下載數(shù)據(jù)集和Python腳本。

relevance-tuning-kendra-13.jpg

上載數(shù)據(jù)集

對于此用例,我們使用一個數(shù)據(jù)集,該數(shù)據(jù)集是AWS Machine Learning Blog中精選的帖子。如果要使用自己的數(shù)據(jù)集,請確保您具有各種元數(shù)據(jù)。理想情況下,您應(yīng)該具有不同的字符串字段和日期字段。在示例數(shù)據(jù)集中,不同的字段包括:

·作者姓名–帖子作者

·內(nèi)容類型–博客文章和白皮書

·主題和子主題–主要主題是Machine Learning,子主題包括Computer Vision和ML at the Edge

·內(nèi)容語言–英語,日語和法語

·科學(xué)期刊中的引文數(shù)量-這些是該帖子的隨機編造數(shù)字

首先,創(chuàng)建兩個Amazon Simple Storage Service(Amazon S3)存儲桶。確保在與索引相同的區(qū)域中創(chuàng)建它們。我們的索引有兩個數(shù)據(jù)源。

在ml-blogs.tar.gz壓縮文件中,有兩個目錄。解壓縮tarball并將第一個目錄'bucket1'的內(nèi)容同步到第一個S3存儲桶。然后將第二個目錄“bucket2”的內(nèi)容同步到第二個S3存儲桶。

以下屏幕截圖顯示了如何下載數(shù)據(jù)集并將其上傳到S3存儲桶。

relevance-tuning-kendra-1.jpg

創(chuàng)建索引

使用您喜歡的代碼編輯器,打開您先前下載的Python腳本“create-index.py”。您將需要將存儲桶名稱變量設(shè)置為您先前創(chuàng)建的Amazon S3存儲桶的名稱。確保取消注釋這些行。

完成此操作后,通過鍵入運行腳本python create-index.py。這將執(zhí)行以下操作:

·創(chuàng)建一個AWS Identity and Access Management(IAM)角色以允許您的Amazon Kendra索引從Amazon S3讀取數(shù)據(jù)并將日志寫入Amazon CloudWatch Logs

·創(chuàng)建一個Amazon Kendra索引

·將兩個Amazon S3數(shù)據(jù)源添加到索引

·向索引添加新構(gòu)面,從而允許您基于數(shù)據(jù)集中的不同字段進行搜索

·啟動數(shù)據(jù)源同步作業(yè)

相關(guān)性調(diào)整

既然我們的數(shù)據(jù)已正確索引并且元數(shù)據(jù)可以使用,我們就可以測試不同的設(shè)置以了解相關(guān)性調(diào)整如何影響搜索結(jié)果。在以下示例中,我們將基于幾個不同的屬性進行增強。這些包括數(shù)據(jù)源,文檔類型,新鮮度和受歡迎程度。

增強權(quán)威數(shù)據(jù)源

我們關(guān)注的第一種調(diào)優(yōu)是基于數(shù)據(jù)源的。也許您有一個數(shù)據(jù)源得到了很好的維護和整理,而另一個數(shù)據(jù)源則具有較不準確和過時的信息。您想對來自第一個數(shù)據(jù)源的結(jié)果進行優(yōu)先排序,以便您的用戶在執(zhí)行搜索時獲得最相關(guān)的結(jié)果。

創(chuàng)建索引時,我們創(chuàng)建了兩個數(shù)據(jù)源。其中一個包含我們所有的博客文章-這是我們的主要數(shù)據(jù)源。另一個僅包含一個文件,我們將其視為舊數(shù)據(jù)源。

我們的索引創(chuàng)建腳本將字段設(shè)置_data_source_id為可表面,可搜索和可顯示。這是增強特定數(shù)據(jù)源的關(guān)鍵步驟。

以下屏幕截圖顯示了我們的Amazon Kendra索引的索引字段。

relevance-tuning-kendra-2.jpg

1.在Amazon Kendra搜索控制臺上,搜索Textract。

以下屏幕截圖顯示了搜索“Textract”的結(jié)果。

relevance-tuning-kendra-3.jpg

結(jié)果中還應(yīng)有一個名為的文件Test_File.txt。這是來自我們的次要,整理不太好的數(shù)據(jù)源的文件。記錄此結(jié)果在搜索結(jié)果中的位置。我們想要取消優(yōu)先級,然后從主要來源提高結(jié)果。

2.選擇“調(diào)優(yōu)”以打開“相關(guān)性”調(diào)優(yōu)

3.在“文本”字段下,展開數(shù)據(jù)源。

4.將第一個數(shù)據(jù)源的滑塊拖到右側(cè),以增強該數(shù)據(jù)源的結(jié)果。對于這篇文章,我們首先將其設(shè)置為8。

5.對進行另一次搜索Textract

您應(yīng)該發(fā)現(xiàn)來自第二個數(shù)據(jù)源的文件已經(jīng)在搜索排名中下降了。

將滑塊一直拖動到最右邊,以便將boost設(shè)置為10,然后再次執(zhí)行搜索。

您應(yīng)該發(fā)現(xiàn)輔助數(shù)據(jù)源的結(jié)果已從搜索結(jié)果的第一頁中消失。

以下屏幕快照顯示了相關(guān)性調(diào)整面板,其中數(shù)據(jù)源字段增強應(yīng)用于一個數(shù)據(jù)源,并且搜索結(jié)果不包括來自輔助數(shù)據(jù)源的結(jié)果。

relevance-tuning-kendra-4.jpg

盡管我們將這種方法與S3存儲桶一起用作數(shù)據(jù)源,但是您可以使用它來對Amazon Kendra中可用的任何數(shù)據(jù)源進行優(yōu)先級排序。您可以提高Amazon S3數(shù)據(jù)湖的結(jié)果,并取消Microsoft SharePoint系統(tǒng)的結(jié)果優(yōu)先級,反之亦然。

增強某些文檔類型

在此用例中,我們將白皮書的結(jié)果提高到了AWS Machine Learning Blog的結(jié)果之上。我們首先建立基線搜索結(jié)果。

1.打開Amazon Kendra搜索控制臺并搜索What is machine learning?

以下屏幕截圖顯示了搜索“什么是機器學(xué)習?”的結(jié)果。

relevance-tuning-kendra-5.jpg

我們?nèi)绾斡绊慉mazon Kendra將白皮書推向其搜索結(jié)果的頂部?

首先,我們要根據(jù)內(nèi)容Type字段調(diào)整搜索結(jié)果。

1.在Amazon Kendra控制臺上打開“相關(guān)性”調(diào)整面板。

2.在“自定義字段”下,展開“類型”。

3.將“類型”字段增強滑塊一直拖動到最右邊,以將該字段的相關(guān)性設(shè)置為10。

我們還想提高特定Type值的重要性,即Whitepapers

4.展開高級提升,然后選擇增加價值。

5.白皮書在我們的元數(shù)據(jù)中由該字段指示“Type”:“Whitepaper”,因此請輸入值Whitepaper并將其設(shè)置為10。

6.選擇保存。

以下屏幕截圖顯示了相關(guān)性調(diào)整面板,其中將類型字段增強應(yīng)用于“白皮書”文檔類型。

relevance-tuning-kendra-6-400.jpg

等待最多10秒鐘,然后重新運行搜索。

以下屏幕截圖顯示了搜索“什么是機器學(xué)習?”的結(jié)果。使用類型字段增強的情況。

relevance-tuning-kendra-7.jpg

7.將您的“類型”字段增強設(shè)置恢復(fù)為正常值。

基于文檔新鮮度提升

您可能擁有跨越數(shù)十年的大型文檔檔案,但是最新的答案更為有用。例如,如果您的用戶問:“IT服務(wù)臺在哪里?”您想確保他們得到最新的答案。為此,您可以基于日期屬性提高新鮮度。

在這種用例中,我們提高了搜索結(jié)果的范圍,以包括更多最新帖子。

1.在Amazon Kendra搜索控制臺上,搜索medical。

第一個結(jié)果是在2019年3月19日發(fā)布的Amazon Comprehend Medical和Amazon Rekognition的幫助下取消對醫(yī)學(xué)圖像的識別。

以下屏幕截圖顯示了搜索“medical”的結(jié)果。

relevance-tuning-kendra-8.jpg

2.再次打開“相關(guān)性”調(diào)整面板。

3.在日期選項卡上,打開自定義字段。

4.調(diào)整新鮮刺激的PublishDate10

5.再次搜索medical。

這次的第一個結(jié)果是通過2020年5月15日發(fā)布的Amazon Transcribe Medical提高了COVID-19相關(guān)術(shù)語的語音到文本的準確性。

以下屏幕截圖顯示了應(yīng)用了新鮮度增強的“醫(yī)學(xué)”搜索結(jié)果。

relevance-tuning-kendra-12.jpg

您還可以擴展高級增強功能以增強特定時間段內(nèi)的結(jié)果。例如,如果發(fā)布季度業(yè)務(wù)結(jié)果,則可能需要將敏感度范圍設(shè)置為最近3個月。這增加了上一季度發(fā)布的文檔,因此用戶更有可能找到它們。

以下屏幕快照顯示了相關(guān)性調(diào)整面板中與新鮮度提升有關(guān)的部分,其中顯示了“靈敏度”滑塊以捕獲靈敏度范圍。

relevance-tuning-kendra-9-400.jpg

根據(jù)文檔受歡迎程度進行提升

最終方案是基于數(shù)值進行調(diào)整。在這種用例中,我們?yōu)槊總€帖子分配一個隨機數(shù),以表示他們在科學(xué)期刊中收到的引用次數(shù)。(重要的是要重申,這些只是隨機數(shù),而不是實際引用數(shù)?。┪覀兿M@示最常引用的帖子。

1.運行搜索keras,這是ML流行的庫的名稱。

您可能會從Amazon Kendra看到一個建議的答案,但是最重要的結(jié)果(及其綜合引用數(shù))可能包括:

·Amazon SageMaker Keras–81次引用

·使用Amazon SageMaker部署受過訓(xùn)練的Keras或TensorFlow模型-引用57

·使用Amazon EC2競價型實例在GPU上訓(xùn)練深度學(xué)習模型–引用68

relevance-tuning-kendra-10.jpg

2.在相關(guān)調(diào)節(jié)面板,在上數(shù)字選項卡,拉動滑塊引文一路10。

3.選擇“升序”可以增強引用次數(shù)更多的結(jié)果。

以下屏幕快照顯示了相關(guān)性調(diào)整面板,其中數(shù)字增強功能應(yīng)用于“引文”自定義字段。

relevance-tuning-kendra-11.jpg

4.keras再次搜索,看看出現(xiàn)了什么結(jié)果。

搜索結(jié)果的頂部是:

·在Amazon SageMaker上使用TensorFlow和Apache MXNet訓(xùn)練和部署Keras模型-引用1,197

·在Amazon SageMaker腳本模式下使用TensorFlow急切執(zhí)行-引用2,434

Amazon Kendra通過更多引用優(yōu)先考慮結(jié)果。

結(jié)論

這篇文章演示了如何使用相關(guān)性調(diào)整來調(diào)整用戶的Amazon Kendra搜索結(jié)果。我們使用了一個小的合成數(shù)據(jù)集,以使您了解相關(guān)性調(diào)整的工作原理。實際數(shù)據(jù)集的復(fù)雜性要高得多,因此與用戶合作以了解他們要優(yōu)先考慮的搜索結(jié)果類型非常重要。通過相關(guān)性調(diào)整,您可以使用Amazon Kendra從企業(yè)搜索中獲得最大價值!

感謝Tapodipta Ghosh提供了示例數(shù)據(jù)集和技術(shù)審查。沒有他的幫助,就不可能寫這篇文章。

關(guān)于作者

James Kingsmill是澳大利亞公共部門團隊的解決方案架構(gòu)師。他長期致力于幫助公共部門客戶實現(xiàn)其轉(zhuǎn)型,自動化和安全目標。在他的業(yè)余時間,您會發(fā)現(xiàn)他在悉尼附近的藍山山脈中溪降。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于AWS,本站不擁有所有權(quán),不承擔相關(guān)法律責任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家