本文為大家簡(jiǎn)要介紹了電商算法的形成過程,并將搜索算法分為了分詞算法、類目預(yù)測(cè)算法、商品排序算法、個(gè)性化千人千面四個(gè)部分進(jìn)行介紹。
其實(shí)在電商站內(nèi)搜索領(lǐng)域,其核心的機(jī)密基本上就屬于排序算法范圍內(nèi)了。我在上一章節(jié)中夸下??谡f要給大家嘮一嘮電商算法的形成的過程,其實(shí)是有點(diǎn)心虛的,因?yàn)槲覊焊皇撬惴ǔ錾?,也無法給大家講解什么拉格朗日公式的原理,貝葉斯的變形公式等。但是我能給大家解釋一下這些算法的形成過程,以及在形成過程中運(yùn)營和產(chǎn)品是如何配合的,以及如何運(yùn)用一個(gè)現(xiàn)成的方案,開發(fā)出一套高時(shí)間性價(jià)比的搜索產(chǎn)品體系。
電商站內(nèi)搜索其實(shí)是以算法為核心,運(yùn)營為輔助的模塊。說到底,如果搜不準(zhǔn),搜不全,運(yùn)營的再好也只是空中樓閣,因此我們先講一講算法體系,再講運(yùn)營方式。
那如果是我,如何從0起步建立起一套經(jīng)濟(jì)實(shí)惠,省時(shí)省力的搜索邏輯體系(也有可能是我閉門造車,所以謹(jǐn)慎采納,不喜請(qǐng)誠懇地指正)。
說句題外話: 算法聽上去高大上,其實(shí)通俗地講,就是解決問題的方法,即便是計(jì)算公式再高大上,技術(shù)理念再先進(jìn),如果解決不了問題,一樣不能叫算法。
其次很多人以為算法其實(shí)應(yīng)該是純計(jì)算機(jī)來解決,其實(shí)這是一種誤解,不可否認(rèn),計(jì)算機(jī)自動(dòng)化確實(shí)是在算法中占舉足輕重的地位,但是算法不僅僅是計(jì)算機(jī),還有人工積累的比重,且不可或缺。
因此搜索算法也一樣,離開了人工輔助,算法什么問題都解決不了。好了說正經(jīng)的,搜索算法主要分為以下幾個(gè)核心:
- 分詞算法
- 類目預(yù)測(cè)算法(解決準(zhǔn)不準(zhǔn)的基礎(chǔ))
- 商品排序算法(電商核心機(jī)密)
- 個(gè)性化千人千面(電商數(shù)據(jù)提升機(jī)密)
分詞算法
我們先來了解下分詞算法:目前國內(nèi)有專門的漢語分詞第三方分詞接口,且功能完善,成本低廉,能夠進(jìn)行詞干提取,語義分析,甚至情感判斷等。算法方面也是百花齊放,各有優(yōu)劣,目前有三大主流分詞方法:基于字符串匹配的分詞方法、基于理解的分詞方法和基于統(tǒng)計(jì)的分詞方法。
基于字符串匹配的分詞方法
又稱為機(jī)械分詞方法,它需要有一個(gè)初始的充分大的詞典,然后將待分詞的字符串與詞典中的元素進(jìn)行匹配,若能成功匹配,則將該詞切分出來。
按掃描方向的不同,字符串匹配分詞方法可以分為正相匹配和逆向匹配;按照不同長(zhǎng)度的匹配優(yōu)先度可以劃分為最大匹配和最小匹配(細(xì)節(jié)我就不在這說了,這種分詞方式是屬于最為簡(jiǎn)單分詞方式,可以自行百度其工作邏輯和流程).
基于理解的分詞方法
這個(gè)就有點(diǎn)技術(shù)含量,國內(nèi)的主要搜索大廠,比如百度、字節(jié)跳動(dòng)等都在開發(fā)帶有人工智能模塊的搜索算法。其基本思想就是在分詞的同時(shí)進(jìn)行句法、語義分析,利用句法信息和語義信息來處理歧義現(xiàn)象。它通常包括三個(gè)部分:分詞子系統(tǒng)、句法語義子系統(tǒng)、總控部分。
由于漢語語言知識(shí)的籠統(tǒng)、復(fù)雜性,難以將各種語言信息組織成機(jī)器可直接讀取的形式,因此目前基于理解的分詞系統(tǒng)還處在驗(yàn)證和試用型階段。
基于統(tǒng)計(jì)的分詞方法
即每個(gè)字都是詞的最小單元,如果相連的字在不同的文本中出現(xiàn)的頻率越多,這就越有可能是一個(gè)詞。因此我們可以用相鄰字出現(xiàn)的頻率來衡量組詞的可能性,當(dāng)頻率高于某個(gè)閾值時(shí),我們可以認(rèn)為這些字可能會(huì)構(gòu)成一個(gè)詞。
主要統(tǒng)計(jì)模型: N元文法模型(N-gram),隱馬爾可夫模型(Hidden Markov Model,HMM),最大熵模型(ME),條件隨機(jī)場(chǎng)(Conditional Random Fields,CRF)等。
優(yōu)勢(shì):在實(shí)際運(yùn)用中常常將字符串匹配分詞和統(tǒng)計(jì)分詞結(jié)合使用,這樣既體現(xiàn)了匹配分詞速度快、效率高的優(yōu)點(diǎn),同時(shí)又能運(yùn)用統(tǒng)計(jì)分詞識(shí)別生詞、自動(dòng)消除歧義等方面的特點(diǎn)。
基于統(tǒng)計(jì)的分詞方式&類目預(yù)測(cè)
我們著重了解一下第三種,基于統(tǒng)計(jì)的分詞方式&類目預(yù)測(cè)。如果說有什么算法是基于統(tǒng)計(jì)的,那么這個(gè)算法肯定需要一個(gè)訓(xùn)練集,而且這個(gè)訓(xùn)練集需要是正確的,人為校驗(yàn)的。
因此我們所說的這種算法,則是在人工標(biāo)注的訓(xùn)練集上訓(xùn)練而成的。因此我們接下來將要討論的算法是——類目預(yù)測(cè)訓(xùn)練集。
目前從訓(xùn)練集上來看,收集的方式主要有兩種,第一種是人工中心詞收集,第二種則是機(jī)器分析與訓(xùn)練。
人工中心詞收集
這個(gè)方案其實(shí)是比較討巧的,基于規(guī)范的詞典詞語來進(jìn)行收集,主要收集物品詞&品牌詞。
之所以要選定物品和品牌詞收集還是基于上一章提過的app購物行為假設(shè),即用戶在購物app中始終是以搜索物品或者品牌的型號(hào)/物品為最終目的。
如果用戶進(jìn)入app不進(jìn)行物品詞或者品牌詞搜索,這個(gè)用戶對(duì)該app而言的價(jià)值顯然會(huì)大打折扣,也許有的人會(huì)說,每天搜索的人那么多,保不齊會(huì)有人搜索比較范范的詞,那不算嗎。其實(shí)是算的,但是我們現(xiàn)在講得是基于統(tǒng)計(jì)概率來說,如果95%的人都搜索物品和品牌,那么你現(xiàn)在糾結(jié)5%的人不是這樣的情況顯然是沒有意義的。還是那句話,越是想兩全,越是兩遍都不全。好了,言歸正傳。收集的流程如下圖:
道理很簡(jiǎn)單,即通過收集站內(nèi)每個(gè)類目所售賣的物品,同時(shí)通過拓展這些物品詞的同義詞和上下位詞,來對(duì)應(yīng)這些類目。同時(shí)機(jī)器也可以通過算法來進(jìn)行收集,對(duì)所有商品標(biāo)題進(jìn)行ngram統(tǒng)計(jì)切分,統(tǒng)計(jì)出每個(gè)類目出現(xiàn)頻率最多的詞和詞組等,與人工收集的相對(duì)照進(jìn)行檢驗(yàn)和補(bǔ)充。這樣我們就得到了一個(gè)物品詞-類目的對(duì)應(yīng)表。一個(gè)簡(jiǎn)單高效的訓(xùn)練集就誕生了。
那么肯定有人會(huì)說“也不行啊,你光收集物品詞了,還有氛圍詞、人群詞呢?比如學(xué)校、工地、男士、女士你都不收集了,男士鞋子你怎么辦?”
當(dāng)然不是,這個(gè)物品-類目詞的對(duì)應(yīng)表訓(xùn)練集只是個(gè)基礎(chǔ)。只有在保證訓(xùn)練集非常準(zhǔn)確且覆蓋面全的情況下,才能確保機(jī)器進(jìn)行訓(xùn)練,且即便我僅僅是打個(gè)基礎(chǔ),也能比較正確的召回,你是不是忽略了全詞匹配的作用了?
在物品詞訓(xùn)練集整理好之后。接下來可以開始對(duì)用戶關(guān)鍵詞開始分析了,即通過用戶輸入的關(guān)鍵詞統(tǒng)計(jì)點(diǎn)擊行為,描述這些點(diǎn)擊落在哪些類目的概率,并分析這些關(guān)鍵詞和訓(xùn)練集中的物品/品牌型號(hào)詞的類目關(guān)系,進(jìn)一步進(jìn)行人工校對(duì)和遍歷。
這樣就得到了一個(gè)用戶行為和網(wǎng)站商品數(shù)據(jù)的合集訓(xùn)練集,在經(jīng)過人工校對(duì)后就形成了一個(gè)準(zhǔn)確性好,覆蓋面高的訓(xùn)練集。此時(shí)經(jīng)過不斷的人工校對(duì)-機(jī)器訓(xùn)練-再校對(duì)-再訓(xùn)練的過程,直至想要達(dá)到的效果。一個(gè)類目預(yù)測(cè)算法就此誕生(以上你們看看就好,當(dāng)我自嗨好了)。
機(jī)器訓(xùn)練需要切實(shí)的關(guān)鍵詞進(jìn)行離線訓(xùn)練和離線評(píng)估,以及在線ab和數(shù)據(jù)評(píng)估。前者是自己在離線環(huán)境下,使用用戶輸入的關(guān)鍵詞進(jìn)行訓(xùn)練并離線人工評(píng)估準(zhǔn)確度;后者則是將訓(xùn)練好的模型上線,采用ab測(cè)的方式,開一部分小流量進(jìn)行在線實(shí)戰(zhàn)測(cè)試,并通過收集測(cè)試組的數(shù)據(jù)指標(biāo)評(píng)估和分析效果。這也是互聯(lián)網(wǎng)產(chǎn)品迭代最主要的測(cè)試方式之一。
類目預(yù)測(cè)的人工和機(jī)器算法相結(jié)合的算法大概就是這樣,其實(shí)還有其他便捷的途徑,就是邏輯沒有以上這個(gè)清晰,所以我就不單列出來了。
商品排序算法
基本的類目排序邏輯確定好之后,我們其實(shí)會(huì)發(fā)現(xiàn),用戶的關(guān)鍵詞其實(shí)是一個(gè)巨大的行為數(shù)據(jù)寶庫,用戶從輸入關(guān)鍵詞那一刻起,從點(diǎn)擊商品,到收藏,到加入購物車,到購買行為等,都能透露出其購物偏好。
如何將這些行為有效的記錄并訓(xùn)練起來也能對(duì)商品的排序準(zhǔn)確性和購買率起著較大的影響,其實(shí)目前各大網(wǎng)站的推薦算法還是有一些問題的,比如我前幾天在淘寶上買了一臺(tái)電視,結(jié)果接下來的日子里我的首頁都充斥著各種電視的圖片,以及鏈接的外部DSP廣告也給我推送電視的信息(這就是侵犯?jìng)€(gè)人隱私的大數(shù)據(jù)統(tǒng)計(jì)算法所為)。
商品排序算法的輪廓我已經(jīng)在之前的章節(jié)提及,各種維度我就不再贅述,只說說這種排序權(quán)重計(jì)算規(guī)則的由來,一言以蔽之就是不斷調(diào)整每個(gè)維度權(quán)重的數(shù)值,并上線ab測(cè)試,以產(chǎn)出比最高的一組作為最終的算法排序規(guī)則。
當(dāng)然這一規(guī)則和算法并不是恒定不變的,是隨著維度的不斷豐富和數(shù)據(jù)變化不停調(diào)整的。
個(gè)性化千人千面
現(xiàn)在各家網(wǎng)站都講求個(gè)性化千人千面,這也是我們看到京東、淘寶、蘇寧等電商首頁時(shí),其個(gè)性化推薦模塊給你推薦你曾經(jīng)看到過或者似曾相似的商品。并不是他們聰明了,而是你的行為被收集處理過了,展現(xiàn)給你的,就是你想看的,或者說想買的。(錢包也是這樣被掏空的)
好了,這期就到這吧。其實(shí)我有挺多關(guān)于人工和機(jī)器算法的結(jié)合的想法和嘗試,只不過在和工作中的同事交流時(shí),因?yàn)楦鞣N原因未能付諸實(shí)踐,我將其保留在自己的OneNote筆記中。有機(jī)會(huì)分享給大家。
預(yù)告下一期內(nèi)容:搜索運(yùn)營溝通和產(chǎn)品如何配合,使搜索影響力最大化。