見出し画像

レコメンド(推薦)システム入門


はじめに

みなさんはAmazonで買い物をするとき「この商品をチェックした人はこんな商品もチェックしています」という表示から別の商品にも興味をもったことがあるのではないでしょうか。また、Netflixなどの動画サイトで検索したわけでもないのに、自分が見たいと思う動画がたくさん表示されたことがあるかもしれません。

Amazonの「この商品をチェックした人はこんな商品もチェックしています」

これらは「推薦システム」と呼ばれる「複数の候補から価値のあるものを選び出し、意思決定を支援するシステム」によって選び出されたアイテムが表示されています。
多くのアイテムからアルゴリズムによってアイテムを選び、適切なUI/UXで表示されることでみなさんが購入や視聴といった行動を支援するようになっています。
この記事では推薦システムについて解説していきます。

なお、プログラムでの実装方法には触れません。興味がある方は最後に記載した書籍などを確認してみてください。

推薦システムの構成要素

推薦システムは3つの要素から構成されます。

  1. インプット(データの入力)

  2. プロセス(推薦の計算)

  3. アウトプット(推薦の表示)

1.インプット(データの入力)

推薦システムに用いるデータには主にコンテンツとインタラクションの2種類があります。

1-1.ユーザー・アイテムのコンテンツ情報

  • ユーザーのコンテンツ情報

    • 年齢、性別、住所などのプロフィール情報を指します。会員登録時やアンケートで収集することができます。

  • アイテムのコンテンツ情報

    • カテゴリや商品説明文、発売日などの情報を指します。アイテムを追加するときに紐づく情報です。

1-2.ユーザーとアイテムのインタラクション情報
ユーザーがそのサービス内で行動(閲覧や購入など)した行動履歴データです。

2.プロセス(推薦の計算)

インプットデータの活用の仕方として、主に3つの計算方法があります。

2-1.推薦計算の種類

2-1-1.概要推薦(新着順、価格順、人気順など)
~ニュースサイト:この24時間に多く読まれている記事です~
ECサイトの売れ筋ランキングのように、価格順や新着順など全ユーザーに同じ内容を提示するものです。メディア業界でもみんなが見ているものを見たいというニーズがあるため、この方法が用いられます。

ニュースサイトのアクセスランキング

2-1-2.関連アイテム推薦
~Amazon:このアイテムをチェックしている人はこちらのアイテムもチェックしています~
対象の商品と類似度が高い商品を表示するものです。各アイテム同士の類似度の計算方法には主に2種類があります。

2-1-3.パーソナライズ推薦
~おすすめ商品、閲覧履歴~
ユーザーのプロフィールや行動履歴をもとに一人一人のユーザーにパーソナライズして推薦するものです。

2-2.アルゴリズム

関連アイテム推薦やパーソナライズ推薦を実現するためのアルゴリズムをいくつか紹介します。

2-2-1.内容ベースフィルタリング

ユーザーの好み(ユーザープロファイル)とアイテムの特徴との類似度をもとに推薦する方法です。

内容ベースフィルタリング
出典:推薦システム実践入門P.63 図4-5

2-2-2.協調フィルタリング

好みが似ている他のユーザーが好むアイテムをもとに推薦する方法です。自分だけでなく、他のユーザーとの協調的な作業によって推薦するためこの名前がついています。

協調フィルタリング
出典:推薦システム実践入門P.68 図4-12

協調フィルタリングは、予測の実行方法の観点から以下2つに分けられます。

2-2-2-1.メモリベース法
推薦を行うタイミングで、蓄積されたデータをもとに予測計算を実行する方法です。
自分と好みが似ているユーザーに着目して推薦する「ユーザー間型メモリベース法」と、自分の好みのアイテムと似ているアイテムに着目して推薦する「アイテム間型メモリベース法」があります。

2-2-2-2.モデルベース法
事前にモデルを作成しておき、推薦を行うタイミングでモデルとユーザーのデータを利用して、予測計算を実行する方法です。既知のデータの規則性を学習したモデルを事前に作成しておくことで、未知のアイテムへの評価値を予測して推薦します。

協調・内容ベースフィルタリングの比較
協調フィルタリングと内容ベースフィルタリングを比較すると、次のようになります。どちらかが優れているわけではなく、推薦システムで実現したい目的に応じて選択するとよいです。

協調・内容ベースフィルタリングの比較

3.アウトプット(推薦の提示)

推薦するアイテムを決めても、UI/UXが適切でないとユーザーは選択することができません。いくつかの観点を紹介します。

3-1.ユーザーの目的に応じたUI/UX

ユーザーの目的から2つ紹介します。

3-1-1.適合アイテム発見
ユーザーの目的を達成するのに適したアイテムが1つでも見つかればよいという場合の表示です。例えば、職場付近で飲み会の飲食店を探している場合、すべてのお店を見たいわけではなく、ある程度の件数を表示してその中からユーザーが選べばよいと考えられます。

3-1-2.適合アイテム列挙
ユーザーの目的を達成するのに適したアイテムを、できるだけすべてサービス上で発見しようとしている場合を指します。例えば、引っ越しするときに条件にあった物件からじっくり検討したい場合、できるだけ多くの物件を閲覧できるようにしたほうがよさそうです。

3-2.サービス提供者の目的に応じたUI/UX

サービス提供者の目線からも2つ紹介します。

3-2-1.新規・低利用頻度ユーザーの定着
新規ユーザーやあまり利用していないユーザーの満足度を上げることは、サービスに定着してもらうために重要です。そのためには悪い体験をさせないことも大切です。これには、売上ランキングなどの概要推薦が用いられます。大部分のユーザーのある程度のニーズを満たすことができるためです。

3-2-2.同時購入(クロスセル)
同時購入とは、ある商品を購入しようとしているユーザーに、別の商品も合わせて購入してもらうことを指します。これには関連推薦を用いて、対象商品とよく一緒に購入されている商品を表示するようにします。

同時購入の表示例

つくってみた

ここまでの知識をもとに、ラジオ番組を推薦するアプリを作ってみました。 自分が好きな番組をいつくか選ぶと、それらの番組に似た番組をおすすめしてくれます。

インプットとしては、番組公式のまとめ記事を採用しました。音声データは処理が大変そうだったので、テキストデータを用いました。テキストを単語に分解しよく使われるものを抽出して、それらをベクトルに変換して比較しました。

アルゴリズムには、内容ベースフィルタリングを採用しました。これは、新規システムのため既存ユーザーがいないことや、コールドスタート問題があり協調フィルタリングでは対応できないためです。

推薦するアイテムは最大3件を表示するようにして、適合アイテム発見としました。ラジオ番組は実際に聴いてみないと好みかどうかわからないですが、試しに聞く回数には上限があると考えました。

まとめ

この記事ではECサイトや動画サービスで用いられる推薦システムについて紹介しました。
推薦システムはインプット、プロセス、アウトプットの3つの要素からなります。インプットは主にコンテンツとインタラクション(行動履歴)があります。プロセスでは、内容ベースフィルタリングや協調フィルタリングといったアルゴリズムをご紹介しました。アウトプットではUI/UXが適切でないとユーザーが選択できないことをご説明しました。

参考

この記事が気に入ったらサポートをしてみませんか?