深度解析 | 垂直搜索引擎構(gòu)建:一個(gè)例子(下)

0 評(píng)論 2766 瀏覽 9 收藏 31 分鐘

搜索引擎可以分為三類,元搜索引擎、綜合搜索引擎、垂直搜索引擎。元搜索引擎使用場景較少,綜合搜索引擎逐漸成熟,而許多垂直搜索引擎發(fā)展卻參差不齊。一方面,身處垂直行業(yè)的企業(yè)更關(guān)注業(yè)務(wù)發(fā)展,較少關(guān)注產(chǎn)品算法和策略。另一方面,網(wǎng)絡(luò)上關(guān)于搜索引擎的功能設(shè)計(jì)的文章汗牛充棟,而對(duì)搜索引擎的策略設(shè)計(jì)闡述卻是不常見。針對(duì)這種現(xiàn)象,本文將以互聯(lián)網(wǎng)房產(chǎn)為例,分享垂直搜索引擎的構(gòu)建策略和基本框架,希望可以為后來者帶來一些啟發(fā)。

前文簡要介紹了房產(chǎn)垂直搜索引擎的含義、特點(diǎn)和作用,隨后敘述了房產(chǎn)搜索引擎的框架搭建,包括query分析、召回策略等。有興趣的讀者可以通過點(diǎn)擊下方鏈接查看。

傳送門:深度解析 | 垂直搜索引擎構(gòu)建:一個(gè)例子(上)

在本文,我們將介紹垂直搜索引擎的排序策略、效果評(píng)估等內(nèi)容,通過本文你將了解垂直引擎的排序和評(píng)估方法大致框架。

一、排序

在進(jìn)行搜索引擎優(yōu)化項(xiàng)目時(shí),讀者可能會(huì)遇到各種關(guān)于排序的文章,內(nèi)容紛繁復(fù)雜,讓人眼花繚亂,不知所措。因此,作者對(duì)工作中的經(jīng)驗(yàn)和相關(guān)論文進(jìn)行回顧,梳理了排序的大致框架。希望通過下面的闡述,能夠揭開排序領(lǐng)域的一角,為讀者在工作和學(xué)習(xí)上帶來幫助。

1.1 排序簡介

排序是對(duì)召回?cái)?shù)據(jù)按照一定規(guī)則重新排列的過程。排序?qū)λ阉鳌⑼扑]和廣告的效果有著直接影響,好的排序可以提高用戶體驗(yàn)和廣告收入。

排序的發(fā)展歷程經(jīng)歷了多次迭代,可以概括為三個(gè)階段:

  1. 統(tǒng)計(jì)階段:該主要采用一些靜態(tài)得分或統(tǒng)計(jì)指標(biāo)作為規(guī)則進(jìn)行排序。在此階段,我們通常會(huì)使用一些基礎(chǔ)的統(tǒng)計(jì)指標(biāo)或者規(guī)則,如TF-IDF、PageRank等,對(duì)數(shù)據(jù)進(jìn)行初步排序。這些算法或規(guī)則還會(huì)使用一些統(tǒng)計(jì)指標(biāo),如關(guān)鍵詞匹配、item評(píng)分等作為排序依據(jù)。
  2. 機(jī)器學(xué)習(xí)階段:我們也可稱之為機(jī)器學(xué)習(xí)早期階段。該階段模型較為簡單,參數(shù)較少,有一定個(gè)性化推薦能力。在早期的機(jī)器學(xué)習(xí)階段,主要將LR(Logistic Regression)、GBDT(Gradient Boosting Decision Tree)、FM(Factorization Machines)、RF(Random Forest)、XGBoost(eXtreme Gradient Boosting)等機(jī)器學(xué)習(xí)算法應(yīng)用到排序策略中。該方法主要思路是利用業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)指標(biāo)(如CTR)訓(xùn)練高表現(xiàn)的排序模型,可以簡單理解為:求解CTR和Item關(guān)系的(局部)最優(yōu)擬合函數(shù),從而使更有可能被點(diǎn)擊的Item排在前列。
  3. 深度學(xué)習(xí)階段:深度學(xué)習(xí)屬于機(jī)器學(xué)習(xí)的一個(gè)新領(lǐng)域,深度主要體現(xiàn)在使用多層神經(jīng)網(wǎng)絡(luò)訓(xùn)練,它也是機(jī)器學(xué)習(xí)的一個(gè)領(lǐng)域 。因?yàn)槠渑c傳統(tǒng)機(jī)器學(xué)習(xí)有著不同的特點(diǎn),在此單獨(dú)作為一個(gè)階段進(jìn)行敘述。該階段主要使用深度學(xué)習(xí)(部分企業(yè)也使用了強(qiáng)化學(xué)習(xí))進(jìn)行排序,代表模型有:DNN(Deep Neural Network)、DSSM(Deep Structured Semantic Models)、FNN(Feedforward Neural Network)、PNN(Probabilistic Neural Network)、NFM(Neural Factorization Machines)、AFM(Attentional Factorization Machines)。

