Thursday, November 8, 2012

Sociogram and SNA

We've learnt lots of things about SNA in the last lecture.
I think the sociogram of our IEMS5720 blogosphere on the slides is quite cool, it visualizes social connections between students in our class according to our activities on the blogs. A graph is just enough to shows a lot things that are not easy to tell from the raw data (or by reading all the posts and comments).

We also learnt some basic graph theory and other techniques which can be very useful in analyzing the sociograms. I think the best way to learn new things is to practice, therefore I did some experiments on the data of our IEMS5720 blogosphere.

Get the Data

Since all our blogs are hosted on Blogger and Google is kind enough to provide an API for the Blogger service, I have no difficulty to get access to all posts and comments of everyone in our class.

Basic Process

The raw data I collected using Blogger API contains all information about the posts and comments. In this practice, I decide to just do analysis on the sociogram, therefore I am not interested in the contents of the posts and comments. The only thing I am interested in here is the relationship. A comment has its own author(sender), and either it is posted directly on a post or it is posted to reply to another comment, in both cases a comment must also have a recipient. So for each comment, we find the relationship established between two people. By checking all comments, I get enough data drawing the sociogram.

Draw the Graph

I do have some experiences on drawing graphs. This time I decide to try a new library called d3.js. D3.js is a JavaScript library for manipulating documents based on data. It can be used to draw graphs and also do other cool things.


Updated 20-Nov-2012:
  • Nested comments/replies are counted correctly
  • Self-comments are ignored
  • Users not enrolled in our class are not shown
  • Update delay has been reduced to 30min

Analysis of the Sociogram

We've learned some metrics to evaluate the centrality of a graph: degree centrality, closeness centrality and betweenness centrality. The degree centrality is the most simple one and it can be computed just by counting. Closeness centrality and betweenness centrality are a little complected: we have to get the short paths. In the lecture, we use powers of matrix to compute the shortest paths. The number n at position (i,j) in the k-th power of the adjacency matrix means there are n different paths with length k from (i,j). Therefore by computing the powers of matrix, we can get the shortest paths between any pair of nodes. However, in practice when we implement the shortest paths algorithm in the computer program, we usually use other methods. There are some classic algorithms for finding shortest paths: Dijkstra Algorithm for single source shortest paths, and Floyd–Warshall Algorithm for all-pairs shortest paths. These algorithms can handle weighted graph, while the power-of-matrix method cannot.

In my program, instead of implement all of these by myself, I use a graph library called NetworkX. NetworkX is a Python library for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks. The results I got is at here. I am still not sure about the betweenness centrality I got, because it is rather small comparing to the other two values.

Tuesday, November 6, 2012

Group Learning on Social Clouds


Definition of Social Cloud:
A social cloud is a resource and service sharing framework utilizing relationships established between members of a social network.
The Applications of Social Clouds:
  • Social Computation Cloud
  • Social Storage Cloud
  • Social Collaborative Cloud
  • Social Cloud for Public Services
  • Enterprise Social Cloud
Above are my own answers to the questions. In group discussion, we found our answers to these questions were almost the same. However, two other articles related to social clouds were shared by my groupmates:
Combining our views and what we found from the above aricles, we had more comments on social clouds: Social clouds can provide different kinds of services, however instead of using a centralized manner, the services provided by a social cloud are actually provided and maintained by a social network. The type of the services does not matter, it can be computational work, storage, collaborative... therefore there are lots of applications listed in the article. As long as the services are provided by a social network and it utilizes the relationships established in a social network, it is considered as a social cloud.
  1. What was the epistemic aims in (1) Class Activity One (individual work) and (2) Class Activity Two (group work)? Is there any change in epistemic aim? If so, why did you change your aims?
    During individual work, I just quickly go through the article and try to find the answers to the questions. During group work, everyone should his/her opinions. It does not make any senses if everyone share the same idea, therefore we change our aim to find something different and new. In this case, we are not on the cognition level, combining and summarizing all options is meta-cognition and finding new things is epistemic cognition.
  2. Is there any differences in terms of individual and group epistemic cognition, how?
    In individual work, one may easily be satisfied with a current answer or it is rather difficult to discover new ideas. However in group work, it is quite common that different people have different answers therefore we have greater chance to develop something new.
  3. How did you approach to the problem individually and in group, respectively? Is there any differences in the processes involved?
    The approaches in individual work and group work are quite different. We can read and check references individually, however we can share different options and discuss in group and group work is never limited to discussion, we can even have a debate. In this case I think it is much more possible for us to find the answer which we never know before.

