PM技術(shù)課 | 搜索引擎知多少?

23 評(píng)論 126803 瀏覽 440 收藏 35 分鐘

“搜索”在這個(gè)數(shù)據(jù)信息冗雜的時(shí)代里,充當(dāng)著人們信息的篩選器,人們通過(guò)使用搜索功能,可以獲得自己想要的內(nèi)容,屏蔽掉無(wú)用的信息。對(duì)于商家來(lái)說(shuō),理論上,搜索功能在一定程度上可以增加長(zhǎng)尾信息的曝光度。但是,總所周知,搜索引擎的排序規(guī)則實(shí)際上飽含水分,競(jìng)價(jià)排名的規(guī)則下,長(zhǎng)尾信息的曝光可能就打水漂了。所以,無(wú)論是C端還是B端的產(chǎn)品經(jīng)理,深諳搜索引擎規(guī)則,并學(xué)會(huì)利用好搜索引擎都非常重要。

一、 初識(shí)搜索引擎

1. 搜索引擎簡(jiǎn)史

提及搜索引擎,大家腦海中就會(huì)浮現(xiàn)起國(guó)內(nèi)的百度和國(guó)外的Google,我們想要查找什么資料,直接在搜索框中輸入關(guān)鍵字,點(diǎn)擊搜索按鈕,之后就會(huì)展現(xiàn)搜索結(jié)果。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

其實(shí)這只是搜索引擎的一部分,我們使用微博搜索某個(gè)明星,使用淘寶搜索商品,使用豆瓣搜索一本書(shū),都是搜索引擎。這些搜索引擎因?yàn)樘S?,我們反而沒(méi)有意識(shí)到。

搜索引擎本質(zhì)上是一種信息獲取方式。

搜索引擎主要經(jīng)歷了:分類(lèi)目錄、相關(guān)性搜索、高質(zhì)量搜索、個(gè)性化搜索四個(gè)階段。

在搜索引擎誕生前,我們使用分類(lèi)目錄來(lái)獲取信息。Yahoo!和國(guó)內(nèi)hao123是分類(lèi)目錄的代表。當(dāng)時(shí)信息相對(duì)較少,通過(guò)人工整理,把屬于各個(gè)類(lèi)別的高質(zhì)量網(wǎng)站羅列出來(lái),比如:按照財(cái)經(jīng)類(lèi)、新聞?lì)悺Ⅲw育類(lèi)、游戲類(lèi)等項(xiàng)目進(jìn)行整理,用戶(hù)可以通過(guò)分類(lèi)目錄來(lái)查找需要的信息。

但一個(gè)頁(yè)面的展示空間有限,分類(lèi)目錄也只能收錄少數(shù)的網(wǎng)站,絕大多數(shù)網(wǎng)站都無(wú)法被收錄,而那些沒(méi)有被收錄的信息,可能正是大家需要的。

有需求,就有商機(jī),搜索引擎順勢(shì)而生。

最早的搜索引擎,通過(guò)查找用戶(hù)輸入的關(guān)鍵詞與網(wǎng)頁(yè)信息的匹配程度,也就是計(jì)算兩者的相關(guān)性,展示網(wǎng)頁(yè)列表,至于如何計(jì)算匹配程度,會(huì)在后文講解。

相比分類(lèi)目錄,這種方式可以收錄大量的網(wǎng)頁(yè),并按照用戶(hù)查詢(xún)的關(guān)鍵詞和網(wǎng)頁(yè)內(nèi)容的匹配程度進(jìn)行排序。

但這種方式有個(gè)巨大的問(wèn)題:只考慮了相關(guān)性,沒(méi)有考慮網(wǎng)頁(yè)的質(zhì)量。網(wǎng)頁(yè)可以通過(guò)大量羅列跟內(nèi)容無(wú)關(guān)的關(guān)鍵詞,來(lái)提高與關(guān)鍵詞的相關(guān)性。

比如:一家做教育的網(wǎng)站,可能會(huì)羅列明星、寵物、新聞甚至色情等高流量詞語(yǔ),這種“強(qiáng)行蹭流量”的方式,造成的后果就是搜索結(jié)果質(zhì)量并不好。

解決這個(gè)問(wèn)題的是Google,Google假設(shè)網(wǎng)頁(yè)的鏈接越多,網(wǎng)站質(zhì)量越高。利用網(wǎng)頁(yè)之間的鏈接數(shù)量來(lái)確定網(wǎng)頁(yè)質(zhì)量,一個(gè)網(wǎng)頁(yè)的鏈接數(shù)量越多,說(shuō)明在網(wǎng)頁(yè)在整個(gè)互聯(lián)網(wǎng)中質(zhì)量越高,Google的核心算法,也會(huì)在后文講述。

發(fā)展到現(xiàn)在,搜索引擎不僅需要解決相關(guān)性和質(zhì)量的問(wèn)題,還要更多考慮用戶(hù)的真實(shí)需求,比如:同樣輸入“蘋(píng)果”,年輕人可能想的是手機(jī),另外一些人想到的是水果。這就需要更加復(fù)雜的算法和程序了。

二、什么是好的搜索引擎

從分類(lèi)目錄、相關(guān)性搜索、高質(zhì)量搜索、個(gè)性化搜索,我們可以從搜索引擎的發(fā)展階段看出,搜索引擎越來(lái)越復(fù)雜,用戶(hù)體驗(yàn)也更好了。

那么,如果判斷一個(gè)搜索引擎好不好呢?

主要有三個(gè)評(píng)價(jià)標(biāo)準(zhǔn):

