2008年1月13日日曜日

クロスレコメンドの効果は?

2006年の春から始まったディレクトリサービスにクロスレコメンドというものがある。これはWebサイトを複数の大手ポータルサイトのディレクトリに登録するサービスである。4万2000円を払い審査に通るとgooやexcite,biglobeなど相当たるサイトのディレクトリに登録される。さてこのサービスにはどれ程のSEO効果があるのだろうか?ちなみに巷ではアクセスアップおよびSEOに対して効果があると様々なメディアで取り上げられていたり、あるサイトではほとんど検索順位が上がらずSEO効果はなかったと書かれていたりと賛否両論である。まあしかし実際にクロスレコメンドに登録して順位が上がったとしても今の検索エンジンは複雑なのでそれがクロスレコメンドへの登録によるものなのか他の要因によるものなのかなどは分かる術はない。そこで検索エンジンのアルゴリズムを考慮してクロスレコメンドの効果について考えたいと思う。
 まず効果があると思われる点が、信用の置ける大手ポータルサイトからのリンクされるという点、それも複数のドメインからのリンクであるという点である。
 質の低いスパムサイトに多数リンクしているようなページからのリンクであればほとんどSEO的には効果がないが、大手ポータルサイトのような質の非常に高いサイトからのリンクは非常に有用なものとなる。さらに複数の大手ポータルサイトからのリンクを受けることになるのでその効果はかなりのものであると言える。また相互リンクではSEO的な効果は半減してしまうが(検索エンジン側でアルゴリズムを公開しているわけではないのでおそらくとしか言えないが常識的に考えればそうだろう)受けるのは一方的な被リンクなわけであるからこれもかなりSEO的にプラスに働いてくるといえる。さらにヤフーディレクトリと比べて登録サイトが少ないのでこの点でもSEO的にプラスである。
 逆に効果が減少してしまうんじゃないかという懸念要素として、検索エンジンの高度化によるクラスタリング機能がまず第一に考えられる。クラスタリング機能とは検索エンジンが内容の似通ったページを類似ページ、ミラーページとしてみなすことである。類似サイトとみなされたページからのリンクはSEO効果が下がるかあるいは全くリンクとしての価値がなくなってしまう恐れがある。ところでこのサービスのリンク集はクロスレコメンドが作っているので、リンク集はgooであってもexciteであってもniftyであってもほとんど同じとなる(リンク先ページとその説明は完全に同じ、サイトのデザイン部分が違うだけ)。すなわちこれらのリンク集は互いに類似ページとみなされてそのSEO価値を失う可能性は大いにある。現在グーグルではクロスレコメンドのディレクトリに対してこのクラスタリングがなされていると思われる節がある。グーグルのバックリンク情報を調べたときにクロスレコメンドと契約しているポータルサイトからのリンクが1つしか出てこない場合が多いからである。(gooからのリンクだけバックリンクとして表示されている場合が多い、ただし実際にクラスタリングされているかどうかはイマイチよくわからない)、YSTに関しては今のところそのような節は見当たらないが、ヤフーディレクトリ側としてはクロスレコメンドは競合サービスといえるのでヤフーディレクトリに登録するよりクロスレコメンドに登録した方がYSTに効果があるなんて事になっては絶対にいけない。だからYSTのアルゴリズムを近々変更してクラスタリング機能を強化してくる可能性は大いにあり得る話だと思う。
 その他のSEO効果が減少する要素としてはリンク集サイトのSEO価値の低下、ディレクトリサービスが始まってから経た年月が少ない(2006年サービス開始、検索エンジンは昔からあるサイトを重視する傾向がある)ということなどが挙げられる。まあこれは最初のクラスタリングに比べたらあまり重要な要素ではないが。
 で、結局総合して考えてクロスレコメンドの効果はどうなんだって事なんですけどグーグルの検索エンジンに対しては割と大きな効果が期待できそうです。クラスタリングに引っかかるとしてもページランクの値の配分に関してはクラスタリングとは何の関係もないです。クラスタリングで他の要因がマイナスになるんでしょうけどそれでもYahooディレクトリに登録するよりはクロスレコメンドに登録したほうが効果が高いと思います。またYSTに関してですけど、こちらはヤフーディレクトリへの登録よりは効果が薄い気はしますがYSTはポータルサイトからのリンクを重視する傾向があるのでそれなりには効果が望めそうです。下手すればヤフーディレクトリを上回る効果が得られるかもしれません(まあ後々上回らないように手を打たれるような気もしますがw)
 まあ複数の大手ポータルサイトがそれぞれ独自にディレクトリを作っていたと仮定してそれに全部登録するよりはSEO効果が薄いけれどもそれなりのSEO効果は十分に望めるのではないかというのが私の見解です。審査もヤフーと比べれば優しく値段も安いので試しにクロスレコメンドに登録してみたらどうかと思います。

 

2008年1月9日水曜日

検索連動広告の掲載順位の決定法など・・ Predicting Clicks

今回の話は検索エンジンの検索連動広告についてである。どの広告をどの順番で表示すれば検索エンジン側の収益の最大化、ユーザの満足度の向上が図れるかという問題についてが書かれてある。クリック率が分かっているならば話は早いのであるが新しい広告に対してはクリック率は過去のデータがないのでわからない。そこで新しい広告に対するクリック率を様々な手法を用いて推定してやるというのが本論文の核となるところである。ちなみにこれはマイクロソフトからの研究発表であるがビジネス要素が強いこのような研究を表に出してもいいのか?と疑問が残る・・・まあ取り合えず貴重な論文ということで・・・邦訳・要約しておいたのでブログに載せときます。論文の詳細はhttp://delivery.acm.org/10.1145/1250000/1242643/p521-richardson.pdf?key1=1242643&key2=0763889911&coll=GUIDE&dl=GUIDE&CFID=49087471&CFTOKEN=54138199です。具体的な表や計算式はこちらを参照願います。またまた図や式が汚くて申し訳ないです。ワードからグーグルdocに移してそこからブログに投稿しているので汚くなるわけです。もう少し互換性をどうにかして欲しいものです。ちなみに検索連動広告を考えている人に一言いっておくと、この論文のような内容が既に検索エンジン側で実装しているとしたら、たとえ個人運営のサイトが大手の会社より多くのクリック単価を払ったとしても大手より検索順位が低くなってしまう事がかなりありそうです。クオリティの低いサイトはお金を払っても認めてもらえないということですね、頑張ってコンテンツの充実などを図りましょう!

