旅遊吧!我在這裏 ——旅遊相冊POI搜索:找回你的足跡

版權聲明:本文由林少彬原創文章,轉載請註明出處: 
文章原文連接:https://www.qcloud.com/community/article/89html

來源:騰雲閣 https://www.qcloud.com/community架構

 

QQ空間相冊的旅遊相冊,它以照片拍攝時間爲主線,還原了旅遊行程中的故事,清晰展示了用戶行程景點位置及拍攝的美景。景點位置查詢做爲旅遊相冊一個重要功能,能夠幫助用戶找回旅途中的足跡。騰訊內部搜索平臺部成立不久便託管了景點POI搜索業務,支持用戶景點輸入智能提示、國內外景點搜索。
性能

一.現狀

旅遊相冊POI搜索業務自2013年10月上線後,從最開始的僅支持國內景點搜索到國外景點數據補充,再到針對性地修補景點數據,從數據層面作了大的修補。搜索點擊率也隨之逐漸提高。時隔數年,再次拾起,但願能夠經過總結整理,達到知識分享、提高的目的。優化

二.架構設計

POI搜索智能提示主要用於用戶輸入景點檢索串時,實時進行相關結果快速提示的場景。一方面能夠補充提示用戶所要輸入的位置信息,另外一方面能夠引導用戶搜索精確化,從而提升景點搜索結果準確度及結果點擊率。
針對以上業務特性,POI搜索業務架構有別於其餘通用搜索,主要體如今數據補充、離線索引、在線檢索三個模塊。網站

1.數據補充


目前數據分爲三個來源:spa

  • 國內數據:由騰訊地圖提供的POI數據,包括國內各省、市、區等行政區,旅遊景點等。
  • 臺灣和國外數據:由相冊業務側負責抓取, 中文、英文、其餘語言都有。
  • 國外景點數據:由搜索側抓取國外景點,範圍按洲、國家、省從大到小,根據抓取到的景點名稱調用Google Map API獲取對應POI信息。這種補充方案依賴於地圖API的準確性及景點名稱規範性。

2.離線索引


離線索引主要功能包括接收POI原始數據,創建倒排、順排、屬性、等索引,離線打分。基於地圖POI數據更新週期較長、同步集中的特色,POI搜索業務採用了按期全量推送加天天增量推送的更新方式。
爲支持用戶輸入景點的實時檢索,咱們設計了兩套索引結構:前向匹配切詞索引、普通分詞索引,保證用戶檢索結果能夠前綴命中或分詞命中檢索串,從而提高用戶檢索體驗。架構設計

前向匹配切詞索引

  • 末級POI信息按前向匹配生成索引,例子:「中國/湖南/長沙/嶽麓山書院」,生成的索引爲「嶽」「嶽麓」「嶽麓山」「嶽麓山書」「嶽麓山書院」。
  • 非末級POI信息作數值過濾feature,例子:「中國」「湖南」「長沙」做爲Doc的數值過濾feature。
  • 生成全拼拼音索引並按前向匹配索引,如「zhongguo」生成z, zh, zho, zhon, zhong, zhongg, zhonggu, zhongguo。
  • 外文名稱按單詞粒度處理。
  • 需控制倒排鏈的最大長度。
  • 英文也作前向匹配切詞。

普通分詞索引

  • 末級POI信息按普通分詞生成索引,例子:「中國/湖南/長沙/嶽麓山書院」,生成的索引爲「嶽麓山」「嶽麓山書院」「中國」「湖南」「長沙」。
  • 非末級POI不索引

行政區特殊索引

爲支持行政區名檢索,離線索引對每一個POI文檔的省、市、區行政區名創建了特殊索引:首先創建行政區名到行政區名字母映射表,查表獲得POI對應行政區字母縮寫,再經過添加特殊前綴標記的方式,把帶特殊前綴的行政區字母標記添加進這篇文檔的順排詞表。支持行政區識別檢索效果以下:
設計

離線計算

行政級別權重 > POI類別權重 > 主副點
行政級別權重:國家 > 省 > 市 > 縣 > 末級POI
類型權重:旅遊景點 > 其餘
主副點:主點 > 副點,好比 銀科大廈 > 銀科大廈停車場,簡單比較方法是詞長越短越重要htm