1. 好的搜索引擎要快

速度是用戶(hù)對(duì)搜索引擎的第一個(gè)印象。

當(dāng)用戶(hù)搜索一件商品,幾十秒還沒(méi)有搜索到,他可能去干其他事情了,就直接放棄購(gòu)買(mǎi)了!商用搜索引擎的查詢(xún)速度要達(dá)到毫秒級(jí),一眨眼的功夫,搜索結(jié)果就出來(lái)了,用戶(hù)體驗(yàn)就很好。

影響搜索速度的因素有很多,索引是最關(guān)鍵的因素之一,關(guān)于索引,會(huì)在下一節(jié)詳細(xì)介紹。

2. 要查的準(zhǔn)

當(dāng)用戶(hù)翻了3頁(yè)還找不到想要的內(nèi)容,干脆就不找了。

影響查詢(xún)準(zhǔn)確率的因素同樣有很多,主要有下面這三個(gè):

  1. 搜索引擎本身存儲(chǔ)的信息要全,對(duì)于百度等商用搜索引擎,這就要求爬蟲(chóng)能夠爬取全網(wǎng)內(nèi)容。
  2. 關(guān)鍵詞和網(wǎng)頁(yè)內(nèi)容的相關(guān)性要高,用戶(hù)搜索手機(jī),結(jié)果有很多單反相機(jī),就不太好了。
  3. 網(wǎng)頁(yè)信息質(zhì)量要高,Google發(fā)明的PageRank算法很巧妙地解決了這個(gè)問(wèn)題。

3. 搜索引擎要具有穩(wěn)定性

這也是用戶(hù)對(duì)大多數(shù)產(chǎn)品的要求,給用戶(hù)一個(gè)合理的預(yù)期,用戶(hù)才能夠信任這款產(chǎn)品,三天兩頭不能用了,體驗(yàn)就差極了。

搜索引擎是怎么工作的?

那么,搜索引擎到底是如何工作的呢?

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

一個(gè)最基本的搜索引擎主要分為:信息獲取、信息處理、信息展示三個(gè)模塊。

巧婦難為無(wú)米之炊,信息獲取是整個(gè)系統(tǒng)的基石。對(duì)商用搜索引擎而言,要求爬蟲(chóng)能夠爬取全網(wǎng)內(nèi)容,關(guān)于爬蟲(chóng),我們?cè)偕弦徽乱呀?jīng)介紹過(guò)了,這里就不再贅述。對(duì)網(wǎng)站內(nèi)部搜索引擎而言,也需要把信息匯總起來(lái),比如:電商平臺(tái),就需要把所有的產(chǎn)品信息存儲(chǔ)到一起。

信息處理主要是對(duì)原始數(shù)據(jù)清洗,存入數(shù)據(jù)庫(kù),這里最重要的一個(gè)環(huán)節(jié)就是構(gòu)建索引,相當(dāng)于給每一個(gè)內(nèi)容添加目錄,便于查找。

信息展示指搜索引擎根據(jù)用戶(hù)的查詢(xún)?cè)~(query)來(lái)進(jìn)行數(shù)據(jù)庫(kù)檢索,將結(jié)果展示給用戶(hù),主要涉及到用戶(hù)查詢(xún)內(nèi)容與網(wǎng)頁(yè)內(nèi)容的相關(guān)性分析、網(wǎng)頁(yè)質(zhì)量評(píng)價(jià)等技術(shù)。

雖然搜索引擎具體實(shí)現(xiàn)方式有差異,但所有的搜索服務(wù)都可以在這三個(gè)模塊的基礎(chǔ)上實(shí)現(xiàn)。

三、內(nèi)容索引

搜索引擎為什么這么快?

好的搜索引擎的評(píng)價(jià)標(biāo)準(zhǔn)之一就是要快,那么搜索引擎是如何實(shí)現(xiàn)的呢?

在開(kāi)始講解之前,我們可以考慮另外一個(gè)相似的問(wèn)題:如何在圖書(shū)館找到一本書(shū)?

最笨的方法是一個(gè)書(shū)架、一個(gè)書(shū)架地找,這會(huì)花費(fèi)大量的時(shí)間。

聰明一些的方式是通過(guò)索書(shū)號(hào),快速找到所在書(shū)架,進(jìn)而找到這本書(shū)。

搜索引擎中的索引就相當(dāng)于圖書(shū)館里每本書(shū)的索書(shū)號(hào),通過(guò)索引,可以快速找到需要的信息。

索引到底長(zhǎng)啥樣?

以網(wǎng)頁(yè)搜索引擎為例:下面這張圖是一個(gè)簡(jiǎn)單的索引系統(tǒng)(更準(zhǔn)確的說(shuō)法是倒排索引,至于為什么是倒排,這里先賣(mài)個(gè)小關(guān)子,后面會(huì)講到)。

左邊是關(guān)鍵詞,右邊是這個(gè)關(guān)鍵詞出現(xiàn)在哪個(gè)網(wǎng)頁(yè)中,一個(gè)關(guān)鍵詞可能同時(shí)出現(xiàn)在很多網(wǎng)頁(yè)中,所以是一對(duì)多的關(guān)系。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

與圖書(shū)館索引不同是:一個(gè)圖書(shū)館再大,藏書(shū)畢竟還有有限的,圖書(shū)管理員可以手工給每個(gè)圖書(shū)建立索書(shū)號(hào)。但搜索引擎存儲(chǔ)的數(shù)據(jù)都是以?xún)|計(jì)算的,不可能手工建立索引,只能借助一些技術(shù)手段。

