MouseThe Lighter Side of PessimismJoin Date: 2002-03-02Member: 263Members, NS1 Playtester, Forum Moderators, Squad Five Blue, Reinforced - Shadow, WC 2013 - Shadow
well look at that, I'm not conneted to athena, how unusual <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
never realised i was so social <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
<!--QuoteBegin-Kaine+May 5 2004, 03:57 PM--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>QUOTE</b> (Kaine @ May 5 2004, 03:57 PM)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> never realised i was so social <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo--> <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd--> This in IRC-thread just makes me chuckle <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
FamDiaper-Wearing Dog On A BallJoin Date: 2002-02-17Member: 222Members, NS1 Playtester, Contributor
edited May 2004
Ive been running this for the last.. 5 days. And I rewrote bits, it tells you if people like or dislike each other by changing the colour of the nodes. (Arg, apart from it seems to have gone down <!--emo&:(--><img src='http://www.unknownworlds.com/forums/html//emoticons/sad.gif' border='0' style='vertical-align:middle' alt='sad.gif' /><!--endemo--> )
Just be Glad I've not been on IRC much these days <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
haha owen is only linked to me <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
daza and quasar are strongly linked <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
Social network analysis [Kre2002] concerns itself with the measuring of relationships and flows between entities. We are able to model an IRC channel as a social network, as each individual user is an entity and their interactions imply relationships and flows. Such social networks can provide a mathematical analysis of the relationships in an IRC channel, yet visual representations are often easier to comprehend. The network is modeled as a graph, consisting of a set of nodes and edges, where each node represents a user and an edge represents a relationship between a pair of nodes, as shown in Figure 1.
<img src='http://www.jibble.org/piespy/images/simple-network.png' border='0' alt='user posted image' /> Figure 1. A simple social network Visualization of Social Networks
Visualization of social networks is important, as it allows the viewer to determine facts about nodes and relationships between nodes more rapidly than examining the raw mathematical model. For example, the prominence of a node in the network can be determined by its centrality, which is easy to see in a visualization of a social network. Inferring Social Networks
A social network is virtually present whenever we observe a group of people interacting electronically [Wel1997]. The first step in visualizing the social network of an IRC channel is to infer the approximate mathematical representation. Identifying the nodes in the graph is a trivial task, as these simply correspond to the users in the channel. Identifying the presence of edges is slightly more difficult, as this can only be done by monitoring the activity in the channel and identifying specific classes of user interactions. Furthermore, we enhance our social network model by assigning weightings to each edge to show the strength of each relationship. Analogous Heuristics
Fortunately, there are some fairly simple heuristics that enable us to obtain reasonably accurate approximations of the data required to produce the social network, most of which are analogous to inferring social networks from real life conversations. It must be noted that the accuracy of these approximations is very subjective by nature and that the social network derived from the heuristics can be no more than a good guess. However, in practice, we find that the results are generally good. We call this first stage inferring the social network. Inferring Relationship Strengths
An IRC bot is used to monitor channels and infer the social network structure for us (The term bot is commonly used to describe an automated IRC client and is a contraction of robot). The bot is called PieSpy and has been implemented in Java using the PircBot IRC Bot Framework [Mut2001]. The bot is instructed to join a channel and examine the messages and actions sent to the channel. Each user has a unique nickname (or nick) and each message includes a source nick so it is possible to tell which user it came from. To begin with, the inferred graph contains only a set of nodes to represent the users in a channel. All that remains is for us to build the set of weighted edges. Direct Addressing of Users
The first simple method we use to infer relationships in the graph is to monitor occurrences of direct addressing. This is where a user attempts to target a channel message to another user by specifying their nick, as shown in Figure 2. This is a very common observation in a channel and usually involves the target nick being stated before the actual message, often separated by a colon or other punctuation. This is a simple yet reliable way of building the set of edges in the graph, but it works best in conjunction with other methods.
<Dave> Can someone ping me? <Phil> Dave: Okay.
Figure 2. An example of direct addressing Temporal Proximity
Direct addressing is not always used (or required) to specify the target of a message. A message without explicit direct addressing is either targeted to everybody in the channel, or it is targeted to an individual user. Analogous to a real life conversation, if there is a long period of silence before a user sends a message and this message is immediately followed up by a message from another user, then it is reasonable to imply that the second message was in response to the first. The fact that the second message was probably a response to the first allows us to infer a relationship between the two users. Temporal Density
If there are no long delays in a channel's conversation, it is still possible to derive clues about the structure of the social network by examining other temporal features. If the last n messages have been sent within a short time span and all n of these messages originate from only two users, then it is reasonable to assume that these two users are engaged in conversation. We find that values of n > 5 allow us to build the set of edges and their weightings in the graph fairly accurately. Monitoring Private Messages
Each IRC user is able to bypass channel discussions and send messages directly to other users. This is the strongest and most accurate indication of a relationship between sender and recipient. Our bot does not implement this heuristic, as it would require special access to the servers that make up an IRC network and raises strong ethical debate about the privacy of users. As users may also be in more than one channel, it is not a valid method of inferring a social network for an individual channel. Monitoring Nick Changes
Another difficultly in inferring the social network for a channel is that users may change their nick at any time. It is therefore necessary to track such nick changes and model these nicks as belonging to the same user. Alternatively, each nick can be treated as a different user to see if a user's nick has any effect on their role in the social network. Examining the Inferred Social Network
Before we visualize the inferred social network, it is possible to calculate results and draw conclusions by examining the graph theoretic structure. Degrees and Strengths
Nodes with many emanating edges represent the most active users in the social network. Working out which users are most active can also involve looking at the weighting of each edge, as these represent the strength of each relationship. The strongest relationships in the social network are represented by the edges with the highest weightings. This can be determined quantitatively by examining the graph, but a visualization of the social network is also adept at highlighting such features. Disconnected Social Networks
It is possible that the inferred social network does not form a connected graph. Several graph algorithms can be used to detect whether or not the social network is disconnected. A disconnected social network is a useful indication of there being distinct groups of users in the same channel that do not communicate with each other. Each group is a maximally connected component of the social network and these can be found using simple recursive graph algorithms. This information can have a variety of useful applications, such as allowing IRC clients to provide automatic filtering of irrelevant messages or to highlight the fact that a channel may function better if it were to be split into several new channels. Drawing Social Networks
After we have inferred the social network for an IRC channel, we are ready to begin the creation of the visualization. This is essentially a graph drawing problem, as we wish to obtain a layout of the nodes and edges of the graph that represents the social network. The layout should not only portray which relationships are present, but also the strength of those relationships. It is convenient to produce a two-dimensional layout, as we do, because it is most versatile in terms of both screen display and printing hard copies. Multidimensional Embedding
Dense social networks may be more effectively visualized in three dimensions. Using three dimensions allows large graphs to be navigated more effectively than using only two dimensions, with advantageous usability issues in spatial navigation, layout and semiotics [Mun1995, Par1998, Wil1999]. Although our method of embedding the graph can deal with three dimensions, this adds complexity to the requirements of viewing software. Furthermore, hard copies are only able to display a single two dimensional projection viewpoint of the social network, which may result in confusion brought about by occlusions. The social networks that we derive from IRC channels typically contain between 10 and 100 active users, so two dimensions are very much adequate for these visualizations. Note that we do not concern ourselves with displaying maximally connected components if they consist of a single node, that is, we do not draw users that exhibit no relationship behaviour whatsoever. We call these inactive users. Meaningful Drawings
It is important to make the resultant drawing meaningful. Some desired characteristics are that related users should be close to each other and highly related users should be even closer together. Conversely, it is undesirable for any pair of nodes to be too close to each other, as it becomes difficult to interpret the graph when there are a number of node-node occlusions present. Spring Embedder
The spring embedder [Ead1984] is one such graph drawing method that is suitable for application to social networks. Its effect is to distribute nodes in a two-dimensional plane with some separation, while attempting to keep connected nodes reasonably close together. The spring embedder graph drawing process considers the graph model as a force system that must be simulated. Each node in the graph is modelled as a charged particle, thereby causing a repulsive force between every pair of nodes. Each edge is modelled as a spring that exerts an attractive force between the pair of nodes it connects. A graph is laid out by repeated iterations of a procedure that calculates the repulsive and attractive forces acting on all nodes in the graph. At the end of each iteration step, all nodes are moved according to the resultant forces acting on them. Modified Spring Embedder Force Model
The force models that we use for the spring embedder are based on those of Fruchterman and Reingold [Fru1991]. This version of the spring embedder is effective and widely used. It is also relatively easy to implement and requires a minimal set of parameter values that can be adjusted to achieve good automatic layouts. In this model, the repulsive force acting on a pair of nodes is -k2/d and the attractive force between two nodes caused by an edge is d2/k, where d is the distance between two nodes and k is a constant. With this force model, it is worth noting that an edge connecting the only pair of nodes in a graph will have a natural length of k. Two-dimensional Embedding
We start the graph drawing process by allocating each node to a random location on a two-dimensional plane. The iterative calculation of the forces begins and nodes are moved accordingly at the end of each iteration step. This results in a layout where connected nodes are close together, yet no pair of nodes are too close to each other due to the repulsive forces acting between them. m-limited Force Model
As some social networks may be disconnected, the simple spring embedder model described above can cause the layout to expand rapidly, as there is nothing to counter the repulsive forces acting between each maximally connected component. Limiting the distance over which repulsive forces may act easily solves this problem. The force model is modified so that a pair of nodes with separation greater than m does not exert a repulsive force [Mut2003a]. This alteration to the force model ensures that we do not end up with an unnecessarily sparse graph drawing.
Representing Edge Weights
To make the resultant graph drawing convey information about the strengths of relationships, we change the attractive forces caused by edges. These are altered so that the calculated attractive force is multiplied by the weight of the edge, causing strongly related nodes to be even closer together. Another effective way of representing the strength of a relationship is to make the edge thickness proportional to its weight. This is used in conjunction with the length of edges to provide a redundant cue to the person viewing the visualization. Color and opacity are other variables used in the implementation of PieSpy, which add further redundant emphasis, but the examples in this paper do not use this for clarity. In many cases, we have observed that a large variance of edge weights can cause the layout to become very distorted and the edge thicknesses become too great. This makes it difficult to navigate the layout, so we multiply the calculated attractive force by log(weight)+1. This causes stronger relationships to have shorter edges still, but lessens the effect when relationship strengths get greater. This seems to be an effective compromise, resulting in layouts that are easy to navigate and understand.
Performance Requirements and Optimizations
A graph, G = (N,E), is modelled as a set of nodes and edges. A simple implementation of the spring embedder calculates the repulsive force between every pair of nodes and so has a time complexity of O(|N|2) per iteration. In practical terms, this limits the maximum size of the social network to several hundred nodes if we want it to be laid out in less than one second on affordable hardware. Various optimisations exist to make this process quicker, such as preprocessing the initial random layout with linear time complexity [Mut2002], speeding up the calculation of forces between pairs of nodes [Tun1998], or reducing the number of nodes that are paired [Qui2001, Tun1998]. Multi-level [Har2001, Wal2001] approaches provide a heuristic method that clusters a graph and lays out the coarsened graph, reintroducing the other nodes in uncoarsening steps until a final layout is produced. These can be used to reduce the time complexity of each spring embedder iteration to O(|N|log|N|) without any significant reduction in its effectiveness, making the method suitable for application to graphs with tens of thousands of nodes in real-time.
Temporal Decay
Each social network diagram that is drawn relates to a particular moment in time. Each diagram is, in essence, a snapshot of the social network during its evolving inference. Another real life analogy plays a part in the reason for applying temporal decay to the social network. The general idea is that a relationship deteriorates over time if it remains inactive. Each time the structure of the social network changes, all edges have their weightings reduced by a small amount to simulate this real life analogy. This results in social network diagrams that are more accurate for the time at which they are created, giving preference to recent and prolonged activity. A nice side effect is that inactive users gradually disappear from the diagram, naturally limiting the size of the graph to reasonable bounds.
woah, im surprised i got a mention on the first pic
i hate #naturalselection channel <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
Lo JYoshi, nice to see you again. Haven't seen you around in awhile.
Anyway, good stuff. Before I saw that paste I was thinking you'd been taking genius pills.
interesting, but now that everyone knows its happening I've got a feeling people will be talking alot more and saying other peoples names more just to get into the centre of the graph, follow that by a quick screenshot and voila, instand 'proof' of popularity... if your a nerd. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
Comments
mouse... you're not connected to athena...
This in IRC-thread just makes me chuckle <!--emo&:D--><img src='http://www.unknownworlds.com/forums/html//emoticons/biggrin.gif' border='0' style='vertical-align:middle' alt='biggrin.gif' /><!--endemo-->
<img src='http://www.famfamfam.com/piespy/naturalselection/naturalselection-current.png' border='0' alt='user posted image' />
daza and quasar are strongly linked <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
Social network analysis [Kre2002] concerns itself with the measuring of relationships and flows between entities. We are able to model an IRC channel as a social network, as each individual user is an entity and their interactions imply relationships and flows. Such social networks can provide a mathematical analysis of the relationships in an IRC channel, yet visual representations are often easier to comprehend. The network is modeled as a graph, consisting of a set of nodes and edges, where each node represents a user and an edge represents a relationship between a pair of nodes, as shown in Figure 1.
<img src='http://www.jibble.org/piespy/images/simple-network.png' border='0' alt='user posted image' />
Figure 1. A simple social network
Visualization of Social Networks
Visualization of social networks is important, as it allows the viewer to determine facts about nodes and relationships between nodes more rapidly than examining the raw mathematical model. For example, the prominence of a node in the network can be determined by its centrality, which is easy to see in a visualization of a social network.
Inferring Social Networks
A social network is virtually present whenever we observe a group of people interacting electronically [Wel1997]. The first step in visualizing the social network of an IRC channel is to infer the approximate mathematical representation. Identifying the nodes in the graph is a trivial task, as these simply correspond to the users in the channel. Identifying the presence of edges is slightly more difficult, as this can only be done by monitoring the activity in the channel and identifying specific classes of user interactions. Furthermore, we enhance our social network model by assigning weightings to each edge to show the strength of each relationship.
Analogous Heuristics
Fortunately, there are some fairly simple heuristics that enable us to obtain reasonably accurate approximations of the data required to produce the social network, most of which are analogous to inferring social networks from real life conversations. It must be noted that the accuracy of these approximations is very subjective by nature and that the social network derived from the heuristics can be no more than a good guess. However, in practice, we find that the results are generally good. We call this first stage inferring the social network.
Inferring Relationship Strengths
An IRC bot is used to monitor channels and infer the social network structure for us (The term bot is commonly used to describe an automated IRC client and is a contraction of robot). The bot is called PieSpy and has been implemented in Java using the PircBot IRC Bot Framework [Mut2001]. The bot is instructed to join a channel and examine the messages and actions sent to the channel. Each user has a unique nickname (or nick) and each message includes a source nick so it is possible to tell which user it came from. To begin with, the inferred graph contains only a set of nodes to represent the users in a channel. All that remains is for us to build the set of weighted edges.
Direct Addressing of Users
The first simple method we use to infer relationships in the graph is to monitor occurrences of direct addressing. This is where a user attempts to target a channel message to another user by specifying their nick, as shown in Figure 2. This is a very common observation in a channel and usually involves the target nick being stated before the actual message, often separated by a colon or other punctuation. This is a simple yet reliable way of building the set of edges in the graph, but it works best in conjunction with other methods.
<Dave> Can someone ping me?
<Phil> Dave: Okay.
Figure 2. An example of direct addressing
Temporal Proximity
Direct addressing is not always used (or required) to specify the target of a message. A message without explicit direct addressing is either targeted to everybody in the channel, or it is targeted to an individual user. Analogous to a real life conversation, if there is a long period of silence before a user sends a message and this message is immediately followed up by a message from another user, then it is reasonable to imply that the second message was in response to the first. The fact that the second message was probably a response to the first allows us to infer a relationship between the two users.
Temporal Density
If there are no long delays in a channel's conversation, it is still possible to derive clues about the structure of the social network by examining other temporal features. If the last n messages have been sent within a short time span and all n of these messages originate from only two users, then it is reasonable to assume that these two users are engaged in conversation. We find that values of n > 5 allow us to build the set of edges and their weightings in the graph fairly accurately.
Monitoring Private Messages
Each IRC user is able to bypass channel discussions and send messages directly to other users. This is the strongest and most accurate indication of a relationship between sender and recipient. Our bot does not implement this heuristic, as it would require special access to the servers that make up an IRC network and raises strong ethical debate about the privacy of users. As users may also be in more than one channel, it is not a valid method of inferring a social network for an individual channel.
Monitoring Nick Changes
Another difficultly in inferring the social network for a channel is that users may change their nick at any time. It is therefore necessary to track such nick changes and model these nicks as belonging to the same user. Alternatively, each nick can be treated as a different user to see if a user's nick has any effect on their role in the social network.
Examining the Inferred Social Network
Before we visualize the inferred social network, it is possible to calculate results and draw conclusions by examining the graph theoretic structure.
Degrees and Strengths
Nodes with many emanating edges represent the most active users in the social network. Working out which users are most active can also involve looking at the weighting of each edge, as these represent the strength of each relationship. The strongest relationships in the social network are represented by the edges with the highest weightings. This can be determined quantitatively by examining the graph, but a visualization of the social network is also adept at highlighting such features.
Disconnected Social Networks
It is possible that the inferred social network does not form a connected graph. Several graph algorithms can be used to detect whether or not the social network is disconnected. A disconnected social network is a useful indication of there being distinct groups of users in the same channel that do not communicate with each other. Each group is a maximally connected component of the social network and these can be found using simple recursive graph algorithms. This information can have a variety of useful applications, such as allowing IRC clients to provide automatic filtering of irrelevant messages or to highlight the fact that a channel may function better if it were to be split into several new channels.
Drawing Social Networks
After we have inferred the social network for an IRC channel, we are ready to begin the creation of the visualization. This is essentially a graph drawing problem, as we wish to obtain a layout of the nodes and edges of the graph that represents the social network. The layout should not only portray which relationships are present, but also the strength of those relationships. It is convenient to produce a two-dimensional layout, as we do, because it is most versatile in terms of both screen display and printing hard copies.
Multidimensional Embedding
Dense social networks may be more effectively visualized in three dimensions. Using three dimensions allows large graphs to be navigated more effectively than using only two dimensions, with advantageous usability issues in spatial navigation, layout and semiotics [Mun1995, Par1998, Wil1999]. Although our method of embedding the graph can deal with three dimensions, this adds complexity to the requirements of viewing software. Furthermore, hard copies are only able to display a single two dimensional projection viewpoint of the social network, which may result in confusion brought about by occlusions. The social networks that we derive from IRC channels typically contain between 10 and 100 active users, so two dimensions are very much adequate for these visualizations. Note that we do not concern ourselves with displaying maximally connected components if they consist of a single node, that is, we do not draw users that exhibit no relationship behaviour whatsoever. We call these inactive users.
Meaningful Drawings
It is important to make the resultant drawing meaningful. Some desired characteristics are that related users should be close to each other and highly related users should be even closer together. Conversely, it is undesirable for any pair of nodes to be too close to each other, as it becomes difficult to interpret the graph when there are a number of node-node occlusions present.
Spring Embedder
The spring embedder [Ead1984] is one such graph drawing method that is suitable for application to social networks. Its effect is to distribute nodes in a two-dimensional plane with some separation, while attempting to keep connected nodes reasonably close together. The spring embedder graph drawing process considers the graph model as a force system that must be simulated. Each node in the graph is modelled as a charged particle, thereby causing a repulsive force between every pair of nodes. Each edge is modelled as a spring that exerts an attractive force between the pair of nodes it connects. A graph is laid out by repeated iterations of a procedure that calculates the repulsive and attractive forces acting on all nodes in the graph. At the end of each iteration step, all nodes are moved according to the resultant forces acting on them.
Modified Spring Embedder Force Model
The force models that we use for the spring embedder are based on those of Fruchterman and Reingold [Fru1991]. This version of the spring embedder is effective and widely used. It is also relatively easy to implement and requires a minimal set of parameter values that can be adjusted to achieve good automatic layouts. In this model, the repulsive force acting on a pair of nodes is -k2/d and the attractive force between two nodes caused by an edge is d2/k, where d is the distance between two nodes and k is a constant. With this force model, it is worth noting that an edge connecting the only pair of nodes in a graph will have a natural length of k.
Two-dimensional Embedding
We start the graph drawing process by allocating each node to a random location on a two-dimensional plane. The iterative calculation of the forces begins and nodes are moved accordingly at the end of each iteration step. This results in a layout where connected nodes are close together, yet no pair of nodes are too close to each other due to the repulsive forces acting between them.
m-limited Force Model
As some social networks may be disconnected, the simple spring embedder model described above can cause the layout to expand rapidly, as there is nothing to counter the repulsive forces acting between each maximally connected component. Limiting the distance over which repulsive forces may act easily solves this problem. The force model is modified so that a pair of nodes with separation greater than m does not exert a repulsive force [Mut2003a]. This alteration to the force model ensures that we do not end up with an unnecessarily sparse graph drawing.
Representing Edge Weights
To make the resultant graph drawing convey information about the strengths of relationships, we change the attractive forces caused by edges. These are altered so that the calculated attractive force is multiplied by the weight of the edge, causing strongly related nodes to be even closer together. Another effective way of representing the strength of a relationship is to make the edge thickness proportional to its weight. This is used in conjunction with the length of edges to provide a redundant cue to the person viewing the visualization. Color and opacity are other variables used in the implementation of PieSpy, which add further redundant emphasis, but the examples in this paper do not use this for clarity. In many cases, we have observed that a large variance of edge weights can cause the layout to become very distorted and the edge thicknesses become too great. This makes it difficult to navigate the layout, so we multiply the calculated attractive force by log(weight)+1. This causes stronger relationships to have shorter edges still, but lessens the effect when relationship strengths get greater. This seems to be an effective compromise, resulting in layouts that are easy to navigate and understand.
Performance Requirements and Optimizations
A graph, G = (N,E), is modelled as a set of nodes and edges. A simple implementation of the spring embedder calculates the repulsive force between every pair of nodes and so has a time complexity of O(|N|2) per iteration. In practical terms, this limits the maximum size of the social network to several hundred nodes if we want it to be laid out in less than one second on affordable hardware. Various optimisations exist to make this process quicker, such as preprocessing the initial random layout with linear time complexity [Mut2002], speeding up the calculation of forces between pairs of nodes [Tun1998], or reducing the number of nodes that are paired [Qui2001, Tun1998]. Multi-level [Har2001, Wal2001] approaches provide a heuristic method that clusters a graph and lays out the coarsened graph, reintroducing the other nodes in uncoarsening steps until a final layout is produced. These can be used to reduce the time complexity of each spring embedder iteration to O(|N|log|N|) without any significant reduction in its effectiveness, making the method suitable for application to graphs with tens of thousands of nodes in real-time.
Temporal Decay
Each social network diagram that is drawn relates to a particular moment in time. Each diagram is, in essence, a snapshot of the social network during its evolving inference. Another real life analogy plays a part in the reason for applying temporal decay to the social network. The general idea is that a relationship deteriorates over time if it remains inactive. Each time the structure of the social network changes, all edges have their weightings reduced by a small amount to simulate this real life analogy. This results in social network diagrams that are more accurate for the time at which they are created, giving preference to recent and prolonged activity. A nice side effect is that inactive users gradually disappear from the diagram, naturally limiting the size of the graph to reasonable bounds.
</paste>
Thanks Freud.
Thanks you sexy Freud. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Where I got that from didn't indicate an author. And saying </paste> stated that it wasn't mine.
i hate #naturalselection channel <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
Anyway, good stuff. Before I saw that paste I was thinking you'd been taking genius pills.
interesting, but now that everyone knows its happening I've got a feeling people will be talking alot more and saying other peoples names more just to get into the centre of the graph, follow that by a quick screenshot and voila, instand 'proof' of popularity... if your a nerd. <!--emo&:)--><img src='http://www.unknownworlds.com/forums/html//emoticons/smile.gif' border='0' style='vertical-align:middle' alt='smile.gif' /><!--endemo-->
Edit: Nevermind