深度學(xué)習(xí)思路本質(zhì)上與機(jī)器學(xué)習(xí)類似,但其不同之處在于參考了人腦神經(jīng)元結(jié)構(gòu),引入了多層神經(jīng)網(wǎng)絡(luò),從而提高了函數(shù)的擬合和泛化效果。此外,深度學(xué)習(xí)還可以降低特征維度,淡化物品的表征能力。

從上述三個(gè)發(fā)展階段可以看出,排序的發(fā)展路徑為:單一數(shù)據(jù)特征表示 → 多元數(shù)據(jù)特征表示 → 低維密集向量表示。這些階段都是將用戶、物品、查詢等數(shù)據(jù)轉(zhuǎn)換為向量表示,并通過學(xué)習(xí)來實(shí)現(xiàn)排序的業(yè)務(wù)目標(biāo)。

1.2 排序流程

排序可以按照流程分為粗排、精排和重排三個(gè)階段。

1.2.1 粗排

粗排是使用一定策略,對(duì)召回?cái)?shù)據(jù)進(jìn)行大致排序,對(duì)候選集進(jìn)行初步篩選,以減少計(jì)算量。通過粗排,我們可以減輕精排的壓力,并提高排序效率。由于粗排是對(duì)召回?cái)?shù)據(jù)的預(yù)處理過程,因此也被稱為預(yù)排序。

粗排需要快速從海量數(shù)據(jù)篩選出較高質(zhì)量的數(shù)據(jù),因此不能使用過于復(fù)雜的模型。在此我們主要介紹幾種經(jīng)典的方法。

(1)基于統(tǒng)計(jì)規(guī)則的靜態(tài)商品質(zhì)量評(píng)分

該方法主要采用一些靜態(tài)指標(biāo),使用一定函數(shù)給item打分,從而進(jìn)行排序。評(píng)分依據(jù)之一是query和item關(guān)聯(lián)度,如使用TF-IDF、BM25等方法計(jì)算item重要程度;其次是item特征得分,包括:

  • item屬性評(píng)分:如房源戶型評(píng)分、交通評(píng)分、生活配套評(píng)分、房源發(fā)布時(shí)間等;
  • 用戶行為評(píng)分:包括房源的CTR、點(diǎn)贊率、收藏率等
  • 作者評(píng)分:在一些行業(yè),例如短視頻領(lǐng)域,作者賬號(hào)的權(quán)重也會(huì)被考慮在內(nèi)。這些權(quán)重包括關(guān)注量、認(rèn)證情況、平均完播量、平均點(diǎn)贊量、平均收藏量、平均轉(zhuǎn)發(fā)量等等。通過進(jìn)行加權(quán)計(jì)算,高得分的賬號(hào)將會(huì)排名靠前。

通過評(píng)分,可以將高質(zhì)量的item排在前列。不足的是,該方法通常使用離線計(jì)算,無法及時(shí)更新。同時(shí),它也未能反映用戶個(gè)性化特征,使得排序結(jié)果加重了馬態(tài)效應(yīng),降低了長尾item的曝光量。

(2)LR(邏輯回歸)

邏輯回歸雖然名稱中包含“回歸”二字,但實(shí)際上它要解決的是分類問題。邏輯回歸包含線性回歸和非線性轉(zhuǎn)換兩個(gè)部分,通過將線性回歸的輸出通過一個(gè)非線性函數(shù)(通常為 Sigmoid 函數(shù))進(jìn)行轉(zhuǎn)換,將其限制在 0 到 1 之間,以表示概率,將概率較大的item排在前列。