從上面的表格我們可以看出,構(gòu)建索引主要有兩個(gè)過(guò)程:查找關(guān)鍵詞,把關(guān)鍵詞和網(wǎng)頁(yè)對(duì)應(yīng)起來(lái)。

關(guān)鍵詞

構(gòu)建索引的前提是提取出關(guān)鍵詞,那么給定一個(gè)文本(也就是網(wǎng)頁(yè)的文字內(nèi)容),如何獲取里面的關(guān)鍵詞呢?

主要有兩步:首先是獲得文本里出現(xiàn)的所有詞語(yǔ),也叫做分詞,之后再?gòu)闹泻Y選一些作為關(guān)鍵詞。

第一步,分詞。

如果是一句英文,“Marry had a little lamb”,每個(gè)詞都是用空格分開(kāi)的,里面有“marry”、“had”、“a”’、“l(fā)ittle”、“l(fā)amb”這五個(gè)單詞,但中文“瑪麗有一只小綿羊”,因?yàn)闆](méi)有分隔符(比如:空格)把每個(gè)詞語(yǔ)分開(kāi),就有些麻煩了。

最容易想到的分詞方法就是查字典,把句子從左到右看一遍(程序員的說(shuō)法叫做遍歷),每個(gè)詞語(yǔ)如果在字典中出現(xiàn)過(guò)就標(biāo)記出來(lái)。

拿“瑪麗有一只小綿羊”舉例,比如:“瑪麗”這個(gè)詞在字典中出現(xiàn)過(guò),就把“瑪麗”作為一個(gè)詞語(yǔ),“有”在詞典中出現(xiàn)過(guò),就把“有”作為一個(gè)詞語(yǔ),就這樣一直做下去,最后可以分為“瑪麗、有、一只、小綿羊”。

這種最簡(jiǎn)單的方式可以解決一部分問(wèn)題,但也有很大的問(wèn)題,比如是“小”“綿羊”還是作為整體的“小綿羊”呢?

程序員使用統(tǒng)計(jì)學(xué)解決這個(gè)問(wèn)題:

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

從形式上看,詞是字的組合,兩個(gè)字組合在一起可能是一個(gè)詞語(yǔ),也可能不是,如果是詞語(yǔ)的可能性(概率)大一些,我們就傾向于認(rèn)為它們可以組成詞語(yǔ)。

這就像:天氣預(yù)報(bào)說(shuō)明天下雨的概率70%,不下雨的概率30%,我們就傾向于認(rèn)為明天下雨?!靶【d羊”一起出現(xiàn)的概率是70%,分開(kāi)出現(xiàn)的概率是30%,我們就傾向于認(rèn)為“小綿羊”是一個(gè)詞語(yǔ)。

那么,如何計(jì)算相鄰的字組成詞語(yǔ)的概率呢?

我們可以對(duì)語(yǔ)料庫(kù)中相鄰出現(xiàn)的各個(gè)字的組合的次數(shù)進(jìn)行統(tǒng)計(jì),計(jì)算所有的字相鄰出現(xiàn)的頻率,當(dāng)語(yǔ)料庫(kù)足夠大時(shí),出現(xiàn)的頻率越高,對(duì)應(yīng)的概率也就越高。

我們可以計(jì)算一個(gè)句子中所有組合出現(xiàn)的概率,產(chǎn)生最大的概率組合,就是分詞的結(jié)果。

比如:“瑪麗、有、一只、小綿羊”每一個(gè)詞語(yǔ)出現(xiàn)的概率就大于“瑪麗、有一、只、小、綿羊”等其他組合出現(xiàn)的概率,那么,我們就認(rèn)為這個(gè)句子就按照“瑪麗、有、一只、小綿羊”劃分。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

第二步,獲得關(guān)鍵詞。

對(duì)所有的文本分詞之后會(huì)發(fā)現(xiàn),“的”、“了”、“嗎”、“也許”等沒(méi)有很強(qiáng)實(shí)際意義的功能詞有很多,相比之下“產(chǎn)品經(jīng)理”、“搜索引擎”等詞語(yǔ)更加具有實(shí)際意義的反而較少,后者更應(yīng)該作為關(guān)鍵詞。

于是,我們使用把所有這些功能詞存起來(lái),作為停用詞(stop word),如果一個(gè)詞語(yǔ)出現(xiàn)在停用詞中,就不能作為關(guān)鍵詞。于是,我們就從分詞結(jié)果中,獲得了關(guān)鍵詞。

下面是一個(gè)簡(jiǎn)單的停用詞表,可能看出,基本都是我們經(jīng)常使用的、沒(méi)有很強(qiáng)實(shí)際意義的詞語(yǔ)。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

中文分詞是幾乎所有中文自然語(yǔ)言處理(Natural Language Processing)的基礎(chǔ),所以學(xué)術(shù)界和產(chǎn)業(yè)界對(duì)中文分詞的技術(shù)研究已經(jīng)很深入了,有高質(zhì)量的商用分詞庫(kù),也有像jieba這樣的開(kāi)源中文分詞庫(kù),可以免費(fèi)使用。

通過(guò)提取每個(gè)網(wǎng)頁(yè)的關(guān)鍵詞,最終每個(gè)網(wǎng)頁(yè)和關(guān)鍵詞的對(duì)應(yīng)關(guān)系如下:

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

需要注意的是:獲取關(guān)鍵詞不僅用在網(wǎng)頁(yè)處理,而且也用在輸入搜索框中。當(dāng)我們搜索一句中文的時(shí)候,搜索引擎內(nèi)部會(huì)進(jìn)行分詞、去掉停用詞,獲得關(guān)鍵詞,之后再進(jìn)行后續(xù)處理。

