Simulated News Spreading on Social Network Sites_Final

Simulated News Spreading on Social Network Sites_Final preview image

1 collaborator

Default-person Bing Zhang (Author)

Tags

(This model has yet to be categorized with any tags)
Model group MAM-2013 | Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0.4 • Viewed 1208 times • Downloaded 148 times • Run 0 times
Download the 'Simulated News Spreading on Social Network Sites_Final' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


## WHAT IS IT?

This model is a simulated social network sites. Each node represent a people in Online Social Network like twitter or facebook. We will explore the characteristic of news spread on social network and how network grow.

## HOW IT WORKS

There is a life time for news. At the begining of life cycle, we will randomly pick a people as news creater.

Rule for network growth: In each tick, every people that feels the news is interesting will twitter the news. We use a possibility to describe the agent behavior of "feeling interesting". The news will be twittered to all the neighbors of the one who retwitter the news and these neighbors will read the news. If they feel the news is interesting, the will retwitter the news in next tick and they will follow the news creater. In this way the number of follower of the news creater increase.

Rule for news spread: The rule is similar to network growth. The only difference is in this situation those people retwitte the news won't follow the new creater. We use this mechanism to see how news being spread in a stable network.

Rule for two different opinion: If we have two group of people with totally different opinion. Those people with different opinion will read the news and ignore it (never retwitter).

## HOW TO USE IT

Num-of-nodes: Determine the number of people in the network

Centrality: Decide use which kind of centrality measurement

News-is-interesting: Determing the probability of retwitter

News-life: The life cycle of news

Setup: Initialize a scale free network according to preferential attachment.

Redo layour: Layout the network according to its connectivility.

resize node: resize the node according to the number of neighbors

two-color: split the entire graph into two groups with different opinions. We use this buttom to start simluate news spread between two groups.

grow: forever running buttom to grow the network according to growth rule

grow-once: run growth one tick

Spreadnews: Forever running buttom to spread the news on network

Spreadnews-once: run spread one tick

Num of people read news vs centrality: the plot of number of people read the news and the centrality of news creater

Num of people read news vs local closter coefficient: the plot of number of people read the news and the local closter coefficient of news creater

num of people read news vs tick: a monitor to see the change of number of people read news during different cycle

## THINGS TO NOTICE

1. This model use the NW extension. You can download the extension from "https://github.com/NetLogo/NW-Extension"

2. The resize buttom will resize the node according to its number of neighbors. If you are simulated a highly connected network, It is not suggested to resize it.

3. If you run the spread news without network growth, the initial cluster coefficient will be zero because the initial topology of network is scale free network without cycle.

## THINGS TO TRY

To better understand the model. You can try to adjust the number of node to be small and use grow-once and spread-once buttom to observe the behavior of model tick by tick. You can also adjust the news life time, which influence the spread depth. Changing the news-interesting slider will change the difficulty of spread.

## EXTENDING THE MODEL

One valuable further extension is to build a load buttom that can direct load a real personal social network from facebook or twitter. In this way we can make a comparison between real data and free scale network.

## NETLOGO FEATURES

This model use the NW extension. Besides, the implementation use loop as flow control and list as data structure.

## RELATED MODELS

There is a HubNet activity direct related to this model.

In the literature there are Rumer Propogating model which is related to this model.

## CREDITS AND REFERENCES

You can find more about this model on modeling common."http://modelingcommons.org/"

Paper reference:

[1] Dechun Liu; Xi Chen, "Rumor Propagation in Online Social Networks Like Twitter -- A Simulation Study," Multimedia Information Networking and Security (MINES), 2011 Third International Conference on , vol., no., pp.278,282, 4-6 Nov. 2011

[2] Barabási, A.L., R. Albert, and H. Jeong, Mean-field theory for scalefree random networks. Physica A: Statistical Mechanics and its Applications, 1999. 272(1-2): p. 173-187.

[3] Suh, B.; Lichan Hong; Pirolli, P.; Chi, Ed H., "Want to be Retweeted? Large Scale Analytics on Factors Impacting Retweet in Twitter Network," Social Computing (SocialCom), 2010 IEEE Second International Conference on , vol., no., pp.177,184, 20-22 Aug. 2010

[4] Stonedahl, Forrest, Rand, William M. and Wilensky, Uri, Evolving Viral Marketing Strategies (July 2010). GECCO 2010, Portland, Oregon, USA, July 7-11, 2010 ; Robert H. Smith School Research Paper No. RHS 06-133.

[5] Joseph J. Pfeiffer , Jennifer Neville, Methods to Determine Node Centrality and Clustering in Graphs with Uncertain Structure, Fifth International AAAI Conference on Weblogs and Social Media. 9 pages, 4 Figures, 2 Apr 2011

Comments and Questions

nw:set-snapshot

Error:Nothing named NW:SET-SNAPSHOT has been defined. please help me solve this error.

