コミュニティ参加型の飲食店の評点投稿webサイトにおけるやらせ問題について

万が一にも訴訟に巻き込まれないように持って回ったタイトルになってしまった... 夕べログ(ゆうべろぐ)に似てたり似てなかったりする某webサイトを巡る騒動の話ね.
G社の(今はどれだけ使ってるのかよく知らない)PageRankの類推でちょろっと考えた範囲では,こんな感じでいいんじゃないかなー
評者 i による店 j の評点を p_{ij} \in \mathbb{R}^+ (非負実数)と置く.これはデータとして与えられる数値である.評者 i は各々固有の信頼度 (authority) \alpha_i \in [0,1] を持つ.これは本稿の計算で求めたい値だが,とりあえず初期値として 1 を選んでおく.これを重みとして各店 j に対し評点の重み付き平均 \mu_j標準偏差 \sigma_j を求める:
 \mu_j \equiv \frac{\sum_i \alpha_i p_{ij}}{\sum_i \alpha_i}

これら2つは評点の分布に関する最も基礎的な統計量である.これらを元に各評者の信頼度を更新しよう.そのために各評点データが分布にどれだけ沿うものか,または外れているものか,を示す量を導入しよう.呼び名は何でもよいがとりあえず "eccentricity" \epsilon_{ij} とし,ありがちだが以下のように定義する:
 \epsilon_{ij} \equiv \frac{|p_{ij} - \mu_j|}{\sigma_j}
なお評者 i が店 j に評点を与えておらず評点 p_{ij} が欠損値 N.A. ならば \epsilon_{ij} = N.A. である.
信頼度 \alpha_i の更新は,これら "eccentricity" (のうち値をもつもの)の関数として計算すればよかろう.そのための関数形には様々なものが考えられるが,とりあえず以下の要請を満たしてほしい気がする:

  1. \epsilon_{ij} に対し連続な狭義単調減少関数であること
  2. \alpha_i(0,0,...,0) = 1 かつ \alpha_i(...,\infty,...)\to 0
  3. 全ての引数に関し対称であること: \alpha_i(..., \epsilon_{ij}, ..., \epsilon_{ik}, ...) = \alpha_i(..., \epsilon_{ik}, ..., \epsilon_{ij}, ...)
  4. (各引数の取り得る範囲は \mathbb{R}^+ なのに対し)値域は [0, 1] であること

ということでとりあえず幾何平均ベースで
\alpha_i := \exp\{-\text{GeomMean}_j[\epsilon_{ij}]\}
と選ぼう*1.幾何平均だとさっきの "eccentricity" に現れた絶対値の処理を一緒にまとめられる(自乗として処理できる)おまけ付き!
ここまでをまとめると,与えられた行列 (p_{ij}) に対し以下の方程式系を満たす固有ベクトル? (\alpha_i) を求めるという問題に帰着する:
すげー酷い非線形になった... 逐次計算で収束するとうれしいけど,この式見ると全然その保証が無いなぁ.
TODO: SOPA騒動が収まったらenwpから重み付き標準偏差の式をコピってきてTeX打ちすること.

*1:うっ... \epsilon_{11}=0, \epsilon_{12}\to\infty のときに条件を満たさないような...