倒排索引

現(xiàn)在,我們已經(jīng)建立好了索引,對(duì)于每一個(gè)網(wǎng)頁(yè),我們找到了出現(xiàn)的所有關(guān)鍵詞。

當(dāng)用戶(hù)查詢(xún)時(shí),我們從頭到尾,對(duì)每一篇文件掃描一遍,看哪個(gè)網(wǎng)頁(yè)出現(xiàn)了用戶(hù)查詢(xún)的關(guān)鍵詞,就把這個(gè)文件作為搜索結(jié)果。

但問(wèn)題是:動(dòng)輒上億的網(wǎng)頁(yè)數(shù)量,從頭到尾掃描一次就要花好長(zhǎng)時(shí)間,根本無(wú)法滿(mǎn)足正常的需求,更別說(shuō)快速響應(yīng)了。

那我們能不能把關(guān)鍵詞放前面,網(wǎng)頁(yè)放后面?

這樣,當(dāng)我們檢索的關(guān)鍵詞的時(shí)候,不需要遍歷整個(gè)系統(tǒng),只用查找對(duì)應(yīng)的幾個(gè)關(guān)鍵詞,就可以找到需要的網(wǎng)頁(yè)了!

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

對(duì)計(jì)算機(jī)而言,直接尋找關(guān)鍵詞所在位置的信息,所需的時(shí)間非常短,完全可以滿(mǎn)足搜索的需要。

比如:用戶(hù)搜索“關(guān)鍵詞1”,那么搜索引擎只需要找到“關(guān)鍵詞1”,就可以會(huì)直接找到“網(wǎng)頁(yè)1,網(wǎng)頁(yè)2,網(wǎng)頁(yè)5,……網(wǎng)頁(yè)L”。
產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

用戶(hù)搜索“關(guān)鍵詞1+關(guān)鍵詞2”,那么搜索引擎需要找到“網(wǎng)頁(yè)1,網(wǎng)頁(yè)2,網(wǎng)頁(yè)5,……網(wǎng)頁(yè)L”,“網(wǎng)頁(yè)3,網(wǎng)頁(yè)4,網(wǎng)頁(yè)5,……網(wǎng)頁(yè)M”,找到同時(shí)出現(xiàn)的“網(wǎng)頁(yè)3、網(wǎng)頁(yè)5,……”。這樣就大大加快了呈現(xiàn)排名的速度。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

把“文件-關(guān)鍵詞”這種結(jié)構(gòu)顛倒一下,“關(guān)鍵詞-文件”,就是倒排索引名字的由來(lái)。

更進(jìn)一步,倒排索引中不僅僅記錄了包含網(wǎng)頁(yè)的ID,還會(huì)記錄關(guān)鍵詞出現(xiàn)的頻率(term frequency)、每個(gè)關(guān)鍵詞對(duì)應(yīng)的文檔頻率(inverse document frequency),以及關(guān)鍵詞出現(xiàn)在文件中的位置等信息,這些信息可以直接用在搜索結(jié)果排序上。

四、搜索結(jié)果排序

至此,我們通過(guò)爬蟲(chóng)實(shí)現(xiàn)了信息獲取、通過(guò)倒排索引實(shí)現(xiàn)了信息處理,接下來(lái)就是如何把這些信息展示給用戶(hù),其中最關(guān)鍵的是如何排序。

對(duì)電商而言,用戶(hù)可以選擇按照銷(xiāo)量、信用、價(jià)格甚至綜合排序,當(dāng)然, 排序中也會(huì)穿插一些推廣。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

對(duì)通用的搜索引擎而言,比如:百度,沒(méi)有銷(xiāo)量、評(píng)分這些選項(xiàng),主要根據(jù)網(wǎng)頁(yè)與搜索關(guān)鍵詞的相關(guān)性、網(wǎng)頁(yè)質(zhì)量等排序。

TF-IDF模型

如何確定網(wǎng)頁(yè)與關(guān)鍵詞的到底有多大的相關(guān)性?

如果一個(gè)網(wǎng)頁(yè)中關(guān)鍵詞的出現(xiàn)很多次的話(huà),我們通常會(huì)認(rèn)為這個(gè)網(wǎng)頁(yè)與搜索的關(guān)鍵詞更匹配,搜索結(jié)果應(yīng)該更靠前。

我們用詞頻(Term Frequency, TF)表示關(guān)鍵詞在一篇文章中出現(xiàn)的頻率,代表網(wǎng)頁(yè)和關(guān)鍵詞的匹配程度。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

比如:我們?cè)诎俣鹊人阉饕嫔纤阉鳌爱a(chǎn)品經(jīng)理的工作”,關(guān)鍵詞為“產(chǎn)品經(jīng)理”,“工作”,“的”作為停用詞,不出現(xiàn)在關(guān)鍵詞中。

在某一個(gè)網(wǎng)頁(yè)上,總共有1000個(gè)詞,其中“產(chǎn)品經(jīng)理”出現(xiàn)了5次,“工作”出現(xiàn)了10次,“產(chǎn)品經(jīng)理”的詞頻就是0.005,“工作”的詞頻就是0.01,兩者相加,0.015就是這個(gè)網(wǎng)頁(yè)和“產(chǎn)品經(jīng)理的工作”的詞頻。

