Yelp是如何用數據驅動搜索過濾器的?

jopen 8年前發布 | 6K 次閱讀 yelp

 

在美國最大的點評網站 Yelp 上,許多用戶都會使用高級搜索過濾器準確地查找某個地方。像“價格”、“距離”、“評級”這樣的過濾器很容易使用,但像“戶外座位”或“現場音樂”這種更 專門的過濾器就有些難用了。因此,他們需要尋找一種方法,在不影響用戶體驗的情況下,使用戶更方便地使用高級過濾器。Yelp數據挖掘工程師Ray M. G.近日 撰文介紹 了他們如何使用數據驅動搜索過濾器。

在設計新的過濾器之前,他們需要通過挖掘數據更好地理解用戶如何使用過濾器。他們發現,用戶選擇的過濾器很大程度上取決于他們使用的查詢詞。而 且,大部分用戶都只使用一個過濾器。他們由此得出,他們需要一種簡單的設計,只提供少數幾個同查詢詞相關的過濾器。以下是設計變化前后的界面:

Yelp是如何用數據驅動搜索過濾器的?

圖一:舊搜索界面

Yelp是如何用數據驅動搜索過濾器的?

圖二:新搜索界面

可以看出,新搜索界面隱藏了相關度較低的過濾器,極大地節省了頁面空間。而且,如果Yelp展示的過濾器不能滿足用戶需求,那么他們仍然可以點擊“所有過濾器”來選擇需要的過濾器。

為了支撐這種變化,他們需要構建一個模型。該模型可以接受一組信息特征(如查詢、日期&時間、位置、個人偏好及其他特征),并給出向客戶 展示哪些過濾器的建議。查詢字符串是最為重要的特征,但查詢文本是一種稀疏&長尾特征,且基數很大,很難為模型所用。他們希望可以構建一個函數, 將查詢文本映射成一個可以反映查詢與特定過濾器相關度的數值。下圖是他們構建的語言模型:

Yelp是如何用數據驅動搜索過濾器的?

可以將該模型看作一個函數,輸入一個單詞序列,輸出單詞序列的概率估計。該模型是貝葉斯定理的一個簡單應用。在查詢一定的情況下,它可以計算出所 有過濾器的先驗概率P(filter|query)。可以看出,對于查詢詞“業余酒吧(after work bars)”,過濾器“歡樂時光”和“戶外座位”的概率值為正,說明它們與查詢相關,而過濾器“適合早午餐”和“適合孩子”被認為是不相關的。

為了測試該模型的有效性,他們使用了如下兩個指標:

  • 過濾器使用率:由于Yelp搜索過濾器可以幫助用戶更快地發現相關內容,所以他們希望該模型可以提高過濾器使用率;
  • 搜索質量:他們希望該模型推薦的過濾器有助于提供相關度更高的內容,提升搜索體驗。

測試發現,過濾器使用率較之前提高了20%,像“現在開放”、“快樂時光”這樣的過濾器使用次數明顯增加,而其他過濾器的使用次數稍微減少。在搜 索質量方面,他們通過連續的觀察發現,在測試人群中,搜索會話CRT(Click Through Rate,點進率)穩步上升。點擊數非常容易度量,但也是一個很容易產生迷惑性的指標,因為用戶點擊搜索結果,并不能讓被點擊的結果相關。因此,他們還輔 以其他指標,比如用戶找到相關結果所用的時間。按照Ray的說法,重新設計的搜索過濾器界面得到了一致好評,效果超出預期。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!