Понимание и построение алгоритма социальной сети

Я не уверен, что это подходящая платформа, чтобы задать этот вопрос. Но моя формулировка проблемы такова: у меня есть книжный магазин и x нет клиентов (x огромен).

Клиент может сказать мне, хорошая книга или плохая (не рекомендуется). У меня есть внутренняя логика, чтобы объединить книги вместе, поэтому, если клиент говорит, что книга плохая, он говорит, что похожие книги тоже плохи, и не показывает ему этого.

Я покоряюсь и прячу эти книги. Клиенты также могут взаимодействовать между собой и иметь между собой уровень взаимного доверия. Возникает случай, когда клиент A говорит, что книга X1 плохая. Следовательно, я занесу в черный список X1, X2, X3, X4 и т. Д.

Но его друг, клиент B, говорит, что X3 хорош. Итак, теперь я должен показать X3 A. Я думал построить социальную сеть всех моих клиентов на основе их взаимодействия и уметь рассчитывать уровень их взаимного доверия. Таким образом, в приведенном выше сенарио, если уровень взаимного доверия очень высок, будет отображаться X3 для A, иначе я не покажу X3 для A.

Я хотел получить стимул к созданию социальной сети и назначению весов. на путь между двумя узлами (мои клиенты). Пожалуйста, предложите мне несколько хороших указателей, с которых я могу начать. Любая книга, сайты и т. Д.

Спасибо


person S Kr    schedule 21.02.2013    source источник


Ответы (1)


На высоком уровне вы захотите изучить области машинного обучения, интеллектуального анализа данных и интеллектуального анализа / анализа графиков.

Что касается машинного обучения и интеллектуального анализа данных, вам может потребоваться совместная фильтрация - я рекомендую эта книга. В этой области много работы, обратите внимание, что на таких веб-сайтах, как Amazon, есть функция, которая показывает вам, какие еще товары были куплены вместе с товаром, который вы сейчас просматриваете.

Что касается построения социальной сети, вам сначала нужно выяснить, какую систему баз данных вы хотите использовать. Существуют базы данных графов, такие как Neo4J и FlockDB, которые разработаны с учётом графиков ... в качестве альтернативы вы можете выбрать что-то более общее, например MySQL, в зависимости от того, насколько далеко вы хотите зайти.

После того, как вы приняли это решение, вы захотите использовать эти данные «социального графа», в которых проявляются такие концепции, как случайные прогулки, структура / обнаружение сообщества и центральность. Я рекомендую ознакомиться с эта серия лекций, которые Twitter прочитал в Калифорнийском университете в Беркли, чтобы лучше понять, как использовать социальные данные.

person adelbertc    schedule 21.02.2013
comment
спасибо adelbertc за быстрый ответ. Я проверю книгу. Что касается базы данных, я думал об использовании hbase. Как вы думаете, это будет проблемой? - person S Kr; 21.02.2013
comment
почему hbase? Графические алгоритмы с ним возможны, но я бы не рекомендовал его, если вы можете начать с neo4j или orientdb. взгляните на docs.google.com/spreadsheet/ spreadsheet/ - person Karussell; 22.02.2013
comment
Конечно, использовать HBase можно, но, как и в случае со всеми архитектурными решениями, вы должны спросить себя, почему, прежде чем начать его использовать. HBase построен на HDFS и был разработан для хранения огромных объемов разреженных данных (с чем системы SQL менее искусны в обработке). Однако база данных Twitter FlockDB была разработана с учетом социальных сетей и анализа графиков. - person adelbertc; 22.02.2013