Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Understanding and building a social network algorithm

I am not sure whether this is the right platform to ask this question. But my problem statement is : I have a book shop & x no of clients (x is huge).

A client can tell me whether a book is a good or bad (not recommended). I have a internal logic to club books together , so if a client says a book is bad, he is saying that similar books are bad too and don't show him that.

I oblige and hide those books. Clients can also interact among themselves, and have a mutual confidence level between them. A case arises when client A says Book X1 is bad. Hence i blacklist X1,X2,X3,X4 etc.

But his friend client B says X3 is good. So now i have to show X3 to A. I was thinking to build a social network of all my clients based on their interaction, and be able to calculate their mutual confidence level. So in the above senario if mutual confidence level is very high will will show X3 to A, or else i won't show X3 to A.

I wanted to get myself kickstarted on building the social network and assigning a wt. to a path between 2 nodes (my clients). Please suggest me some good pointers where i can start. Any book, websites etc.

Thanks

like image 452
S Kr Avatar asked Feb 21 '13 19:02

S Kr


1 Answers

From a high level, you will want to look into the fields of Machine Learning, Data Mining, and graph mining/analysis.

In terms of machine learning and data mining, you will want to look into collaborative filtering - I recommend this book. There is a lot of work in this field, notice how websites like Amazon have a feature that shows you what other items were purchased along with the item you are currently looking at.

In terms of building a social network, you will first need to figure out what database system you want to use. There exists graph databases like Neo4J and FlockDB that are designed with graphs in mind.. you may alternatively opt for something more general like MySQL instead, depends on how far you want to go.

Once you have that decided you'll want to leverage this "social graph" data, which is where concepts like random walks, community structure/detection, and centrality come in. I recommend going through this series of lectures Twitter gave at UC Berkeley to get a better idea of leveraging social data.

like image 149
adelbertc Avatar answered Sep 28 '22 07:09

adelbertc