Viral Videos (Krystal & Michelle)

No preview image

1 collaborator

Default-person Michelle Carr (Author)

Tags

(This model has yet to be categorized with any tags)
Model group LS426_2013 | Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0.3 • Viewed 596 times • Downloaded 38 times • Run 0 times
Download the 'Viral Videos (Krystal & Michelle)' 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?

If you're familiar with YouTube and Vimeo, then you are probably familiar with what it means for a video to go "viral." This model simulates the ways in which a video can be disseminated for viewing, making it possible to explore and understand the phenomena of viral videos, as well as general video viewing.

HOW IT WORKS

The model uses viewers to represent individuals engaged in watching a video. Viewership increases (aka becomes viral) or decreases based on three types of variables: video parameters, sharing parameters, and receptiveness to connections from an individual's social network. Individuals start out as potential viewers who have yet to watch a video (gray people). They can then become initial viewers (yellow people), viewers watching as a result of their close friends telling them (green people), viewers watching as a result of Facebook (blue people), viewers watching as a result of a tweet (red people), and viewers watching as a result of publicity (orange people).

HOW TO USE IT

To use the model, press SETUP. This will create a potential group of 1000 people who may or may not watch a video based on the video parameters you select, located on the left of the Interface screen. You can increase the number of viewers by moving one or more of the sliders under VIDEO PARAMETERS to the right. To decrease the number of viewers, move the sliders to the left. Press INITIAL VIEWERS to set the model in motion. If, after you've pressed INITIAL VIEWERS, there appears to be very few viewers (you can determine the exact number of viewers by looking at the VIEW COUNT monitor), you can adjust the VIDEO PARAMETERS to see how different measures affect the decision to view a video.

Now comes the interesting part, namely adjusting the sliders located to the right of the Interface screen in order to produce the conditions you want to explore or study. In order to increase viewership even further, click on any of the buttons to the right of the model: CLOSE FRIENDS, TWEETS, FACEBOOK, PUBLICITY or SHARE ALL (the last button is a shortcut and clicking on it activates CLOSE FRIENDS, TWEETS, and FACEBOOK).

The number of additional viewers that appear are directly related to the value of the sliders positioned to the far right: FRIEND-SHARING, TWITTER-SHARING, FACEBOOK-SHARING, FRIEND-CHECK, TWITTER-CHECK, and FACEBOOK-CHECK. The first three sliders control the probability of viewers sharing a video while the last three sliders control how receptive viewers are to different connections. If the sliders are close to zero, fewer viewers will appear in the model, setting in motion an overall decrease in the number of new viewers when the simulation is running.

Finally, there are two line graphs located on the bottom right of the Interface screen. The line graph entitled VIEWS tracks the overall number of views that a video has received. The line graph entitled VIEW SOURCE tracks viewers by their point of entry, whether or not they are watching as a result of Facebook, Twitter, Publicity, Close Friends, or were part of the initial set of viewers.

THINGS TO NOTICE

Viral videos are often distributed through an individual viewer's social media networks--which typically means more social connections will lead to a higher probability of additional views of a video. The more extensive your friend group, the higher the views a video will receive. You can simulate this by moving the sliders located on the right side of the model all the way to the right. Watch the number of viewers as a direct result of tweets and Facebook posts dramatically increase!

THINGS TO TRY

Can you adjust the settings so that you have very few viewers? How about trying to get as many viewers as possible? How about trying to get as many viewers as possible from one source only, such as Facebook? Mix things up by experimenting with the sliders to understand what combination of parameters result in more viewers or less viewers. Make sure to look at the graphs to see how the different slider values you have selected are impacting viewing patterns.

EXTENDING THE MODEL

In real life, videos can go viral for many reasons. Try and change the model by including additional video parameters such as duration and the presence or lack of music. You might also try and tweak the parameters and unpack what it means to be quality, engaging, funny, and emotional.

