どこからスパムになるか


今回のテーマであるが、

どこからがスパムになるか

である。
SEO初心者からよく質問されることである。
その逆にSEOをやり過ぎてわけがわからなくなってしまったり、ペナルティを受けるという経験をした人からも同じような質問を受ける。

  • ページ内のキーワード比率がどれくらいになったらスパムになるか?
  • アンカー内のキーワードはどれだけバラエティを必要とするのか?
  • ページの類似度がどれくらいだと複製ページとみなされてしまうのか?
  • 文字数が何文字以上ないと評価されないのか?

といった質問だ。とてもよくありがちであり、答えもとても簡単だ。

「明確な基準はない」

というだけである。

しかし、こう考えればいい。

「検索エンジンがなかったとしても、そんな作り方をしたか?」
「人間が見たときに不自然ではないか?」

二つの観点で考えれば非常にわかりやすい。
この観点はスパムを判別する場合に役に立つ。

この観点から考えると、上記の4つの質問には明確な答えがないことがわかると思う。
だから、明確な基準がないのである。

さて、ではGoogleはスパムをどうやって判定しているのだろう?

キーワード比率がもしスパムの要因だとするならば、どうやってGoogleは比率を元に、

「このページはスパム」
「このページはスパムではない」

と決めているのか?

我々には正確なところを知ることはできないが、スパムメールの判別に近い原理だと考えられる。
実際にスパムメールの判別で使われている技術は使われているはずだ。

スパムメールを判別する最も原始的な方法は、キーワードによるものだ。
私も昔はこんな方法で会社の公開アドレスに来るメールを自動的にゴミ箱に捨てていた。

例えば、

「Viagra」
「出会い」
「人妻」

こんなキーワードがあるメールは、無条件でゴミ箱行きといった受信ルールを設定することである。
ところが、この方法には2つの問題がある。

  1. 設定キーワードが含まれないスパムメールは抜けてしまう
  2. 設定キーワードが含まれている普通のメールがゴミ箱に行ってしまう

特に後者は問題が大きい。
重要なメールを見落としてしまう可能性があるからだ。

「恩師との出会い」

といった文章があった場合、これもゴミ箱行きとなってしまう。

だからこんな単純な原理ではスパム除去は実現できない。

キーワード比率が何パーセントを超えたらスパムになる。
という考え方は、上記のスパムメールの判別とまるで同じである。
この原理ではあまりに雑で、使い物にならない。

検索キーワードの比率が5%を超えたらスパム確定などという都市伝説もあったが、そんな簡単な原理であるわけがないのだ。

メールの例で考えてみよう。
メールのスパム判別は「ベイズ推定」という手法で行われている。

どういうことかというと、こんな感じである。

全国民から10人がランダムで選ばれて、100メートル走でどの人が勝ちそうか?を予想するといった場合。

  • 年齢
  • 性別
  • 身長
  • 体重
  • 過去に経験したスポーツ
  • 視力
    中略
  • 最終学歴
  • 趣味
  • 好きなファッションブランド
  • 右利き・左利き
  • 出身地

数百に及ぶ情報があらかじめ与えられているとする。
人間が予想する場合は、

20歳の人は80歳の人より
60Kgの人は100kgの人より
陸上経験者はスポーツ経験なしより

それぞれ早いだろう。
といった予想をすることで、当てずっぽうよりははるかに高い確率で当てることができる。

情報の中には、上記の3つのような役立つ情報もあれば、ほとんど役に立たない情報も含まれている。

さて、人間はある程度予想を立てることができるが、コンピューターは全く何が有利なのかを最初は知らない。

しかし、何回もレースを繰り返して行くと、だんだんどの要因が勝率に影響するのか、判別できるようになってくる。
何万回、何十万回と繰り返すと、かなりの確率で当てることができるようになるだろう。

例えば(実際のデータではない)平均と比べてみて

過去のスポーツで陸上経験者は30%有利
年齢は17歳が最も高く、16歳はそれより1%・68歳は85%不利とか
出身地は福井県が3%有利
好きなファッションブランドではアディダスが5%有利
・・・

といったような膨大な統計結果が得られる。
データが積み重なると様々なデータを総合して、かなり高い精度で予想ができるようになる。

これがベイズ推定の大まかな原理である。
検索エンジンも同じ原理での推定をしているであろう。

文章の中のキーワードの比率だけではない。

その全体の中に出現する他のキーワードの出現頻度とか、キーワード間の距離とか、タイトルとか、被リンクページ内のキーワード出現比率とか、アンカーのキーワードとか、文章内での出現位置とか、文字の装飾の有無・種類とか、単語数とか、リンク先のコンテンツの他のページとの重複度とか、・・・

ありとあらゆる分析可能なデータを取得し、総合的にスパムとはどのようなものなのか?
をベイズ推定(などといったほうがよいだろう)を使って推測していると考えられる。

だから、何々がどれくらいだったらスパムになるのか。なんて単純なものではない。

どこからがスパムになるのか?

という質問は愚問で、考えても仕方がないとしか言いようがないのだ。


ベイズ推定はサンプルを多くすれば、高い精度を得ることができる。
Googleはほぼ無限とも言えるほどの文書のサンプルを持ち、分析結果を貯えている。

非常に高い精度でスパムを認識できているはずだ。

しかし、あくまで確率を高めることができるだけであって、この手法では完全にスパムを判別することができない。
メールのスパムフィルターは典型的にそうだが、

間違ってスパムではないと認識することは相対的には大きな問題ではない。
正常なメールをスパムだと認識してしまうことが大きな問題だ。

スパムフィルターはどの値からをスパムとするかの値を変えることができる。

Googleは高い確率でスパムを認識できているはずである。
しかし、誤って価値あるページをスパムと判定してしまうと、利便性の大きな低下、Webマスターからの不信感が大きくなる。
この値をあえて、安全圏のところで止めているのだと私は考えている。

Googleはその気になったらいつでもスパムを根絶やしにすることができる、と思っておいたほうがいいかもしれない。