以房產(chǎn)搜索引擎為例,假設(shè)我們需要預(yù)測房源廣告是否會(huì)被用戶點(diǎn)擊。每條房源廣告只有兩種可能的結(jié)果:被點(diǎn)擊或未被點(diǎn)擊,這是一個(gè)典型二分類問題。

我們可以考慮將兩方面的特征作為輸入:①與房源相關(guān)特征,如房源類型、面積、戶型、建造年份、價(jià)格等。②此外,我們還可以考慮用戶行為特征,如用戶搜索歷史、瀏覽歷史、點(diǎn)擊歷史等。然后將CTR做為輸出。

通過模型訓(xùn)練,我們可以將房源得分控制在0~1之間。同時(shí),以0.5為閾值,將0.5分以下數(shù)據(jù)進(jìn)行剔除,并按得分進(jìn)行排序。從而提高房源的點(diǎn)擊率

可以看到該模型引入了用戶特征,既提高了房源點(diǎn)擊率,也使搜索結(jié)果更加個(gè)性化。

(3)DSSM

DSSM(Deep Structured Semantic Models)又稱為雙塔模型,該方法是一種深度學(xué)習(xí)方法,可以用于學(xué)習(xí)query和Item之間的語義相似性。它通過神經(jīng)網(wǎng)絡(luò)模型將它們表示為連續(xù)的低維向量,使得具有相似語義的query和ietm在向量空間中靠得更近。DSSM 最初是為了解決 Web 搜索中的query-doc匹配問題而提出的,但它在其他自然語言處理任務(wù),如推薦系統(tǒng)、文本匹配等方面也有廣泛的應(yīng)用。

在房產(chǎn)搜索引擎中,我們可以使用 DSSM 模型來匹配query和房源,以找到與用戶query最為相似的房源。

我們可以通過以下步驟來實(shí)現(xiàn)訓(xùn)練:

通過對(duì)用戶query的分析(參考本文前文),將用戶查詢做query分析預(yù)處理后,可以使用CBOW(詞袋模型)、 word2vec 等方法將query和房源結(jié)構(gòu)化表示為向量。

構(gòu)建神經(jīng)網(wǎng)絡(luò)模型(如MLP),分別對(duì)query和房源信息進(jìn)行編碼。該神經(jīng)網(wǎng)絡(luò)將二者表示為連續(xù)的低維向量。通過訓(xùn)練,模型可以使query與相似的房源在向量空間中更為接近。

訓(xùn)練好后,我們可以通過訓(xùn)練好的 DSSM 模型,對(duì)給定用戶的查詢和房源描述進(jìn)行編碼,計(jì)算它們?cè)谙蛄靠臻g中的相似度打分。然后,根據(jù)相似度打分對(duì)房源進(jìn)行排序,將最相關(guān)的房源推薦給用戶。

使用DSSM可以匹配query與之關(guān)聯(lián)最高的房源,可以保證粗排數(shù)據(jù)的質(zhì)量。DSSM需要高質(zhì)量的訓(xùn)練數(shù)據(jù)和大量計(jì)算資源。在工作場景中,可按需要進(jìn)行處理。

例如,當(dāng)用戶的query=“chaoyang兩居二手房”,若分析器處理結(jié)果為實(shí)體屬性,如{Region:’朝陽’;House Type:’二居’; House Status:’二手房’}。此時(shí)我們可將其處理為業(yè)務(wù)向量,與結(jié)構(gòu)化房源進(jìn)行相似計(jì)算,按相似度進(jìn)行排序,也可以取得不錯(cuò)的效果。因此,在實(shí)際應(yīng)用中,根據(jù)具體場景和需求選擇合適的方法是十分重要。

(4)個(gè)性化模型

個(gè)性化排序模型,又被稱作“千人千面”。它基于用戶特征和行為數(shù)據(jù),對(duì)搜索結(jié)果實(shí)施個(gè)性化排序,以更好地滿足用戶需求。具體而言,該模型可根據(jù)用戶的個(gè)人屬性、行為屬性、偏好屬性等特征,對(duì)搜索結(jié)果進(jìn)行個(gè)性化排序。

例如,對(duì)于一個(gè)搜索“北京市二居室”的用戶來說,如果該用戶歷史多次搜索過三環(huán)內(nèi)的房源,那么搜索結(jié)果中三環(huán)內(nèi)的三居室房源將會(huì)被優(yōu)先展示。這種排序策略可以滿足用戶個(gè)性化需求,提升用戶體驗(yàn)。

