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

前回に続き

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

 

第2章の前半は、素性ベクトルベースのレコメンドについて説明している。素性ベクトルとは、「特性」と言い換えることができる。アイテムなら価格やブランド、カテゴリーや、非数値データではキーワードや画像などである。ユーザでは、年齢、性別、購買履歴などである。要は、それぞれに紐づけることができるデータを、素性ベクトルという。何個も特性がある場合は、ベクトルと言い換えることが多いですね、この世界は。

 

アイテムベースではアイテムに関する特性素性ベクトルをたくさん集め、類似度を測ることについて説明。素性ベクトルとして色々な数値化できるデータや、バグオブワーズとしてテキストを用いる方法などが紹介されている。

難しいことを言っているが、基本的にはダミー変数や、テキストならtfidfを用いればできるということである。

 

ユーザーベクトルではユーザーに関する素性ベクトルを利用して、ユーザの嗜好に近いアイテムを提示する方法を示している。例えば、ユーザAに、「温泉、憩い」などのメタを貼り付けることができれば、それらの「メタ」を持っているアイテムをレコメンドすることができる。

 

いずれも、各アイテムにスコアなどをつけて、スコアが高いものからレコメンドする。

 

類似度を測る関数としては、jaccard(データが0,1の場合に強い)やコサイン類似度などが出されている。いずれにしろ、ベクトル化した際の距離(norm)が近いものが、似ているのである。

 

後半から協調フィルタリングの話になるが、量はわずかである。まず、ユーザー同士の類似度を測る「ユーザベース協調フィルタリング」を紹介している。基本的には、似ているユーザが選んだものは、選ぶ可能性が高い、という直感的な考えに基づいている。

同じ発想で、アイテム同士で似ているものを出せば、選ぶ可能性が高いというのが、アイテム協調フィルタリングである。

 

類似度を測る関数としては、ピアソン相関関数が協調フィルタリングでは出されている。前述の関数を使っても良いと思う。

 

続く