深度解析 | 垂直搜索引擎構建:一個例子(上)
搜索引擎可以分為三類,元搜索引擎、綜合搜索引擎、垂直搜索引擎。元搜索引擎使用場景較少,綜合搜索引擎逐漸成熟,而許多垂直搜索引擎發展卻參差不齊。一方面,身處垂直行業的企業更關注業務發展,較少關注產品算法和策略。另一方面,網絡上關于搜索引擎的功能設計的文章汗牛充棟,而對搜索引擎的策略設計闡述卻是不常見。針對這種現象,本文將以互聯網房產為例,分享垂直搜索引擎的構建策略和基本框架,希望可以為后來者帶來一些啟發。
01搜索引擎概述
1.1 房產搜索引擎的含義
房產搜索是為用戶提供房源信息檢索的搜索工具。用戶可以通過輸入樓盤、小區、地標等關鍵詞來獲取自己需要的房源或資訊信息。
1.2 房產搜索引擎的數據來源
房產搜索引擎數據來源主要有兩個渠道:(1)用戶、企業、經紀人發布或上傳;(2)基于爬蟲進行站外抓取。
1.3 房產搜索引擎的特點
房產搜索的使命是連接人與房源,幫助用戶“快”、“準”、“全”地搜集符合自身需求的信息。“快”指訪問和返回搜索結果的速度快;“準”指返回精準命中用戶需求的信息;“全”指返回多條滿足用戶需求的信息,使用戶有選擇余地。
相比綜合搜索引擎Google、Bing、Baidu而言,房產搜索屬于垂直類搜索引擎,具備一些獨有的特點:
1. 信息精準
房產搜索數據專注房產領域 ,對房產信息的收集較為全面,同時通過標簽構建,用戶即便輸入意圖模糊的query也會返回符合用戶需求的結果。如搜索“朝陽”,相比綜合搜索引擎會返回地標地圖、百科等信息,房產軟件則會命中地標附近的各類房源信息、資訊等。
因此綜合類搜索引擎需要根據用戶屬性、行為日志等特征,對用戶的意圖識別作出更多的探索,而垂直類搜索引擎則需對用戶query進行聚焦,在房產領域召回符合用戶信息的數據。
2. 更為便捷
如果使用Baidu等綜合搜索引擎,搜索房產信息,難以避免在結果中瀏覽大量與需求無關信息,從而浪費時間。使用房產搜索則可以快速、輕松地找到符合自己需求的房源信息與資訊。
3. 多樣化的篩選和排序
房產搜索可提供多樣化的篩選和排序功能,例如用戶可按照地區、房源類型、面積、戶型、價格等多種條件進行篩選和排序,以快速定位滿足自身需求的信息。
目前一些搜索引擎也在布局Item篩選垂直化,如京東,對許多熱銷品類篩選進行定制化篩選,以滿足用戶個性化的需求。
02 搜索引擎的作用
具備房源需求的用戶,往往在使用App前就有明確的需求畫像,比如想要在xx小區購買一套三居室,價格在500萬左右的二手房。這些用戶并不會無目的地瀏覽與需求無關的信息。因此,識別用戶的意圖并返回符合其需求的房源信息,是搜索的核心功能。此外,房產搜索還具備以下作用:
1. 體驗提升
通過房產搜索引擎,用戶可以在平臺上快速、方便地找到滿足自身需求的房源信息,減少綜合搜索產生的信息過載。
2. 流量引導
根據相關數據統計,在房產應用中,主搜承載了首頁40%以上的流量,對流量轉化和收入提升有著十分重要的作用。通過搜索引流,有助于提升其他內容曝光量,提高訂單(線索)轉化率。
3. 廣告創收
通過在搜索前、搜索中、和搜索后植入符合用戶或商業化需求的廣告,有助于提高用戶體驗和帶來廣告收益。
4. 產生曝光
當用戶意圖精度缺乏時,對關鍵詞進行拓展,可以使更多關聯房源被用戶瀏覽,從而滿足用戶潛在需求和提高長尾房源曝光率。
5.數據分析
搜索可以產生海量的用戶數據,對用戶行為日志進行時序、對比、交叉分析可以解構用戶需求,構建用戶個人畫像、群體畫像等。此外,也可通過觀察搜索詞、搜索行為等數據,分析房市熱點,打造相關運營內容,營造良好的應用生態環境。
03 房產搜索的框架搭建
實際上,搜索引擎是一個復雜的系統,它需要通過搜索用戶輸入的查詢來從大量的數據中篩選出最符合用戶需求的結果。整個搜索引擎包括query理解、召回和排序、重排等多個模塊。下面將介紹房產搜索引擎的整體框架以及每個模塊的作用。
3.1 Query理解
Query理解可以被視為一種分析過程。對用戶輸入的query進行預處理、分詞、糾錯、擴展、意圖識別、賦予權重等操作,再做為檢索條件進行數據召回。
這個過程可能比較復雜,我們可以通過一個例子來進行簡單分析。例如,用戶輸入query為:“Chaoyang 兩居的二手房、”,可以進行以下操作:
1. 預處理
預處理指對整個輸入query進行簡單處理,將大小轉換為小寫、無意義符號去除、停用詞去除、半角轉換、過長截斷、繁轉簡等。通過上述方法,對數據進行初步處理。
對上述query做預處理后可以得到:“chaoyang兩居二手房”
2. 分詞
分詞(Tokenization)指根據一些規則,將一段文本切換為若干個字或詞語的流程,如“永遠有光芒”,可拆分為“永遠/有/光芒”,這里的每一個字或詞可以看作一個輸入單元(Token),OpenAI的API的收費標準便是按Token為單位計費的。
常見的分詞工具有jieba、HanLP、NLPIR、THULAC、IK Analyzer。值得一提的是,大多分詞工具也支持自定義詞典。對于垂直搜索引擎而言,結合分詞工具和自定義詞典切分自然語言十分方便。
通過使用分詞工具,我們可以將query可切分為“chaoyang”、“兩居”、“二手房”3個Token。
3. 糾錯
糾錯(Query Correction)是預處理中的重要流程之一,通過對用戶輸入的query進行修正或重寫,提高搜索結果的精準度。糾錯一般包括以下幾種方法:拼寫檢查、詞典糾錯、基于上下文糾錯、機器學習、深度學習等方法。房產搜索引擎主要使用拼寫檢查、基于詞典糾錯等方法。
關于機器學習或深度學習,主要采用HMM、Seq2Seq、Transformer、Pointer-Generator Networks等模型進行改寫生成。另外,BERT的應用也是不錯的選擇,在工業界被廣泛應用。
根據糾錯規則,此處將query處理為“朝陽/兩居/二手房”。
4. 擴展
擴展(Expansion)一般指對用戶的query進行擴展,以便召回更多符合用戶需求的數據。擴展通常有以下方法:
- 同義詞擴展:將查詢詞中的同近義詞進行轉換或替換。如用戶輸入“北京九號線”可將詞語擴展至“國家圖書館”、“郭公莊”等沿線站點;
- 模糊匹配擴展:對查詢詞進行模糊匹配,用來糾正潛在的拼寫或語法錯誤相關詞擴展。如對于“橡樹”可擴展至“橡樹灣”;
- 根據查詢詞的內容和上下文:添加相關的查詢詞或屬性,以擴展搜索結果。對于用戶輸入“學區房”可將其擴展為包括標題“xx學校”的檢索結果;
- 基于用戶畫像的擴展:根據用戶的歷史搜索行為、興趣偏好、地理位置等上下文信息,擴展用戶查詢詞,以更好地匹配搜索結果。如,對于經常瀏覽別墅的用戶,在對其“二手房”的搜索上可加上“別墅二手房”等關聯詞匯。
5. 意圖識別
意圖識別指通過各種方法,對用戶的query進行分析,確定用戶需求的過程。用戶意圖可分為精準意圖和模糊意圖。
精準意圖識別一般根據用戶的query,檢索其用戶意圖精準對應的item。模糊意圖識別一般可以采用基于模板規則、行為統計反饋、深度學習等方法。由于方法較為繁雜,此處不做詳細介紹,若感興趣的讀者可自行檢索相關文章
通過意圖識別:我們可以得到query相關詞匯“朝陽”、“兩居”、“二手房”,代表的實體含義為 {Region:’朝陽’;House Type:’兩居’; House Status:’二手房’}。
6. 權賦
權賦是指在文本處理中對詞項(term)進行權重計算和權重賦予的過程。權重計算通常使用TF-IDF、TF-DF、BM25、概率模型、隱語義分析、基于知識圖譜的算法等。
房產信息具備高度結構話特征,因此在項目初期,使用權重計算的場景較為稀少。而在處理房產資訊的檢索時,可以使用該方法,進行數據處理。
7. 敏感信息
敏感信息:query分析中,對敏感信息(如違法、隱私)等信息進行識別和過濾的過程。可通過基于規則的方法、基于機器學習、基于深度學習的方法等實現
3.2 召回
召回是根據處理過的用戶query,在數據庫查詢符合條件數據的過程。召回是搜索引擎中的重要環節,垂直搜索引擎亦不例外。召回策略決定著搜索結果的質量。例如,用戶想要尋找北京的房源,若召回的是上海的房源,那么排序再好,也對用戶的需求解決沒有任何幫助。
除了召回策略外,數據質量也至關重要。在互聯網房產行業,房源數據主要來自用戶發布和商家發布,資訊的數據來源是多方的,包括企業發布、用戶發布、第三方公開資訊等。
除了內容信息外,用戶行為和用戶日志數據也需進行儲存,它們是召回策略的重要參考依據。
1. 數據儲存與加工
搜索引擎的質量取決于搜索策略和數據質量。低質數據泛濫,對用戶的瀏覽體驗造成了嚴重的負面影響。這是當前中文搜索為人所詬病的原因之一。在Chatgpt、文心一言等AIGC工具迅速發展的情形下,這種影響將會愈發嚴重。因此,數據在存儲時,除了本身實體屬性外,還需要引入一些額外的標簽對數據質量進行多方面評價。
對于房源信息,數據庫通常會錄入房源的標題、名稱、類型、位置、價格、戶型、面積、樓層、朝向、發布時間等字段,同時這些將這些數據做結構化處理,方便搜索引擎和其他業務查詢。除此之外,也可以引入房源質量評分、VR評分、戶型評分、評級等多維評價標簽或指數,作為召回策略的條件。
2. 召回方式
與大多搜索引擎系統一樣,房產搜索引擎通常采取多路召回策略,下面介紹幾種常用的召回策略:
- 文本索引召回:文本索引通常使用倒排索引方式。預先構建關鍵詞-包含關鍵詞文檔的索引,根據用戶輸入的關鍵詞,對房產數據庫中的已有的索引進行檢索,查找包含關鍵詞的房源(文檔)信息。例如,用戶在平臺搜索“三室兩廳”,搜索引擎根據數據庫中查找包含“三室”和“兩廳”的文檔索引,從中返回符合搜索條件的房源信息并呈現給用戶。
- 精準召回:根據用戶輸入的召回條件,從房產數據庫中篩選出符合條件的房源信息,保證召回的準確性和完整性。例如,用戶在房產平臺搜索“深圳市羅湖區,90平米以下的二手房”。根據用戶輸入的query,不進行糾錯、擴展等操作,優先在數據庫中篩查找符合query的房源信息。
- 同義詞改寫:將用戶輸入的query轉換為相似的同義詞,從而擴大召回范圍,提高召回的覆蓋率。例如,當用戶在房產平臺搜索“帶陽臺的房子”,搜索引擎可以將“陽臺”改寫為“露臺”,“陽光房”等同義詞,從而擴大搜索范圍,提高召回率。
- U2I:基于用戶歷史行為數據,將用戶行為、偏好等信息作為召回條件之一,提高召回的個性化程度。比如經常搜索小戶型房源的用戶,我們可以在召回時將“小戶型”(1或2室)加入到召回條件中,提高搜索結果的滿意度。
- I2I:基于不同房源之間的相似度,將某個房源特征加入到召回條件中,推薦相似的房源信息。例如,用戶收藏了一套花園別墅。基于該房源的特征,比如位置、房型、面積、價格等,在搜索結果中適當推薦其它具有相似特征的別墅給用戶。
除此之外,召回策略還包含向量召回、基于深度學習召回等方式,有興趣的讀者可以通過作者其他文章了解。
召回是從海量的物品庫里快速找出用戶可能感興趣的物品的過程,它決定了推薦系統的上限。如果召回的物品與用戶需求無關,那么后面的排序就算再好也無法解決用戶需求。召回率越高,用戶就有更多的選擇空間,推薦系統就更能滿足用戶的需求。
除了分詞、召回的處理外,搜索引擎還涉及到排序和評價等模塊,讀者朋友們可以通過點擊下方傳送門進行查看。
參考文獻
1 J Shen, R Lyu, X Ren, M Vanni, B Sadler. Mining Entity Synonyms with Efficient Neural Set Generation. AAAI,2019.
2 H Fei, S Tan, P Li. Hierarchical multi-task word embedding learning for synonym prediction. KDD,2019.
本文由 @知一 原創發布于人人都是產品經理,未經許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協議。
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
- 目前還沒評論,等你發揮!