這里有一個(gè)問(wèn)題,相較“產(chǎn)品經(jīng)理”,“工作” 這個(gè)詞用的更多,在所有的網(wǎng)頁(yè)中出現(xiàn)的概率也很高。搜索者可能希望查找產(chǎn)品經(jīng)理相關(guān)的信息,按照TF排序,一些出現(xiàn)很多次“工作”這個(gè)關(guān)鍵字的網(wǎng)站,就可能排在前面,比如:《程序員的工作》、《老板的工作》等等,逆文本頻率 (Inverse Document Frequency,IDF)應(yīng)運(yùn)而生。

文件頻率(Document Frequency)可以理解為關(guān)鍵詞在所有網(wǎng)頁(yè)中出現(xiàn)的頻率,如果一個(gè)關(guān)鍵詞在很多網(wǎng)頁(yè)中都出現(xiàn)過(guò),那么它的文件頻率就很高。反之亦然,比如:“工作”的DF就高于“產(chǎn)品經(jīng)理”。

文件頻率越高,這個(gè)詞就越通用,有效的信息就越少,重要性應(yīng)該更低。于是,我們把文件頻率取個(gè)倒數(shù),就形成了逆文本頻率。

二八定律在這里同樣適用,20%的常用詞占用了80%的篇幅,大多數(shù)關(guān)鍵詞出現(xiàn)的頻率都很低,這就造成了文件頻率很小,而逆文本頻率很大,不便于處理。于是我們?nèi)?duì)數(shù),便于計(jì)算(當(dāng)然,這里也有其他數(shù)學(xué)和信息論上的考慮)。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

把詞頻(TF)、逆文檔頻率 (IDF)相乘,就是大名鼎鼎的TF-IDF模型了。

一個(gè)關(guān)鍵詞在一個(gè)網(wǎng)頁(yè)中出現(xiàn)的頻率越高,這個(gè)關(guān)鍵詞越重要,排名越靠前;在所有網(wǎng)頁(yè)中出現(xiàn)的頻率越高,這個(gè)關(guān)鍵詞告訴我們的信息越少,排名應(yīng)該更靠后。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

TF-IDF模型幫助我們解決了關(guān)鍵詞與網(wǎng)頁(yè)相關(guān)性的計(jì)算,僅僅使用TF-IDF模型,也可以搭建出效果不錯(cuò)的搜索引擎。

當(dāng)然,商用搜索引擎在TF-IDF的基礎(chǔ)上,進(jìn)行的一定的改進(jìn),比如:出現(xiàn)在文章開(kāi)頭和結(jié)尾的關(guān)鍵詞更加重要,會(huì)根據(jù)詞出現(xiàn)的位置調(diào)整相關(guān)度。但還是基于TF-IDF模型的調(diào)整。

大名鼎鼎的PageRank

搜索結(jié)果排序,僅僅考慮相關(guān)性,搜索的結(jié)果并不是很好??傆心承┚W(wǎng)頁(yè)來(lái)回地倒騰某些關(guān)鍵詞,使自己的搜索排名靠前(當(dāng)然,部分原因也來(lái)自某些搜索引擎更加喜歡推薦自家的東西,這個(gè)就不屬于技術(shù)問(wèn)題了)。

引入網(wǎng)頁(yè)質(zhì)量,可以解決這個(gè)問(wèn)題。排序的時(shí)候,不僅僅考慮相關(guān)性,還要考慮網(wǎng)頁(yè)質(zhì)量的高低,把質(zhì)量高的網(wǎng)頁(yè)放在前面,質(zhì)量低的放在后面。

那么,如何判斷網(wǎng)頁(yè)質(zhì)量呢?

解決這個(gè)問(wèn)題的是兩位Google的創(chuàng)始人。搜索引擎誕生之初,還是美國(guó)斯坦福大學(xué)研究生的佩奇 (Larry Page) 和布林 (Sergey Brin) 開(kāi)始了對(duì)網(wǎng)頁(yè)排序問(wèn)題的研究。

他們的借鑒了學(xué)術(shù)界評(píng)判學(xué)術(shù)論文重要性的通用方法,看論文的引用次數(shù),引用的次數(shù)越高,論文的質(zhì)量也就越高。他們想到網(wǎng)頁(yè)的重要性也可以根據(jù)這種方法來(lái)評(píng)價(jià)。

佩奇和布林使用PageRank值表示每個(gè)網(wǎng)頁(yè)的質(zhì)量,其核心思想其實(shí)非常簡(jiǎn)單,只有兩條:

  1. 如果一個(gè)網(wǎng)頁(yè)有越多的鏈接指向它,說(shuō)明這個(gè)網(wǎng)頁(yè)質(zhì)量越高,PageRank值越高,排名應(yīng)該越靠前;
  2. 排名靠前的網(wǎng)頁(yè)應(yīng)該有更大的表決權(quán),當(dāng)一個(gè)網(wǎng)頁(yè)被排名靠前的網(wǎng)頁(yè)鏈接時(shí),PageRank值也越高,排名也更靠前。

我們做一個(gè)類(lèi)比:

  1. 有一個(gè)程序員,如果公司的人都夸他編程技術(shù)高,那么我們認(rèn)為他編程技術(shù)高;
  2. 如果他被公司的CTO賞識(shí),我們基本可以確定他的編程水平確實(shí)牛。

比如:下面這張圖(專(zhuān)業(yè)術(shù)語(yǔ)叫做拓?fù)鋱D),每一個(gè)節(jié)點(diǎn)都是一個(gè)網(wǎng)頁(yè),每條線(xiàn)都是兩個(gè)網(wǎng)站之間的鏈接。

鏈接越多,說(shuō)明網(wǎng)站質(zhì)量越高,相應(yīng)的PageRank值就越高。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

