「確率モデルによるwebデータ解析法」8章メモ

昔書いたやつを発掘してきた。また読み返す必要があるなー。

8章は商用アプリケーションの話、レコメンダシステムと顧客行動解析。


ここで扱うレコメンダシステムは、ユーザの行動履歴に基づきユーザに対してアイテムを推薦するようなもの。

興味深い問題として、欠損をすべて0と考えた場合、ユーザiがチェックしなかった項目jに関する行列V中の欠損地の扱いがある。これら欠損データは、必ずしも完全にランダムに欠損しているわけではなく、ユーザが好まない項目に対して「どちらかといえば選ばない」という負のバイアスが 影響していると思われる(Breese,J.S.,Heckerman,D. and Kadie,C. 1988 Empirical analysis of predictive algorithms for collaborative filtering.)。リコメンダシステムに関する多くの研究において、このバイアスは陽に扱われたことがない。
“Collaborative filtering and the missing at random assumption”でされてるのってこの話かな

評価方法

学術研究者は一般に、多数のユーザの興味を実験目的のウェブサイトへひきつける能力に乏しい。不幸なことに、研究としてみた場合、e-コマース実験の結果は競合を理由にほとんど公開されない
Zhang&Iyengar(2002)が留意点をうまくまとめている: リコメンダシステムの真価は、実ユーザにおける 統制実験下でのみ評価しうる。そのような実験により、最も人気のある項目を推奨する方法と比べて、リコメンダアルゴリズムによりなされる改善効果を測りうる。歴史的データによる実験は統制下での実際の実験を欠いて、リコメンダアルゴリズムの価値の推定を行ってきたのである
A/Bテスト最強伝説。

最近隣協調フィルタリング

ユーザaに最も近いユーザN人の投票を元にレコメンド。
慣習的に、平均投票を引くことでユーザiの投票を補正し「調整投票」を作る。これは、たとえば、あるユーザが大きな値で投票し、別のユーザが小さな値で投票する傾向がみられる場合などに発生する「平均差」を除くために行う。
この操作は実装が簡単で,予測精度もガンとあがる(しましま氏のコメント)らしい。ランキングを想定してるようだが、ログベースのレコメンダ(訪問したかどうかで1/0)にも応用できないものか。ユーザごとの閲覧頻度で正規化とか?

ユーザ間の類似度について

ユーザiとaの相関係数 ��_j (v_a,j-v_a)(v_i,j-v_i) : 各ユーザの正規化スコアの積を全アイテムについて合計したもの。
IaとIiの積集合が小さい場合、ほとんどない一致項目に基づいた重みとなり、信頼できる予測は得られないかもしれない。これを回避するひとつの方法は、aもiも投票していない(人気商品などの)特定の項目については「投票」されたとみなして扱うことである。これは、データの欠損を規定値で埋める操作としてみることができる。統計モデルの観点からはこれは次善策であり、もっと理にかなった方法として、モデルに基づいた欠損地の推定が挙げられる(Little&Rubin(1987))。たとえば7章で、信頼できる遷移確率の推定量を作成する際に議論した次善分布と同様の形で、選択結果を扱いやすくするためにディリクレ事前分布を使用することもできるだろう
統計の素養がないので「もっと理にかなった方法」とやらが理解できない(7章読んでないし……)。人気商品で補完することで精度が上がる理屈もよくわからない。
類似度としては他にコサイン相関度。
多くの項目に投票したaに関しては、履歴が一致するユーザiは多数存在するだろうが、重みは相対的に小さくなる。予測式でこれらを含めると、単にこれらをはずすよりも悪い予測しかえられない。よって、重みに閾値を導入し、類似度による重みが閾値を超えたユーザのみを予測に用いたり、上位k人だけを用いるなどのほうほうをとることがある

次元の呪い、データのスパース性

膨大なデータがない状態でどうすればいいか。
項目間の相関構造を直接探し、それを予測モデルに組み込むことである。本質的にこのアイデアは、項目の関連構造を直接モデル化しようとする際のモデルベースの方法である。
特異値分解による次元縮小。
特にオンラインレコメンダシステムにおいて、実践的に重要な問題は、新しいデータが増えた場合の特異値分解における規定ベクトルの更新である。新たに特異値分解を再計算するよりも、既存の結果に対して追加更新する形で計算をさせるほうが理想的である。このような逐次的な特異値分解計算法はまだ研究の段階である(Brand(2002))

クラスタリング

ユーザが増えると計算時間が長くなって死亡する、似たユーザをクラスタリングしてまとめる。
ユーザaを無理やり単一クラスタモデルで表そうとすると、ユーザの興味の多様性に関する情報を失うのは避けられない
とはいえ、
Breeseら(1998)は、クラスタに基づく協調フィルタリングは、最近隣法や確率モデルに基づく協調フィルタリングより優れていることを示した
Latent semantic modelってひょっとして単一クラスタモデルの改善(一人のユーザが複数のパラメータを持つ)? 調査中なので不明だけれども。