1.イントロダクション

ほとんどの主要な検索エンジン会社は今日検索結果の隣に配置されるテキスト広告によって利益を得ている。これはクリックがユーザによってされる度に料金が広告主から検索エンジン会社へ支払われるという仕組みをとっている。このモデルをクリック単価型成果主義と呼ぶ。検索エンジン側の収入とユーザの満足度を最大にするためには、システムがそれぞれの広告に対するユーザの挙動を予測して、可能な限りユーザにクリックを促さなければならない。サーチエンジンは過去に広告がクリックされたかでユーザの挙動を予測することができる。例えば100回広告が表示されてクリックが5回されたならば、その広告のCTR(click-through rate)は0.05と推測することができる。しかしこの予測は新しい広告が入ってきた場合、すなわち過去のデータが利用できない場合は使うことができないという問題がある。

この論文では、私たちは新しく作られた広告がクリックされる可能性を予測する。我々は広告それ自体(広告の長さ、使用されている単語)、広告が指し示すページ、関連する広告の統計情報などを用いて新しい広告の将来的なCTRを合理的に予想する。


2.モチベーション

検索エンジン広告システムの主要な仕事は、サーチエンジンが受け取ったそれぞれのクエリに対してどんな広告を表示するかと、その順番をどうするかを決定することである。大抵広告主は広告が現れる状況をクエリ指定などにより既に指定してしまっているのでサーチエンジン側はマッチした広告を減らすことさえ考えれば良い。

 ユーザが広告をクリックする確率は広告の表示位置によって大きく変わってしまうので、サーチエンジンにとって最も効果的な広告を最も目立つ位置に持ってくることが収入増を考える上で非常に重要な要素になる。しかも広告数が増加傾向にあり、与えられたクエリに対して適合する広告の数は効果的な広告表示枠の数を大きく上回ってしまうことが多くさらに広告の表示位置決定は重要さを増してきている。

 広告の質(ユーザのクリックによって計測される)と総収益を最大にするためにほとんどの検索エンジンは期待収益(クリック率とクリック単価の積)の順に広告を並べ替えている。例外としてYahooはクリック単価の順番のみで並び替えているが今後期待収益の順に並び替びかえる事を検討している。それゆえ理想的な広告の並び替えを実現するには広告のクリック率を推定することが必要となる。

 表示回数が多い広告ではクリック率は単純にクリック数を表示回数で割ったものと推測できる。ところが広告のクリック率は基本的にかなり低い(2.6%程度)ため推定の誤差が非常に大きくなってしまう。例えば真のクリック率が5%であるとして85%の信頼区間でクリック率が4%~6%だと判断するには1000回広告が表示されなければならない。

不正確な広告掲載順位のランキングはユーザと広告主の満足度を低下させ、収益もダウンする。それゆえ新しくて広告表示回数が少ない広告に対して我々は過去履歴を見る以外の手段でクリック率を予測する方法を発見しなければならない。新しい広告や広告主のために広告がクリックされる確率推定することがこの論文で述べられるシステムの目的である。

 先行研究としてRegelsonとFain[19]が同じ入札語や同じトピックのクラスタによって新しい広告のクリック率を推定するというものがある。しかし我々の経験上同じ語であっても広告のパフォーマンスは大きく異なると言う事を知っている。このことを説明するために入札語以外の特徴を取り入れて考える必要がある。後述するが我々のモデルではそのような特徴を自然な形で取り入れている。


3.検索広告の骨組み

広告がクリックされるには

  1. ユーザが広告を見る

  2. ユーザが広告をクリックする

の2つの段階を経る必要がある。ここでユーザが広告を見るかどうかは広告の掲載位置のみに依存し、見られた上で広告がクリックされるかは広告の掲載位置に依存しないと仮定すると、あるポジションである広告がクリックされる確率は次のように表される。

ここでCTRをと定義する。

CTRとの減衰曲線からすべての場所での広告のクリック率を推定することができる。

 何度も表示された広告に対しては簡単にCTRを予測することができる。

広告が見られた回数=広告がクリックされた回数+クリックはされていないが見られたと思われる回数であり、広告掲載位置ごとの広告が見られる確率は実験で調べることができ、クリックされていないが見られたと思われる回数は推定することができる。最後にクリック数を広告が見られた回数で割るとCTRを求める事が出来る。

 我々の目的は新しい広告に対してこのCTRを予測することである。次のセクションではモデルの学習・テスト用のデータについて述べて、その後モデルの詳細について述べていく。



  1. データセット

我々はマイクロソフトのサーチエンジンで実際に使われている広告についての情報を集めた。それぞれの広告には以下の情報が含まれている。

    • Landing page:クリック先のURLの情報

    • Bid term(“keywords”):広告が表示されるのに必要なクエリ(広告主が事前に入力しておく)

    • Title:広告のタイトル

    • Body:広告についてのテキストの説明

    • Display URL:広告下に表示されるURL

    • Clicks:広告が何度クリックされたか

    • Views:広告が何度閲覧されたか(第3章で述べた仮定を用いる、広告の表示回数ではなく、閲覧回数は表示回数に広告掲載位置による減衰係数を掛けたものになる。)

広告主は1万、50万を超えるキーワードに対して広告の数は100万以上、10万を超える広告のテキスト

トレーニングセットとして広告主の70%、検証用として広告主の10%、テスト用として広告主の20%を選んだ。

広告のViewがあまりに少ないと実験で求めたCTRと真のCTRがかなりずれてしまうのでViewが100以下の広告は除くことにした。(トレーニングセットで学習するにあたりView数が大きい方がCTRの予測精度はノイズが少なくなるため良いが、一定のView数を獲得できなかった広告を排除してしまうため偏ったデータとなってしまう。そこでバランスを考えて100という数字を設定した。)


  1. モデル

我々はCTRを予測するためにロジスティック回帰を使うことを考える。ロジスティック回帰は値を0~1の間で予測するため本質的に確率の問題に適している。

 

