I have a social network and I want to identify the most social people in the graph. In a typical graph experiments this could have done using different network features.

However, I recently came across graph embeddings and interested in knowing if my problem can be solved using graph embeddings.

If so, please letme know how I can do that?

  • $\begingroup$ How are you defining "most social"; by the number of connections, by activity, or what? I doubt you need machine learning; a simple database query should be enough. Keep it simple. $\endgroup$ – Emre May 24 '18 at 3:35

This question can have many ways to answer but here is what I think:

Lets assume the example of very common, facebook.

  • Very naive sense

Number of friends is equal to the 'social-ness' of the person. In graph context, a node with more degree will considered to be strongly connected in the graph. But ofcourse we know this is not at all a good way of defining the social-ness.

  • Every human point of view

Ask yourself a question about when do you like or comment in someone's post or photo ? The answer most probably will be when you and that person have good terms or friendship or relationship. So, with this kind of approach you can say that the person with more number of likes/comments in their posts is more social than the one with less likes/comments.

Now, coming to your question, it depends on how you define 'social' as I can also say a person with similar interest as the community with largest number of members with similar interest is most social. So, lets say we have a facebook graph and you want to measure social-ness of vertices you need to exploit the edge information also which is nothing but likes/comments/messages shared between two people. You can convert this edge data into some kind of number to denote the strength of that edge. Also, in the facebook scenario there is a directed edge between any two nodes (people) as it can happen that one person likes/comment/message the another person but vice-versa is not true. So, there are many more kinds of data/information that you can use in facebook graph.

Then as answered in this post graph embedding will give you the representation of a graph/subgraph as a whole. So, you need vertex embeddings in this case so you can represent every vertex separately and compare against one another.

One approach is to use deepwalk and get vector embeddings based on topology (you need to modify it a bit as the original method is only for undirected graphs). Then you can form another vector like [1050, 300, 500, 2, ...] where each element will be some kind of number denoting number of total likes, number of total comments, number of friends, frequency of messages, frequency of likes etc. You can then train a neural network which basically outputs a number between 1-5, 1 being least social and 5 being most social. So, in this way you can take advantage of vector embeddings.

This is one approach that I can think of. If you have any other thoughts please share them.

| improve this answer | |
  • $\begingroup$ I wrote a short review on graph embeddings, there I exposed four interesting approaches that are commonly used in practice. Those approaches could be useful in your case too. If you are interested take a look: towardsdatascience.com/… $\endgroup$ – Primoz Feb 6 '19 at 8:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.