(5)多目標(biāo)模型

在房產(chǎn)搜索引擎中,排序不僅要考慮相關(guān)性,還要考慮多個(gè)業(yè)務(wù)目標(biāo),例如展示盡可能多的優(yōu)質(zhì)房源、提高用戶點(diǎn)擊率、收藏率、咨詢率和呼叫率等。

利用深度學(xué)習(xí),可以訓(xùn)練將用戶特征、物品特征、統(tǒng)計(jì)特征、場景特征作為輸入,將點(diǎn)擊率、收藏率、咨詢率和呼叫率作為輸出的模型,最后計(jì)算四個(gè)值的加權(quán)平均數(shù)。我們可以將該平均數(shù)作為房源的目標(biāo)評(píng)分,進(jìn)行排序。該方法考慮了多個(gè)業(yè)務(wù)指標(biāo),業(yè)務(wù)解釋能力更強(qiáng)。

(6)實(shí)時(shí)特征排序

實(shí)時(shí)特征是指用戶在搜索過程中產(chǎn)生的實(shí)時(shí)行為特征,例如搜索詞、搜索時(shí)間、搜索歷史等。這些實(shí)時(shí)特征可以用來調(diào)整排序策略,更好地滿足用戶需求。例如,如果用戶在搜索“北京租房”后又搜索了“朝陽區(qū)”,那么在后續(xù)的搜索結(jié)果中,應(yīng)該優(yōu)先展示朝陽區(qū)的租房信息。

選取哪種方法需要考慮業(yè)務(wù)的特性和用戶的需求,同時(shí)也需要平衡商業(yè)成本與ROI,從而選擇最合適的排序方法。

1.2.2 精排

精排是指通過各種模型對(duì)數(shù)據(jù)做出精細(xì)化排序,提高搜索結(jié)果的質(zhì)量。精排也可以提供個(gè)性化的結(jié)果,使搜索結(jié)果更加滿足用戶的個(gè)性化需求。

精排需要從粗排數(shù)據(jù)篩選出較高質(zhì)量的數(shù)據(jù)。常規(guī)的排序模型LR、GBDT、FM等存在一些問題,如調(diào)整參數(shù)困難、過擬合(Overfitting)等問題。而使用深度學(xué)習(xí)或強(qiáng)化學(xué)習(xí)構(gòu)建的模型,可以自動(dòng)學(xué)習(xí)特征和調(diào)整參數(shù),能夠避免上述問題,提高排序模型的準(zhǔn)確性。

1.LTR

隨著互聯(lián)網(wǎng)的發(fā)展,用戶數(shù)據(jù)不斷增加,計(jì)算機(jī)芯片算力也實(shí)現(xiàn)了很大的提升,這使得排序策略模逐漸向深度學(xué)習(xí)模型轉(zhuǎn)移成為可能。使用深度學(xué)習(xí)進(jìn)行排序通常稱為學(xué)習(xí)排序,學(xué)習(xí)排序通常分為以下三種類類型。

(1)Pointwise:

Pointwise 將排序問題視為一個(gè)回歸或分類問題。在這種方法中,我們對(duì)每個(gè)item單獨(dú)處理,不考慮其他item的相關(guān)性。CTR方法就是一個(gè)典型的Pointwise方法,例如,在房產(chǎn)搜索中,為每個(gè)房源分配一個(gè)點(diǎn)擊可能性得分,并根據(jù)上述得分對(duì)搜索結(jié)果進(jìn)行排序。

(1)Pairwise:

Pairwise將排序問題視為一個(gè)二分類問題,強(qiáng)調(diào)兩個(gè)item之間的相對(duì)順序。在這種方法中,我們會(huì)對(duì)每對(duì)item進(jìn)行比較,判斷哪個(gè)item與用戶需求更相關(guān)。然后,利用二分類模型(如SVM、GBDT等)學(xué)習(xí)這些特征對(duì)之間的關(guān)系,從而預(yù)測item之間的局部優(yōu)先順序。

以房產(chǎn)搜索引擎為例,對(duì)于每對(duì)房源,我們可以計(jì)算它們的特征差(如價(jià)格差、面積差、戶型差等),并根據(jù)這些特征差訓(xùn)練一個(gè)二分類模型,預(yù)測輸出房源相對(duì)順序。最后,根據(jù)預(yù)測結(jié)果對(duì)房源進(jìn)行排序。