Tuesday, October 16, 2012

Different levels of cognition in Social Networks


Cognition, is the first level of cognition. In this level, individuals memorize, read, write and perceive new information. I think what we did in primary school is mostly on this level, we memorize, read and write what teachers taught. Metacognition, aka. “cognition about cognition” is the second level. It includes knowledge about when and how to use particular strategies for learning or for problem solving. In middle school, we have to learn many different courses and also take lots of exams. We have to think about how to study, what is the most efficient way to learn things and this is metacognition. Epistemic cognition is the highest level of cognition, in this level we do not only learn but also create. There are five key components of epistemic cognition: epistemic aims; structure of knowledge; certainty, sources and justification of knowledge; epistemic virtue and responsibility; reliably and processes. I think this level of cognition cannot be described as we learn, it’s actually research.

All of three levels of cognitions appear in today’s social networks although the features of the social networks may not be designed to facilitate cognitions. In fact, it is rather difficult to design  features to support the higher level of cognition. Let’s take Twitter or Weibo as an example, there are lots of information on the user’s timeline, different kinds of information shared by the people we follow, the contents can consist of text, links, pictures, audio and even video. Reading others statuses is just the first level of cognition. To help users organized the statuses, lots of different features are provided: we can use #tag in a tweet, we can @reply others, we can also search tweets and so on. These different features actually help us to get information more efficiently and this is the metacognition. However, the third level of cognition -- epistemic cognition has quite high requirements, I think today’s technology can just provide limited support for this. Let’s take Quora or its Chinese clone Zhihu 知乎 as an example. Quora is an online Q&A community, people ask and answers questions on it. Unlike other online services, Quora started with an invitation only membership policy. They limit the number of users and try to maintain high quality of both the questions and answers. Usually a question is answered by people who have related background and experience with the question, the best answer is voted by other users. The answers may be even edited multiple times according to others’ comments. I think this is kind of epistemic cognition. All the features: voting, commenting, etc provided by Quora facilitate the progress of epistemic cognition.

Although there are already lots of features to facilitate progress of cognition on the social networks. I think the effect it still quite limited because none these can happen automatically. All the features provided by a social network are just tools, they are useless if people do not use them. For example, the #tag feature of Weibo can better organize the users’ statuses, however if you never use #tags, then you cannot benefit from it. Quora encourages users to discuss with others and vote the best answer, but no epistemic cognition can happen if the users are not willing to share there options and vote. I think an ideal social network should have some features that can actively help people to do higher level cognition. It’s metacognition if a user try to find a way to group his/her friends so that he/she can get information from his/her friends much more efficiently. But it will be much better if the grouping is automatically done by the system according to the user behavior observed. I think this can be a challenging problem and requires lots of work on data mining and artificial intelligence.

Monday, September 24, 2012

Fast Growth of Social Networks

Believe it or not, social networks are changing our life. Not only the way how people surf the Internet, but also in the daily life. With smartphones and other mobile devices, people can update their Facebook statuses or send tweets at anytime and anywhere, shopping, traveling, having dinner... anything and any moment can be shared with the whole world and this is exactly what we do every day.


Thanks to David Fincher's movie "The Social Network" in 2010, now people are not only using social networking services but also talking about "social network" and Mark Zuckerberg's success story. From Harvard dormitory to the IPO launch at Nasdaq, a college student becomes a billionaire in just a few years. Facebook is amazing not just because it changes our daily life but also becuase it grows really fast, and this is not a single case.

Let's see the couterpart of Facebook in mainland China. I still remember it was in 2006, one of my high school classmates told me to join a website called Xiaonei (校内网, literally "on-campus network"). I remember this because the signing up process was rather complicated: Xiaonei was once a closed network which is only open for some selected universities in mainland China, they even checked users' IP addresses to ensure they are on campus while signing up. Apparently, at that time CUHK was not on the white list. So to get in to the network, I had to ask a friend at Tsinghua University to sign up for me. Anyway, I finally had an Xiaonei account and got in to the network. "It's quite interesting", this was my comment on Xiaonei when I first saw it. I think most people were not aware of the power of social networking at that time.

