2

我想給用戶查看一些個性化的用戶,他們可能會感興趣,並可能跟隨他們的能力...「誰遵循」算法

我想可以把它像:

- Get all users he is currently following 
- Get all followers that they follow 
- rank them by total posts they made (DESC), filled up personal information fields 
- show 5 of them on each page load 

如果用戶有追隨者,那麼會出現一條信息消息...

這種功能可以用這種算法來完成,還是有更好或更簡單的方法來做到這一點?

回答

3

在你的算法中,我想知道爲什麼你需要根據帖子的數量對用戶進行排序,也許它與聲譽有關?

推薦的確是一個非常大的,開放的話題,也是一個熱門的學術研究領域。如果我們正在開展一個實際的項目,我認爲保持簡單和專注是件好事。

我目睹了以下兩種關於非常流行的 社交網站的建議。根據我的經驗,建議輸出的質量很高。在這裏,我正在頭腦風暴背後的算法。希望能幫助到你。

  1. 發現您可能認識的人:推薦「以下集合」與您的「以下集合」交叉的人。它基於社交網絡的「聚類效應」:你朋友的朋友更有可能成爲你的朋友。推薦基於興趣的人:如果用戶可能是名人,公司,機構,新聞媒體等,那麼像下面這樣的建議可能會有用:「@Linus之後的人也跟着@Stallman,@LinuxDeveloper,@LinuxDeveloper,@LinuxDeveloper,@LinuxDeveloper,@LinuxDeveloper,@Startman, ...「。假設你剛剛遵循@Linus,推薦@Stallman,@LinuxDeveloper,首先我們需要找出@Linus之後的所有用戶,然後找出他們的公共後續列表,可能按照關注者數量排名。這個想法是根據興趣相關性推薦用戶。我們計算並發現高度相關的用戶,假設用戶的以下列表根據他們的興趣進行分組。

(我也想,算法1會發現,與您分享共同利益的人,如果用戶可能是名人,等等。這可能是首選的一些場景。)

2

你在這裏問一個非常開放的問題 - 如何從一個大集合中挑選少量的建議。所以答案是 - 你可以把它變得簡單或複雜,就像你想要的那樣!最簡單的方法是隨機挑選幾個(並且任何更復雜的算法最好證明它會產生比這更好的結果)。收集所有兩跳遠的用戶,然後按帖子數排名的解決方案只是更復雜一些,然後在另一個極端是世界的亞馬遜和谷歌使用的複雜算法。公司付出了很多努力來建立這種事情 - 你聽說過Netflix Prize

+0

我不知道這種功能的工作方式是如此之大......有沒有類似的算法做什麼即時通訊尋找?你是什​​麼意思複雜?爲了它的速度還是? – fxuser

0

我明白你想跟隨可以提供關於你的Thema的高質量信息的用戶。我們需要一個算法來給這個用戶作爲結果給我們,但是我怎麼能找到這些用戶: 有很多關注者的用戶是一個不錯的選擇,但是在Twitter上並不總是有很多用戶只關注另一個用戶,只是作爲尊重或者不公平。 他/她的抽搐與其他用戶多次轉發的用戶是很好的選擇,並且他們多次被其他用戶提及的用戶。 我認爲,要找到這些用戶,我們應該使用基於鏈接的分析,例如HITS或Page rank algorithim

0

您可能想要考慮不包括關注給定用戶的人員。我想可能不會對你如此感興趣,這可能會有問題。但是,您可能非常有興趣瞭解更多關於追隨者的信息。

您是否在考慮向用戶展示這些人被推薦給他們的原因?例如,像你這樣說可能對小比利說的話感興趣,因爲他與你的妻子有關係。如果是這樣,爲了避免激怒用戶,可能需要讓他們在某種意義上被選擇退出。

看來除此之外,它似乎是推薦用戶有興趣的一種非常好的方式。我能想到的唯一其他事情也可以幫助找到具有類似興趣的人,如果你允許用戶標記帖子。允許您通過類似的興趣或他們發佈的內容來查找用戶。

另一個更有問題的東西,你可以看看是以類似的興趣找到用戶。例如,如果人員a跟隨人員c,人員b跟隨人員c,則可能推薦人員a給人員b。儘管如果你不小心,這看起來可能會造成一些非常冗長的查詢。