Hatena::ブログ(Diary)

シコウサクゴ() このページをアンテナに追加 RSSフィード

2012-06-20

An Infinite Latent Attribute Model for Network Data[Palla+, ICML'12]のざっくりメモ

http://icml.cc/2012/papers/785.pdf

ネットワークデータのようなオブジェクト間の関係データをモデル化して,潜在的な構造を発見しようとする研究.お酒飲んで適当なことを書いているかもしれないけれど,悪しからず.

時間切れのため以上.

2012-06-19

TrueLabel + Confusions: A Spectrum of Probabilistic Models in Analyzing Multiple Ratings[Liu+, ICML'12]のメモ

http://icml.cc/2012/papers/123.pdf

クラウドソーシング+機械学習論文1979年のDawid&Skeneの研究をspectrum of probabilistic modelsに一般化している(spectrumのイメージが出来てない...).一般化と言われてもいまいちピンと来ないけど,Dawid&Skeneと同じことを出来るよりシンプルなモデルと,ベイジアンにしたモデルの2つを提案しているのが実際のところ.鹿島先生のチュートリアル*1によれば,このDawidらの研究はこの話題における先駆的な研究なのだそう.

  • モチベーション
    • MSではサーチエンジンの訓練に人間の評価(rating)を使っている(そうなのか?)
      • クラウドソーシングに頼むのはリスキーなので,今はちゃんと専門の人を雇っている
      • タグ付けの量もすごいし,訓練された人を雇うんだから,コストも高い
    • 評価の質をコントロールするための一つの方法は,超簡単なタスクを混ぜておくこと
      • 全てのワーカーはこのタスクに取り組むようにしておく
      • そうすると,ワーカーをちゃんと評価できるし,ワーカーを惑わすタスクは何なのか,評価のガイドラインはこのままで大丈夫なのかとかそういうことに繋がる
    • Dawid&Skeneは良いモデルだけど,パラメータが多すぎる
      • 評価(ラベル)数K,ワーカー数Jに対して,K(K-1)*J個の自由パラメータが必要
        • 各ワーカーがK×KのConfusion行列を持ってるため
        • 過学習しちゃう
  • 提案法: 2つのモデル
    • 従来法: DawidSkene
      • 真の評価に対して,各ワーカーの評価は各ワーカーのConfusion行列から生成される
    • SingleConfusion: 全ワーカーで共通のConfusion行列を持つモデル
      • シンプルすぎてUnderfitting(日本語訳なんだっけ)しちゃう
      • でも,全てのワーカーにおいてどのタスクが難しいのか興味あるからこれでも良いらしい
    • HybridConfusion: Dawid&Skeneのベイズ拡張モデル
      • 各ワーカーが独自のConfusion行列を持つこともできるし,シュリンクして少ない行列で表せもする
  • 学習はEM
    • 観測はワーカーによるタスクへの評価(rating)
    • 未知は真のラベル
    • パラメータはConfusion行列,真のラベルの分布
  • 実験
    • 人工データを使った評価(ラベル数K=3)
      • 真のラベルをどれだけ推定できるか
        • HybridConfusionが最も良い性能.
        • DawidSkeneとSingleConfusionは,多数決による方法に負ける
      • パラメータ推定の結果
        • 基本的にHybridConfusionが優勢
    • Real-Worldデータを使った結果
      • (query, URL)というタスクに対して,ワーカーが「Bad,Fair,Good,Excellent,Perfect」のいずれかの評価をしたデータ.
        • 難しいタスクで構成されているらしい
        • 48タスクに対して148ワーカーから6008個の評価を得た
        • 2:1の割合で訓練セットとテストセットに分けた
      • テストデータのみに基づいて真の評価を予測
        • HybridConfusionが最もよい(精度: 約6割)けど,多数決による方法とほぼ同じ
      • 訓練セットでパラメータを学習した後,真の評価を予測
        • HybridConfusionが最も良い(精度: 約6割)
  • 思ったこと
    • 精度的にあまり良いとは思えないんだけど,「目的は真のラベルに対する優れた予測モデルを作ることじゃない」とか書いてあるので,多分この論文の本当の良さは捉えきれてない
    • モデルの表記で「Matlab表記で書くと」みたいなことが書いてあるけど,著者はMSの人なので,Excel表記で書けばいいのにって思いましたまる

2012-06-17

Collaborative Topic Regression with Social Matrix Factorization for Recommendation Systems[Purushotham+, ICML'12]のメモ

http://icml.cc/2012/papers/407.pdf

Collaborative Topic Regression*1 + Social Matrix Factorization*2で,新たな協調フィルタリングの方法を提案する論文モチベーションは以下の通り.

モデルは階層ベイズで表現.Collaborative Topic Regressionは以下のようなモデル.

  • アイテムの情報はLDA*3と同じように生成される
  • ユーザiのアイテムjに対するレーティング Normal(u_i^T v_j, c_{ij}^{-1})で決定
    • u_iはユーザiのK次元潜在ベクトルで,トピックに対するユーザの好みを表す
    • v_jはアイテムjのK次元潜在ベクトル,アイテムのトピック選好度を表す
    • アイテムのトピックとユーザの好みが合致すれば( u_i,v_j内積が大きければ),高評価になる.

このモデルに対して,Social Matrix Factorizationの考えを導入する.すなわち,ユーザiとkの関係がg(u_i^T s_k)を平均とするガウシアンから生成されるとする.ここでg(・)はシグモイド関数s_kはユーザkのソーシャルファクター特徴ベクトル

学習はCollaborative Topic Regression同様に,EMライクな方法.

実験では,約99%欠損したユーザ-アイテムのレーティング行列(二値行列)を使う.評価には独自に定義したrecall@Mを使う.ここで,recall@M=(トップM個のユーザが好きなアイテムの数)/(ユーザの好きなアイテムのトータル数)で計算できる*4.結果の概要は以下の通り.

  • 提案モデルはCollaborative Topic Regressionより3%ほどRecallが良い
  • LDAベースなので計算コストは高い.トピック数K=50のとき14分くらい,K=200のとき10時間くらい学習に時間がかかる.
    • ユーザ数: 1867, アイテム数: 69226, タグ(rating済み): 53388, ユーザ間リンク数: 15328の場合.

論文によれば,主な貢献は以下の3点.

*1:Wang and Blei, "Collaborative topic modeling for recommending scientific articles," KDD'11

*2:Ma et. al., "Sorec: social recommendation using probabilistic matrix factorization," CIKM'08

*3:Blei et. al., "Latent Dirichlet Allocation," JMLR'03

*4:この評価式は正直良く分からない