レコメンドエンジンとは
例えばNetflixを開くと、自分が見たい映画をトップページで表示してくれる。
例えば僕は、「君の名は」、 「ドラえもん」などが表示される。
これはユーザー協調フィルタリングレコメンドエンジンの働きのおかげだ。
ユーザー協調フィルタリングレコメンドエンジンとは、多数のユーザーの行動履歴から、あるユーザーの行動を予測し、レコメンドすると言うものだ。
例えば、30代女性に人気の俳優が、登場する映画Aがあるとする。そうすると、ユーザー協調フィルタリングレコメンドエンジンは、30代の女性ユーザーには映画Aをレコメンドする。
話に聞くと簡単でしょう。
でも、実際に作るとなると、性別、年齢、言語など、考慮しなければならない事が多すぎて、通常のif-elseをしようしたプログラミングでは、あまり精度の高いレコメンドエンジンを作成する事が出来ない。
そのため、factorization machineと言うフレームワークを使用して、精度の高いレコメンドエンジンを作成する。
factorization machenとは何か?
レコメンドエンジンを作成しようと思った人なら、matrix fatroizationと言う概念を聞いた事があると思う。
factorization machineは、matrix factorizationを使いやすく進化させたものだ、より精度の高いレコメンドエンジンを作成可能だ。
・Matrix Factorizationでは、ユーザーとアイテムの情報しか扱えなかったため、性別、年齢などをレコメンドエンジンの作成に用いる事が出来なかったが、Factorazitaion Machineは、それ以外の情報も扱えるため、性別、年齢を考慮したレコメンドエンジンを作成可能。
・ロジスティック回帰などと異なり、Matrix Factorizationと同じく疎な行列を扱う事が出来る。
・特徴量の間で影響を与あう相互作用(Interaction)を考慮する事が出来るので、相関関係がある特徴量も適切に扱う事が出来る。
factorization machineでレコメンドエンジンを作成する②(執筆中)
へ続く
参考
名著なので、ぜひ買ってみてください。