Word-of-mouth with Information Seeking

Word-of-mouth with Information Seeking preview image

1 collaborator

Default-person Samuel Thiriot (Author)

Tags

complex networks 

Tagged by Samuel Thiriot 3 months ago

diffusion of innovations 

Tagged by Samuel Thiriot 3 months ago

diffusion of technology 

Tagged by Samuel Thiriot 3 months ago

social networks 

Tagged by Samuel Thiriot 3 months ago

word of mouth 

Tagged by Samuel Thiriot 3 months ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.0.3 • Viewed 73 times • Downloaded 1 time • Run 0 times
Download the 'Word-of-mouth with Information Seeking' 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?

Studies on word-of-mouth identify two facets in the transmission of information: seeking and spreading. People seek out for information when they become aware of an innovation, in order to gather the expert knowledge required to understand it. Only when they are aware and expert, people can decide to adopt or reject. Past models only saw word-of-mouth as one dimensional epidemic dynamics (Susceptible, Infective, Removed); here we provide a minimalist model to study what happens if we consider both awareness and expertise. In this model, a small proportion of the population is initially holding expertise; the question is how many agents will achieve to gather it because of advertisement or peers raising their curiosity.

Information seeking is only possible if an individual can hold at least two levels of knowledge, namely awareness and expert knowledge:

* **awareness**: does the individual knows the existence of the innovation, even if s/he does not understand it? Encoded as 3 levels: U, S, A

* **U**naware: the individual does not know the existence of the innovation

* aware & **S**eeking: the individual heard about the existence of the innovation, and is curious of it, so s/he is seeking for more information around him/her

* passively **A**ware: the individual knows the existence of the innovation but is not searching for information (maybe s/he did before)

* **expertise**: the individual holds expertise, either because he’s interested in this domain/brand/category of innovation or because someone else passed him this expertise. We define it as 3 levels: I, P, K

* **I**gnorant: the individual does not know the expert knowledge required to understand the innovation

* knowledgeable & **P**romoting: the individual discovered the expert knowledge, and because s/he understands the interest of it, is promoting it

* passively **K**nowledgeable: the individual holds the expert knowledge, does not spread the word proactively, but answers questions if questioned

The goal of an institution driving a communication campaign is to **achieve to have a population which is not only aware, but also holds the expert knowledge required to assess it**. Using the model, one can explore the following questions:

* is it more efficient to design advertisement so people are curious of it and engage into information seeking (parameter curiousness), or make them speak about it when they understood the innovation (parameters supporters and enthusiastic)?

* what it is the impact of the social network on the diffusion dynamics?

* how efficient is word-of-mouth for individuals to retrieve the expertise scattered throughout the population?

## HOW IT WORKS

Each agent in the population represents an individual. Individuals have **constant characteristics** constant during the simulation:

* _curious_ individuals start seeking out information when they become aware; else they are just passively aware.

* _enthusiastic_ individuals start promoting the innovation when they receive the expertise after being aware

* _supporter_ individuals start promoting the innovation when they receive the awareness after being knowledgeable

Individuals also have a **state of knowledge** which evolves during the simulation. It is made of both awareness and expertise knowledge, so individuals hold a tuple (awareness, expertise), for instance (Unaware, Ignorant) for most of them, or (Unaware, Knowledgeable) for people holding the generic expertise but unaware of the innovation of interest.

During initialization, a population of agents is created being in state (Unaware, Ignorant), meaning agents first do not know the existence of the innovation (awareness knowledge) and also don't hold the expertise required to understand it (expert knowledge). A proportion "initial-proportion-knowledgeable" is set to (Unaware, Knowledgeable): they are not aware of the existence of the innovation, but they hold the expertise required to understand it (for instance because they know the category of production, a similar innovation, the brand of the product, attended a training, etc.).

At setup time, the network indicated as a parameter is also loaded and used as a social network in the model. This network defines the structure of interactions in the population.

Also during initialization, agents are randomly assigned three personality characteristics: curious, enthusiastic, supporter, according to the parameters "proportion-curious", "proportion-enthusiastic", "proportion-supporter" defined by the user.

Each time step (tick):

1. the advertisement campaign reaches a given proportion of the population and sends them awareness.

2. the individuals linked together are offered the possibility to interact. If one of them is in state Seeking or Promoting, then an interaction takes place; each individual transmits its knowledge to the other individual.

The individual state of knowledge is driven by the following rules (which are easier to understand with the figures on the related publication, see "how to cite" below):

* when an (Unaware,Ignorant) agent receives awareness (by advertisement or an interaction): he becomes (Seeking,Ignorant) if he is _curious_, else he becomes (Aware,Ignorant)

* when an (Unaware,Ignorant) agent receives expertise (through an interaction): he becomes (Unaware,Promoting) if he is _enthusiastic_, else he becomes (Unaware,Knowledgeabe)

* when a (Seeking,Ignorant) individual is seeking since more than a timeout parameter _duration-seek_, he becomes (Aware,Ignorant) (meaning he stops seeking)

* when a (Seeking,Ignorant) individual receives expertise (through an interaction): if he is _enthusiatic_, he stops seeking and starts promoting, thus becomes (Aware,Promoting). Else he stops seeking and becomes passively Knowledgeable: (Aware,Knowledgeable).

* when an (Aware,Ignorant) individual receives expertise: if he is _enthusiatic_, he becomes (Aware,Promoting), else he becomes (Aware,Knowledgeable)

* when an (Unaware,Promoting) individual receives awareness, he gets awareness and keeps promoting, so he becomes (Aware,Promoting)

* when an (Unaware,Promoting) individual is promoting since more than a timeout parameter duration-promoting, he becomes (Unaware,Knowledeagble) (meaning he stops promoting)

* when an (Unaware,Knowledgeable) individual receives awareness, it means someone expert discovers the innovation; if he is _supporter_ he becomes (Aware,Promoting), else he becomes (Aware,Knowledgable)

## HOW TO USE IT

Set _proportion-curious_, _proportion-enthusiatic_, _proportion-supporters_ to 0.3; set _initial-proportion-knowledgeable_ to 0.03; that's a way to see many things to happen. Click "setup" then "run".

## THINGS TO NOTICE

Look at the "diffusion" plot. The green and orange curves represent the people Seeking and Promoting the innovation; the diffusion of knowledge is first bootstrapped by people who Seek out for information (if there are enough curious) and thus also propagate the existence of awareness. There is first a _diffusion of seeking_: an "hype" is increasing in the population of people who want to know more. Then when people Seeking for information achieve to find expertise held by one of the few initial experts, they hold the expertise and can pass it back to others. Information seeking acts as a bootstrap for expertise retrieval.

Notice that at the end of the simulation, a large part of the population got the expertise, despite the very low initial proportion of expertise in the population (3%).

Look at the network view of the population. Green edges mean someone discovered awareness thanks to this edge; orange than expertise was propagated; purple that both occurred. At the beginning many awareness cascades happen, where each Seeker is "contaminating" other curious entities. When a Seeker meets an expert, then he becomes expert, and can thus answer the questions asked by people around him; so there is the apparition of "information retrieval chains" in purple, in which individuals A made B curious who made C curious, C gets expertise from D, then C becomes knowledgeable, then tells expertise to B, who passes it to A, etc. This type of chain is capital in the model, and raises the question of their actual existence in the field.

Note how on the diffusion plot the S-curve of the proportion of awareness is always way higher than the curve "AK" (Aware and Knowledgeable). Measuring the impact of advertisement would only measure how many people were made aware, but would not quantify how many people hold enough information to understand and adopt the innovation.

## THINGS TO TRY

Set _proportion-curious_ to 0, so there is no information seeking anymore, falling back to a pure epidemic setting. Explore the proportions of enthusiastic and supporters required to reach high levels of awareness and knowledge at the end of the simulation.

Try also a high proportion of curious and few enthusiastic and supporters; observe how we actually need both seeking and promotion to reach efficient information diffusion.

## ADVANCED USAGE

For computing large simulations, it is better disabling the graphical user interface using the "with-gui" switch at the bottom of the interface.

## NETLOGO FEATURES

Network loading, generation, display, usage to represent a social network.

## HOW TO CITE

If you mention this model in a publication, we ask that you include the citations below.

Samuel Thiriot, Word-of-mouth dynamics with information seeking: Information is not (only) epidemics,

Physica A: Statistical Mechanics and its Applications,

Volume 492, 2018, Pages 418-430,

ISSN 0378-4371,

https://doi.org/10.1016/j.physa.2017.09.056.