(2)Listwise:

Listwise將整個(gè)搜索結(jié)果列表作為一個(gè)整體進(jìn)行排序。在該方法中,更關(guān)注整個(gè)排序列表的質(zhì)量,而不是單個(gè)item或item對(duì)之間的關(guān)系。通過訓(xùn)練模型,可以對(duì)所有item打分,根據(jù)item得分進(jìn)行列表排序。Listwise方法通常使用NDCG作為評(píng)價(jià)函數(shù),并基于此迭代排序模型。在房產(chǎn)搜索引擎中,通過輸入無序房源列表,然后輸出有序的房源列表。

該方法為代表的模型有Lamda 、Ada等。由于關(guān)注的是整個(gè)列表,該方法也通常更符合用戶需求。但也存在數(shù)據(jù)標(biāo)注困難、訓(xùn)練成本高等問題。

2.其他方法

近年來,隨著精細(xì)排序進(jìn)入深度學(xué)習(xí)時(shí)代,排序深度學(xué)習(xí)模型逐漸出現(xiàn)多個(gè)細(xì)分方向。

  • 通過組合和交叉原始特征,提取更高級(jí)別的特征表示,幫助模型更好地捕捉特征之間的非線性關(guān)系,如FM、FFM、DeepFM、DCN等;
  • 基于用戶數(shù)據(jù)信息,捕捉用戶興趣和行為動(dòng)態(tài)變化。代如DIN、DIEN、SIM等;
  • 同時(shí)優(yōu)化多個(gè)目標(biāo),如點(diǎn)擊率和轉(zhuǎn)化率等。這可以幫助模型在多個(gè)指標(biāo)上取得平衡。如ESSM、MMOE、SNR和PLE等。

限于行文空間,上述模型的細(xì)節(jié)不作展開講解,我們將在后續(xù)專欄其他文章進(jìn)行闡述。

1.2.3 重排

重排是利用各種方式對(duì)精排數(shù)據(jù)進(jìn)行重新排序,以實(shí)現(xiàn)搜索結(jié)果多樣化、運(yùn)營內(nèi)容混排、流量調(diào)控等目標(biāo)。

  • 多樣性:通過展示多樣化數(shù)據(jù),可以降低內(nèi)容、品類單一等問題,提供內(nèi)容異質(zhì)性;
  • 內(nèi)容混排:如在房源列表中插入廣告、視頻/圖文/直播內(nèi)容、主題聚合等。
  • 流量調(diào)控:流量調(diào)控可以看作是對(duì)部分特殊item流量進(jìn)行控制,避免缺乏曝光和過度曝光。如常見的新發(fā)布房源冷啟動(dòng)、曝光保量等問題。流量調(diào)控實(shí)際上有許多問題需要注意,有興趣的讀者可以查閱相關(guān)內(nèi)容進(jìn)行閱讀。

在本文,我們主要介紹以下幾種重排方法:

(1)固定策略

固定策略是指在搜索引擎中,將某些內(nèi)容固定展示在搜索結(jié)果的某個(gè)位置。比較常用的是方式是等距插值,如每4個(gè)房源后插入一條廣告/素材/主題等。

(2)規(guī)則策略

規(guī)則策略是指根據(jù)業(yè)務(wù)方需求,對(duì)搜索結(jié)果進(jìn)行規(guī)則性的調(diào)整。常見方法如下:

①根據(jù)類別排序,優(yōu)先展示真房源、新上架房源、高評(píng)分房源等;

②排除不感興趣、B端黑名單等;

③廣告競價(jià):根據(jù)B端廣告付費(fèi)競價(jià),進(jìn)行優(yōu)先排序。房源的點(diǎn)擊會(huì)直接影響競價(jià)廣告的收益率,間接影響客戶的續(xù)費(fèi)率。

(3)listwise

使用pointwise時(shí),同一用戶query,每個(gè)item在精排階段都是獨(dú)立的,可能存在召回item的特征相似,缺乏異質(zhì)性。listwise方法主要思想:將用戶原始query與所有候選item聯(lián)系起來,用來關(guān)注上下文信息。考慮上下文因素,并進(jìn)行重排。

值得注意的是,在排序方面需要注意排序的一致性,避免召回、粗排、精排、重排策略不一致的情況。在各個(gè)階段使用矛盾的模型可能提高搜索結(jié)果的不確定性,降低排序結(jié)果的表現(xiàn)。