The model is simple in that it accounts for only three sources of viewers: Facebook, Twitter, and publicity. Extend the model by incorporating more sources such as marketing or emailing outside of social media. YOu migh also want to incorporate an element of randomness as to what kind of publicity yields different amounts of new viewers.

Finally, try thinking of new ways to count viewers and plot data generated by the model. Experiment with adding new monitors or changing the sliders to switches--how does this change the model?

RELATED MODELS

The AIDS and Preferential Attachment models demonstrate similar patterns of diffusion across individuals.

CREDITS AND REFERENCES

Thanks to Michelle Carr and Krystal Villanosa for their work on this model. Thanks to Dave Weintrop, Aditi Wagh, and Uri Wilensky for their assistance with this model.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

turtles-own [ 
  viewed?
  quality-standard
  engagement-standard
  funny-standard
  emotional-standard
  facebook-standard
  twitter-standard
  standard-set
  tweet-out
  facebook-out
  friend-out
  tweet-care
  facebook-care
  friend-care
  publicity
  recommendations
  near-neighbor
  ]

to setup
  clear-all
  ask links [ set color white ]
  generate-viewers
  reset-ticks
  linkage
end 

to generate-viewers
  crt 1000 [ 
    repeat 10 [let empty-patches neighbors with [not any? turtles-here]
    if any? empty-patches
    [let target one-of patches
      face target
      move-to target]
       ]
     set viewed? false
     set color gray
     set shape "person" 
     set quality-standard random 11
     set engagement-standard random 11
     set funny-standard random 11
     set emotional-standard random 11
     set facebook-standard random 51
     set twitter-standard random 51
     set standard-set 0
     set publicity random 101
     set tweet-out random 101
     set facebook-out random 101
     set friend-out random 101
     set tweet-care random 101
     set facebook-care random 101
     set friend-care random 101
     if quality > quality-standard  [ 
       set standard-set standard-set + 1]
     if engagement > engagement-standard [
       set standard-set standard-set + 1]
     if funny > funny-standard [
       set standard-set standard-set + 1]
     if emotional > emotional-standard [
       set standard-set standard-set + 1]
    ]
end 



;;;;;;;;;;;;;;;;;
;;;GO COOMMAND;;;
;;;;;;;;;;;;;;;;;

to initial-viewers
  ask turtles [ 
    if standard-set = 4 [
      set color yellow
      set viewed? true ]
  ]
  ask turtles [
   if count turtles with [color = yellow] = 0 [ 
  repeat random 6 [
  ask one-of turtles [
    set color yellow
    set viewed? true ] ]
  ]
  ]
  tick
end 

to go
  friend-share
  tweet-share
  facebook-share
  tick
end 

to linkage
  let num-links (200)
  while [count links < num-links ]
  [ask one-of turtles
    [
      let choice (min-one-of (other turtles with [not link-neighbor? myself])
                   [distance myself])
      if choice != nobody [ create-link-with choice ]
    ]
    ]
   repeat 5
  [
    layout-spring turtles links 0.3 1 0.05
  ]
end 

;;;
;;;SHARING & CARING PARAMETERS
;;;

to friend-share
  ask turtles [
    if friend-out < Friend-Sharing and color = yellow [
        ask link-neighbors [
          if friend-care < Friend-Check [
          set color lime ]
          ]
    ]
  ]
    ask turtles [
    if friend-out < Friend-Sharing and color = red [
        ask link-neighbors [
          if friend-care < Friend-Check [
          set color lime ]
          ]
    ]
  ]  ask turtles [
    if friend-out < Friend-Sharing and color = blue [
        ask link-neighbors [
          if friend-care < Friend-Check [
          set color lime ]
          ]
    ]
  ]
    ask turtles [
    if friend-out < Friend-Sharing and color = lime [
        ask link-neighbors [
          if friend-care < Friend-Check [
          set color lime ]
          ]
    ]
  ]
    ask turtles [
    if friend-out < Friend-Sharing and color = orange [
        ask link-neighbors [
          if friend-care < Friend-Check [
          set color lime ]
          ]
    ]
  ]
    tick
