レビュー8章 推薦システム―統計的機械学習の理論と実践 -

前回の続き

レビュー7章 推薦システム―統計的機械学習の理論と実践 - - tiruka’s blog

8章は、7章を発展させ両方を使ってレコメンドシステムを作るテーマである。かなり難しい内容である。数式として理解するのは、なかなか骨が折れる。

さて、概要だけ言うと、「7章を発展させて、コールドスタート問題に対処しよう!」である。 つまり、 オンライン・オフラインでそれぞれモデルを作った。

モデルは既存ユーザや過去のデータに基づいて作っていて、既存ユーザと既存アイテムにしか適用してなかった なんとかして、新規ユーザ・アイテムにも適用できないかな?ということである。

もちろん、モデルをそのまま新規ユーザ・アイテムに適用することは可能であるが、精度が悪くなりがちである。その精度をあげるために、モデルを柔軟に変更できるようにするための手法が述べられている。

モデルを柔軟にするための新しい言葉が、「潜在因子(latent factor)」である。モデルをさらに抽象化して、より本質的なものを探すのである。

例えば

Aさんは、ティファニーが好きで、よく銀座で買い物をしている。好きな音楽はEdsheeranだ。

Bさんは、ヴィトンが好きで、買い物をする場所はよくわからないけど、好きな音楽は洋楽だ。

 

という情報があった時に、「AさんとBさんの共通点は?」と聞かれたら、「20女性で、東京に住んでいそう」という潜在的な共通点が導き出せると思います。

この共通点が分かっていれば、「Bさんが買い物をしそうなところは、どこ?」と質問が来たら、「銀座かな」と想像がつきやすいと思います。 このようなイメージで、潜在因子を求める。

実際は、たくさんのデータをインプットとして使い、潜在因子も数式・ベクトルである。 概念としては以上ですが、この潜在因子を求めるには、高度な方法が必要である。

基本的に、抽象化するのは人間でも大変なので、機械でも大変なのである。 様々な手法が試されているので 詳細は本を見てください。とても説明しきれません。

結論としては、モンテカルロを用いたベイズ推定が一番結果が良かった。しかし、計算がとても大変なので、分散による計算が必要に、実際はなってくる。

簡単に言えば分割してそれぞれのグループでモデルを作りそれらの平均を取るなどして合体させて、最終的なモデル作るのである。おそらく合算する手法には、ただ単に平均ではなく色々な方法があるとは推定されるが、特に紹介はされていないです。