(モデルのここからははっきり言って良くわからない取り合えず様々なツールを使い、情報を精度が出やすいように正規化している)

ここでは広告のi番目の特徴の値であり、は特徴の学習した重みである。

特徴はある単語が含まれているかどうかやタイトル中の単語の数などであるが詳しくは後述する。

ロジスティック回帰はL-BFGS手法[16]を用いて訓練された。我々はゼロ平均ガウス重みを用いてクロスエントロピー損失関数を使い最適な標準偏差σの値を求めた。(よくわからない)最適なσの値は検証セットからσ=0.1であった。よく行われることだが我々はいつも1にセットされるようなバイアス特徴を加えた。

それぞれの特徴に対して我々はの生成された特徴と、を加えた。1を加えた理由は最低の値を0にするためである、我々は特徴をゼロ平均になり、単位標準偏差を持つように正規化した。異常値を持つ特徴もあったので、偏差値55以上のものは55、偏差値45以下のものは45となるように調整した。これらの調整により制度の向上が見られた。

 我々の計測方法は、モデルにより予測されたCTRと真のCTRのKL-divergenceをとるというものである(KL-divergenceは低いほうが良い)。この場合KL-divergenceは一回の広告のビューの結果をエンコードするために必要となるビット数を示している。我々のベースラインモデルは単純にトレーニングセットの平均のCTRを予測することである。(トレーニングセットのCTRの平均 = テストセットの広告のCTR とする?)


  1. 入札語のCTRの予測

全体の平均のCTRとある入札語のCTRの間にはかなりの差異がある。よって広告のCTRを予測するに当たって、他の同じ入札語、あるいは関連した語のCTRを用いるのが有効である。

6.1 語のCTR

最初の特徴は、同じ入札語の他の広告のCTRである。これをトレーニングセットの広告の平均とうまく組み合わせると次のような式になる。

ここではある入札語を与えている広告主の数ではそれらの広告の平均のCTRである。またはすべてのトレーニングセットの平均のCTRを表している。

我々はロジスティック回帰に(の事だと思う)も特徴として加えた。この2つの特徴をTerm CTR feature setと呼ぶことにする。結果はテーブル1のようになり、誤差を13%減らすことが出来た。

    1. 関連語のCTR

RegelsonとFain[19]の場合と同様に、ある広告の入札語と関連した入札語を持つ広告のを利用したい。そこで入札語の部分集合と上位集合を考える。広告集合を考える、広告の入札語をtとすると、tにm語付け加えたものをと表し、tからn語を取り除いたものをと表し、t からm語付け加えてn語取り除いたものをと表す、これらの集合の総数はで与えられる。ここでこれらの集合のCTRの平均値を次の式により取る

これが関連広告の平均クリック率となり、6.1のをで置き換えて同様の計算をしたところさらに6%の精度の向上が見られた。


  1. 広告の質を予測する

前章ではCTRを入札した語だけに基づいて推測したが、それだけでは十分ではなく、入札語が同じでも図3のようにCTRにはかなりの差が生じていることが分かる。そこでこの章

では広告そのものの特徴がよりよいCTRの予測に使えるのかを試したい。そこで広告をクリックするかどうかの判定基準となるような要因を考えてみた。その結果次のようなものが挙がった。

Appearance

広告が審美的に喜ばしいか

title,body内のの単語数、効果的に大文字を取り入れているか?、エクスクラメーションが多すぎないかなど

Attention Capture

広告がユーザを引き込むかどうか

title,body内にbuy,join,

subscribeなど行動を示す言葉が入っているか、値段が書かれているかなど

Reputation

広告主が知られているか?または有名なブランドであるか?

ファーストドメイン(.comなど)、ドメイン長、セグメント数(books.comだと2セグント,books.something.comだと3セグメント)、短くて良い.comドメインは広告主が大きくて一流である場合が多い

Landing page quality

クリック先のページの質

フラッシュを含んでいるか、イメージの割合、W3Cの規定を遵守しているか、スタイルシートを使っているか、広告で覆われていないかなど

Relevance

どれだけ検索クエリが広告と関連しているか

入札語がtitleに現れるか?bodyに現れるか、bodyに現れるならその割合は?

全部で81の特徴を5つのカテゴリから挙げた。

我々はユニグラムの特徴も加えた。広告のトレーニングセットのtitleとbody中で最も使用頻度が高い10000の語に対して、語が存在したら1の値を、存在しなければ0の値をつけた。これらの特徴は我々が手動でとった特徴の機械版を意図している。これにより我々が発見できなかったような特徴もカバーできるかもしれない。

この結果さらに4%精度が向上した。しかしユニグラムの特徴を使わない場合わずか1%しか精度が向上しなかったのが驚きであった。


  1. 命令の詳細さを計測

例えば

Title: Buy shoes now,

Text: Shop at our discount shoe warehouse!

Url: shoes.com

Terms:{buy shoes,shoe,cheap shoes}

というように広告主が命令を与えておくと、広告主は靴を買いに来る人のみを限定的に狙っているということになる。ところが

Title:Buy [term] now,

Text: Shop at our discount warehouse!

Url:store.com

Terms:{shoe,TVs,grass,paint}

と命令を与えるとより広い層の顧客をターゲットしていることになる。ターゲットの絞込みが弱いともいえる。そしてターゲットの絞込みが弱いとCTRも下がってしまうのではないかと我々は考えているのでこれを実証してみる。

ターゲットの広さを測るために、我々は語のカテゴリーエントロピーを計測することにする。方法はまずTermsの語をWebサーチにかけ、その結果得られるスニペットをテキスト分類アルゴリズムにかけることでそれぞれの語を74のカテゴリーに分類する。そのあと入札語のカテゴリの分布のエントロピーを測り、それを特徴として用いる。我々は入札語の個数も特徴として加えた。エントロピーの特徴と入札語の数の特徴は命令の特異性を扱ったものである。この結果はテーブル3のようになりさらに5.5%程度精度が向上した。


9. データの外部ソースの利用

さらに広告が持つデータ以外のデータを使って2つの特徴を加える。検索ヒット件数と検索回数である。我々は検索回数とCTRの関係を発見した。この関係は図5のようになる。図5より検索回数の多い語はクリック率が高いことが分かる。これらの特徴を考慮して実験したところテーブル4のようになった。ベースラインからだと3%精度が向上したにも関わらず、前章までの組み合わせで実験すると0.5%しか制度が上昇しなかった。これは前章までの特徴の何かと今回の特徴とがオーバーラップしているからである。