這里有個(gè)問(wèn)題:“當(dāng)一個(gè)網(wǎng)頁(yè)被排名靠前的網(wǎng)頁(yè)鏈接時(shí),其排名也應(yīng)靠前”,一個(gè)網(wǎng)頁(yè)的排名的過(guò)程需要用到排名的結(jié)果,這就變成了“先有雞還是先有蛋”的問(wèn)題了。

Google的兩位創(chuàng)始人用數(shù)學(xué)解決了這個(gè)問(wèn)題:

最開(kāi)始的時(shí)候,假設(shè)搜索的網(wǎng)頁(yè)具有相同的PageRank值;根據(jù)初始值,開(kāi)始第一輪的計(jì)算,按照鏈接數(shù)量和每個(gè)網(wǎng)頁(yè)的PageRank值重新計(jì)算每一個(gè)網(wǎng)頁(yè)的PageRank值;按照上一輪的結(jié)果,按照鏈接數(shù)量和每個(gè)網(wǎng)頁(yè)的PageRank值重新計(jì)算每一個(gè)網(wǎng)頁(yè)的PageRank值……

這樣計(jì)算下去,直至每個(gè)網(wǎng)頁(yè)的PageRank值基本穩(wěn)定。

你可能會(huì)好奇,這樣要計(jì)算多少次?

佩奇在論文中指出:對(duì)網(wǎng)絡(luò)中的3.22億個(gè)鏈接進(jìn)行遞歸計(jì)算,發(fā)現(xiàn)進(jìn)行52次計(jì)算后可獲得收斂穩(wěn)定的PageRank值。

當(dāng)然,PageRank實(shí)際運(yùn)行起來(lái)比這個(gè)更加復(fù)雜,上億個(gè)網(wǎng)頁(yè)的PageRank值計(jì)算量非常大,一個(gè)服務(wù)器根本無(wú)法完成,需要多臺(tái)服務(wù)器實(shí)現(xiàn)分布式計(jì)算了。為此,Google甚至開(kāi)發(fā)出了并行計(jì)算工具M(jìn)apReduce來(lái)實(shí)現(xiàn)PageRank的計(jì)算!

除了巨大的計(jì)算量,PageRank同樣要面對(duì)作弊的問(wèn)題。

開(kāi)頭我們談到TF-DIF的弊端的時(shí)候講到:總有某些網(wǎng)頁(yè)來(lái)回地倒騰某些關(guān)鍵詞,使自己的搜索排名靠前。

同樣的,針對(duì)PageRank,也總有些網(wǎng)頁(yè)來(lái)回地倒騰鏈接,使自己的搜索排名靠前。這就需要更多的算法,來(lái)識(shí)別這些“作弊”行為,我們?cè)谒阉饕娣醋鞅滓还?jié)再來(lái)細(xì)講。

其他排序方式

至此,使用TF-IDF計(jì)算網(wǎng)頁(yè)與搜索內(nèi)容的相關(guān)性,使用PageRank計(jì)算網(wǎng)頁(yè)質(zhì)量,可以很好地實(shí)現(xiàn)網(wǎng)頁(yè)排序,一個(gè)基本的搜索引擎就搭建完成了。

商用搜索引擎在此基礎(chǔ)上,還衍生了出其他的排名方式。

競(jìng)價(jià)排名:

比較著名的是百度推出的競(jìng)價(jià)排名(其實(shí)最開(kāi)始做競(jìng)價(jià)排名的不是百度,但百度做得太“成功”,也至于大家都認(rèn)為是百度發(fā)明了競(jìng)價(jià)排名),競(jìng)價(jià)排名按照按網(wǎng)站出價(jià)高低決定排名先后。

這種排名方式最大的優(yōu)點(diǎn)是:可以幫助搜索引擎公司盈利。

最大的弊端是:無(wú)法保證出價(jià)高的網(wǎng)頁(yè)的質(zhì)量高,在醫(yī)療等特殊領(lǐng)域,有時(shí)甚至相反。

隨著用戶(hù)數(shù)據(jù)的積累,關(guān)鍵詞和對(duì)應(yīng)用戶(hù)點(diǎn)擊網(wǎng)頁(yè)的行為數(shù)據(jù)也被搜索引擎記錄下來(lái)了,搜索引擎可以根據(jù)用戶(hù)的操作,不斷改進(jìn)自己的引擎。

時(shí)至今日,商用搜索引擎的底層技術(shù)都差不了太多,用戶(hù)數(shù)據(jù)記錄成為了競(jìng)爭(zhēng)的關(guān)鍵因素,這也是百度得以在國(guó)內(nèi)的搜索引擎市場(chǎng)獨(dú)占鰲頭的重要原因——用戶(hù)越多,搜索越準(zhǔn)確,搜索越準(zhǔn)確,用戶(hù)越多!

站內(nèi)搜索:

百度、Google等通用搜索引擎要做很多工作,相比之下,站內(nèi)搜索就簡(jiǎn)單很多——數(shù)據(jù)量少、也基本都是整理過(guò)的結(jié)構(gòu)化數(shù)據(jù),比如:豆瓣讀書(shū),搜索的時(shí)候直接檢索自己的數(shù)據(jù)庫(kù)就可以了。

雖然站內(nèi)搜索的技術(shù)與通用搜索引擎有很多不一樣的地方,但構(gòu)建索引、相關(guān)性計(jì)算、質(zhì)量計(jì)算、排序等流程基本一致。對(duì)于站內(nèi)搜索的需求,同樣存在開(kāi)源的解決方案。