最后,對(duì)于排序而言,應(yīng)避免陷入技術(shù)追求陷阱,認(rèn)為搜索引擎如果沒有采用 GBDT、DNN 等復(fù)雜技術(shù),就算不上好的搜索引擎。

實(shí)際上,構(gòu)建一個(gè)高效的搜索引擎應(yīng)當(dāng)關(guān)注業(yè)務(wù)需求和用戶體驗(yàn),適當(dāng)?shù)馗鶕?jù)實(shí)際場景選擇相應(yīng)的技術(shù)方法。比如,在某些特定場景下,簡單的基于關(guān)鍵詞匹配的排序策略可能就已經(jīng)足夠滿足用戶需求。此時(shí),使用復(fù)雜模型,不僅浪費(fèi)了寶貴的技術(shù)資源,還會(huì)降低搜索引擎的響應(yīng)速度。

因此,在選擇排序方法時(shí),應(yīng)該根據(jù)實(shí)際業(yè)務(wù)需求和場景來權(quán)衡,而不是過度追求技術(shù)復(fù)雜度。

二、搜索評(píng)價(jià)

如果沒有科學(xué)的評(píng)價(jià)系統(tǒng),我們很難衡量搜索引擎的好壞,也就難以改進(jìn)系統(tǒng),提升搜索性能。通過評(píng)價(jià)系統(tǒng)我們可以找到搜索引擎存在的問題或缺陷,提高搜索引擎的表現(xiàn)。同時(shí)表現(xiàn)較好的特征,我們也可以進(jìn)行遷移學(xué)習(xí)。

2.1 搜索引擎的評(píng)價(jià)體系

搜索指標(biāo)通常應(yīng)該具備客觀性、可測量性、科學(xué)性。也就是說,指搜索系統(tǒng)評(píng)價(jià)應(yīng)盡量采用客觀指標(biāo),這些指標(biāo)是可以測量的,并且科學(xué)的反映了搜索系統(tǒng)的性能。

參考相關(guān)文章,我們將搜索系統(tǒng)的評(píng)價(jià)分為兩個(gè)方面:①效率指標(biāo);②效果指標(biāo)

2.1.1 效率指標(biāo)

效率指標(biāo)主要對(duì)搜索引擎時(shí)間性能和空間性能進(jìn)行評(píng)價(jià)。主要關(guān)注響應(yīng)時(shí)間、開銷、索引量等指標(biāo)。

  • 響應(yīng)時(shí)間:提交query到返回結(jié)果的時(shí)間。響應(yīng)時(shí)間通常要求在0-100ms以內(nèi)。由于搜索容易受到網(wǎng)絡(luò)、設(shè)備等因素影響,計(jì)算時(shí)通常采取多次搜索的平均響應(yīng)時(shí)間
  • 開銷:主要指系統(tǒng)占用的內(nèi)存和外存空間。
  • 索引量:用戶可以檢索到item的數(shù)量,索引的配置將影響搜索的執(zhí)行時(shí)間。

2.1.2 效果指標(biāo)

效果指標(biāo)主要針對(duì)搜索結(jié)果效果評(píng)價(jià)而言,通常有以下方法:

(1)精準(zhǔn)率

精準(zhǔn)率 (Precision):搜索結(jié)果中相關(guān)item與所有item之間的比例。計(jì)算公式為:精準(zhǔn)率 = 搜索結(jié)果相關(guān)item / 搜索結(jié)果item數(shù)量。例如,用戶搜索京海市的房源,如果在前10個(gè)搜索結(jié)果中有8個(gè)與京海區(qū)相關(guān),則精準(zhǔn)率為0.8。

注意與準(zhǔn)確率的區(qū)分,準(zhǔn)確率=識(shí)別正確item/所有item數(shù)量。假設(shè)在數(shù)據(jù)庫中,擁有100條item,與dog相關(guān)有60條,不相關(guān)的有40條。用戶搜索返回50條(其中40條相關(guān),10條不相關(guān)),那么:準(zhǔn)確率=40+(40-10)/100=70%

所以,準(zhǔn)確率=識(shí)別正確數(shù)/總樣本數(shù)

注:40表示識(shí)別正確的數(shù)量(即正例識(shí)別正確40條,負(fù)例識(shí)別正確30條)

(2)召回率