10 結果の討論

10.1 特徴の有用性

それぞれの特徴セットを独立してCTRの予測に用いると、どの特徴がより予測に有効なのか興味が出るところである。そこでそれぞれの特徴セットを独立に計測してKL-divergenceをとったところ広告の質が12%(人手でつけた特長とユニグラムの特徴、ユニグラムだけだと10.2%)でエントロピーの特徴が8.9%でサーチデータのセット(検索回数とヒット件数)が3.1%であった。

ロジスティック回帰モデルなので、我々はそれぞれの特徴の重みを知ることができる。その結果はテーブル5のようになった。

ユニグラムの特徴はテーブル6のようになった。これによるとofficialなどがトップに上がってきていることから、ユーザはより権威ある、一流のサイトを好んでクリックする傾向があるといえる。またquotes(見積もり),trial(試用),compareなどより限定的なユーザをつかむような単語が使われている場合のクリック率は低くなった。

それぞれの特徴の有用性をつかむのも面白いが、最も実用的なことはできる限り最終的なモデルに多くの特徴を含ませる事である。これによりどんな広告に対しても的確に予測できるようになるのである。

10.2 初期化後の進化?

我々のモデルはCTRをいくらか正確に予測することができるが、いったいどれくらいのViewがあればCTRが十分に推測できるのであろうか?ベースラインモデルと特徴を用いたモデルの、Viewの数とCTRの誤差の関係を表したグラフは図6のようになる。これによると100回のView、表示回数に換算すると約200~300回の表示でベースラインモデルの誤差と特徴を用いたモデルの誤差が同じになることが分かる。特徴を用いたモデルは100回Viewがあるまでの期間でうまく作用し、収益増をもたらしてくれる事が分かる。

10.3 より多くのViewを持った広告

よりView数を多く持った広告をトレーニングセット、テストセットに選びCTRの予想に用いるとより正確なCTRを予測できる。よって1000Viewを超えた広告のみをトレーニングセット、テストセットに選び同様の実験を行ったところテーブル7のような結果が得られ精度が向上した。しかし1000Viewを超えるような広告は優良な広告が多くデータにかなりバイアスがかかってしまっている。


11 将来への考察・展望

  • この分野の研究があまりなされていないので、誰でも研究、比較できるように標準となるデータセットが必要である。

  • 将来的にはユーザのクエリ情報を用いて、ユーザのクエリと入札語が完全に等しい場合、緩く当てはまる場合などを考慮する必要がある。(緩い例:広告主がパソコンという語が入ったクエリに対して広告を表示するという条件を与えておくと、“パソコン”というクエリ以外にも“中古パソコン”、“パソコン修理”といったクエリに対しても広告が表示される。)例えばクエリと入札語の類似度などを特徴として用いれば、今回のモデルをそのまま適用することができる。

  • RegelsonとFain[19]の手法を追加の特徴として取り入れて我々の手法と比較してみたい。

  • 実際に実用化させるにあたっては、CTRの予測を広告の表示順位を決めるために使う以外に、広告主にCTRを向上させるアドバイスを与えるために使いたい。

  • その他、人による直感的な判断、広告サイトへの再訪問率、滞在時間、またデータを蓄積することで得られる広告主の質などを特徴として加え、さらなる精度の向上を図りたい。

2007年11月19日月曜日

最新のSEO関連研究 コンテンツスパムの発見法

検索エンジンのコンテンツに関してスパムにならないようにはどうしたら良いか、キーワードが5%が最適とか言っている前に最新の論文を読んだほうが良いだろう。ということでWorld Wide Web Conference2006からそれに該当する論文を読んで要約してみた、これを理解すればどのような行為がスパムになるのかが良くわかるはずである。SEO業者も必見かと思います。

論文はこちら このグラフはこの論文中のものを指しています。 また計算式がみにくいですけどこれも論文中のものを見てもらえれば助かります。

Detecting Spam Web Pages through Content Analysis


  1. Introduction

サイトのクオリティを高める努力をせずに検索エンジンのランキングを外部リンクや人気キーワードのサイトへの埋め込みなどによって不正に上昇させるような行為を検索エンジンスパムという。英語のサイトの13.8%はスパムサイトであるといわれているがこれを看破できないサーチエンジンはリソースの約7分の1を浪費してしまい、更にはサーチエンジンのクオリティの低下でユーザが離れてしまうのでどうにかしなければならない。

これらを防ぐために

  1. Webの大きさを考ると人手を介さず自動でスパムサイトを発見しなければならない

  2. 正統な(スパムでない)サイトをスパムとみなしてはいけない。

  3. クエリーをユーザーが投げる前にはスパムを発見したい(そうすることで無駄なロボット巡回、クエリー処理、インデキシングを省くことができリソースを有効活用できる。)

この論文で我々はスパムを発見する様々な方法、また効率、精度よくスパムサイトを発見するアルゴリズムを作るために、如何に個々の方法を統合する機械学習技術を使ったかを示す。

この論文の構成は次のようになる

§2:実験概要、実世界データセットの紹介

§3:データセット中のスパムの蔓延度合いをドメイン、言語別で比較

§4:スパムの発見する方法を説明

§5:我々の手法の評価

§6:関連研究

§7:結論と将来への展望


2.実験概要とデータセット

データセット:MSNサーチエンジンが収集したサイトデータから105,484,446(約1億)のページをランダムで取ってきたもの。

厳密にはMSNサーチが取り込むデータ自体もスパム排除プログラムを潜り抜けたものであるからランダムとは言えないが。しかし実際にユーザが目にするのはそのようなサイトであるし、我々の実験で得られた結果も、真の意味でランダムでとってきたのよりも悪くなるはずなので控えめな見積もりということができるので十分にこの論文の価値はあるといえる。

  1. どれくらいスパムがあるの?