Posted almost 2 years ago

article as a refrence (Question)

I want to address this article as a refrence but it seems it hasn't published in a valid magazine. if it is, please send me information about it. Thanks

Posted 9 months ago

need your published paper

Have you published a paper on this model?Can I have a reference if there is a paper?Thank you very much.

Posted 4 months ago

Click to Run Model

extensions [ nw ]
globals [ centralities 
          clustering-coefficient
          centralities-diff
          clustering-coefficient-diff
          ]
turtles-own
[
  source
  belong-to   ;;news belong to whome
  centrality
  local-cluster
  newscolor   ;;initial news color red
  nodecolor   ;;original color
]


breed [news a-news]
breed [people node]

;;red 15, pink 135, blue 105, yellow 45

to setup
  clear-all
  create-people 1 [set color 15 set nodecolor 15 set shape "circle" set size 0.6]
  create-people 1 [set color 15 set nodecolor 15 create-link-with turtle 0 set shape "circle" set size 0.6]
  while [count turtles < number-of-nodes]
  [
  setup-initial-network find-partner
  ]
  ask one-of turtles[set color 135]
  let newscreater turtles with [color = 135]
  nw:set-snapshot turtles links
  cal-centrality newscreater
  setup-news 
  ask news [put-ontop]
  set centralities []
  set clustering-coefficient []
  set centralities-diff []
  set clustering-coefficient-diff []
  ;set centralities fput [centrality] of newscreater centralities
  ;set noderead fput 1 noderead
  reset-ticks
end 
  
;;prefential attachment

to setup-initial-network [old-node]
  
  create-people 1
  [
    set color 15
    set nodecolor 15
    set shape "circle"
    set size 0.6
    if old-node != nobody
      [ create-link-with old-node 
        ;; position the new node near its partner
        move-to old-node
        fd 8
      ]
  ]
end 

to-report find-partner
  let total random-float sum [count link-neighbors] of turtles
  let partner nobody
  ask turtles
  [
    let nc count link-neighbors
    ;; if there's no winner yet...
    if partner = nobody
    [
      ifelse nc > total
        [ set partner self ]
        [ set total total - nc ]
    ]
  ]
  report partner
end 
;;;;;;;;;;;;;;;;;;;;;;;;;

to setup-news
  create-news 1
  [ 
    set shape "square"
    set color 45  ;;yellow
    set newscolor 15
    set size 1
    set source one-of turtles with [color = 135]
    ]
  let temp one-of turtles with [color = 135]
  ask news [move-to temp set belong-to temp]
end 

to grow
   ifelse ticks mod news-life = 0 and ticks > 0
  [
    let countgreen count people with [color = 65]
    let countpink count people with [color = 135]
    let countgrey count people with [color = 9]
    let countsame countgreen + countpink
    let countdiff countgrey
    let countread countsame + countdiff
    
    ;;set noderead fput countread noderead
  
    ask news [die]
  ask turtles [set color nodecolor]
  ask one-of turtles [set color 135]
  let newscreater turtles with [color = 135]
  setup-news
  cal-centrality newscreater
  ;;set centralities fput [centrality] of newscreater centralities
  ]
  
  [
  ask turtles with [color = 135]
  [
    
    while [count link-neighbors with [color = 15 or color = 105] > 0]
    [
    let spread one-of link-neighbors with [color != 135] ;;node we are going to spread
    let parent one-of turtles-here with [color = 45]  ;;news to be spread
    
    if spread != nobody [
      
      ifelse [newscolor] of parent = [color] of spread
      [
        ask spread [set color 65]      ;; the people with same opinion read the news green
      if random-float 100 < news-is-interesting [
        ask spread [set color 135]
        ask parent[hatch 1]
        ask parent [move-to spread set belong-to spread]
        ask spread [create-link-with [source] of parent]
        ]] 
      [
        ask spread [set color 9]     ;; the people with different opinion read the news grey
        ]
    ]
    ]
    ]
  ]
  
  tick
end 

