推薦システム実践入門読書レポ
前書き(要約)
YoutubeやAmazon、Netflixには、日々さまざまな動画や、アイテム、コンテンツが追加されているが、その中からユーザーが好みのものを見つけるために一つづつ吟味していくと膨大な時間がかかるよね。
そこで登場したのが「推薦システム」
例えばAmazonなら「これを買った人はこんなものも買っています」といった感じに。
ユーザーが好みのアイテムを素早く見つけられるように、今や「あったらいいな」ではなく「なくてはならないもの」になってきた推薦システムの概要を把握し、適切に推薦システムを開発するアルゴリズムや活用方法を解説している
先に読んだCTO曰く、3章までは概念や事例、基本的なことが記されていて、具体的なコードはない。過去に読んだ本の中で指折りの「いい本だ」と言っている
今後推薦システムの需要は無くなることはないと踏んで、読み進めていこうと思う
1章 1.3.1
推薦システムに使うデータの種類
次の二種類
・ユーザー・アイテムのコンテンツ情報
一言で言うと、「ユーザー、アイテムのそれぞれが持つメタ情報」
ユーザーなら年齢、性別、住所、会員登録時に取った好みのカテゴリや価格帯なども含む
アイテムならカテゴリや商品説明文、価格、発売日、作者など…。
・ユーザーとアイテムのインタラクション情報
一言で言うと、「ユーザーが行った行動データ」
閲覧や購入、お気に入り登録など、アイテムに対する行動データを指す
この行動データを使った推薦システムは「協調性フィルタリングと呼ばれる」
よく聞くやつだ!
問題
しかし、後者の情報は、ユーザーがサービス内で行動してくれないと蓄積されないデータなので、十分なデータが揃うまでは、前者の情報を使い、「内容ベースフィルタリング」を行うことが一般的
いわゆるコールドスタート問題というやつですね
1章 1.3.2
プロセス(推薦の計算)
次の3種類
概要推薦(パーソナライズなし)
購入ランキングや、新着ランキング、価格が安い順など、全てのユーザーに同じものが表示されるのも立派な推薦
関連アイテム推薦
各アイテム間の類似度を計算します。
協調性フィルタリング、内容ベースフィルタリングの両方とも使われる
例えば、プリンターの場合、プリンターの購入を検討しているときは、類似のプリンターを提示するのが適しているが、購入後はそのプリンターのインクや用紙などを推薦するなど、状況に応じた設計が必要になってくる
パーソナライズ推薦
どちらかと言うと、アイテムを軸に推薦していたのが関連アイテム推薦に対し、ユーザーの行動データから、一人一人違ったアイテムをおすすめする手法。
閲覧履歴を表示する、これは何度か閲覧するコンテンツに良さそう。思い出し機能として効果的
1章 1.4.2
検索システムと推薦システムの比較
検索システム(Pull型) | 推薦システム(Push型) | |
---|---|---|
ユーザーがあらかじめお目当てのアイテムを把握しているか | 把握していることが多い | 把握していないことも多い |
キーワード(クエリ)入力 | あり | なし |
関連アイテムの推測の仕方 | 入力された検索キーワードからユーザーの意図を推測 | ユーザーのプロフィールやユーザーの過去の行動から推測 |
ユーザーの姿勢 | 能動的 | 受動的 |
パーソナライズ | しないことが多いが、近年ではパーソナライズするサービスも増えている | することが多い |
2章 2.1
推薦システム開発に必要な3つのスキル
- ビジネス力
Youtubeでは、KPIに動画の視聴動画数を定めていたが、サムネイルが目を引く動画ばかりが推薦される問題が起きたため、視聴時間をKPIにするように変更したそう。
その際、各動画に対して視聴時間の細かい粒度のログが取れていなかったため、ログ取得の整備をしている。
- データサイエンス力
実際に実現可能な推薦システムに落とし込む力。
求められる力は、扱うデータの量や種類、ビジネス的観点での複雑度に応じて異なってくる。
PythonやSQLでデータを加工し、アルゴリズムを構築できることが求められる。
- データエンジニアリング力
システムを安定的に稼働させる力
例えば、一日一回ユーザーにおすすめの商品を推薦するシステムがあったときに、100時間もかかってしまっては実稼働できません。
3章 3.1
UI/UXの重要性
一言でまとめると、「どれほど高度な推薦アルゴリズムを用いて、ユーザーに価値のあるアイテムを選び出したとしても、適切な形でユーザーに届けられなければ価値は伝わらない。」
この章では、推薦システムを用いるサービスにおけるUI/UXについてが述べられている
3章 3.2
サービスを利用するユーザーの目的に応じたUI/UX設計
推薦システムのUI/UX設計パターンには、次の4つがある
- 適合アイテム発見
- 適合アイテム列挙
- アイテム系消費
- サービス内回遊
3章 3.2.1
適合アイテム発見
数ある候補の中から、ユーザーが目的を達成するためのアイテムを一つでも見つけられることを指す。
例えば、「東京駅近辺で、食事をするための飲食店を探している」というケース
この場合のユーザーの目的は、「自分の好みを一定数満たしている飲食店を一件でもいいから見つけること」
その目的の達成を手助けするのが本手法
食べログの例
ユーザーの好みに合う可能性の高いアイテムから順に並べたリストをユーザーに提示するのが効果的。
リストでは、表示できる情報が限られるため、料理だけでなく、実際に訪問するお店の雰囲気が伝わる写真を見せるようにしている。
また、タブで「ランキング」「口コミ数」「ニューオープン」など、リストの種類を変えられるようにすることで、良いお店に出会う確率を高めることができる。
食べログにお金を払っているお店がトップに出そうだけど、今もそうなのかな?
一方UberEatsでは
一方、UberEatsの場合は、ユーザーが店に赴くことがないため、お店の写真はなく、料理の写真を見せています。
Netflix
Netflixでは、アイテムを横向きに並べることで、複数のリストをタブを切り替えることなく一つの画面で見ることができる。
ユーザーは、複数のアルゴリズムのリストを同時に見られるので一つのリストで見つけられなくても、スムーズに異なるアルゴリズムのリストから好みのアイテムを探すことができる。
3章 3.2.2
適合アイテム列挙
ユーザーが自身の目的を達成するために適したアイテムをできるだけ全てサービス上で発見しようとしている場合を指す。
例えば、コストやお金がかかる、引っ越し先の賃貸物件探し。
自分の好みや条件に合うアイテムをじっくり比較・検討するようなサービスに向いている。
場合によっては検索システムにしたほうがよさそうなものもある
条件に一致するアイテムの件数が多すぎる場合は、条件を追加したり、その逆の場合は、条件を緩めたり変更をすることをユーザーに促すのも効果的
ユーザーがこだわりすぎて、もう少し条件を緩めればユーザーの目的を達成しうる場合は、あえて近い検索結果を表示するのも効果的
検索時には一致する物件はなかったが、条件に一致する物件が現れ次第ユーザーに通知すると言うことも有効
めっちゃSUUMOやん!
3章 3.2.3
アイテム系列消費
同じアイテムを連続して推薦したとしても、ユーザー体験が向上することがある。
例えば、音楽ストリーミングサービスでは、自分の好きな曲は繰り返し聴きたいということがある。
その一方で、ECではすでに購入したものを推薦するのは、良い体験とは言えない(消耗品は除く)
しかし、ユーザーがすでに知っている好みの音楽と、ユーザーが好むであろう未知の音楽の割合を適切にコントロールすることで、自分は知らないが、好みに合うであろう音楽に出会いたいユーザーの欲求を満たすことができる
3章 3.2.4
サービス内回遊
一言でまとめると、サービス本来の目的を達成するためではなく、閲覧すること自体を目的として回遊することを指します。
例えば、すぐに旅行するわけではないが、どんな観光地やホテルなどがあるのかを眺めるだけだったり、引っ越すわけではないが、物件を眺めたり。
Airbnbの例では、
多くのユーザーが興味を持つであろう人気観光地をいくつか取り上げて、周辺の宿泊物件を簡単に閲覧できるようにしたり、「自然に囲まれた宿泊先」など、興味を惹くテーマに沿ったアイテムを特集して表示するなど工夫がされている。
複数ドメインに渡ってアプローチすることで、最終的にサービスの印象が良くなり、回遊率や満足度の向上を狙えそう!
3章 3.3.1
新規・低利用頻度ユーザーの定着
満足度を高めて定着してもらうために、良い体験を提供するだけでなく、悪い体験をさせないことも同じぐらい重要。
こんな時に使われるのが概要推薦
一言で言うと、扱っているアイテムや分野の知識が豊富な編集者による推薦、または統計情報(客観的数値)に基づく推薦。
例えば、前者は「映画評論家による今おすすめの作品一覧」「今週の特売品一覧」
後者は、「今週の視聴ランキング」「コミック売り上げランキング」など
ファッションサービスであれば、「○○編集部が選ぶ夏のアイテム5選!」などかな
3章 3.3.2
サービスへの信頼性向上
「このやたらと推薦されるアイテム(広告)は、サービス提供者の利益になるようになってるのではないか」
こう感じるユーザーも少なからずいるので、サービス内で、ユーザーがアイテムに何かしらの評価(星でもいいしレビューでも良い)を付けることで、利用者からのサービスの信頼性を向上することができる。
Amazonほどの巨大サービスでは、レビューはサクラとかあるけどね…?
Amazonでは日本以外からのレビューを非表示にする機能を提供するなどして対策してるみたい
また、サービス内でユーザーコミュニティが形成されることによって、他サービスとの差別化になり離脱率を下げることも期待できる
信頼できるサービスに魅せる
初めてサービスを使い始めたユーザーには、サービス内の人気アイテムを表示し、「このサービスで自分の好みのアイテムを見つけられそう!」と感じさせることが重要。
3章 3.3.4
クロスセル
「よく一緒に購入されている商品」などにより、単価を上げる方法をクロスセルという。
例えば、スマートフォンを購入する場合、スマホカバーや保護フィルムといったアクセサリーを提案すると、一緒に購入される可能性は高くなりそう。
ファッションであれば、相性の良い他のアイテムを提案してみると良さそう
3章 3.4.3
推薦アイテムの選別
推薦アイテムを提示する際に、ユーザーに提示すべきではないアイテムがある。
ECサイトの例では、一度購入されたアイテムを再度推薦する必要がないことが多い。しかし、消耗品など、定期購入されるようなアイテムはその限りではない。
この場合は、「再度購入」のような機能で別経路をつくってそちらに任せるという戦略が取られる。
3章 3.4.4
推薦理由の表示
「この商品を買った人はこんな商品も買っています(Amazon)」「○○をご覧になったあなたへ(Netflix)」といったように、なぜそのアイテムを推薦するかという理由が明確である(=推薦の透明性が高い状態)と推薦自体の効果だけでなく、サービスへの信頼性を高める効果もある
ただ「おすすめ」とするだけでは、サービス提供者が得をするように感じそうだから何かしら推薦理由を付加した方がよさそう!