この章では、どれくらいスパムがWeb上に蔓延しているのかと、トップドメイン名、国などで区切った時あるページの集合が他のページの集合に比べてどれくらいスパムが多いのかを調べていく。Figure2はどのトップレベルドメインにスパムが多いかを調べた結果であり、Figure3は言語によるスパムサイトの割合である。この二つの実験からスパムはかなりの割合でWebに蔓延しており、また特定のドメインはスパムだらけである。これらの調査はスパム発見手法に生かしていく。


  1. 内容に基づいたスパムの発見

我々のWebDBの論文[8]で、我々はスパムの発見手法を数多く説明したが、その中には完全にページの内容と独立したものもある。(リンク構造やDNSレコードを使ったもの)また一方で内容が解釈されていないもの(ページの進化状況、(構造的に?)似たようなものをクラスタリングする)もある。

 この論文では、我々は全てコンテンツに基づいたスパム判定を行う。

 我々は1億のデータから最も多数ある(54%)英語のページをランダムで17168ページ取得してそのそれぞれに対して人手でスパムページかそうでないかを仕分けした。そのうち13.8%がスパムページで86.2%がスパムページでなかった。この章の残りで我々が研究したコンテンツに基づくスパム発見手法を詳細に説明していく。


    1. ページ中の単語数

スパムページは人気キーワードをとかく詰め込む傾向があるので、過剰な数の単語がスパムの指標になるのかを調べ、その結果は図4のようになった。確かにページ数が多いほどスパムの割合は高くなるが全ての範囲でスパム率は50%を切っているのでこれだけでスパムかどうかを判定するわけにはいかない。


    1. ページタイトル中の単語の数

スパムの常套手段のもう一つとしてページタイトル中に単語を詰め込むというものがある。そこで我々はページタイトルに含まれる単語数とスパムの関係を調べ、その結果は図5のようになった。図4と図5を比べると図5のページタイトルに含まれる単語数の方がスパムを判断する上で良い指標となるといえる。


    1. 単語の平均の長さ

クエリを複数語を指定して投げる時にスペースを入れない人がいるのでそれを狙って単語をつなげているページがある。例えば”freepicture”,”freemp3”などなど。そこで単語の平均アルファベット数とスパムの関係を調べてみたところ図6のようになった。単語の長さが8文字をすぎるとかなりスパムの割合が高くなることがわかる。


    1. アンカーテキストの量

リンクはアンカーテキストとなっているが、単に他のページにリンクの渡すためだけのカタログページが存在する。そのようなサイトは大量の初リンクがあるのでアンカーテキストの単語が全単語に占める割合とスパムとの関係を調べた。その結果図7のようになった。ややアンカーテキストの割合が高いほどスパムの確率は上昇するがあまり顕著ではなかった。


    1. 見えているコンテンツの割合

マークアップでない単語の総バイトをページの総バイト数で割ったところ図8のようになった。これからスパムページはマークアップ(スクリプトやスタイルシートなども含む)が普通のサイトより少なく人にサイトを見せるための装飾等を省いているといえる。


    1. 圧縮率

冗長なコンテンツがあるページは圧縮器をかけることによりサイズを縮小できる。例えば同じ単語が何度も使われていたりすると圧縮率は高くなる。そこでGZIP[14]という圧縮器を使って圧縮率とスパムの関係を調査して、その結果が図9のようになった。 


    1. ページ中で一般的に良く使われる単語が含まれる割合

スパムページは検索エンジン対策のため文章が不自然になっている可能性があるので、データセットで上位200位までの頻出単語が全文章中でどれくらいの割合で使われているのかを調べ、それとスパムとの相関を図10に示した。この結果スパムページは一般的に使われている単語をあまり使っておらず偏りがあることがわかる。


    1. 一般的に良く使われる単語の割合

データセットで上位500位までの頻出単語のうち何種類がページ中に含まれているかを求めスパムとの相関を調べた。4.7の場合例えばページ中に”a”とだけ書かれた文字があったとするとスコアは1となるが4.8の場合は1/500となる。うまく4.7の欠点を補う意味で調査をした。その結果図11のようになったが全体的に控えめな結果となった。


    1. 独立したN-gramの可能性

スパムページは文法的におかしい傾向が強いためn-gramにより文書の傾向を調べた。理想的には文法的かつ意味的に正確さを追求したいのだが、計算量が多くなるため統計的な手法であるn-gramを用いることにした。

という式でまずあるn-gramの発生率を求める。分母はngram全体の数、例えばngramはオーバーラッピングするので3gramで5個単語があるとすれば最初の3つ、真ん中の3つ、最後の3つで合計total number of ngram = 3 となる。分子はこれら3つの重複数で最初、真ん中、最後の全てが異なる場合1となるし、最初と最後が同じで真ん中が異なると最初と最後の値が2となり真ん中が1となる。

この式から文書全体のn-gramの発生率のようなもの(文書中にはk個のn-gramを持った文書の確率は個々のPの確率の積であると書かれているがまったく理解できない)を取り、それを文書の長さによる差がでないように正規化すると

となる、これをコンピュータの誤差が出にくいようにさらに変形して

とする。この式からわかることはngramで共起する回数が少ないほどlogPの値が小さくなる、すなわち負の値が大きくなるためIndepLHの値が大きくなる。また逆にngramで共起回数が多いほどlogPの値が大きくなり、すなわち負の値が小さくなるためIndepLHの値は小さくなるということである。(これ以上は理解不能)

図12はこのIndepLHの値とスパムとの関係である。極端にngramでの共起が少ないときと多いところにスパムが集まっている。共起が多いときは同じ表現を繰り返し何度も使っているスパムであると判断できる、また(グラフのどこからその根拠を得ているのかは不明だが)起こりそうにないngramで構成されている文書はよりスパムである確率が高い、おそらく文法的にありえない文書を使っているからであろう。


4.10 条件付ngramの可能性

と条件付確率を定義するとより計算量が増えるかわりに精度が上がるらしい。(どう、または精度が向上するのかはよくわからないがとにかくより良い手法らしい)そして後は4.9と同じようにして計算してスパムとの関係を調べると図13のようになった。大体図12とライングラフが一致している。(結局あまり大差ないやん)。


5.今までのデータを組み合わせて分類器の生成