モデルに基づく協調フィルタリング

過去の投票パターンから推論される項目間の関係について(オフラインで)明確なモデルを作ることで予測を行う。このモデルは新しいユーザaについての予測に(オンラインで)用いられる。これは、前節で議論した際近隣法による協調フィルタリング、すなわち、実時間で予測結果を得るために、明確なモデルを構築せず、メモリベースの計算に依存していた方法とは、本質的にまったく異なる。
一般に、一度モデルが構築されてしまえば、計算時間がnに依存するメモリベースの方法と異なり、予測時間はn(モデル構築時に用いた教師データの数)に依存しない
モデルベースの方法いくつか:
m個の項目について完全な同時確率分布をつくる(スパースなデータセットから正確な分布を出すのが難しい)
単一モデルではなくm個の条件付モデルをつくり、各モデルにおいて、残りのm-1個に観測済みのデータを与えた場合の、特定の項目に対する尤度を予測する方法
スコアではなく順位リストを直接構築できるモデル(Cohenら(1999)等)

何言ってるのかわからん

同時密度モデリング

このへんから何言ってるのかわからなくなってきた……
同時密度を制約なしでまじめに求めると2^mの独立なパラメータ推定必要、O(2^m)とかねーよ
分布をいくつか用意して重みつける(混合分布)
ナイーブベイズでO(Km)
EMアルゴリズム
協調フィルタリングにおける、このようなモデルの限界は、各ユーザを単一要素モデルで記述しうるということである。つまり、各ユーザがK個の要素のうちのひとつ(のみ)から「生成」されると仮定している。これは先に述べたクラスタリングと同じ過程であり、実際にこの混合モデルは本質的に、確率論的な意味合いにおいて、クラスタリングの一種である。
つまりクラスタリングと同一の問題が。
Hofmann&Puzicha(1999)は、Hoffman(1999) で以前に提案したもっと一般的なモデルに基づき、先に上げたような、複数の興味に関する問題に直接対峙した、条件付混合モデルに関する興味深い拡張形を提案した。彼らのモデルでは、各ユーザの興味は、K個の隠れた、より単純な要素モデルの重ねあわせから生成されると解釈できる。ゆえに、各ユーザの投票に関する列ベクトルが単一要素モデルP(v1,...,vm|c=k)から生成されると仮定するかわりに、Hofmann&Puzichaのモデルでは、投票に関する行ベクトルはおのおのの、K個の関連する要素モデルの組み合わせで生成される

条件付分布モデル

データから確率的決定木つくる

投票と内容のモデルベース結合

ハイブリッド。
コンテンツを使うと新アイテム追加に強い
Popesculら(2001)のモデル
このモデルにおいて、同時密度は、ユーザu、ドキュメントm、単語wを条件付独立の形で導く隠れ潜在変数zの存在を仮定することで構築できる。すなわち、P(u,d,w)?��_z P(u|z)P(d|z)P(w|z)P(z)
隠れ変数zはドキュメントの話題を指す、P(w|z)を含むことで自然な形で内容情報を含めることができる
Popsculら(2001)は、このモデルが、データのスパース性によりオーバーフィッティングを生じる問題があることを示した。仮に、5000ドキュメントをアクセスする1000ユーザの実集合に基づいていたとしても、データ行列におけるこれらの密度は、ランダムに選んだユーザに対して、0.38%と0.01%である
ドキュメント捨てて単語空間使うモデル P(u,w)、単語空間はドキュメント空間より密なので。元のモデルよりよい予測を与える。
よって、内容と投票をあわせた比較的高度なモデルが提案されるものの、これらのモデルをスパースな高次元データに当てはめることは、なお重要な課題として残っている

ネットワークとレコメンデーション

電子メールによる商品のレコメンド
hotmail使うと末尾にhotmailの広告が入る
活性伝播
ユーザの増加モデル

購入予測におけるウェブ経路解析

ECサイトにおけるユーザ行動の分析
各ページを7カテゴリに分類
Home、Account(個人の支払い情報)、List(商品リスト)、など
ユーザ行動はページカテゴリの列であらわす。IHHIILITEとか
商品を購入したユーザとしないユーザでの遷移確率
ページにおける価格の記載は、購入思考状態の利用者には前向きな効果を与える反面、閲覧思考の利用者にとっては閲覧を続ける気を失わせるらしい。また、割引広告のような宣伝項目は逆の効果
面白い。各ECサイト、こういう分析をちゃんとやってるんだろうか。