3.在線檢索

預處理

  • 去空格、歸一化
  • 混拼(拼音漢字參雜)轉換爲全拼音
  • 切詞: 去行政區、去POI類別、整串、普通分詞(例子:南山世界之)
  • 去行政區:提取「南山」爲行政區,「世界之」爲真實檢索串
  • 去POI類別:提取「汽車站」、「火車站」、「機場」等爲POI類別
  • 整串:「南山世界之」
  • 普通分詞:「南山」、「世界」、「之」
    在線檢索主要功能包括索引數據加載,檢索語法樹構建,結果求交集相關性排序等。用戶檢索請求經檢索語法分析,能夠擴展爲三種檢索語法:

去行政區前綴檢索:

帶行政區名的檢索串識別到行政區後,行政區名做爲分類過濾條件結合去行政區後的檢索串進行前綴索引檢索。效果以下:
排序

普通前綴檢索:

無行政區名的檢索串直接進行前綴索引檢索。效果以下:

普通分詞檢索:

獲取分詞結果後進行分詞索引檢索。效果以下:

排序策略

  • 直接使用離線打分結果
  • RBU洗臉
  • 行政區、景點、前向匹配切詞結果、普通分詞結果各佔幾條
  • 行政區 > POI類別
  • 前向匹配切詞結果 > 普通分詞結果
  • 末級POI相同時,當前城市優先。如用戶在深圳,搜索「世界之窗」「深圳世界之窗在」長沙世界之窗「前(暫無實現)

三.質量優化

1.零結果分析

根據業務側提供的會話級檢索詞,即用戶選中推薦地點時落下的檢索串。會話級零結果數佔天天會話級檢索量接近四分之一
抽樣會話級零結果檢索串分析以下:

檢索串類型 示例
時間+相冊主題 2005年的我
相冊主題 一個人的旅途
地點缺失 上海普陀區梅川路步行街
輸入有誤 巴黎羅浮宮

相冊主題類:

包括時間+相冊主題、相冊主題類型的檢索串。用戶在地點框誤輸入相冊主題,輸入與景點搜索無關,檢索串格式比較混亂

地點缺失:

用戶輸入帶範圍描述詞的地點,好比:東莞莞城區西城樓附近、哈爾濱松花江江邊。有些地點沒有索引進來,好比:柳城太平安樂湖、康巴什賽馬場

輸入有誤

少數輸入拼寫錯誤,好比:巴黎羅浮宮

結論:

致使零結果的檢索串中相冊主題類型佔了絕大部分;地點缺失問題主要是用戶不能肯定景點位置致使;數據缺失問題比例相對較小。

解決方式:

產品側策略:經過產品側對用戶的輸入作引導,幫助用戶區分相冊描述、景點位置輸入框,提高檢索串質量。
數據補充策略:針對地點缺失的問題,經過抓取旅遊網站著名景點數據補充。
在線處理策略:後續考慮引入QC糾錯,解決拼寫錯誤等問題。
引入QC糾錯及補充著名景點數據先後,搜索零結果率有所降低,效果以下:

2.結果曝光各種型POI數比例

結論:

從各種型結果曝光狀況看出,非旅遊景點、非行政區的結果檢索獲得的POI數最多;搜索結果總體趨向景點、地址搜索的場景,因爲對風景名勝等景點相關的POI數據離線打分權重相對較高,致使其餘類型數據召回效果並不理想。

解決方式:

針對特定類型(如機場、火車站、汽車站等)檢索需求,離線索引會對這類POI文檔創建分類類型特殊索引,在線檢索對檢索串語法分析時,能夠識別出其分類意圖及分類類型,轉化爲分類過濾條件下發。效果以下:

經歷了QQ空間相冊等業務的高速發展,景點POI搜索應用積累了豐富的應用場景與應用經驗,不斷提高性能及優化用戶體驗,足夠成熟後已做爲「騰訊雲搜」產品的能力之一開放給廣大的開發者用戶。

相關文章
相關標籤/搜索