Hatena::ブログ(Diary)

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

2012-08-05

Exploiting Latent Information to Predict Diffusion of Novel Topics on Social Networks[Kuo+, ACL'12]のメモ

Exploiting Latent Information to Predict Diffusion of Novel Topics on Social Networks(PDF)

ACL'12のshort paper.LDA(→類似度計算)→識別をやっている.各要素技術は新しくないけれど,全体のフレームワークが新しいってことかな.

  • やりたいこと:
    • 新しい(未知の)トピックの拡散予測.
      • 具体的には,ソーシャルネットワークの各リンクで情報が伝わったか伝わらなかったかの2値を当てたい.
      • 前提: 新しいトピックに関して拡散の履歴は利用できない
    • 観測は過去と新しいトピック,トピックで出現する単語数,過去にどのトピックがどのリンクで伝わったか.
      • Twitterで言えば,過去に何のTweetがどのリンクを伝わっていったかが既知.新しい(拡散を予測したい)Tweetの内容も既知.
  • 方法:
    • 4種類の情報に関して,LDA使って潜在情報を抽出:
      • Topic Information: トピック-単語行列(TW)=あるトピックに含まれる単語の分布
        • TWを分解すると,TH(トピック-潜在行列)とHW(潜在-単語行列)の積になって,後ではTHを使う.
        • THに関して,新しいトピックと既知のトピックの間の類似度(TS)を計算.
          • そのリンクで過去に3回伝わっていれば,新しいトピックと過去3回のトピック間で類似度を計算し,合計する.
      • User Information: ユーザ単語行列(UW)=あるユーザが発信する単語の分布
        • UWを分解すると,UM(ユーザ-潜在行列)とMW(潜在-単語行列)の積になって,後ではUMを使う.
      • User-Topic Interaction:
        • 新しいトピックに関してこの情報は得られないので,あんまり使いものにならないんだけど,ごにょごにょやると利用出来るデータに成るらしい.
      • Global Features: ネットワークに関する素性
        • 入次数(ID)と出次数(OD).
        • そのリンクを伝わったdistinctなトピックの数(NDT)
  • 実験:
    • データ
      • Plurkというマイクロブログのデータ.
        • 100個のトピックを7グループに手で分ける.
      • ユーザxがあるトピックtのメッセージを発信した後,ユーザyがトピックtのメッセージを発信すれば伝わったものとして,(x,y,t)というインスタンスを得る.
      • ネットワーク構造もこんな感じで伝わった部分を抽出して作る
    • 実装:
      • 識別はLIBLINEAR(c=0.0001)
      • LDAはGibbsLDA++[Phan and Nguyen, 2007]
    • ベースライン:
      • Existing Diffusion: ノード間で全てのトピックにおいて伝わった回数に基づいて識別
      • Independent Cascade[Kempe et al., 2003]: ノード間で伝わった回数を正規化して拡散確率として計算
      • Heat Diffusion[Ma et al., 2008]
    • 結果:
      • 上であげた4種類の情報それぞれの結果では,類似度(TS)を使った方法が最も良い結果(AUC=69.93).
      • 情報の組み合わせによる結果では,全てを入れるよりも類似度(TS)+入次数(ID)+NDTが最も良い結果(AUC=73.95)
  • 思ったこと
    • 類似度(TS)は,過去に何回そのリンクで情報が伝わったかの情報が入っちゃってるので,過去に情報が伝わってるところは新しい情報でも情報が伝わりやすいってこと.
    • ベースラインのIndependent Cascadeが悪すぎる(AUC=51.53)けど,このモデルでどのリンクで伝わったかを当てるのはかなり難しいだろうし,識別ベースの方法にゃ勝てない.
    • 本当に新しい情報についてこれを調べたければ,オンラインで素性を更新する仕組みが必要だと思うけれど,この方法では新しい情報が入ってくるたびにLDAを回さないといけないから大変.

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-18

GaP: A Factor Model for Discrete Data[Canny, SIGIR'04]のメモ

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.67.8075&rep=rep1&type=pdf

NMF(Non-negative Matrix Factorization)をGamma-Poissonでやる話.Gamma-Poissonの頭文字を取ってGaPと呼んでいる.他の文献*1によれば,GaPはDCA(Discrete Component Analysis)の一般化なのだとか.DCA知らんので,ピンときてない.

  • 基本はF=ΛXとなるΛとXを求めること
    • GaPでは,FはPoisson(ΛX)から生成されてる
  • テキストの生成モデルをGamma-Poissonモデルで表現
    • ドキュメントの単語頻度スコアXはGammaから生成
    • 単語頻度FをPoissonから生成
  • 学習はEM
  • 実験

本当は,Gamma-Poissonモデルについて詳しく書きたかったのだけど...

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:この評価式は正直良く分からない