Как Facebook определяет "Рекомендуемые друзья"?
Я хотел бы знать, как вы думаете (или знаете), что Facebook производит "людей, которые могут вам понравиться" или "предлагаемых друзей" на каждой странице пользователя. Это вопрос алгоритма, а не вопрос Facebook, но социальные сети, вероятно, являются наиболее видимым и хорошо понятным примером, поэтому я ссылался на это по моему вопросу.
Для меня это любопытный вопрос эффективности. Я понимаю, как это можно сделать для одного пользователя; в основном, найти пользователей, которые являются друзьями с наибольшим количеством ваших текущих друзей, но не вы. Однако это не влияет на меня как на очень быстрый или эффективный процесс, и это необходимо сделать примерно для миллиарда пользователей.
Это заставляет меня думать, что процесс выполняется только при входе пользователя в систему, но я все еще задаюсь вопросом, какой алгоритм фактически используется для поиска этих "предложенных друзей". Что было бы эффективным способом выполнения "алгоритма предложения", подобного этому в больших масштабах?
Ответы
Ответ 1
Это решение может звучать как разбить бабочку на колесе, но было бы интересно провести этот путь.
Думаю, Facebook мог бы сделать это так же, как Netflix знает фильмы, которые вам понравятся. Ответ на этот пост Алгоритм для завершения испорченной матрицы данных
Если вы входите в систему, они могут уменьшить матрицу до очень маленькой, и это будет похоже на решение проблемы netflix с гораздо более полными данными и гораздо меньшей матрицей.
Вы можете посмотреть машинное обучение
Ответ 2
Связанный вопрос о Quora: http://www.quora.com/How-does-Facebook-calculate-weight-for-edges-in-the-EdgeRank-formula
Фактическая формула, используемая (например, для Top News), несколько бессмысленна, не зная, как вычисляется каждый компонент, но она обсуждалась Facebook на F8 2010 и покрывалась Techcrunch здесь: http://techcrunch.com/2010/04/22/facebook-edgerank/
Ответ 3
Facebook, вероятно, использует другой подход, чем Google, но, возможно, вы тоже найдете это интересным: