社会的影響とアンフォローのエコチェンバー現象の助長

# 論文
この記事は下記の論文の内容をまとめたものである。
Sasahara, K., Chen, W., Peng, H., Ciampaglia, G. L., Flammini, A., & Menczer, F. (2020). Social influence and unfollowing accelerate the emergence of echo chambers. Journal of Computational Social Science, 1-22.
分析に用いたコードは下記のリポジトリにあるらしい。
https://github.com/soramame0518/echo_chamber_model

# 概要
本論文はエージェントベースモデルを使用して、どのようなメカニズムでNetwork segregation（つながりが2つに物理的に分かれてしまう現象）とOpinio polarization（意見が2つに分かれてしまう現象）が生じるのかを検討した論文。これはエコチェンバーとも呼ばれる。このエコチェンバーが生じる要因として、情報から影響を受ける（influence）ことと、意見の異なる者とはネットワークを取り外す（unfriend）ことを指摘している。

# 背景
Network segregationとOpinion polarizationという現象がソーシャルメディアやオンラインニュースで確認されている。前者はネットワークが複数のグループに分かれる現象、後者はそのようなグループ内で意見が類似する傾向である。下の図がその例である。この図は2010年のアメリカでの選挙の際にある政治関係のハッシュタグがついたTwitterのデータを可視化したもである。ノードはTwitterのユーザーを表し、エッジはそのユーザーがリツイートしたツイート元のユーザーを表す。色は赤が保守派、青がリベラル派を意味する。

![スクリーンショット 2021-01-10 22.43.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1014432/625df919-70bf-1aad-d686-065b36c5203c.png)

このような現象はフィルターバブルやエコチェンバーと呼ばれる。ここで、エコチェンバー現象に関するこれまでの研究の結果は全てが整合的ではない。本論文ではinfluenceとunfriendの2つに注目してNetwork segregationとOpinion polarizationという現象がどのように生じるのかを研究する。それを通してエコチェンバーの理解を深める。

# 方法
### 初期設定
$N$のノードと$E$の有向なエッジを持つランダムな有向グラフ（ネットワーク）を考える。ノードはユーザーを、エッジはフォロワー関係を意味する。
次に、各ユーザーは意見$o ([-1, +1])$を持っているとする。
続いて、各ユーザーにはスクリーンがあり、そこにもっとも最近の複数の$l$個のメッセージがディスプレイされる。
そのメッセージにはそれぞれ$m$という意見が反映されている。
仮に、ユーザーの意見$o$とメッセージの意見$m$の差が$\epsilon$よりも小さければ（$|o - m| < \epsilon$）ユーザーとそのメッセージは「意見一致」となり、そうでなければ「意見不一致」とする。$\epsilon$はどのくらいの差を許容するかを表現するパラメータである。

### 処理の流れ
$t$ステップで以下の処理を実施する。
まず、ランダムにユーザー$i$を選択する。
そのユーザー$i$はスクリーン上$m$のメッセージを確認する。
仮にメッセージが「意見一致」ならばそれに沿って自身の意見$o$を変更。変更の仕方は下記のように表現できる。下記を【式1】とする。

$$
o_i (t+1) = o_i (t) + \mu \frac{\sigma_{j=1}^l I_{\epsilon} (o_i (t), m_j)(m_j - o_i (t))}{\sigma_{j=1}^{l} I_{\epsilon}(o_i (t), m_j)}
$$

${}$ここで$\mu$は影響力の強さを表現するパラメータで、$I_{\epsilon}$は下記のような指示関数である。すなわち、「意見一致」なら1、「意見不一致」なら0をとる。

```math
I_{\epsilon} = \left\{
\begin{array}{ll}
1 & (|o - m| < \epsilon) \\
0 & (otherwise)
\end{array}
\right.
```

【式1】の意味を具体的に考える。例えば、ディスプレイには4つのメッセージがあるとする（$l=4$）。また、これら4つのメッセージには下記のような意見があるとする。

```math
m_1 = 0.2 \\
m_2 = -0.5 \\
m_3 = 0 \\
m_4 = 0.8 \\
```

$t$時点のユーザー$i$の意見$o_i(t)$を-0.3、$\epsilon$を0.6としよう。また$\mu$を1としよう。そうすると【式1】により$t+1$時点のユーザー$i$の意見$o_i(t+1)$は以下のように計算できる。

$$
-0.3 +1 ×  \frac{1 × (0.2-(-0.3)) + 1 × (-0.5-(-0.3)) + 1 × (0-(-0.3)) + 0 × (0.8-(-0.3))}{1 + 1 + 1 + 0}
$$

${}$このように、「意見一致」の場合はそのメッセージが持っている意見（$m$）の方向へとユーザーの意見（$o$）が引っ張られることをモデル化している。本論文ではinfluenceとunfriendの2つに注目していたが、これはinfluenceをモデル化している。

次に下記のような設定を考える。
$p$の確率でスクリーン上の「意見一致」のメッセージを再投稿（リツイート）。もしそうしなければ、$1-p$の確率で新しいメッセージをポストする。なお、ポストしたメッセージはユーザーの意見と同じ（$m=o$）としている。

続いて下記のような設定も考える。なお、これはunfriendをモデル化している。
$q$の確率でスクリーン上の「意見不一致」のメッセージを選択し、その投稿者をリンクから外し、代わりに他の者を以下の3つの方法のいずれかでリンクに加える。

