搜索引擎點擊日誌聚類實現相關搜索

組裏經常招實習生, 在技術問題問得差不多的時候, 我經常會問他們一個問題:‘百度的相關搜索,你會如何設計實現?’   主要想看下實習生會有哪些思路,看看思路是否廣,方法是否多, 沒有啥方法的話, 我會提示下,看他是否能夠一些思路。

其實各大搜索引擎的‘相關搜索‘ 雖然涉及到的細節會比較多, 包括如何權衡點擊,用戶體驗,收入之間的關係等細節,主要的挖掘算法還是比較類似的。 從數據上來說,基本上圍繞着網民搜索的session數據,網民點擊數據,涉及到商業變現的話,可能會引入廣告主的信息。

百度的相關搜索的實現這裏就不介紹了(可能涉及泄密),這裏主要介紹之前看過的一篇論文: Agglomerative clustering of a search engine query log    使用搜索點擊日誌進行query聚類,並使用層次聚類結果進行相關搜索結果挖掘與推薦。希望對大家有所幫助。

算法中的創新點, 是在對query進行聚類的同時, 也就將URL進行了聚類。聚類的過程沒有使用query的內容信息, 而是直接使用了網民的行爲信息(搜索,點擊行爲)。這種思路和協同過濾類似, 就是不考慮推薦item的內容,而是使用用戶的行爲數據直接進行推薦。

算法首先使用點擊日誌, 格式爲<query, url>的pair,構建雙邊圖,左邊爲query, 右邊爲url,如果搜索query後點擊了url則鏈接該query和該url代表的節點建立一條邊。該二分圖的建立方式如下:

agglomative_clustering_init

二分圖示例如下,左邊爲query,右邊爲被點擊url,邊爲搜索相關query後點擊對應的url:

bipartite_graph

 

定義N(x)爲x的鄰居點, 則可以定義query點x, y 的相似度如下:

 

相似度度量-bipartite

該相似度介於[0,1]之間,即, 當x,y 均爲query時, 使用與x,y均相鄰的節點比例度量他們之間的相似度; 相對地, 當x,y均爲url時,使用共同搜索query定義其相似度。

之後的工作便是迭代進行聚類,每次使用url計算兩兩query的相似度,合併最相似的query; 之後使用query作爲特徵計算兩兩url的相似度,合併最相似的url;一直迭代直到終止條件。

agglomerative_interative

 

之所以每輪迭代都要對query和url分別進行,是因爲只有這樣才能找出原來不明顯的一些聚類關係。例如下圖,在點1,2 合併爲1’前, 是不能直觀看出a和c之間的關係的:

clustering_implicit_relationship

 

終止條件一直是agglomerative聚類的重要問題, 一般的思路是一直合併到不能合併爲止, 但實驗中一般這樣的話會合並出很多較大的cluster, 所以很多時候會採用控制每個cluster的大小(或是層數),以及最多的類的個數等因素作爲合併的終止條件。

使用該方法即可將搜索引擎的點擊日誌進行聚類。 具體應用時,當網民輸入某個具體query的時候, 判斷該query所屬的cluster, 之後該cluster中的query即可作爲相關搜索的結果的候選,當然cluster的query具體展現哪些, 以及如何排序, 又可以有很多因素需要考慮, 例如點擊率, 用戶體驗, 倒流量的能力等, 此處不再進一步討論。 使用該方法最大的優勢是不用考慮query的內容信息, 而是直接使用網民的行爲信息進行聚類(此處與推薦系統中協同過濾有異曲同工之處)。 當然, 具體工程實現中, 我們也可以使用類似於推薦系統的思路, 融合入按內容的特徵聯合進行聚類, 取得更好的效果。 例如重新重新定義相似度度量方式, 使用點擊關係和內容相似度進行加權作爲最終相似度:

co-similarity

 

其中cross_ref_similarity表示根據關係數據得到的相似度, 更多內容可參見‘Query Clustering Using User Logs’

更多內容參見原論文:

Beeferman, Doug and Berger, Adam. 2000. Agglomerative Clustering of a Search Engine Query Log. Proceedings of the 6th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. 2000, 407-416.

Wen, Ji-Rong, Nie, Jian-Yun and Zhang, Hong-Jiang. 2002. Query Clustering Using User Logs. ACM Transactions on Information Systems. January 2002, Vol. 20(1), pp. 59-81.

也可關注微博: weibo.com

或是直接訪問: http://semocean.com


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章