フィルターバブルはどう生まれる? ― PowerShellで「おすすめが狭まる」単純モデルを動かす

AI・機械学習カテゴリを表すパンダのイラスト AI・機械学習

この記事について
この記事は、生成AIを活用した自動生成フローで作成しています。フィルターバブル研究の論文を確認し、概念を理解するための単純な教育用シミュレーションをPowerShellで作成しています。

検証ステータス:📘 論文確認済み・教育用モデル実装済み・実際のSNSアルゴリズムを再現するものではありません

フィルターバブルはどう生まれる? ― PowerShellで「おすすめが狭まる」単純モデルを動かす

フィルターバブルは、パーソナライズされた情報環境の中で、接触する情報が偏る現象を説明するときに使われる言葉です。ただし、現実の情報環境は検索、フォロー、友人関係、本人の選択、推薦などが混ざるため、単純な1つの式で説明できるものではありません。

そこで今回は、概念を触って理解するために、あえて単純化します。

教育用ルール

  1. コンテンツを -100〜100 の位置で表す

  2. 推薦側がユーザーの興味位置を推定する

  3. 近い候補を表示する

  4. ユーザーが1件クリックする

  5. 推定値をクリック側へ寄せる

  6. 教材上、推定に自信が付くほど表示件数を7件から2件へ絞る

最後のルールは教材が意図的に追加したものです。実際のYouTubeやXが同じロジックで動いているという意味ではありません。

# コンテンツを-100〜100の架空の位置に並べます。


# 実際の政治・SNS分類を意味する値ではなく、学習用の数直線です。

$content = -100,-80,-60,-40,-20,0,20,40,60,80,100

# この仮想ユーザーは45付近を好む、という設定です。

$hiddenInterest = 45.0

# 推薦側は最初、興味を知らないので0から推定を始めます。

$estimate = 0.0

for ($round = 1; $round -le 12; $round++) {

    # 教材上、Roundが進むほど表示候補数を7件→2件へ絞ります。


    # 実サービスがこの式を使っているという意味ではありません。

    $take = [math]::Max(2, 7 - [math]::Floor(($round - 1) / 2))

    # 現在の推定値に近いコンテンツから並べ、上位だけ推薦します。

    $recommended = $content |
        Sort-Object { [math]::Abs($_ - $estimate) } |
        Select-Object -First $take

    # 表示された候補の中から、ユーザーの本来の興味に最も近い1件を


    # クリックしたと仮定します。

    $clicked = $recommended |
        Sort-Object { [math]::Abs($_ - $hiddenInterest) } |
        Select-Object -First 1

    "Round $round : count=$take shown=$($recommended -join ',') clicked=$clicked"

    # 新しい推定値を、以前70% + 今回クリック30%で更新します。


    # いきなり100%移動せず、過去の推定も残す単純な平滑化です。

    $estimate = 0.7 * $estimate + 0.3 * $clicked
}

Roundが進むと、教材上の候補数が減り、推定位置もクリックへ寄っていきます。

エコーチェンバーとの違い

フィルターバブルは「見える情報の偏り」、エコーチェンバーは「似た意見の人や情報の中で同じ考えが反響・強化される状態」と分けて考えると理解しやすいです。

ただし研究結果は一枚岩ではありません。検索やSNS経由が反対意見との接触を増やす面も報告されており、「推薦がある=必ず狭まる」と断定するのは避けます。

GitHubサンプル

論文・一次情報

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました