人工知能についてメモ(協調フィルタリング)

Gordon JohnsonによるPixabayからの画像
ほかの技術知識

職場から借りてきた人工知能学会の機関紙『人工知能34巻3号』を読んだ時のメモの一部。

人工知能34巻3号についての他の記事は、こちら

推薦システム

 インターネット上でよくある「この商品を買った人はこんな商品も買っています」を実現する仕組みを、推薦システムと呼ぶ。現在の推薦システムの基礎は、1992年にが発表された協調フィルタリングの概念によって始まり、1994年のGroupLens(ミネソタ大学のプロジェクト)が商用化の基礎となった。インターネット上のニュース記事を対象にスタートした推薦システムは、今では、ドメイン(分野)ごとに色々と進化している。

※「ニュース」の定義は「ウェブ上に発信された情報すべて」

推薦システムの研究トピック

GroupLens(ニュース記事推薦)

  • GroupLens :協調フィルタリングの基本概念
  • GroupLensの基本的な考え方:自分と評価基準が似たユーザが付ける評価を使って、まだ評価していないニュースの価値を予測すること

※統計の基礎知識(分散・共分散・偏差・正規化くらい)の理解を前提に以下の話をすすめる。

具体的なアルゴリズム

■前提と方針

  • ユーザはニュースを5段階で評価を付けることができる
  • ユーザu∈Uのニュース n∈Nに対する評価をru,nとする
  • ユーザuの各ニュースに対する評価をxu=(ru,n0,…, ru,n|N|)ベクトル表現で表す
  • 自分と評価基準が似たユーザを考えるために、ユーザ間のピアソン相関係数corrui,ujを用いる

以下の数式にあるように、対象となるニュースnを評価したユーザの評価値を正規化したものを、そのユーザ間ピアソン相関係数で重みづけして平均したものを、対象ユーザの評価値の平均に加える。

■数式

参考:人工知能34巻3号 p.284

①:ユーザuiが未評価のニュースnに与える予測評価rp

②: ユーザuiの各ニュースに対する評価の平均

③: ユーザ間ピアソン相関係数(-1 ~ 1の値を取る)

GroupLensの発展

 ユーザからの明示的なフィードバックを利用するためには、各ユーザがサービスにプロフィールを登録したうえで、各ニュース記事に対してフィードバックをする必要があった(つまり、メンドクサイ)。そのため、各ユーザが評価に協力しなかったり、十分な評価数を集めたりしている間にニュースが古くなってしまうのが課題だった。

 この課題を解決するため、ユーザのクリック行動を利用する方法が生まれた(by Google, 2007)。

方針
大規模なトラヒックとニュースというコンテンツの変化の速さに対応するために、クラスタリングを利用してスケーラブルな協調フィルタリングを実現する。

分散環境で動作するクラスタリングアルゴリズムを採用して、過去のクリック歴を用いてクラスタに分割する。そして、ユーザが所属しているクラスタに所属のユーザがどれだけ対象のニュース記事をクリックしたのかを、クラスタの所属度合で重みづけ和する。

さらに発展

  ユーザのクリック履歴をより深く分析し、その結果をアルゴリズムに反映することを目指す(by Google, 2010)。ユーザの興味関心の変化を時間軸で分析して、協調フィルタリングのモデルにユーザのニュースカテゴリへの興味関心を重みづけする。


疲れてきたので、今日はここまで。

 なお、現在主流の推薦システムは、協調フィルタリング・コンテンツベースの推薦・協調フィルタリングとコンテンツベースのハイブリッドの3種類を、目的によって使い分けているらしい。そしてそこへ、クリックベイト(ユーザの関心を引くために過度に煽情的なタイトルをニュース記事につけた結果、ユーザがそのニュース記事を読んだ際にだまされたと感じてしまうこと)の対策などが考慮される。