今までのデータを用いて分類器を生成して、ページがスパムであるかスパムでないのかを求めた。これを行う技術としては決定木、ルールベース技術、ニューラルネット、サポートベクターマシンを使った。そのうちで最も分類精度が良かったのは決定木のC4.5というアルゴリズムである。C4.5は簡単に説明すると最も分類精度が高い順にルートから木を生成していくというアルゴリズムである。分類例は図14のようになり、再現率と精度はテーブル1のようになった。


5.1 分類の正確さの改善

より分類器の正確さを上げるために我々は最も有名な2つの技術「bagging」と「boosting」を使おうと思う。

Baggingの説明

  1. もとのデータセットからN個のデータセットを作る。その時各データセットはもとのデータセットからそれぞれn個のデータをランダムで選んだものとする。(それゆえデータセット間のデータの重複は許される)

  2. N個のデータセットそれぞれについて分類器を作成する

  3. それぞれの分類器を使ってスパムかスパムでないかを判別する。

  4. 最終的な結果は分類器の多数決によって決める。

これがBaggingの概要であるが今回はN=10,n=15453で実験して行ってみたところ結果は表2のようになり正確さは上昇した。

Boostingの説明

  1. 最初に全てのデータに1/nの重みを割り当てる(今回の場合n=15453)この重みはトレーニングセットの中で一つデータを取り出した時に該当するデータである確率である。

  2. この重みを使って分類器を生成する

  3. 分類した際にスパム・ノンスパムの分類を間違えたデータは重みを増やし、正解したデータは重みを減らす(つまり学習例として適しているデータの重みを増やすってことだとは思う)

  4. 2.3を繰り返す(今回の場合10回)

  5. 10個分類器ができるのでスパム・ノンスパムの判定は重み付投票で決める。

これにより分類してみたところ結果は表3のようになりかなり改善が見られた。

6.RELATED WORK

  1. 機械学習の関連研究

C4.5を使ったEmailの分類[16,28]
これは人が読むものに対するスパムだが我々は検索エンジンのロボットが読むためのスパムを発見するという意味で異なる。

  1. スパムの役割やシステムについて

    • Henzingerら[15]はスパムがサーチエンジンにもたらす脅威を認めた

    • Perkins[25]が数多くのスパムテクニックを定義しGyongyiとGarciaMolina[13]がよりそれを詳細に分割した。

    • DeStefano[20]はWebスパムと宣伝の関係を指摘(調べてみたらあるサイトのリンクポピュラリティを故意に上げよう(あるサイトを宣伝しよう)とした時に現れるリンク構造を発見したみたいな内容であった)

スパム手法は一般的にリンクスパム、内容スパム、クローキングに大別できる

  1. リンクスパムについて

  • Davison[7]は早い時期にリンクスパムについて調査しており、縁故主義のリンクについて考察している

  • Amitayら[2]はリンク構造をルールベースの分類器に入れてリンクスパムを発見する手法を提案

  • Baeza-Yateら[3]はページランクを上げるために示し合わせたリンク形態の研究を示し、Adaliら[1]はあるページにリンクを張るためのみにページを生成することが最も効率的なスパムの手段である事を示した。(今では古いと思うが)

  • Zhang[31]らはどうやってページランクを攻撃(スパム)に耐えられるものにするかを示した

  • Gyongyiら[11]は信頼の置けるサイトからのリンクを辿ることによるTrustRankというものをスパムでないページの発見のために用いた。

  • Benzur[4]らは不自然にページランクを上昇させているページに対してどうペナルティーを与えるのかについて示した。

  • Wu と Davison[29]とGyongyi と Garcia-Molina[12]はリンクファームの発見手法について研究した。

  • [8]で我々はリンクスパムを指数法則からの逸脱をもとに発見する方法を示した。

  • Mishneら[21]らはブログのコメントにあるリンクスパムを発見するために単語の使用頻度を用いた確率的な手法を提案した。


4. コンテンツスパム 

  • [8]で我々は長いホスト名、多くのダッシュやドット、数字が入っている、単語に多様性がない、頻繁に広範囲にわたってコンテンツを修正する、ということがスパムであるかどうかの良い指標になることが多いということを示した。

  • [9]で我々は切り取りと貼り付けで作ったようなサイトのスパムを調査して、そのようなページを発見する方法を提案した。

  1. クローキング
    クローキングとはWebサーバに細工をして検索エンジンの巡回ロボットに一般の閲覧者とは異なる内容のWebページを見せる事を言う。(フラッシュ等を多用しているサイトでは検索エンジンとの親和性が低いためそれをカバーするため最適化したHTML構造を巡回ロボットに見せるというパターンが多い)

    • GyongyiとMolina[13]は現在のクローキングテクニックを示した。

    • WuとDavison[30]は3つの別々のページに共通する単語を計算することに基づいたクローキングの発見方法の有効性を示した。(意味不明)注目すべきはクローキングが有益なものを使うということである。例えば帯域幅やストレージコストを減らすためにサーチエンジンに対してクローキングがマークアップなしでページのコピーを返すような感じである。(サーチエンジンに有用な部分だけを見せるということだと思う)


7.結論と先への展望
Webスパムと検索エンジンのいたちごっこは続いていくであろうが我々の技術がより良い検索のために役立てばうれしいと思う。継続的な研究により効果的なスパムを行うよりもコンテンツ作りを充実させたほうがよりリスクが少ないようになるのが我々の願いである。


2007年11月17日土曜日

ここが変だよGoogle翻訳

GoogleにはGoogle翻訳というサービスがある。http://www.google.co.jp/translate_t?langpair=jaenこれは文法をきちきちと解釈して訳をつくっているのではなく、日本語文書とそれに対応する英語文書があれば、対応関係などを大量に学習して自動的に適切な訳を出してくれる機械学習を用いている。
その性能は非常に高く、別に暇な人が対応表みたいなものをつくったわけでもないのに「千と千尋の神隠し」と入れるとSpirited Awayと返すし、「バイオハザード」と入れるとRezident Evilと、固有名詞までしっかりと学習している。
ところが・・・・「JOJOの奇妙な冒険」と入力すると
WRYYY
とか返してきた。これはJOJOの最大の敵であるDIOの有名な奇声のことなのだが一体何をどう学習すればWRYYYになるのか見当もつきません。Googleなりのギャグととらえるべきでしょうか?
他にも「ニューガンダムは伊達じゃない」とかガンダムの名言でも入れてみるとKiwi is not NYUGANDAMU(ニュージーランド人はガンダムではない)とか返してきた。
今後もGoogleからは目が離せません!

