推薦系統 雙向選擇推薦系統

2022-01-19 04:11:19 字數 4165 閱讀 4342

1.概要

典型的推薦系統大多針對「使用者--商品」這種模式下來展開研究的,然後現實中卻有另外一種模式「使用者--使用者」或者「商品--商品」的現象,前者例如交友婚戀網,後者則有求職網之類的。對於交友婚戀網,除了男方對女方有好感外,女方也要對男方有心的情況下才能配成佳偶;求職網的模式和婚戀網又不同,對於求職者來說關注的是工作,而不是hr。無論是婚戀網還是求職網之類的,都區別於傳統的推薦系統,即組成的雙方都可能是比較活躍的主體,也可能都是不怎麼活躍的受體。 

2.特點

傳統推薦系統  

雙向選擇推薦系統

使用者單向決定是否購買物品。             

推薦結果成功,由雙方共同決定。

使用者通常不太情願去提供一些「顯式」的個人資訊。           

使用者希望提供一些個人詳細的資訊。

使用者是長期存在的,所以擁有一系列「隱式」的喜好。                               

使用者可能會短時間離開該系統,或者一旦「對話」成功之後再也不會返回該系統,「冷啟動」更加明顯。

相同的推薦結果可以推薦給很多使用者。

使用者的能力是有限的,不可能推薦過多使用者,同時也不應該被推薦給很多人。

使用者是比較積極的,一般都是主動去發現物品。

使用者有時候是積極的,有時候是懶惰的,前者會主動去選擇一些推薦結果,後者則等待別的使用者來「自動找上門」。

有些物品可能永遠不會被推薦。

使用者是被推薦的一部分,尤其對於那些「懶惰」的使用者來說。

表中的第2條,拿婚戀網來說吧,使用者往往能夠提供關於他本身的年齡、性別、身高等等,同時提供對異性(或者同性)的需求特徵。婚戀網也可以詢問使用者一些問題,來判定使用者的興趣是長期的還是短期的,或者讓使用者提供簡短的個人描述和個人的**。(對於個人描述的處理,可能會用到自然語言處理的一些東西,在這裡不作**)。

表中第3條,使用者一旦「對話」成功之後再也不會返回系統,也不是絕對的,可能使用者需要尋找很多任務作,或者想找更多的約會的物件。退一步講,使用者離開系統可能是因為使用者並沒有得到合適的推薦物件,因此對於推薦成功和推薦失敗而離開的情況是區分不了的。

表中第4條,由於是雙向推薦,對於一些比較受歡迎的人,可能會推薦給很多人,就拿婚戀網來說,男性可能對於美女的看法不一,可是對於乙個大美女來說,很多男性都還是會感興趣的。如果把那麼乙個大美女推薦給很多使用者,那麼這個大美女可能會收到很多人的簡訊或者騷擾**,這樣降低了使用者的體驗,而且這位大美女也不會輕易回覆或者答應別人的要求,同樣降低了廣大男性的使用者體驗。雙向推薦必須是top-n的推薦,同時對「流行性」的要求更加苛刻。

表中第5條,在傳統的推薦系統中,使用者相對於物品是絕對的「活躍」,而在雙向推薦中,哪些活躍,哪些「懶惰」並不是絕對的,使用者可能在剛開始的比較活躍,也可能在收到對方問候的時候才表現活躍。一般來說,在中國,男性相對於女性比較積極活躍,在日本是相反的,由此可見這和國家的社會風氣也有關係的。

3.推薦演算法

參考**是以婚戀網來完成實驗的,所以下面直接拿婚戀網作為潛在的描述物件。

使用者在獲得推薦結果之前,必須要提供一些詳細的個人資訊,提供的資訊越豐富推薦的結果越好。使用者可能需要提供的個人資訊,包括性別、年齡、位置資訊、身材、教育程度、交際能力、婚姻狀況等等,對於連續的屬性,演算法處理的時候要做離散化,例如年齡這個屬性,可能會被切分為18~20歲,20~22歲等。下圖為提供的乙個例子:

擁有了使用者的個人資訊,怎麼去確定使用者的喜好?這裡先不考慮冷啟動的問題。

通過上述的交流,可以統計出使用者的喜好資訊。對於乙個特定的使用者,傳送的物件必定是他感興趣的,所以統計傳送資訊的物件們能夠得到該使用者的喜好,另外在接收的資訊中,如果該使用者回覆的不是拒絕的,那麼也能反映出他的喜好,因此可以從傳送物件和接收物件並肯定回答的人群做統計。下圖是乙個例子:

上圖的這個使用者對於身材的要求,只要不是太胖都還能接受,但是要求有比較高的交際能力,目前是單身,並且是大學學士或者研究生的要求比較嚴苛。

那麼,在真正處理的時候,怎麼去符號化上圖中的這種分布?

定義ux為使用者的資訊集合,ux=,va為某乙個屬性上的數值,例如年齡29歲,a為屬性集合。mx=。