to spreadnews
   ifelse ticks mod news-life = 0 and ticks > 0
  [
    let countgreen count people with [color = 65]
    let countpink count people with [color = 135]
    let countgrey count people with [color = 9]
    let countsame countgreen + countpink
    let countdiff countgrey
    let countread countsame + countdiff   ;;everyone read news
    let creater [source] of one-of news
    ;;set noderead fput countread noderead
    
    set centralities fput(list [centrality] of creater countread) centralities
    set centralities-diff fput(list [centrality] of creater countdiff) centralities-diff
    if [local-cluster] of creater > 0
    [
      set clustering-coefficient fput(list [local-cluster] of creater countread) clustering-coefficient
      set clustering-coefficient-diff fput(list [local-cluster] of creater countdiff) clustering-coefficient-diff
      ]
    ask news [die]
  ask turtles [set color nodecolor]
  ask one-of turtles [set color 135]
  let newscreater turtles with [color = 135]
  setup-news
  cal-centrality newscreater
  cal-cluster newscreater
  ;set centralities fput [centrality] of newscreater centralities
  ]
  
  [
  ask turtles with [color = 135]
  [
    
    while [count link-neighbors with [color = 15 or color = 105] > 0]
    [
    let spread one-of link-neighbors with [color != 135] ;;node we are going to spread
    let parent one-of turtles-here with [color = 45]  ;;news to be spread
    
    if spread != nobody [
      
      ifelse [newscolor] of parent = [color] of spread
      [
        ask spread [set color 65]      ;; the people with same opinion read the news green
      if random-float 100 < news-is-interesting [
        ask spread [set color 135]
        ask parent[hatch 1]
        ask parent [move-to spread set belong-to spread]
        ]] 
      [
        ask spread [set color 9]     ;; the people with different opinion read the news grey
        ]
    ]
    ]
    ]
  ]
  
  tick
end 

to put-ontop
  hatch 1;;[create-links-with [links]of myself]
  die
end 

to layout
  ;; the number 3 here is arbitrary; more repetitions slows down the
  ;; model, but too few gives poor layouts
  repeat 3 [
    ;; the more turtles we have to fit into the same amount of space,
    ;; the smaller the inputs to layout-spring we'll need to use
    let factor sqrt count turtles
    ;; numbers here are arbitrarily chosen for pleasing appearance
    layout-spring turtles links (1 / factor) (7 / factor) (1 / factor)
    display  ;; for smooth animation
  ]
  ;; don't bump the edges of the world
  let x-offset max [xcor] of turtles + min [xcor] of turtles
  let y-offset max [ycor] of turtles + min [ycor] of turtles
  ;; big jumps look funny, so only adjust a little each time
  set x-offset limit-magnitude x-offset 0.1
  set y-offset limit-magnitude y-offset 0.1
  ask turtles [ setxy (xcor - x-offset / 2) (ycor - y-offset / 2) ]
  ask news [move-to [belong-to] of self]
end 

to-report limit-magnitude [number limit]
  if number > limit [ report limit ]
  if number < (- limit) [ report (- limit) ]
  report number
end 

to resize-nodes
  ifelse all? turtles [size <= 1]
  [
    ;; a node is a circle with diameter determined by
    ;; the SIZE variable; using SQRT makes the circle's
    ;; area proportional to its degree
    ask turtles [ set size sqrt count link-neighbors ]
  ]
  [
    ask turtles [ set size 1 ]
  ]
end 

to cal-centrality [choice]
  ifelse centrality-measure = "degree-centrality"
  [ask choice [ 
        set centrality count my-links
      ]
    ]
  [
    ask choice[
  set centrality runresult (word "nw:" centrality-measure)
  ]
  ]
  ;;report [centrality] of choice
end 

to cal-cluster [choice]
  ask choice
  [ let hood link-neighbors
    ifelse count hood <= 1
    [
      set local-cluster -1
    ]
    [
      let links-in-hood links with [ (member? end1 hood and member? end2 hood) ]
      set local-cluster (2 * count links-in-hood) / (count hood * (count hood - 1))
    ]
    ]
end 

to cal-local-cluster [choice]
  ask choice
  [let num-nei one-of link-neighbors with [color = 15]
    
    ]
end 

to two-color
  ask people with [who mod 2 = 0]
  [ 
    if color != 135
    [
    set color 105
    set nodecolor 105
    ]
    ]
end 
  

There is only one version of this model, created over 5 years ago by Bing Zhang.

Attached files

File Type Description Last updated
472 Project.zip data Everything over 5 years ago, by Bing Zhang Download
Bing Zhang_Proposal.pdf pdf Original Proposal over 5 years ago, by Bing Zhang Download
Bing_June 3.pdf pdf Progress Report_June 3 over 5 years ago, by Bing Zhang Download
Bing_May 13.pdf pdf Progress Report_May 13 over 5 years ago, by Bing Zhang Download
Bing_May 20.pdf pdf Progress Report_May 20 over 5 years ago, by Bing Zhang Download
Bing_May 27.pdf pdf Progress Report_May 27 over 5 years ago, by Bing Zhang Download
Final Paper_Bing Zhang.pdf pdf Final Paper over 5 years ago, by Bing Zhang Download
Simulated News Spreading on Social Network Sites_Final.png preview preview over 5 years ago, by Bing Zhang Download
Social_network - final.nlogo data NetLogo model over 5 years ago, by Bing Zhang Download
Social_network - HubNet_done.nlogo data HubNet Activity over 5 years ago, by Bing Zhang Download
Zhang_Bing_Slam_v2.pptx powerpoint Slam over 5 years ago, by Bing Zhang Download

This model does not have any ancestors.

This model does not have any descendants.