業(yè)界兩個(gè)最流行的開(kāi)源搜索引擎——Solr和ElasticSearch,它們運(yùn)行速度快、效果好、可靠性高、可擴(kuò)展,最關(guān)鍵的是免費(fèi),足以滿(mǎn)足一般的商業(yè)需求。

對(duì)大多數(shù)公司而言,直接使用開(kāi)源搜索引擎就可以了,不用重新造輪子,甚至,這些開(kāi)源的解決方案比自己從頭搭建的還更加穩(wěn)定可靠。

五、 SEO與搜索引擎反作弊

SEO

搜索引擎結(jié)果排名影響流量,流量影響利潤(rùn),有利潤(rùn)的地方就有“商機(jī)”,SEO就是針對(duì)搜索引擎排名的“商機(jī)”。

SEO(Search Engine Optimization)中文為搜索引擎優(yōu)化——即利用搜索引擎的規(guī)則提高網(wǎng)站在搜索結(jié)果的排名。

SEO優(yōu)化通常有兩種方式:一種是網(wǎng)站內(nèi)部?jī)?yōu)化,一種是外部?jī)?yōu)化。

內(nèi)部?jī)?yōu)化主要是優(yōu)化網(wǎng)頁(yè)內(nèi)容,比如:提高關(guān)鍵詞的數(shù)量,優(yōu)化網(wǎng)頁(yè)內(nèi)部標(biāo)簽等。更有甚者,一些網(wǎng)頁(yè)會(huì)使用非常小的字重復(fù)關(guān)鍵詞,或者使用跟背景相同的顏色重復(fù)一些高流量詞語(yǔ),以實(shí)現(xiàn)較高的排名。

外部?jī)?yōu)化主要優(yōu)化鏈接,比如:添加友情鏈接、論壇、貼吧、知道、百科等,這就產(chǎn)生了買(mǎi)賣(mài)鏈接的生意。

可以看出:SEO的優(yōu)化基本針對(duì)的就是TF-IDF和PageRank的排序方式,“投其所好”提高自己的排名。

搜索引擎反作弊

從用戶(hù)的角度講:高質(zhì)量的、相關(guān)的信息才是真正需要的。

一些網(wǎng)頁(yè)憑借SEO優(yōu)化獲得較高排名,本身可能質(zhì)量不高、相關(guān)性也比較弱,這對(duì)那些老老實(shí)實(shí)提供優(yōu)質(zhì)內(nèi)容的網(wǎng)站也是不公平的。

長(zhǎng)此以往,可能就會(huì)產(chǎn)生“劣幣驅(qū)逐良幣”,搜索引擎搜索到的優(yōu)質(zhì)內(nèi)容不斷減少。

從這個(gè)角度看,SEO就是針對(duì)搜索引擎的作弊,搜索引擎公司也不希望這樣的事情發(fā)生——搜索不到需要的信息,用戶(hù)也許直接就跑了!

Google誕生初期,就一直面對(duì)作弊與反作弊的問(wèn)題。

在2001年,敏感的站主和SEO優(yōu)化者發(fā)現(xiàn):有些網(wǎng)站的Google排名一夜之間就一落千里,有的網(wǎng)站排名則大幅上升,這個(gè)現(xiàn)象幾乎是每月一次。

后來(lái),人們才知道,Google定期地更新它的反作弊算法,提高搜索質(zhì)量,這給人的感覺(jué)就像跳舞一樣,因此被SEO稱(chēng)為Google Dance。

那么,Google是如何反作弊的呢?

雖然各種作弊行為的方式各不相同,但目標(biāo)一致,都是為了獲得更高的排名,大體上還是有一定規(guī)律的。根據(jù)這些規(guī)律,搜索引擎常用的反作弊方式有兩類(lèi):根據(jù)作弊特征的主動(dòng)出擊,建立“黑白名單”的被動(dòng)防御。

首先,搜索引擎會(huì)根據(jù)作弊網(wǎng)站的特征主動(dòng)出擊。

就像我們總是能從人群中一眼看到長(zhǎng)得最特殊的人一樣,一個(gè)出現(xiàn)大量重復(fù)關(guān)鍵詞網(wǎng)頁(yè)、一個(gè)出現(xiàn)大量鏈接的網(wǎng)頁(yè)和一個(gè)普通的網(wǎng)頁(yè),在搜索引擎看來(lái)是很不一樣的。

產(chǎn)品經(jīng)理的技術(shù)課——搜索引擎

通過(guò)計(jì)算網(wǎng)頁(yè)的關(guān)鍵詞數(shù)量特征、鏈接數(shù)量特征,可以很快發(fā)現(xiàn)那些“出格”的網(wǎng)站,搜索引擎就可以憑此調(diào)整排名。(前文所述的Google Dance就是根據(jù)作弊網(wǎng)站鏈接異常實(shí)現(xiàn)反作弊的。)

其次,搜索引擎也會(huì)建立“黑白名單”,作為防御手段。

搜索引擎會(huì)根據(jù)網(wǎng)站內(nèi)容的質(zhì)量、品牌、權(quán)威程度等信息建立一個(gè)白名單,比如:政府網(wǎng)站、一些大公司網(wǎng)站就在白名單中,這些網(wǎng)站的質(zhì)量較高,排名也靠前,白名單鏈接的網(wǎng)站質(zhì)量一般也會(huì)較高。