定義使用者x在某乙個屬性上的傾向喜好為px,a=。那麼px=。下圖為統計的乙個例子:

判定乙個使用者是否符合另乙個使用者的喜好,只要將該使用者的資訊核另外乙個使用者的喜好進行匹配即可。比較官方的演算法如下圖所示:

那麼對於四個人來說,最終計算的匹配度如下表所示:

從表中可以看出,本身對於本身是不存在匹配度的,也就是說對於超級自戀或者出家的人是不考慮的,再說這部分人幹嘛登陸婚戀網啊。使用者之間的匹配度並不是對稱的,例如bob符合amy的喜好的匹配度為0.72,而amy對於bob的喜好匹配則是0.45。如果一條都不滿足的情況的下,計算的得分為0。

通過上一小節的計算方法,可以得到對於某乙個使用者喜好下的不同的匹配度得分,那麼是否直接仿照傳統的推薦系統,可以按照這種分數進行排序呢?很顯然是可以的,那樣可以得到符合使用者口味的物件,但是這種方法,很容易出現「我本將心向明月,奈何明月照溝渠」的情況,不僅要考慮推薦使用者的喜好,同時還要考慮對方對推薦使用者的喜歡程度。

bob符合amy的喜好的匹配度為0.72,而amy對於bob的喜好匹配則是0.45,那麼將兩者的匹配度得分進行調和,得到調和平均數,那麼推薦列表的生成則是這種調和平均數的大小排序的結果。具體的實現演算法如下:

那麼針對上面例子的調和結果如下:

從結果中可以看到存在n/a的結果,是因為有些匹配度為0,在進行調和的時候,分母為0,所以在進行改進的方法之一,那就是將0,換成0.00001,或者乙個更小的非0數。

推薦列表的生成可以按照調和結果的大小進行排序,選取top-n進行推薦。另外還可以結合其他的方面進行綜合,例如使用者登入**的次數,考慮支付額外費用的使用者給予高分,對被大家「忽視」的人進行特殊處理等等,也就是說最後的推薦結果可以通過上面的幾個方面幾個調和分數進行綜合推薦。

對於使用系統的「新使用者」來說,還沒有建立個人的喜好資訊,那麼是不能夠利用上面的演算法進行計算的。不過我們可以計算有哪些人對這個新使用者可能感興趣,那麼把這部分推薦給新使用者就可以了。

4.總結

演算法的計算方式,類似於基於內容的推薦方法,通過將使用者的屬性進行分類,然後計算使用者之間的匹配度,是乙個新的方法。

使用者關注的對方的屬性資訊的重要度可能不同,也就是說演算法把所有的資料等同看待,這方面有待改進,準確來說,針對不同的使用者動態調整不同的屬性的權重,例如有的使用者比較關注身材,那麼身材屬性的權重就大一些。

演算法的實施依賴於雙方喜好的建立,因此需要簡訊或者郵件的方式讓雙方能夠交流,這在一方面會侵犯個人的隱私,當然解決方法是要求使用者同意別人**自己提供的詳細資訊。

演算法適用於婚戀網,求職網等需要人與人打交道的雙向選擇的推薦系統。

演算法實際上「分類」效果的體現,首先對使用者的屬性進行分類定義,然後比較在不同類別屬性上相似的使用者,對於連續屬性的離散化效果的好壞沒有合適的解釋,也就是離散化的過程是自己根據經驗進行離散化的,例如年齡屬性。

使用者的個人描述資訊,**等資訊在演算法中沒有體驗到。

雙向選擇成功之後,需要對雙方進行標記,避免收到同型別的資訊騷擾。另外一方面,如果一方持續對不同意的物件進行騷擾,也是不好的,因此系統還要考慮防止騷擾。

推薦系統架構 推薦系統(1) 業界推薦系統架構

1.1業界主流推薦系統架構 業界推薦系統通用架構 1.2使用者本身資料 1.3物品本身資料 1.4使用者行為資料 2.1基於離線訓練的推薦系統架構設計 常用演算法 邏輯回歸 logistics regression 梯度提公升決策樹 gbdt 和因式分解 fm 架構設計 2.2面向深度學習的推薦系統...

推薦系統(1) 推薦系統概述

推薦系統是主動從大量資訊中找到使用者可能感興趣的資訊的工具。推薦系統的核心問題是如何實現推薦個性化 如何向使用者推薦匹配度高的產品 商品 或專案,本質是通過一定的方式將使用者和專案聯絡起來。自從xerox palo alto研究中心於1992年研發出了基於協同過濾的實驗系統tapestry以來 主要...

推薦系統01推薦系統入門

這裡給出了三個主要原因 網際網路規模增長迅速,資料量資訊過載,人們很難獲得有效資訊 資料太多了,我看不過來 搜尋引擎的方式只能滿足有確切主題 知道如何描述的資訊,沒有辦法搜尋自己模糊不清的需求 人們需要個性化服務來減少不必要的工作。在這樣的背景下,推薦系統應運而生,推薦系統究竟實現了怎樣的工作,實際...