搜索策略產(chǎn)品經(jīng)理必讀系列—第一講電商搜索引擎整體框架
搜索在很多場(chǎng)景中對(duì)于流量的轉(zhuǎn)化都高于推薦,對(duì)于業(yè)務(wù)的增長也遠(yuǎn)遠(yuǎn)超過推薦,然而講搜索的文章卻很少。本篇文章中作者介紹了電商APP的智能搜索引擎,講解了AI時(shí)代如何做搜索,一起來學(xué)習(xí)一下。
現(xiàn)在市面上太多人聊推薦,關(guān)于推薦的書也有很多很多。
搜索聊的人卻很少很少,但是搜索在很多場(chǎng)景中對(duì)于流量的轉(zhuǎn)化遠(yuǎn)遠(yuǎn)超過推薦,搜索轉(zhuǎn)化的提升對(duì)于業(yè)務(wù)的增長要遠(yuǎn)遠(yuǎn)超過推薦。
知乎和各大博客里面介紹搜索的文章相對(duì)于推薦就少太多了,專門開一個(gè)系列和大家聊一聊電商APP智能搜索,AI時(shí)代如何做搜索。
一、電商APP搜索引擎是什么
首先確定一下我們聊得搜索并不是Baidu、Google這種綜合搜索引擎,而是像淘寶、京東、美團(tuán)這類電商APP里面的搜索引擎。
用戶通過在搜索框中輸入關(guān)鍵詞,然后搜索引擎返回相關(guān)商品,并按照一定順序返回展示給用戶。電商APP里的搜索引擎和我們平時(shí)使用的Baidu、Google主要有什么差異了:
1.?用戶的Query復(fù)雜度差異較大
用戶使用綜合類搜索引擎Query的復(fù)雜度很高,很多時(shí)候是一種探索式的搜索,比如用戶搜“經(jīng)典電影”,百度會(huì)首先返回百度自身推薦的經(jīng)典電影,然后后面會(huì)有大量含“經(jīng)典電影”字樣的帖子。很多時(shí)候用戶的Query甚至是一種描述性的語句比如“含有愛情的詩句”。
而電商APP里的搜索引擎因?yàn)閳?chǎng)景固定,用戶搜索目的性很強(qiáng),Query意圖比較明確如“男鞋”、“長褲”、“可樂”等,一方面用戶目的性強(qiáng),另一方面用戶也知道該場(chǎng)景下Query過于探索是不會(huì)有結(jié)果的,用戶有一定的認(rèn)知判斷。
所以綜合類搜索引擎需要對(duì)用戶的搜索意圖識(shí)別的很準(zhǔn)確,而電商場(chǎng)景的搜索引擎會(huì)相對(duì)要求低一些。
2. 搜索結(jié)果池差異太大
二者背后存儲(chǔ)的數(shù)據(jù)多樣性差異很大,體量差異更大。
電商APP搜索引擎搜索的結(jié)果一定都是呈現(xiàn)在APP上的。但是綜合類搜索引擎完全不是,搜索結(jié)果來自于各大網(wǎng)站,很多結(jié)果是外部鏈接。內(nèi)容形式各種各樣:視頻、文字、音頻等等。
綜合類搜索引擎背后存儲(chǔ)著大量的數(shù)據(jù),同時(shí)數(shù)據(jù)在不停地增加和更新。而電商APP搜索引擎背后的數(shù)據(jù)池都僅限于該APP上的商品,即使商家不停地上下架商品,整體數(shù)據(jù)量和綜合類搜索引擎差距也是巨大的。
二、電商APP中的搜索引擎為什么重要
那么我們?yōu)槭裁凑f電商APP中的搜索引擎特別重要。
一方面隨著網(wǎng)上購物消費(fèi)群體的多樣化以及年輕人不斷增強(qiáng)的自主意識(shí),用戶已經(jīng)從傳統(tǒng)的“被動(dòng)”接受網(wǎng)站推薦的商品信息,轉(zhuǎn)變?yōu)椤爸鲃?dòng)”去發(fā)現(xiàn)商品,發(fā)掘自己感興趣的商品。
那么APP中的搜索功能就成為了非常重要的功能,能否識(shí)別用戶的意圖并且準(zhǔn)確地返回相應(yīng)的商品就十分關(guān)鍵。
另一方面數(shù)據(jù)顯示:
1. 綜合電商APP
搜索引擎占據(jù)的銷售歸因目前普遍在60%以上,搜索占據(jù)淘寶的銷售歸因約為70%左右。
銷售歸因即為該平臺(tái)上各個(gè)流量轉(zhuǎn)化入口如:搜索入口、分類頁入口、首頁推薦入口等對(duì)最終的銷售貢獻(xiàn)占比。通過上面的數(shù)據(jù)我們可以清晰地得出搜索目前對(duì)于整個(gè)業(yè)務(wù)流量的轉(zhuǎn)化貢獻(xiàn)是最大的。
在綜合類電商APP剛剛開始時(shí),最大的銷售歸因模塊是分類頁,也就是我們看到淘寶上的“女裝”、“手機(jī)”、“男裝”等模塊,但現(xiàn)在已經(jīng)是搜索入口貢獻(xiàn)著最多的流量轉(zhuǎn)化。
2. 生鮮電商APP
搜索入口占據(jù)的銷售歸因目前普遍在35%-40%左右。
生鮮電商APP為像盒馬、叮咚買菜、每日優(yōu)鮮這類專門賣生鮮為主的APP。因?yàn)樯r電商整體商品相對(duì)于綜合電商APP少很多,用戶每日在APP上面買菜,除了搜索入口,分類頁也占據(jù)著生鮮電商APP非常大的銷售歸因,幾乎和搜索入口一樣也在35%-40%左右。
通過上面的數(shù)據(jù)我們可以直觀地看出搜索功能對(duì)于電商APP流量的轉(zhuǎn)化起到多大的作用。
同時(shí)我們?cè)偎阋还P賬:
2019年淘寶全年成交金額為5150億美金,假設(shè)其中70%是由搜索轉(zhuǎn)化的,也就是說3605億美元是由搜索入口轉(zhuǎn)化的。
那么如果我們通過提升搜索體驗(yàn),豐富搜索輔助功能等,將70%的搜索銷售歸因轉(zhuǎn)化凈提升1個(gè)點(diǎn)到71%。
淘寶全年的銷售額將增長51.5億美元,這是一個(gè)什么概念?2019年叮咚買菜全年銷售額為50億RMB,大概是7個(gè)叮咚買菜的體量。所以互聯(lián)網(wǎng)企業(yè)都在大力提升搜索的轉(zhuǎn)化率,轉(zhuǎn)化率每一個(gè)點(diǎn)的提升,帶來的都是全年業(yè)務(wù)量的巨大增長。
三、搜索的整體框架
介紹完搜索的重要性,那么我們?nèi)绾稳ヌ嵘阉鞯霓D(zhuǎn)化率,如何去搭建一個(gè)搜索引擎,在電商APP中的搜索引擎整體框架到底是怎么樣的了?我們用下圖來進(jìn)行表示:
下面我們針對(duì)上圖中的每個(gè)模塊一個(gè)一個(gè)進(jìn)行詳細(xì)介紹。
1. 分析器
分析器的作用就是對(duì)用戶的Query進(jìn)行處理,進(jìn)行糾錯(cuò)預(yù)處理后,然后再進(jìn)行切詞、拼音轉(zhuǎn)漢字、去停用詞等,最后將整個(gè)Query分成單個(gè)詞組合以后再進(jìn)行實(shí)體識(shí)別。
比如用戶輸入了“kangshifu紅燒方便面*% ”,
1)切詞
先對(duì)整個(gè)query進(jìn)行切詞,切分為“kangshifu”、“紅燒”、“方便面”、“*”、“%”。切詞這部分功能工業(yè)界有一些通用的切詞器,比如ik切詞、hanlp切詞器,但是我們實(shí)際使用時(shí)都會(huì)再加入更多的詞庫進(jìn)行切詞,不僅僅是使用現(xiàn)成的切詞器。
2)拼音轉(zhuǎn)漢字
再將拼音kangshifu轉(zhuǎn)化為康師傅;
3)去停用詞
將“*”、“%”沒有任何意義的停用詞去除掉;
4)實(shí)體識(shí)別
最后對(duì)剩下的“康師傅”、“紅燒”、“方便面”進(jìn)行實(shí)體識(shí)別,我們不僅需要把固定搭配的詞切分出來,我們還需要知道這些詞代表的實(shí)體含義,最終得到【Brand:康師傅;Taste:紅燒; SPU &CATEGORY:方便面】。很多詞匯并不是只有一個(gè)實(shí)體,比如這里的“方便面”,它既是一個(gè)SPU又是一個(gè)CATEGORY。
2. 詞庫
上面提到的一系列操作都離不開詞庫,沒有詞庫分析器寸步難行。我們知道“kangshifu紅燒方便面%”里面的kangshifu應(yīng)該是“康師傅”,然后Query的斷句應(yīng)該是“康師傅”、“紅燒”、“方便面”而不是“康”、“師傅”、“紅”、“燒方便面”,就因?yàn)槲覀円呀?jīng)對(duì)這些詞匯固定搭配有了一定知識(shí)積累,同時(shí)“*%”對(duì)于查詢是沒有任何意義的,也是基于我們歷史的詞匯和知識(shí)積累。
但是計(jì)算機(jī)不知道,我們?nèi)绾巫層?jì)算機(jī)知道“康師傅”是一個(gè)固定搭配,同時(shí)它是一個(gè)Brand,這就需要我們建立各種各樣的詞庫了。
電商APP搜索引擎中詞庫是非常重要的,第一詞庫全不全,第二詞庫準(zhǔn)不準(zhǔn)。不同行業(yè)不同領(lǐng)域會(huì)有自己專門的詞庫,大部分詞庫都不是通用的。下圖是阿里云Opensearch建立的電商行業(yè)的實(shí)體詞庫類型。
但其實(shí)還有很多實(shí)體詞庫類型需要補(bǔ)充,比如生鮮電商業(yè)的SPU、口味、包裝等。同時(shí)還會(huì)存在大量的同義詞庫、近義詞庫、糾錯(cuò)詞庫、拼音詞庫等等。
計(jì)算機(jī)如何知道用戶搜索“圣女果”和“小番茄”是一種東西,這就需要同義詞庫。
同義詞庫需要大量的積累,尤其是在生鮮電商領(lǐng)域,同樣一種菜,全國各地叫法都不一樣,但是對(duì)應(yīng)的是同一種菜。同時(shí)還存在同一種叫法,對(duì)應(yīng)的是不同種食物,比如“珍珠米”在上海就是玉米粒,在東北是一種大米。
所以詞庫的建立是必不可少的,同時(shí)又是一個(gè)需要長久積累,且持續(xù)更新不斷細(xì)化的過程。
3. Recall & Elasticsearch索引
當(dāng)我們將“kangshifu紅燒方便面*% ”經(jīng)過分析器處理后,得到【Brand:康師傅;Taste:紅燒; SPU&CATEGOY:方便面】后,我們需要構(gòu)建召回條件,就是用上述哪些實(shí)體去物料庫中進(jìn)行召回。
1)物料庫結(jié)構(gòu)化梳理
召回的基礎(chǔ)就是電商APP的搜索針對(duì)的物料是固定的,也就是當(dāng)前APP上架的所有商品,背后對(duì)應(yīng)的就是整個(gè)APP物料庫。在最開始時(shí)我們就需要對(duì)整個(gè)物料庫進(jìn)行結(jié)構(gòu)化梳理,數(shù)據(jù)庫里面存儲(chǔ)的是結(jié)構(gòu)化數(shù)據(jù),而不只是一個(gè)商品名“康師傅紅燒牛肉面100g”。
結(jié)構(gòu)化數(shù)據(jù)如下圖:
如何對(duì)物料進(jìn)行結(jié)構(gòu)化梳理,一方面就是物料入庫時(shí)商品運(yùn)營需要人為手動(dòng)地對(duì)商品進(jìn)行CATG1、2、3進(jìn)行分類,需要分類清楚,相應(yīng)的規(guī)格、產(chǎn)地等等都需要輸入準(zhǔn)確,另一方面就是模型根據(jù)一定的規(guī)則通過商品名進(jìn)行相關(guān)實(shí)體的提取,比如口味、SPU等,這個(gè)前提建立在商品名是正確且完整的,如果商品名本身沒有該實(shí)體信息,模型也是無法提取的。
目前業(yè)內(nèi)通用的分布式搜索引擎是Elasticsearch,查詢速度很快。結(jié)構(gòu)化的物料數(shù)據(jù)都存儲(chǔ)在Elast
2)召回條件構(gòu)建
【Brand:康師傅;Taste:紅燒; SPU&CATEGOY:方便面】通常情況下我們會(huì)將實(shí)體之間通過and關(guān)系去物料庫中進(jìn)行召回,但上述“方便面”存在兩個(gè)屬性,所以會(huì)兩個(gè)屬性分別去進(jìn)行召回。
同時(shí)我們也會(huì)加入同義詞,構(gòu)建新的召回條件,比如“方便面”的同義詞存在“泡面”,同時(shí)同義詞性是在SPU這個(gè)實(shí)體下存在的,所以我們會(huì)再構(gòu)建一個(gè)召回條件【Brand:康師傅;Taste:紅燒; SPU:泡面】。
在生鮮電商中召回條件構(gòu)建比較簡單,但在綜合電商中比如用戶搜索【王一博同款白色衛(wèi)衣限量版】,我們就需要拆分召回條件,如果用【王一博 and 同款 and 白色 and 衛(wèi)衣 and 限量版】去索引中進(jìn)行召回,可能召回的結(jié)果就會(huì)很少。
所以我們需要重新構(gòu)建召回條件,進(jìn)行Query改寫,挑選比較重要的條件去召回,其他條件忽略。我們可以將Query改寫為【王一博 and 白色 and 衛(wèi)衣 】所以實(shí)體與實(shí)體之間是存在優(yōu)先級(jí)的,有些實(shí)體屬性是要優(yōu)于其他實(shí)體屬性的。
最終我們召回得到搜索結(jié)果。
4. Ranking
召回的搜索結(jié)果如何進(jìn)行排序了,一般我們從以下兩個(gè)方面進(jìn)行考慮:
1)相關(guān)性排序
商品和Query的相關(guān)性程度,比如用戶搜“康師傅紅燒牛肉面100g”那么肯定是“康師傅紅燒牛肉面100g”的商品排序在最前面,“康師傅紅燒牛肉面150g大袋”排序在后;
2)業(yè)務(wù)規(guī)則排序
另外我們也要結(jié)合商品歷史的銷量、用戶的喜愛程度、價(jià)格、促銷等一系列因素綜合考慮,比如用戶搜索“方便面”,方便面的種類太多:康師傅、統(tǒng)一、湯達(dá)人等等。和“方便面”的相關(guān)性都是完全一樣的,這時(shí)候我們可能會(huì)將歷史銷量高的、用戶喜愛程度高的商品排序在前。
通常情況下第一種和第二種我們是綜合在一起進(jìn)行加分,然后再對(duì)商品進(jìn)行綜合排序。
3)機(jī)器學(xué)習(xí)模型
通過歷史用戶的點(diǎn)擊、購買、收藏、加購數(shù)據(jù)等,構(gòu)建機(jī)器學(xué)習(xí)模型,然后模型來進(jìn)行千人千面的排序,這也是目前市場(chǎng)上主流電商APP的做法,每個(gè)人搜索同一個(gè)詞,看到的結(jié)果是完全不一樣的,
上述整體地介紹了召回和排序模塊,實(shí)際應(yīng)用中召回和排序模塊還有很多細(xì)節(jié),后續(xù)我們會(huì)專門再對(duì)這兩個(gè)模塊進(jìn)行詳細(xì)介紹。
5. Reranking
上述是一些通用的規(guī)則或者模型排序策略,實(shí)際業(yè)務(wù)方還會(huì)有一些其他要求,比如最近業(yè)務(wù)方在對(duì)“康師傅”牌的方便面做市場(chǎng)推廣活動(dòng),那么在用戶搜索“方便面”時(shí),業(yè)務(wù)方就希望我們將所有“康師傅”品牌的方便面排序在前。
所以很多時(shí)候Ranking的結(jié)果還需要經(jīng)過一層Reranking再排序,這一層主要是業(yè)務(wù)策略的排序。
6. AB Test
最后就是AB Test實(shí)驗(yàn)臺(tái),很多時(shí)候我們線上有很多套搜索策略,為了對(duì)比不同策略的用戶點(diǎn)擊效果等,我們需要同時(shí)進(jìn)行AB Test實(shí)驗(yàn),也就是我們類似我們高中學(xué)過的控制變量法,同一時(shí)間段線上生產(chǎn)APP,用戶的訪問進(jìn)行隨機(jī)切分到不同的實(shí)驗(yàn)桶中,最終對(duì)比二者的效果。
上面就是一個(gè)電商APP搜索引擎通常的整體框架了。
四、搜索的效果評(píng)估
當(dāng)我們將搜索引擎搭建好以后,如何去評(píng)估搜索引擎的好壞了?通過哪些指標(biāo)去評(píng)估搜索的效果。
1. 線下評(píng)估
線下評(píng)估對(duì)于搜索來說是最難評(píng)估的,當(dāng)搜索引擎沒有上線時(shí)我們?nèi)绾稳ピu(píng)估搜索引擎的效果好壞。這個(gè)時(shí)候我們需要構(gòu)建測(cè)試case,并對(duì)這些測(cè)試case進(jìn)行數(shù)據(jù)標(biāo)注。
比如我們從用戶歷史搜索詞中隨機(jī)抽取100個(gè)Query,然后人工針對(duì)這些Query進(jìn)行物料標(biāo)注,每一個(gè)Query應(yīng)該召回哪些商品,每個(gè)商品的相關(guān)度分?jǐn)?shù)是多少。我們不會(huì)對(duì)所有物料進(jìn)行標(biāo)準(zhǔn),因?yàn)楣ぷ髁刻罅?,通常?biāo)注幾千到1萬個(gè)物料。
然后將相關(guān)度分為幾個(gè)檔次,比如【2,1,-1】三個(gè)檔次,2表示強(qiáng)相關(guān),1表示一般相關(guān),-1表示不相關(guān)。然后人工根據(jù)自己的經(jīng)驗(yàn)進(jìn)行標(biāo)注。
比如物料是【康師傅方便面、統(tǒng)一方便面、康師傅礦泉水、湯達(dá)人方便面】
那么Query=“方便面”時(shí),我們可以標(biāo)注為【2,2,-1,2】;
Query=“康師傅方便面”時(shí),可以標(biāo)注為【2,1,-1,1】;
這些標(biāo)注都是人工進(jìn)行標(biāo)注的,標(biāo)注員的標(biāo)準(zhǔn)不一樣,可能整個(gè)結(jié)果完全不一樣,所以最開始就需要大家統(tǒng)一好標(biāo)準(zhǔn),很多時(shí)候我們是根據(jù)搜索引擎的策略進(jìn)行標(biāo)注。
1)召回率(評(píng)估召回結(jié)果是否齊全的指標(biāo))
用戶搜“方便面”,只召回了“康師傅方便面”,那么召回率=1/3;如果三款方便面全部召回了,召回率=3/3=100%;
2)DCG&NDCG指標(biāo)(評(píng)估排序是否合理的指標(biāo))
搜索引擎不僅要將所有商品召回,排序也要合理,理論上打分結(jié)果最高的結(jié)果排序在最前面,打分結(jié)果最低的排序在最后面,搜索“康師傅方便面”,不能是“湯達(dá)人方便面”排序第一位。具體計(jì)算公式如下:
2. 線上評(píng)估
線上我們可以使用很多種指標(biāo)進(jìn)行多方面效果評(píng)估,一般采用如下指標(biāo):
1)查詢無結(jié)果率
評(píng)估召回效果,通常該指標(biāo)越低越好,說明大部分搜索都是有結(jié)果的;
2)平均點(diǎn)擊商品位數(shù)
評(píng)估排序效果,通常該指標(biāo)越小越好,說明用戶在結(jié)果頁的前面就找到了自己感興趣的商品;
3)CTR
點(diǎn)擊轉(zhuǎn)化率是綜合評(píng)估搜索的效果,用戶搜索后的點(diǎn)擊情況,是否點(diǎn)擊是由召回結(jié)果和排序情況共同決定的,CTR越高越好;
4)加購率
加購率也是綜合評(píng)估搜索的效果,對(duì)于搜索結(jié)果是否加購,加購率越高越好;
5)跳失率
進(jìn)入搜索結(jié)果頁后用戶是否沒有任何操作就跳出了,如果該指標(biāo)很高,說明用戶對(duì)于搜索結(jié)果不滿意和不感興趣,跳失率越低越好。
上面就是電商APP智能搜索系列的第一講了,主要給大家介紹了整體框架和評(píng)估體系,后續(xù)會(huì)繼續(xù)推出:第二講—如何召回搜索結(jié)果;第三講—如何排序搜索結(jié)果;第四講—搜索引擎的業(yè)務(wù)效果評(píng)估指標(biāo);第五講—搜索結(jié)果的內(nèi)容形式和創(chuàng)意形式,對(duì)很多模塊進(jìn)行更加細(xì)致的講解~
專欄作家
King James,公眾號(hào):KingJames講策略,人人都是產(chǎn)品經(jīng)理專欄作家。算法出身的搜廣推策略產(chǎn)品專家。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
學(xué)習(xí)到了 贊贊
很棒的文章 值得學(xué)習(xí)
學(xué)到了學(xué)到了,很有幫助的一篇文章,原來搜索策略產(chǎn)品是這樣做的啊
電商APP搜索引擎搜索的結(jié)果一定都是呈現(xiàn)在APP上的。但是綜合類搜索引擎完全不是,搜索結(jié)果來自于各大網(wǎng)站,很多結(jié)果是外部鏈接。內(nèi)容形式各種各樣:視頻、文字、音頻等等。