2007年11月7日水曜日

Ajax vs Flash

リッチクライアントを実現するためのコア技術であるAjaxとFlash、どちらがどのような方面で一体優れているのか比較検討してみたい。

ニューヨークで行われたフラッシュ先進会議みたいなものでAjaxの動きがフラッシュ製作者にどのようなインパクトを与えるかという話題があったそうである。

クライアントに対して行えることに関してはFlashはDHTMLよりかなり優位に立っているということがいえる。Ajaxをフラッシュの替わりに用いているサイトの特徴としてはユーザーインターフェースや機能が比較的簡単なものであるということが言える。確かにGooglemapsのような巨大予算を費やした例外もあるが、これはGoogleがビジネス上の思惑でmacromediaやadobeに頼ったシステムを作りたくなかったゆえではないか?という事が伺える。まあしかしフラッシュにもAjaxにも長所、短所がありそれらについて簡単にまとめてみる。

Flash

・プラグインをしなければならず、また決められた範囲の場所にしか表示できない。

・互換性についてはあまり考えなくてもよく作るのが簡単。

・CSSをある程度しかサポートしていない

・javaに似た堅牢なプログラミングモデル

・テキスト表示が弱い、(汚い?)

Ajax

・html、ブラウザとの親和性が高い

・CSSをフルサポート

・動的なコンテンツ生成が容易

個人的にはどちらが良いのかはあまりわかりませんが、javascriptとflashを連携させることなども可能なので両方学習しておいていいとこどりするのが一番いいと思います。

2007年11月6日火曜日

情報可視化インタフェース

数値データから描かれる統計グラフ⇒値の推移を把握するのに適しているが節目と考えられる部位や、背景・影響などを読み取るのは難しい

新聞記事などのテキスト⇒具体的な値の推移把握には不十分だが、背景や影響、節目として解釈すべき箇所を理解する際には有効

ということなのでこれらの情報を相補的に扱うことができればユーザーインターフェースは確実に向上する。

時系列数値情報とテキスト情報を組み合わせて情報を提示する場合、その最も単純な実現方法は、白書等より得られる数値情報を統計グラフとして描画し、新聞記事等のテキスト情報をその発行日を用いてグラフの時間軸に関連付ける方法であろう。

しかし、この方法は欠点があり、それは記事の発効日を利用したとしてもその記事がいつの出来事について書いているのかがわからないということである。今までの変遷をつづったものなのかもしれないし、昨日の出来事を書いたものかもしれない。これをまずテキストの自動解釈技術に基づいていつからいつまでの出来事について書いたものなのかを判別して時間軸と連動させる必要がある。またテキストがグラフのどの変遷箇所に注目して書かれたものなのかを解釈必要がある。

ユーザの探索行為を考えた場合(1)グラフの特徴的な箇所に着目し、それに関する知見を得るためにテキストを参照する。(2)テキスト情報から気になる箇所を見つけそれがグラフのどこに対応しているのかを参照する。っという双方向の情報アクセスが想定できる。そのため、情報提示インタフェースはユーザにテキスト情報の一覧からグラフの対応箇所を見つけるインタラクションを提供する必要がある。

Webで情報可視化インタフェースを考えるとフラッシュかAjaxあたりで実装できそう

2007年6月18日月曜日

Web Trust 研究動向

1.はじめに

フィッシング詐欺やチャリンカー詐欺(現物を確保する前にネットオークションに出品し、注文を受けてから安く調達して利ざやを稼ぐ自転車操業的な手法。また、赤字になるような安い価格で出品を続け、高い評価がたまったところで大量の仮出品を行い、入金されたところで逃亡する詐欺のこともある)、P2Pソフトを介した個人情報漏えい問題など、Webの利用が進むにつれ次々に新しい問題が起こっている。今後Webを健全な社会インフラとして活用するためにはWebの信憑性の扱いが最大の課題となっているといっても過言ではない。そこでWebを安心して使えるようにするためWebの信憑性の問題に様々な分野で取り組んだ研究が近年注目されている。そこで本稿ではこれらをWeb Trustの研究と呼び、具体的な事例をあげて現状を紹介する。

2.Trustとは?

2.1 TrustとPrivacy,Security

相手を信頼するためには相手に関するあらゆる情報を判断材料として入手したいだろう、こうした相手に関する情報の入手につきまとうのがPrivacyである。Privacyは、情報のオーナシップやコントロールに関する権利とされ捉えられ、またその権利を保護することがSecurityである。リスクを減らすには、できるだけ多くの判断情報を集めたいが、これを追求するとPrivacyの考えが脅かされる。一方Privacyを尊重しすぎると、相手を信頼するに至らないという局面が増える。こうした意味で、信頼に基づく社会を実現するには、PrivacyとTrustとのバランスを考慮する必要があり、この点がPrivacyの取り決めを難しくする要因のひとつである。また、Privacyを保護するSecurityが確立していないと、やはりPrivacyは保護されないことになる。Trustに立脚した社会の実現は、PrivacyとSecurityの課題と切り離せない関係にあるといえる。

2.2 Trust研究のマップ

イタリアCNR(National Research Council)のInstitute of Cognitive Sciences and Technologies(ISTC:認知科学技術研究所)では、Trustを総合的に研究するため,T3 Groupという研究組織が活動している。T3はTrust Theory and Technologyの頭文字をとったもので、様々な分野の研究者が集まり、Trustとは何か、Trustは社会や技術にどのような影響を与えるのかなどを幅広く検討している。T3では、Trustを扱う研究分野として以下の5分野をあげている。

  • 経済学(Economics/Organizations)
  • 社会学(Sociology)
  • 心理学(Psychology)
  • コンピュータサイエンス(Computer Science)
  • 社会的認知科学(Socio-cognitive approach)

§1 他分野におけるTrust研究事例

経済学:経済学でのTrustは、主に顧客が企業などの組織に対して感じる信用や安心などの基準であり、変数として表せる因子の一つとみなされている。

社会学:社会学では、Trustを主に個人対個人の信頼関係と捉えている。

心理学:どういう状況でTrustを感じるか、あるいはTrustとTrustに類似した概念をどのように識別するかを中心に議論している。