召回率 (Recall):召回率是搜索結(jié)果中相關(guān)item與所有相關(guān)item之間的比例。計(jì)算公式為:召回率 = 相關(guān)item數(shù)量 / 所有相關(guān)item數(shù)量。例如,當(dāng)用戶搜索青華區(qū)的房源時(shí),搜索結(jié)果中有40個(gè)相關(guān)房源,而數(shù)據(jù)庫共有100個(gè)與青華區(qū)相關(guān)的房源,則召回率為0.4。

需要注意的是,當(dāng)召回和準(zhǔn)確率達(dá)到一定程度時(shí),就會(huì)互為掣肘。繼續(xù)要求更高的召回,必然會(huì)犧牲準(zhǔn)確性,反之依然。使用如何衡量,需要依據(jù)實(shí)際場景決定。如在房源搜索中,要求召回更多的房源,需要降低query與item的匹配度,精準(zhǔn)率也隨之降低,反之亦然。

(3)F1分?jǐn)?shù)

F1分?jǐn)?shù) (F1 Score):F1分?jǐn)?shù)是準(zhǔn)確率和召回率的調(diào)和平均數(shù),用于綜合評(píng)價(jià)搜索引擎的性能。計(jì)算公式為:F1 = 2 * (Precision * Recall) / (Precision + Recall)。使用調(diào)和平均數(shù)可以綜合反映系統(tǒng)性能。

(4)P@k

對(duì)于海量的搜索結(jié)果,我們不可能根據(jù)所有結(jié)果計(jì)算準(zhǔn)確率和召回率。因此,我們假設(shè)用戶關(guān)注的是排序比較靠前(前k條)的item。P@k 是評(píng)估搜索引擎在前 k 個(gè)結(jié)果中相關(guān)item的比例。計(jì)算公式為:P@k = 相關(guān)文檔數(shù)量 / k。當(dāng)k=10或20,稱為p@10,p@20。

(5)MAP

平均準(zhǔn)確率 (Mean Average Precision, MAP):多個(gè)query在搜索引擎中準(zhǔn)確率的平均值,該方法的假設(shè)前提是每個(gè)用戶都期望找到相關(guān)的item。

5.MRR

使用p@k方法通過多次對(duì)query查詢進(jìn)行評(píng)價(jià),降低了計(jì)算的復(fù)雜度,但也忽略了前k個(gè)item的排序質(zhì)量評(píng)價(jià)。因此,我們引入MRR的概念。

假設(shè)用戶首次查詢海淀小學(xué),搜索結(jié)果中第5條為關(guān)于相關(guān)的學(xué)區(qū)房源,那么得到的評(píng)價(jià)為1/5=0.2;用戶第二次查詢?yōu)椤皣覉D書館”,第2條就返回了相關(guān)的地標(biāo)房源,我們將其評(píng)價(jià)賦分為0.5。那么MMR=(0.2+0.5)/2=0.35

由上可知,MRR 是評(píng)價(jià)搜索引擎對(duì)首個(gè)相關(guān)ietm的排序效果。計(jì)算公式為:MRR = (1 / Q) * Σ(1 / rank_i),其中 Q 是查詢數(shù)量,rank_i 是第 i 個(gè)查詢的首個(gè)相關(guān)文檔的排名。

(6)nDCG

nDCG (Normalized Discounted Cumulative Gain):nDCG 是一種度量搜索引擎對(duì)于相關(guān)文檔的排序質(zhì)量。計(jì)算公式為:nDCG = DCG / IDCG,其中 DCG 是折扣累積增益,IDCG 是理想情況下的最大折扣累積增益。

這個(gè)公式可能看起來較為復(fù)雜,不過沒關(guān)系。我們可以抽絲剝繭,娓娓道來。先從CG說起,CG(Cumulative Gain),累積增益,用來計(jì)算(排序后的)列表,有多少個(gè)item與query相關(guān)。

CG:

CG=Σrel_i,即與query存在相關(guān)性item的個(gè)數(shù)累加(個(gè)數(shù)為了方便理解,實(shí)際可能采用打分),下面使用一個(gè)例子來說明CG:

假設(shè)搜索結(jié)果與搜索相關(guān)則得1分,否則為0。若query=“西二旗”,返回結(jié)果listA= [城西,二手房,西二旗1居,西二莊,西二旗開間]。顯然,CG=[0+0+1+0+1]=2

