機械学習に基づくパーソナライズドレコメンド導入で学んだ3つのこと

機械学習に基づくパーソナライズ化の導入にあたり学んだことや
プロダクトマネージャーが心がけるべきことをまとめました

こんにちは。アプリのプロダクトマネージャーをしている井上です。

これまでWebアナリストとして数社を渡り歩き、GoogleアナリティクスやBigQueryを用いたアクセス解析を武器として、Webサービスの企画や改善を行ってきました(Web分析と改善に関する書籍をマイナビ出版さまから出しています)。
特技は音楽制作で、作詞作曲から楽曲のアレンジまで幅広く行っています。2000年代のUKロックが大好物です。お好きな方、一緒に語り合いましょう。
2020年2月にアウモへ参画したのち、現在はアプリチームのマネジメントをしながらサービスの企画・運用を行ってます。

aumoの記事配信サービスでは、昨年8月から機械学習をベースとしたパーソナライズドレコメンドを採用し、ユーザー個々人の行動ログに基づいて記事を推薦しています。
僕はこれまで、パーソナライズドレコメンドの企画を経験したことがなく、機械学習や統計学を腰据えてしっかり勉強してきたわけではなかったので、当初は右も左も分からずてんやわんやでした。

ただ、様々な企業がユーザー個々の体験価値向上を目指し、どんどん新しいサービスや機能を提供している昨今。レコメンドのパーソナライズ化をディレクションすることは、多くのプロダクトマネージャーにとって避けて通れない時代がきていると、日々ヒシヒシ感じています。

今回は、機械学習に基づくパーソナライズドレコメンド導入・改善に至るまでの間で、学びになったことや今後活かしていきたいことをまとめました。
プロダクトマネージャー職の方々の一助になればと思います。

なぜ記事レコメンドシステムの開発に取り組んでいるのか

皆さんはおでかけ前にどんな行動をしますか?

検索エンジンを使っておでかけ先の情報を探す、気になるインフルエンサーが発信する情報を見てみる、などなど。人によって様々な行動が考えられます。

aumoは「おでかけをもっと楽しく」をコンセプトに、関心のあるおでかけ情報にいつでも出会えるよう、記事の配信やスポット情報の提供を行っています。
おでかけをする際には必ずaumoを使ってもらえるように、この「関心のあるおでかけ情報にいつでも出会える」ことを僕たちは大切にしています。

先述の通り、Googleなどの検索エンジンで検索すれば、見たいと思った情報には出会えるはずです。
しかし、検索せずとも必要な情報に出会えれば、「検索する」というステップをわざわざ踏むことなく「関心のあるおでかけ情報にいつでも出会える」ようになります。

そういう体験を目指し、我々は記事のレコメンドシステムの最適化を行っております。

これまでの記事配信の経緯

aumoはおでかけ情報を扱うサービスなので、情報の最適化には「エリア」という概念がどうしてもついて回ります。

自分は新潟出身なのですが、新潟に住んでいた時に東京のグルメ情報がテレビで取り上げられていても「どうせ行けないからな…」とあまり興味が湧きませんでした。
こんな感じで、近場の情報であるかどうかは、おでかけ情報にはかなり重要な軸となります。
実際、近場の情報の方が記事のクリック率が高く、エリアの重要度がデータでも検証できていました。

そこで、当初は位置情報取得を許可していただいたユーザーのみ、現在地情報をベースにして近場の情報をレコメンドするシステムを採用していました。
実際に記事を読むユーザーが増えたり、自分の身近な情報が得られるというお声をいただいています。

しかし、おでかけするとなると近場の情報だけでは足りません。近場でなくとも、興味のある場所やよく行く場所があるはず。

また、一口に「おでかけ」といっても、おでかけの目的も違う。沖縄へスキューバダイビングがしたくて訪れる人もいれば、本場の美味しい泡盛とグルメを味わいたくて訪れる人もいます(僕は圧倒的に後者です)。

位置情報に基づくレコメンドシステムは、そのニーズを叶えられず不完全なものでした。
そこで、関心エリアやジャンルを推定してレコメンドを最適化しようという狙いから、行動ログに基づくレコメンドパーソナライズ化に踏み切ることにしました。

レコメンドシステムの構造

aumoでは、閲覧したことのある記事に関連する記事は恐らく関心があるものと仮説立て、閲覧履歴からユーザーごとに関心の高いエリアとジャンルを推定し、記事レコメンドをパーソナライズしています。

詳細な説明は省きますが、ざっくり言うとこんな手順でレコメンドしています。
①BigQueryに溜めている行動ログから、各ユーザーの閲覧している記事リストを集計・加工
②閲覧記事を分類(「クラスタリング」と呼んでいます)
③各ユーザーごとに閲覧エリアとジャンルを特定し、一定のルールに基づき関心エリアやジャンルを推定
④関心エリアやジャンルに合致する記事の中で、特に関心度が高いエリア・ジャンルの記事をリスト化
⑤アプリ側でユーザーに記事推薦

(レコメンドシステム基盤周りの改善事例を開発担当の堀江さんのエントリにてご紹介しています。気になる方は是非ご覧ください。)