社会的認知科学:社会的認知科学では、人間が様々な要因からTrustを導き出す過程をモデル化する研究が行われいている。

3.Web Trust研究

3・1 WebにとってのTrustの意義

Webを含むコンピュータサイエンスでは、Trustは大きく分けて二つの異なる側面から議論されている。一つはセキュアなシステムの構築手法、もう一つはネットワーク上でのエージェントに対するTrustを算出する手法である。前者は、高いセキュリティを持つシステムやセキュリティを重視するユーザはTrustworthyであるとするものである。一方後者は実世界での組織や個人の間の関係をコンピュータネットワークに適用し、ネットワーク上のノードやWeb上のオンラインショップ、それらの利用者などをエージェントと捉え、その信憑性を推定しようとするものである。Webには、実世界の距離を超えたコミュニケーションを可能にし、匿名性が高いという2つの大きな特徴があるため、実世界よりも大きなチャンスとリスクがあり、相手を正しく選択する重要性が高い。

3・2 Trust推定のための評判情報管理

利用者の評価情報を元に、エージェントのTrustを予測する一連の仕組みは、評判管理システム(reputation system)と呼ばれている。Reputation systemの基本的なアイディアは、今まで面識のない相手のTrustを「間接的な情報」である評判情報をもとに予測することにある。ここで「間接的な情報」とは、すでにこの相手と面識のあるほかのエージェントによる評価を意味する。

Trustの研究は大きくはcentralized型とdistributed型に分けることができるがこれらについて説明していく

§1 Centralized Reputation Systems

評判情報をサーバ上で中央管理するシステムで、商品レビューサイトなどに代表される情報提示サイトなど、数々のWebサービスにおいてreputation systemが利用されている。最も有名なものがヤフーオークションなどで利用されているユーザ評価方式であり、取引完了後、売り手と買い手のそれぞれが相手に対してプラス(+1)、中立(0)、マイナス(-1)の評価を下すプリミティブなフィードバック方式となっており、あるユーザの評価値は、このユーザが受けた評価値の総和(ないしは平均値)となる。また、オープンソースプログラマのための情報共有コミュニティであるadvogatoにおいてもメンバの評価(スキル習熟度)を管理するreputation systemが提供されていて、ここで採用されているAdvogato's trust metricは、各メンバをnodeとし、メンバ間の参照情報をedgeとする有効グラフを用いてメンバ評価を行う。またEpinionという製品及び店舗のレビューサイトではユーザはレビューとレビュアの双方に評価情報を付与することができる。

§2 Distributed Reputation Systems

中央管理を必要としない分散型reputation systemに関する研究は、主にP2Pファイル共有におけるファイル詐称問題への対応策として研究が進められてきた。例えばMudhakar SrivastsaはP2P環境下でのピア(通信相手)の選択にTrustを導入し、あるファイルを取得する場合にTrust値の高い(信頼できる)ピアを選択することで、故意にウイルス感染させたファイルを配信するような悪質なピアに接続する危険を減少させるシステムを提案している[Srivatsa 05]

また中央管理型とは異なり、分散型reputation systemにおいては、評判情報が各ユーザの手元に点在することになる。このため、あるユーザに関するTrustを調べる際には、他のユーザから該当ユーザに関する評判情報を収集する必要がある。そこで、この評判情報を如何に効率的に収集するか、如何に分散する評判情報を元に必要とするユーザのTrustを計算するかがポイントとなる。Abererらは、ユーザのマイナス評価を分散環境下において共有するアーキテクチャを発表している。[Aberer 01]

また評判情報の一貫性をどう管理するかといった分散環境特有の課題もある。

§3 評判システムの課題

効果的なreputation system実現のためには、いくつか解決すべき課題が存在する。Resnickは、正確なReputationを得るためには、(1)利用者からのフィードバックをどのように誘発するか、(2)信頼性のあるReputationの配信をどう実現するかなどの課題を解決する必要があるとしている。(1)の問題については、ユーザに対してフィードバックへの対価として金銭的インセンティブを与えるアプローチや、ポジティブとネガティブの両方のフィードバックを採用することで、比較的少数のユーザ間関係からでも高い精度でTrust値算出が計算可能な手法を検討するアプローチがある。しかしこのシステムではポジティブ方向に偏りがちなのでより正直な評価を引き出すために匿名性を加えたreputation systemも考えられている。(2)については悪い評判がついたエージェントが、いったん自分のIDを捨てた後、新規参入エージェントのフリをして新たなIDと新たな評判を取得することが問題となっており対応が非常に難しい。また悪意を持ったユーザを統計処理などにより除くといったことも行われている。

3.3 ページの内容による信憑性の推定

FoggによるWebページの信憑性を心理学的な視点から調査した研究があるが、それによると大きく分けて5つのグループがあり、それぞれ

  1. Real-World Feel Scale
    組織の住所や社員の顔写真が掲載されているかといった実世界での実在性を感じさせる基準
  2. Ease of Use Scale
    キーワード検索が可能か、リンクナビゲーションが適切かといった使いやすさによる基準
  3. Expertise Scale
    記事の出展が明記されているなど、情報の専門性、技術的裏づけに関する基準
  4. Trustworthiness Scale
    著名なサイトからリンクされている、よく知られた企業のサイトであるといった社会的な信用に関する基準
  5. Tailoring Scale
    情報を送信すると確認メール返信されるなど、細部の作りこみに関する基準。

3.4 その他のWeb Trustに関する研究

§1検索エンジンのランキング

検索エンジンのランキングの信憑性として、意図した相互リンクなどをどこまで認めるのか、また本来のランキングのあり方を改めて問うてみる、といった動きが見られる。

§2 評価表現抽出

blog等から個人の主観的な意見を抜き出そうということも行われている。ここでは文章中に表れる「良い」評価や「悪い」評価を自然言語処理技術を用いて抽出し、その記述全体としての(おそらく信憑性)の評価を算出するというものである。(「良い」「悪い」の記述からその文に対する信憑性を求めているのか、それともある製品があってそれに対して肯定的な意見が多いのか否定的な意見が多いのかを単に調べているだけなのかは論文内容からはよくわからない)

参考文献 人工知能学会誌 21巻4号