Today, 2012, just a couple years later from the launch of xiaonei.com. Xiaonei had it name changed to Renren (人人网, literally "everyone's network"). The closed network for college students has became an open social network for everyone, with over 30 million active monthly users and Alexa rank top 150. At the meantime, many other websites have successfully added their social networking features and lots of new social networking websites have been created. According to the network traffic chart on the course slides, only two sites are not social networking sites among the top 40 most visited websites on the world. Social networking is already part of our daily life now.

Social Networking is Different

Why social networks are growing so fast? Some characteristics of social netwokring we learnt from class may help on this question. Social networking has "a focus on building social relationships among people", it "builds online communities" and it has "interactive communication among participants", all of these indicate that social networking is quite different from other online services. When people are connected with each other in a social network, the size of the network scales exponentially. When the network scales up, the amount of information people get from the network also becomes huge and this has big impact on our daily life.

The Technologies Behind

According to the characteristics of social networks, they seem supposed to grow very fast. However, Facebook's success story happended in recent years, not 1990s the dot-com era. If we look at the technologies which are backing up the social networks, we may find one of the reasons: the technologies we have today make the social networks to grow so fast and make all of this ever possible to happen. For example, the mobile technologies, the smartphones and tablets with high speed cellular netwokring, 3G or even 4G LTE. People can access social network from anywhere and at anytime. If we don't have these mobile devices, social network can be rather limited and it's not going to grow so fast. Another example, cloud computing, this is also a quite hot term nowadays. Social networks grow fast, if we are building a website which grows very fast, we may want to use cloud computing, the reason is simpe: it scales. Starting with just a minimal number of servers on a cloud, thousands of servers can be provisioned and deployed in a few minutes on demand when our website grows. Therefore, cloud computing can meet the need of fast-growing social networking. In fact, many social netwokring sites, such as Twitter, Quora and Instagram(acquired by Facebook), are powered by cloud computing now.

Tuesday, September 18, 2012

Is Email a Kind of Social Networking?

tl;dr. IMHO, yes, email is a kind of social networking because there is something called Mailing List.

This is a question from my classmate Deng Hongwei. We discussed this in class tonight, it seems different people have different opinions on this, therefore I just share mine here.

To me, I think the answer to this question is quite straightforward: email is definitely a kind of social networking, because we have mailing list. Mailing list is basically a service built on email. A mailing list has an email address and it has to be hosted on a server. To use the mailing list service, a user should provide his/her email address and subscribe the list. After that, when the user sends an email to the mailing list's address, the mailing list server will forward this email to all of its subscribers. While sender field remains the original sender, the reply-to field is changed to the email address of the list. Therefore another user can just reply the email so that all other subscribers will receive the conversation. In this way, all subscribers can communicate with each other and this forms a network. Thus, if we agree that mailing list is still email, then email is a kind of social networking.

Mailing list is not a new product, in fact it seems to be quite an old-school thing for me. However, mailing list is still very popular nowadays, especially in open source communities. As we learnt in tonight's lecture, open source development is a kind of social networking. IMHO, mailing list plays a very important role in open source development to make it possible and social. Most of developers of open source projects communicate using mailing list. They may also use other tools, but the offical communication method is usually mailing list. For example, if you want to contribute your patch to the Linux kernel. You don't send an email to Linus Torvalds directly or post the code on your personal blog. You send an email to the corresponding Linux kernel mailing list instead (and maybe also to the maintainer(s) of the kernel module which your patch belongs to, correct me if I am wrong). Then, other developers can see your patch, review it and discussed about it. Another example from the course notes, the Apache Software Foundation. If you check the Get Involved page, you may see joining mailing lists is always a good choice to get started.

P.S. Recently open source developers may prefer to use other methods for collaborating and communication, for example, using GitHub, especially for new and small projects (sure, there are many large projects on GitHub too). GitHub is also an good example of social networking, I may post another article on this later.

References

Tuesday, September 11, 2012

The First Post

OK, this is yet another weblog of mine. Well this time I am not migrating my personal weblog here. My personal weblog is still at http://hguan.me and an archive of old posts before this year is at http://archive.raptium.net

This weblog is dedicated for the Social Networking course I take in this semester, therefore the topic of this weblog is about social networking. I am suppose to post at least four articles on the course content to meet the course requirements, besides that I may also share other information (more technical stuffs I think) and my thoughts about social networking here.