end 

to tweet-share
  ask turtles [
      if tweet-out < Twitter-Sharing and color = yellow [
        ask (turtles-on neighbors4) [
        if tweet-care < Twitter-Check [
        set color red ]
      ]
      ]
  ]  
  
ask turtles [
      if tweet-out > Twitter-Sharing and color = red [
        ask (turtles-on neighbors4) [
        if tweet-care > Twitter-Check [
        set color red ]
      ]
      ]
  ]  
ask turtles [
      if tweet-out > Twitter-Sharing and color = blue [
        ask (turtles-on neighbors4) [
        if tweet-care > Twitter-Check [
        set color red ]
      ]
      ]
  ]  
ask turtles [
      if tweet-out > Twitter-Sharing and color = lime [
        ask (turtles-on neighbors4) [
        if tweet-care > Twitter-Check [
        set color red ]
      ]
      ]
  ]  
ask turtles [
      if tweet-out > Twitter-Sharing and color = orange [
        ask (turtles-on neighbors4) [
        if tweet-care > Twitter-Check [
        set color red ]
      ]
      ]
  ]  
tick
end 

to facebook-share
  ask turtles [
      if facebook-out < Facebook-Sharing and color = yellow [
        ask (turtles-on neighbors4) [
        if facebook-care < Facebook-Check [
        set color blue ]
      ]
      ]
  ]  
  
ask turtles [
      if facebook-out < Facebook-Sharing and color = blue [
        ask (turtles-on neighbors4) [
        if facebook-care < Facebook-Check [
        set color blue ]
      ]
      ]
  ]  
ask turtles [
      if facebook-out < Facebook-Sharing and color = red [
        ask (turtles-on neighbors4) [
        if facebook-care < Facebook-Check [
        set color blue ]
      ]
      ]
  ]
ask turtles [
      if facebook-out < Facebook-Sharing and color = lime [
        ask (turtles-on neighbors4) [
        if facebook-care < Facebook-Check [
        set color blue ]
      ]
      ]
  ]
ask turtles [
      if facebook-out < Facebook-Sharing and color = orange [
        ask (turtles-on neighbors4) [
        if facebook-care < Facebook-Check [
        set color blue ]
      ]
      ]
  ]
tick
end 

to increased-views
  repeat (count turtles with [publicity > 70]) [make-node find-partner]
    tick
end 

to wander
  rt random 360
  fd 1
end 
 
 ;;;;
 ;;;; FROM PREFERENTIAL ATTACHMENT
 ;;;; This is borrowed from the Preferential Attachment Model, which 
 ;;;; borrowed from the lottery model. It adds links for the new
 ;;;; oranage people, which are generated by publicity.
 ;;;;

to make-node [old-node]
  crt 1
  [
    set shape "person"
    set color orange
    if old-node != nobody
      [ create-link-with old-node [ set color pink ]
        ;; position the new node near its partner
        move-to old-node
        wander
      ]
     set quality-standard random 11
     set engagement-standard random 11
     set funny-standard random 11
     set emotional-standard random 11
     set facebook-standard random 51
     set twitter-standard random 51
     set standard-set 0
     set publicity random 101
     set tweet-out random 101
     set facebook-out random 101
     set friend-out random 101
     set tweet-care random 101
     set facebook-care random 101
     set friend-care random 101
     if quality > quality-standard  [ 
       set standard-set standard-set + 1]
     if engagement > engagement-standard [
       set standard-set standard-set + 1]
     if funny > funny-standard [
       set standard-set standard-set + 1]
     if emotional > emotional-standard [
       set standard-set standard-set + 1]
  ]
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 


There are 2 versions of this model.

Uploaded by When Description Download
Michelle Carr over 12 years ago updated model (bug fix) Download this version
Michelle Carr over 12 years ago Initial upload Download this version

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.