aumoには莫大な記事データがあります。
ユーザーが欲しい情報をレコメンドするには、閲覧した記事に似た記事を莫大な記事データの中から抽出してくる必要があります。

そこで、②のステップで機械学習が登場します。
クラスタリングという手法を用いて、記事のタイトルや本文から特徴量を算出。特徴量の近い記事同士で分類しています。ざっくり言うと、似てる記事同士をグルーピングする感じです。

このグルーピングのステップを踏むことで関心情報を推定できており、推薦する記事を決めることができます。

この仕組みを導入することで実際にKPIが増加しており、記事のクリック率を大きく改善することができました。

パーソナライズドレコメンド導入で学んだ3つの大切なこと

プロダクトマネージャーとして記事配信のパーソナライズ化に携わり、色々な壁にぶつかる中で3つの学びを得られました。
そもそもパーソナライズや機械学習うんぬんを問わず、 プロダクトマネージャーとして重要な視点ばかりだと思いますが、改めてここをしっかり押さえておくことでスムーズにディレクションができるのではと考えています。

理想とする体験を言語化する

機械学習に基づくパーソナライズドレコメンドは、データの学習や数理的な計算など非常に高度な実装が必要になります。
これまで経験してきた開発プロジェクト以上に、仕様策定でエンジニアさんにお任せしないといけない部分が多かったな、というのが肌感でありました。
そのため、理想とする体験をしっかり言語化してチームメンバーとすり合わせないと、目的を達成することができないと感じています。

先述の通り、aumoはおでかけアプリという性質から、エリアとジャンルという二軸がとても重要です。
そのため、「関心のある記事をレコメンドしたい」というコミュニケーションでは、「関心のあるエリア情報はレコメンドできているけど、関心のあるジャンルはレコメンドできていない」と片手落ちになり、ユーザーの体験価値は高まっていきません。

理想とする体験価値をエンジニアさんとしっかり議論、定義した上で、一緒に伴走しながら開発を進めていく必要があると感じています。

KPIを見直し続ける

プロジェクトを進める中でモニタリングしていくKPIは常に見直す必要があると学びました。

当初のレコメンドシステム開発では、記事のクリック率を最重要指標として施策前後にモニタリングしていました。
先述の通り、aumoでは「関心のあるおでかけ情報にいつでも出会える」 ことを重視しており、記事をクリックしていれば「ユーザーは関心情報に出会えた」と評価できる、と考えたからです。

しかし、「記事をクリック」するかどうかは関心に合うかどうかだけでなく、記事のタイトルが扇情的だったり、過激な内容かどうかによっても左右されます。
実際、レコメンドシステムの改善を進めることで想定通りクリック率が増えていった一方で、「レコメンドされる記事が特定の内容の記事ばかりになり、改善して欲しい」というお問合せをいただくことが増えました。

つまり、記事のクリック率を追うだけでは足りず、満足度も合わせてモニタリングしていかないと本当に関心のある情報に出会えているか分からず、結果的にユーザーは増えていかないのでは、という仮説を立てました。
そこで、ユーザーの満足度を別のKPIで定義し、モニタリングしていくことにしました。

KPIを見直して各施策を評価することで、記事のクリック率だけでなく新しく設定したKPIも改善し、改善要望のお声も減っています。

人によって体験が変わるパーソナライズシステムだからこそ、今モニタリングしているKPIで良し悪しを判断して本当にいいのか、常に見直していくべきだと感じました。

社内外からフィードバックをもらう

当たり前のことではあるのですが、パーソナライズ化によってユーザーそれぞれで異なるサービス体験をすることになります。
自分の端末には関心のある情報が届いても、他のユーザーが同様だとは限りません。
そのため、様々な人に実際にサービスを触ってもらい、フィードバックをもらうことが非常に重要です。

定量的なデータから仮説を立て、検証していくことはもちろん大事なことです。
ですが、定量データだけでは、具体的にどんなユーザーへどんな記事を届けているのか、それは本当に求めている情報なのか、評価することができません。
定性的な面も合わせて仮説立て、評価していくことで、新しい発見が得られます。

先述した「KPIを見直し続ける」の事例も、ユーザーからのお問合せを起点に発見した課題でした。
社内のメンバーはもちろんのこと、ユーザーやお友達、ご家族など社外の方々に使ってもらった感想やフィードバックをもらうことで、更にシステムの課題が見えてくると思います。

おわりに

人々の価値観や趣味趣向がますます多様化していく昨今、かつてのマスマーケティングでは実現できない体験価値をパーソナライゼーションによって高めていくことができると、改めて感じています。

自分自身、お問合せやSNSを通じて色々なVoCに触れる中で、おでかけ一つをとっても本当に多種多様な目的があるんだなという学びを得ました。

様々なユーザーの「おでかけをもっと楽しく」を実現できるように、引き続き記事のパーソナライズドレコメンドに注力していきます。

そんな想いに賛同してaumoを一緒に支えてくださる仲間を絶賛募集中です。
aumoで働くことにご興味のある方、是非一緒に働きましょう!

採用情報はこちらから