(http://www.sciencedirect.com/science/article/pii/S0378437117309482)

Comments and Questions

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

Click to Run Model

extensions [nw]

globals
[
  ticks-for-peak-A ;; the tick for the max of Awareness (was never higher later)
  last-max-peak-A
  ticks-for-peak-AK ;; the tick for the max of AK (was never higher later)
  last-max-peak-AK
  ticks-last-activity ; the last tick when something happened
]

;; defines the type used for links
undirected-link-breed [edges edge]

;; "turtles" (in the good old netlogo terminology)
;; represent individuals holding states for awareness and an expertise
;; they are also nodes in the social network
turtles-own
[
  unaware?           ;; state on the awareness dimension: if true, the turtle is unaware
  seeking?           ;; state on the awareness dimension: if true, the turtle is seeking (aware and search for info)
  aware?             ;; state on the awareness dimension: if true, the turtle is aware (and not seeking)
  ignorant?          ;; state on the expertise dimension: if true, the turtle is ignorant
  proactive?         ;; state on the expertise dimension: if true, the turtle is knowledgeable and proactively passing the word
  knowledgeable?     ;; state on the expertise dimension: if true, the turtle is knowledgeable but passive

  ; characteristics which remain constant
  curious?            ;; if true, this individual would like to seek actively information
  enthusiastic?          ;; if true, thisindividual would ike to promote his knowledge
  supporter?

  time ; if > 0, the time to remain in this step
]

;; "links" represent social links.
;; their states are just used to understand what happens during the simulation
;; (visualisation) but not for computations.
links-own
[
 cascade-awareness?
 cascade-expertise?
 chain-retrieval?
]

to-report result-A
  report (count turtles with [not unaware?] / count turtles)
end 

to-report result-AK
  report count turtles with [(not unaware?) and (not ignorant?)] / count turtles
end 

to-report genlab-outputs
  report ["result-AK" "result-A" ]
end 

to setup-network-load
  ;; load the network from the file and also initialize their state
  show "creating network"
  nw:generate-watts-strogatz turtles links count-individuals count-neighboors 0.1
   [
    ; for visual reasons, we don't put any turtles *too* close to the edges
    setxy (random-xcor * 0.8) (random-ycor * 0.8)
    set size 1.5
    set unaware? true
    set seeking? false
    set aware? false
    set ignorant? true
    set proactive? false
    set knowledgeable? false
    set time 0
  ]
   show "loaded links and turtles"
   show count edges
   show count turtles
   ;; also layout it for beauty purpose
   if (with-gui) [
    ifelse (count-individuals < 1500) [
     show "network graphical layout..."
      layout-radial turtles links (turtle 0)
     repeat 200 [layout-spring turtles links 0.1 5 5]
    ] [
      show "too many nodes for a beautiful layout, doing a quick layout, sorry"
      layout-radial turtles links (turtle 0)
    ]
   ]
  show "end of init, let's play!"
end 

to setup

  clear-all

  setup-network-load
  setup-turtles

  ; init the characteristics
  ask turtles [
    set curious? false
    set enthusiastic? false
    set supporter? false
  ]

  ask n-of (proportion-curious * count turtles) turtles [
    set curious? true
  ]
  ask n-of (proportion-enthusiastic * count turtles) turtles [
      set enthusiastic? true
  ]
  ask n-of (proportion-supporters * count turtles) turtles [
        set supporter? true
  ]

  ask turtles [
    set shape "circle"
    if curious? [ set shape "triangle" ]
    if enthusiastic? or supporter? [  set shape "square"]
    if curious? and (enthusiastic? or supporter?) [set shape "pentagon"]
      if (with-gui) [ set-color ]
  ]



  set ticks-for-peak-A 0
  set ticks-for-peak-AK 0
  set last-max-peak-A 0
  set last-max-peak-AK 0
  set ticks-last-activity 0

  ask n-of (initial-proportion-knowledgeable * count turtles) turtles [ become-knowledgeable ]

  ask links [
    set chain-retrieval? false
    set cascade-expertise? false
    set cascade-awareness? false
    set color gray
  ]

  reset-ticks
end 

to setup-turtles
  if (with-gui) [ set-default-shape turtles "circle" ]
end 

to go
  ; stopping condition
  if (
    ((ticks < advertisement-duration) and not (any? turtles with [ proactive? or seeking? or unaware?]))
    or
    ((ticks >= advertisement-duration) and not (any? turtles with [ proactive? or seeking?]))
    )
    [ stop ]

  ; change the state of agents which are in timeout
  manage-timeouts

  ; inform with advertisement
  if (ticks < advertisement-duration) [
    ask n-of (advertisement-proportion-per-step * count turtles) turtles [ receive-advertisement ]
  ]
  ; change from proactive to knowledage, or seeking to aware
  exchange-info

  ; detect outputs related to time
  update-ticks-detection

  tick
end 

to update-ticks-detection
  let prop_A (count turtles with [aware?] / count turtles)
  if (prop_A > last-max-peak-A) [
    set ticks-for-peak-A ticks
    set last-max-peak-A prop_A
  ]

  let prop_AK (count turtles with [not unaware? and not ignorant?] / count turtles)
  if (prop_AK > last-max-peak-AK) [
    set ticks-for-peak-AK ticks
    set last-max-peak-AK prop_AK
  ]

  set ticks-last-activity max list ticks-for-peak-A ticks-for-peak-AK
end 

to set-color
  if (with-gui) [
  if (unaware? and ignorant?) [ set color gray set label "UI"]
  if (unaware? and proactive?) [ set color orange  set label "UP"]
  if (unaware? and knowledgeable?) [ set color brown set label "UK"]

  if (seeking? and ignorant?) [ set color green set label "SI"]

  if (aware? and ignorant?) [ set color gray set label "AI"]
  if (aware? and proactive?) [ set color red set label "AP"]
  if (aware? and knowledgeable?) [ set color violet set label "AK"]


  ; these cases are errors
  if (seeking? and proactive?) [ set color green set label "!SP" print "illegal SP" print who]
  if (seeking? and knowledgeable?) [ set color green set label "!SK" print "illegal SK" print who]

  ]
end 

to become-unaware ;; turtle procedure
  set unaware? true
  set seeking? false
  set aware? false
  set time 0
  set-color
end 

to become-seeking  ;; turtle procedure
  if (unaware?) [
    set unaware? false
    set seeking? true
    set aware? false
    set time duration-seek
    set-color
  ]
end 

to become-aware  ;; turtle procedure
  set unaware? false
  set seeking? false
  set aware? true
  set time 0
  set-color
end 

to become-ignorant ;; turtle procedure
  set ignorant? true
  set proactive? false
  set knowledgeable? false
  set time 0
  set-color
end 

to become-proactive ;; turtle procedure
  ;show "becoming proactive"
  set ignorant? false
  set proactive? true
  set knowledgeable? false
  set time duration-proactive
  if (seeking?) [ set seeking? false set aware? true ]
  set-color
end 

to become-knowledgeable ;; turtle procedure
  set ignorant? false
  set proactive? false
  set knowledgeable? true
  set time 0
  if (seeking?) [ set seeking? false set aware? true ]
  set-color
end 

to inform-someone
  ask one-of turtles [ become-proactive ]
end 

to advertise-someone
  ask one-of turtles [ receive-advertisement ]
end 

to receive-advertisement
  if unaware?
  [
    if (ignorant?) [
      ifelse (curious?) [ become-seeking] [ become-aware]
    ]
    if (knowledgeable?) [
      become-aware
      if (supporter?) [ become-proactive]
    ]
  ]
end 

to receive-knowledge
  ;show "receive knowledge"
  if ignorant?
  [
   ;show "receive knowledge 2"
   ifelse enthusiastic? [ become-proactive ] [ become-knowledgeable ]
  ]
end 

to manage-timeouts

  ask turtles with [time > 0 and (seeking? or proactive?)]
    [
      set time (time - 1)
    ]
  ask turtles with [proactive? and time = 0]
     [
      become-knowledgeable
     ]
  ask turtles with [seeking? and time = 0]
     [
      become-aware
     ]
end 

; when agent a1 meets a2, then a2 will receive any piece of unknown information from a1

to-report exchange-info-agents [ a1 a2 ]
  let exchange false

  if ( (not [unaware?] of a1) and ([unaware?] of a2)) [
    ask a2 [receive-advertisement]
    set exchange true
  ]

  if ( (not [ignorant?] of a1) and ([ignorant?] of a2)) [
   ask a2 [receive-knowledge]
   set exchange true
  ]

  report exchange
end 

to exchange-info

  ; by default, all the links are gray

  ; drive a given number of links
  ask n-of (probability-link-meeting * count links)  links
  [

    ; so these links are at least active
    ; set color white

    if ( ( [seeking?] of end1 ) or ( [seeking?] of end2) or ( [proactive?] of end1 ) or ( [proactive?] of end2 )) [
     ; the interaction takes place

      let ignorant-before? [ignorant?] of end1 or [ignorant?] of end2
      let unaware-before? [unaware?] of end1 or [unaware?] of end2
      let seeking-before? [seeking?] of end1 or [seeking?] of end2

      let exchange12 (exchange-info-agents end1 end2)
      let exchange21 (exchange-info-agents end2 end1)

      if [not ignorant?] of end1 and [not ignorant?] of end2 and ignorant-before? [
       set cascade-expertise? true
       if seeking-before? [
         set chain-retrieval? true
       ]
      ]
      if [not unaware?] of end1 and [not unaware?] of end2 and unaware-before? [
       set cascade-awareness? true
      ]
      set color gray
      if chain-retrieval? [
          set color violet
          set thickness 0.4
      ]
      if color = gray and cascade-awareness? [
        set color green
        set thickness 0.4
      ]
      if color = gray and cascade-expertise? [
        set color orange
        set thickness 0.4
      ]

    ]

  ]
end 

; Copyright 2016 Samuel Thiriot.
; See Info tab for full copyright and license.

There is only one version of this model, created 3 months ago by Samuel Thiriot.

Attached files

File Type Description Last updated
Word-of-mouth with Information Seeking.png preview Preview for 'Word-of-mouth with Information Seeking' 3 months ago, by Samuel Thiriot Download

This model does not have any ancestors.

This model does not have any descendants.