【方法1】ランダムにグラフからリンクがつながっていない者を選択
【方法2】もしスクリーン上にあれば、リツイートのオリジナルの投稿者を選択
【方法3】最近に「意見一致」のメッセージを投稿した者でまだリンクが繋がっていない者を選択

# 結果
### 結果
結果は下記の図の通りである。ここでは【方法1】が選択されているが、その他の方法でも同様の結果が得られた。また使用したパラメータは下記の通りである。

```math
N = 100 \\
E = 400 \\
\epsilon = 0.4 \\
\mu = 0.4 \\
p = 0.5 \\
q = 0.5 \\
l = 10
```

![スクリーンショット 2021-01-11 18.48.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1014432/5d500ca1-fd0e-00fd-1762-a45ab7b1cfa0.png)

Aはステップごとにメッセージの多様性が減少している様子を示している（Shannonのエントロピー）。Bは各ユーザーの意見（$o$）が2つに収束していく様子を示している。最後にCはネットワークの形が変化してる様子を示している。これらの図からNetwork segregationとOpinion polarizationが生じていることが見てとれる。

### パラメータの変更
${}$それではどのような状況でNetwork segregationとOpinion polarizationが生じるのか。まず$\epsilon$の影響をみていく。
$\epsilon$の変化は下記の図のように最終的な意見のまとまりの数と意見の多様性に影響があった。

![スクリーンショット 2021-01-11 20.01.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1014432/00f08c08-74d3-3d8c-00e4-6788bd613214.png)

$\epsilon$が大きくなると最終的な意見のピークが小さくなり、意見の違いの最大値も小さくなる。
すなわち、許容度が高ければOpinion polarizationは生じにくくなることを意味している。

$\epsilon = 0.4$に固定して、$\mu$と$q$の変化に対する影響も見ていく。結果は下の図の通りである。下の図は左から$\mu=0.1, q=0$、$\mu=0, q=0.1$、$\mu=0.1, q=0.1$に設定している。$\mu$はinfluenceの強さを調整するパラメータ、$q$はunfriendの頻度を調整するパラメータである。

![スクリーンショット 2021-01-11 20.06.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1014432/40b69ff5-b47f-22d0-33c9-73f9a04820b0.png)

${}$図からわかるようにunfriendの影響がない場合（$q=0$）（A）、Network segregationは生じないがOpinion polarizationが生じる。また、influence（$\mu=0$）の影響がない場合（B）、Network segregationは生じるがOpinion polarizationは生じない。最後に、どちらの影響も存在する場合、Network segregationもOpinion polarizationも生じる。

最後にunfriendの3つの方法の変化が結果に与える影響を確認したが、これら3つのの方法を変化させても意見の数や多様性には影響が見られなかった。すなわち、エコチェンバー状態を助長するのは「どのようにunfriendするか」ではなく「unfriendするかしないか」に依存するものである。
ただし、【方法3】の場合収束するスピードが早まった。さらに、最終的なネットワークに出現する閉じられたトライアドの数が変化した。多い順に、【方法2】、【方法3】、【方法1】となった。最後に、最終的に生まれるネットワークの次数分布にも影響を及ぼした。【方法1】に比べて【方法2】と【方法3】はより尖った分布、すなわち一部のノードがより多くのノードと繋がっている不平等な状態に陥りやすい。

#### 実証データとの整合性
${}$2010年のアメリカでの選挙の際にある政治関係のハッシュタグがついたTwitterのデータを用いてモデルの整合性を検討する。
まず、Twitterの実証的な先行研究から$p=0.25$とする。すなわち25%の確率でリツイートを行う。また、こちらも先行研究から$l=10$とする。ユーザーは画面上に10のメッセージをみていることを意味する。初期のネットワークを決定するパラメータである$N$は上記のTwitterデータと同様とし、$E$は全くランダムとする。また、パラメータスキャン（パラメータスキャンが何かよくわからないが、おそらく「試行錯誤」）により$\mu = 0.015$、$\epsilon = 0.65$に設定した。
実際のデータとの整合性を確認する方法は下記の通り。まず、上記のパラメータのもとではシミュレーション終了後必ず物理的にネットワークが別個になるが、現実世界ではそのようなことはあり得ない。そこで、現実世界と同程度のNetwork segregationが生じたところでシミュレーションをストップする。なお、Network segregationの指標としては下記を使用。

$$
s = 1 - \frac{|E_b|}{2d|C_{+}C_{-}|}
$$

${}$シミュレーションデータにおいて、$C_{-}$は意見$o$が0より小さい場合に分類されるクラスター、$C_{+}$はそれ以外である。また、$E_b$は両者のクラスターを結ぶエッジの数、$d$はネットワーク密度（張ることのできるエッジの数に対する、実際のエッジ数）である。

ただここで、Twitterデータはリツイートデータ、シミュレーションの結果はフォロー関係のデータである。そこで、後者のデータからリツイートデータを作成した（処理中に$p$の確率で再投稿するとあったが、それを使用した）。

以上のように作成されたシミュレーションデータと実際のTwitterデータを比較する。その結果、閉じられたトライアドの割合が実際のデータとconsistentだった。また、実際のTwitterデータにおいてハッシュタグの使われ方に着目してbinaryな意見を連続量に落とし込んだ。その上でエージェント同士の意見$o$の差の平均を確認したところ、その分布はどちらも2峰になっていた。ここから現実のデータとも整合的な結果が今回のモデルから得られることがわかった。