與之對(duì)應(yīng)的是黑名單,主要包括那些作弊嚴(yán)重的網(wǎng)站——比如:堆疊關(guān)鍵詞、買(mǎi)賣(mài)鏈接的網(wǎng)站。如果同一個(gè)網(wǎng)站鏈向了多個(gè)黑名單中的網(wǎng)站,就可以把其認(rèn)定為作弊的網(wǎng)站,降低排名。

貓鼠游戲

《貓鼠游戲》夢(mèng)工廠(chǎng)出品的一部電影,根據(jù)真實(shí)經(jīng)歷改編,講述了FBI探員與擅長(zhǎng)偽造文件的罪犯之間進(jìn)行一場(chǎng)場(chǎng)貓抓老鼠的故事。在搜索引擎中,也同樣存在這樣的貓鼠游戲。

  • 為什么電商網(wǎng)站商品名稱(chēng)這么長(zhǎng)?
  • 為什么會(huì)好評(píng)返現(xiàn)?差評(píng)有償刪除?
  • 為什么有些評(píng)價(jià)很高的賓館/餐廳,實(shí)際卻臟亂差?
  • 為什么電影評(píng)價(jià)網(wǎng)站經(jīng)常會(huì)因?yàn)樗⒑迷u(píng)/差評(píng)進(jìn)入輿論中心?
  • 為什么微博等社交媒體會(huì)有令人咂舌的閱讀、點(diǎn)贊和轉(zhuǎn)發(fā)數(shù)量?

網(wǎng)站和商品本身的相關(guān)性和質(zhì)量很難客觀(guān)量化,根據(jù)關(guān)鍵詞、銷(xiāo)量、評(píng)價(jià)、點(diǎn)擊、閱讀量等較為客觀(guān)的指標(biāo)生成排序結(jié)果,甚至決定是否進(jìn)入熱搜榜、熱銷(xiāo)榜,仍然是當(dāng)前搜索引擎的工作原理。

搜索引擎面對(duì)這些行為,也不斷進(jìn)化出新的應(yīng)對(duì)策略。

面對(duì)刷單行為,平臺(tái)經(jīng)歷了睜一只眼閉一只眼的無(wú)可奈何,到物流追蹤、下單用戶(hù)身份判斷的演變,刷單成本也隨之急劇上升,刷單行為雖然沒(méi)有被杜絕,但也大幅下降。

面對(duì)閱讀量、點(diǎn)擊造假等方式,社交媒體也經(jīng)歷著從聽(tīng)之任之到屏蔽刷排名的轉(zhuǎn)變,中間雖然有收入的降低、用戶(hù)活躍度下降、大V流失的風(fēng)險(xiǎn),但也終究要踏上這一步。

但,這場(chǎng)作弊與反作弊的貓鼠游戲,并沒(méi)有終點(diǎn)。

 

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

題圖來(lái)自Unsplash, 基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 《數(shù)學(xué)之美》精簡(jiǎn)版

    來(lái)自北京 回復(fù)
  2. 很棒的文章

    來(lái)自浙江 回復(fù)
  3. 為什么這么高的閱讀量只有幾條評(píng)論?莫非這篇文章也用了優(yōu)化的手段來(lái)上首頁(yè)?

    回復(fù)
  4. 對(duì)于垂直搜索引擎而言,除了通用搜索引擎的快速、精準(zhǔn)、穩(wěn)定三個(gè)標(biāo)準(zhǔn)外,還需要保證專(zhuān)業(yè)和實(shí)用兩個(gè)核心指標(biāo)。數(shù)據(jù)的深度、廣度、精度、新鮮度、長(zhǎng)度為專(zhuān)業(yè)和實(shí)用提供了基礎(chǔ)支撐,業(yè)務(wù)的理解和數(shù)據(jù)的應(yīng)用決定了專(zhuān)業(yè)和實(shí)用的最終效果。

    回復(fù)
  5. 感謝分享

    回復(fù)
  6. 學(xué)習(xí)了,謝謝

    來(lái)自廣東 回復(fù)
  7. 知其然,知其所以然 謝謝分享! 繼續(xù)去墨刀畫(huà)原型加油^0^~

    回復(fù)
  8. 好文

    回復(fù)
  9. 有意思

    回復(fù)
  10. 做過(guò)seo,這個(gè)還是有必要的

    回復(fù)
  11. 做seo出身

    回復(fù)
  12. 作為產(chǎn)品,只需要出搜索框,歷史搜索,熱門(mén)搜索,搜索結(jié)果樣式就行吧,求大神指點(diǎn)為什么要知道這些

    回復(fù)
    1. 知其然而不知其所以然很容易停留在執(zhí)行層面

      來(lái)自廣東 回復(fù)
    2. 是的

      來(lái)自浙江 回復(fù)
  13. 回復(fù)
    1. 回復(fù)
  14. 感謝

    回復(fù)
  15. 通俗易懂,化繁為簡(jiǎn)

    來(lái)自北京 回復(fù)
  16. 很佩服能把復(fù)雜原理通過(guò)語(yǔ)言描述后能使得技術(shù)小白看懂的作者!

    來(lái)自安徽 回復(fù)
    1. ??

      回復(fù)
    2. ??

      回復(fù)
  17. 作者寫(xiě)的很好,非常感謝分享哦、

    來(lái)自北京 回復(fù)
  18. 谷歌會(huì)對(duì)每個(gè)引用打分,如A有10個(gè)人推薦,其中一個(gè)是權(quán)威(分?jǐn)?shù)1),搜索權(quán)重:9個(gè)普通人*0.2分+1個(gè)權(quán)威人士*1=2.8,比11個(gè)普通人推薦的權(quán)重高

    來(lái)自湖南 回復(fù)