DCG:

其次是DCG,考慮上述搜索結(jié)果listB [城西,西二旗1居,西二旗開間,二手房,西二莊],它的CG[0+1+1+0+0]=2。顯然listB比listA結(jié)果更好,但他們的CG卻相等,這是不合理的。

因此,我們考慮引入位置信息,使位置靠前的item得分更高,位置靠后的item得分越低。使用減函數(shù)f(x)*rel_i可以降低靠后item的得分。這里,我們使用的減函數(shù)為1/log2^(i+1),結(jié)合它的圖像,應(yīng)該可以輕松理解。

我們將調(diào)整后的CG稱為DCG(Discounted Cumulative Gain,折扣累計(jì)增益),DCG=Σrel_i/log2^(i+1)。折扣累計(jì)增益通過求多次查詢DCG的平均數(shù),理論上可以得到較好的評(píng)價(jià)指標(biāo)。

IDCG:

使用DCG進(jìn)行打分真的沒問題嗎?舉個(gè)例子。小蘭在高考時(shí),物理考了95分,數(shù)學(xué)考了135分。如何比較二者的成績呢?如果我們直接比較原始成績,可能會(huì)因?yàn)闈M分不同而導(dǎo)致比較不公平(讀者可以簡單思考一下解決方案)。

應(yīng)該如何分析小蘭的成績呢?為了消除這種不公平性,我們可以將兩門成績都?xì)w一到0-1的范圍之內(nèi)。這樣,不論是數(shù)學(xué)成績還是物理成績,都可以在同一尺度(得分率)下進(jìn)行比較。我們將小蘭物理成績換算為95/100=0.95,數(shù)學(xué)成績換算為120/150=0.90,可以發(fā)現(xiàn)物理比數(shù)學(xué)考的更好。這種處理方法被稱為最大值歸一化(除此之外,還有均值歸一化、z值歸一化,有興趣的讀者可以搜索了解)

同理,搜索引擎返回的item數(shù)量可能或多或少。比如query=“開間”時(shí),可能只返回3條數(shù)據(jù)。這時(shí),返回3條結(jié)果和5條結(jié)果下的DCG,他們的分?jǐn)?shù)計(jì)算標(biāo)準(zhǔn)不同,直接比較DCG分?jǐn)?shù)大小就不太妥當(dāng)。因此我們需要計(jì)算每條搜索結(jié)果能獲得DCG的滿分,再使用DCG/滿分,得到DCG的得分比例。

我們將所有與query相關(guān)的item排在前面,如query=”西二旗”的搜索結(jié)果listA =[城西,二手房,西二旗1居,西二莊,西二旗開間],將結(jié)果調(diào)整為[西二旗1居,西二旗開間,城西,二手房,西二莊]時(shí),可以得到DCG的最高分(對(duì)應(yīng)的CG為[1,1,0,0,0]需要乘減函數(shù)計(jì)算DCG,只有排在前面才能獲得最高分)這個(gè)最高分就是IDCG(Ideal Discounted Cumulative Gain,理想折扣累積增益)。

nDCG:

通過歸一化可以得到nDCG的公式:nDCG=DCG/IDCG,NDCG是一種衡量搜索結(jié)果質(zhì)量的指標(biāo),它考慮了搜索結(jié)果的相關(guān)性和排名位置。NDCG值越高,表示搜索結(jié)果的質(zhì)量越好。

除了本文介紹的方式,還有其他的評(píng)價(jià)指標(biāo),如業(yè)務(wù)指標(biāo)點(diǎn)擊率、收藏率等。具體采用哪種評(píng)價(jià)方式,需要考慮實(shí)際場景。

三、總結(jié)

分詞有助于更好理解用戶需求,召回決定了搜索結(jié)果的上限,搜索排序是搜索結(jié)果精細(xì)化的好幫手,而搜索評(píng)價(jià)有助于改進(jìn)搜索引擎。

本文講述了常見垂直搜索引擎的一些特點(diǎn)、作用,搜索引擎的分詞流程,召回方式。排序之粗排、精排、重排等方法,隨后總結(jié)了常見的搜索系統(tǒng)評(píng)價(jià)指標(biāo)。

希望對(duì)你有幫助~

本文由 @知一 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自 Unsplash,基于 CC0 協(xié)議。

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒評(píng)論,等你發(fā)揮!