SCORING
StreamerSeekerは同時接続数(同接)の多さではなく、視聴者数が「伸びている勢い」で 配信をランキングします。同接が少なくても、急に伸びている配信は上位に来ることがあります。 ここでは、その勢いスコア(momentum_score)が何を見ているかを説明します。
スコアを構成する5つの要素
配信開始からの平均ペース
配信開始からこれまでの、1分あたりの平均視聴者獲得数。「今」ではなく「これまでの平均」を見る基礎指標。
直近5分の伸び
直近5分間で増えた(減った)視聴者数。最も「今」に近いシグナルだが、揺らぎも大きい。
直近30分の伸び
直近30分間で増えた(減った)視聴者数。5分よりも揺らぎが均され、傾向を見るのに向く。
30分前との比率
30分前と比べ何%増えたか。配信規模に依存しないため、小規模な配信でも公平に評価できる。
加速度ボーナス
30分の平均ペースより、直近5分が加速しているかどうかの補助点。「伸び始めた瞬間」を捉える。
大規模配信が自動的に有利にならない工夫
「直近の伸び」を人数の絶対数のまま使うと、もともと同接が多い配信が伸び率に関係なく 自動的に有利になってしまいます。そこで、人数の絶対数(平均ペース・5分の伸び・30分の伸び)は 平方根で圧縮してからスコアに足し合わせています。人数が4倍・9倍・100倍に 増えても、スコアへの寄与はそれぞれ2倍・3倍・10倍にしかなりません。
規模に依存しない「率」を重く評価する
平方根で圧縮しても、絶対数3項目(平均ペース・5分の伸び・30分の伸び)は理論上は無制限に 伸びます。これに対抗するため、配信規模に関係ない「率」の指標(30分前との比率・加速度 ボーナス)には、固定の上限はあるものの圧縮をかけず重みを大きく設定しています。
率ベース2項目の理論上限(900点)が、絶対数3項目の現実的な値(数十〜数百点程度)と 同程度かそれ以上になるよう、意図的にバランスを取っています。
具体例: 小規模急成長 vs 大規模緩成長
実際の計算式(src/score/momentum.ts)にそのまま数値を入れた例です。
同接数では50万人差がついていても、伸びの勢いが大きい方がスコアで上回ります。
- 同時接続数
- 500人
- 直近5分の伸び
- +200人
- 直近30分の伸び
- +400人
- 30分前との比率
- +400%
- 同時接続数
- 50,000人
- 直近5分の伸び
- +300人
- 直近30分の伸び
- +1,500人
- 30分前との比率
- +3.1%
もっと詳しく(既知の限界)
- 重み・上限・閾値はすべて経験的な調整で、統計的な裏付けや系統的なバックテストは行っていません。
- 離脱率は原理的に不可視です。直近の伸びは純増減の結果しか見えず、新規流入と離脱の内訳は分かりません。
- 各取得サイクルは独立に計算されるため、同接数のわずかな揺らぎがそのままスコアの揺らぎになります。
- 「本物のバイラル成長」と「予定された一時的な集客(コラボ開始直後の一斉流入等)」は区別できません。
- 「休止からの回復」は「終始横ばい」より大幅に高く評価されます。同接が一時的に落ちてから元の水準まで戻る配信は、その回復区間でスコアが急騰します。
/dashboard の「安定」バッジは、このスコアではなく同接数自体の推移を見るため、こうした一過性の急増・急減を「安定」とは判定しません。
配信スコア(期待値モデル)
勢いスコア(momentum_score)が「今ライブ中の配信」をリアルタイムに見るのに対し、こちらは 配信が終了した後に、その1本の配信が「統計的に期待される水準と比べて どれだけ伸びたか」を振り返るための指標です。スポーツ分析でよく使われる期待値モデル (xG=期待ゴール数)と同じ発想で、時間帯・曜日・配信の長さ・チャンネル規模・配信者自身の 普段の実績から「このチャンネルが、この条件で配信したら統計的にどれくらいのピーク同接数が 期待されるか」を重回帰(最小二乗法)で予測し、実際の値との差をスコアにします。 各配信者の配信者ディレクトリから個別ページに進むと確認できます。
予測に使っている5つの説明変数
曜日(土日かどうか)
配信開始がJSTで土日かどうか。土日は同接が伸びやすい傾向をあらかじめ補正する。
配信開始時刻
配信開始時刻(JST)を24時間周期で表現したもの。深夜・早朝など、時間帯による伸びやすさの違いを補正する。
配信時間の長さ
配信時間(分)の対数。長時間配信ほどピーク同接が伸びやすい傾向を補正する。
チャンネル登録者数
登録者数の対数。チャンネルの規模そのものによる下駄(大規模チャンネルほど有利になる効果)を補正する。
配信者自身の過去平均
同チャンネルの他配信のピーク同接平均(対象配信自身は除く=leave-one-out)の対数。配信者自身の普段の地力を補正する。
スコアの見方(イメージ)
この回帰モデルは、蓄積されている全配信者のデータをまとめて1本だけ学習する設計のため、 係数(期待値の基準)はデータが増えるたびに変わります。momentum_scoreの具体例(上の セクション)のように毎回同じ数値が再現される検算済みの例ではなく、あくまで「読み方」の イメージとして見てください。
- 実際のピーク同接
- 3,200人
- 統計的に期待されるピーク同接
- 900人
もっと詳しく(算出条件・既知の限界)
- 終了済みの配信が全体で30件(
MIN_STREAMS_FOR_REGRESSION)に満たない間は、回帰自体が成立せず算出できません。統計的な理想(70〜140件)にはまだ届いていない暫定的な閾値です。 - 回帰係数は全チャンネルのデータをプールしてグローバルに1本だけ学習しています。「箱(org)ごとに時間帯の効きやすさが違う」といった交互作用までは捉えられません。
- 配信記録が1件しか無いチャンネルは、配信者自身の過去平均(leave-one-out)の元データが無いため、データが蓄積されていても算出対象になりません。
- ピーク同接数だけを見ているため、配信全体の伸び方の安定性(一瞬だけ跳ねたのか、終始高かったのか)は区別しません。
- 登録者数スナップショットが無いチャンネル(登録者数フェッチ未実行・登録者数非公開)も対象外です。
詳細な計算式は docs/stream-performance-score-logic.md を参照してください。