自己紹介とアジェンダ

大塚優氏:LINEでデータサイエンティストとして働いている大塚です。このセッションでは、LINEのデータサイエンティストとマシンラーニングエンジニアがどのように協力してプロダクトの改善に貢献しているのか、具体的なプロジェクトの事例を交えてお話しします。

簡単な自己紹介です。私は2019年にLINEに入社して、「LINEポイントクラブ」など、LINEのファミリーサービスが複数にまたがる領域でのサービス横断の分析を担当しています。今回は、横断の分析事例ではなく、LINEスタンプ事業の分析事例についてお話しします。

セッションのアジェンダです。最初にイントロダクションとして、LINEにおけるデータサイエンスとマシンラーニングの組織について簡単に触れていきます。

次に、データサイエンティストとマシンラーニングエンジニアの具体的な協業事例として、LINEスタンプのレコメンドエンジン改善プロジェクトについてお話しします。

2つの組織のプロダクト改善の流れ

LINEのデータサイエンス、マシンラーニングの組織であるData Science室、Machine Learning室は、Data Scienceセンターというセンターに所属しています。

Data Scienceセンターは、データ活用全般を統括する全社横断の組織です。その中でData Science室は、統計解析などのデータ分析によって、事業の重要な意思決定をサポートします。

Machine Learning室は、各事業に対して、例えばレコメンドエンジンのようなマシンラーニングのソリューションを提供していたり、また、各事業で共通利用できるTargeting APIといった、全社共通のマシンラーニングのプラットフォームを開発しています。

では、データサイエンスとマシンラーニング。この2つの組織による、プロダクト改善の流れを見ていきます。

まずは、マシンラーニングの設計です。事業サイドの要求を整理し、マシンラーニングで実現することを明確化した上で、マシンラーニングエンジニアは、目的に合った適切なモデルを検討します。

次に、マシンラーニングの開発です。パラメーターチューニング、特徴量エンジニアリングを通じて、モデルの精度を高めていきます。

その後、A/Bテストによって、モデルの検証を行います。データサイエンティストは、オンラインA/Bテストを通じて、当初の要求が実現されているか、定量的な指標に基づいて多角的に検証を行います。

最後に改善点の発見です。A/Bテストによって得られた知見から、モデルの改善点を見つけ出し、モデル設計へフィードバックします。

これらのサイクルを回し続けることで、プロダクトで運用されているマシンラーニングの仕組みを、継続的に改善していきます。

「あなたへのおすすめスタンプ」について

ここからは、先ほど説明した改善プロセスの具体的な事例として、LINEスタンプのレコメンドエンジン改善プロジェクトについてお話しします。

LINEスタンプのマーケットプレイスであるスタンプショップにアクセスすると、トップ画面に「あなたへのおすすめスタンプ」というスタンプのリストが表示されます。こちらにレコメンドエンジンが活用されています。

「あなたへのおすすめスタンプ」は、LINEスタンプ事業において重要な役割を担っています。具体的な数字で見ていきましょう。

まずは、事業収益の観点です。おすすめスタンプ経由での購買は、スタンプショップのトップ面における売上の40パーセントを占めているため、事業収益に大きくかかわっています。次は、ユーザートラフィックの観点です。デイリーで100万クリック以上の膨大なトラフィックがあり、多くのユーザーのスタンプ購入の接点になっています。

最後はユーザーエクスペリエンスの観点です。直近では1,000万種類以上のLINEスタンプが販売されています。そのように膨大な選択肢がある中で、ユーザーによい購買体験を提供するには、レコメンドは必要不可欠な機能です。

「あなたへのおすすめスタンプ」は、長年運用されていますが、求められている役割は変わりつつあると、我々は認識しています。どういうことなのか、背景について説明します。

これまで多くのユーザーは、スタンプの購入を検討する際、スタンプショップを訪れていました。現在ではLINEのUIが変化し、スタンプへの接点が増えたことで、ユーザーはスタンプショップに訪れなくても、LINEアプリを使っているだけで、自然とスタンプの情報を得られます。

実際のユーザー行動を見てみましょう。「あなたへのおすすめスタンプ」からスタンプを購入したユーザーのうち、およそ9割のユーザーは、別の購入経路からもスタンプを購入しています。つまりユーザーは、複数の接点でスタンプに関する情報に触れていることが、こちらのデータからわかります。

「あなたへのおすすめスタンプ」に求められる役割

以上の状況を整理して、これからの「あなたへのおすすめスタンプ」に求められる役割について考えます。

これまではスタンプへの接点が限られており、ユーザーが欲しいと思うスタンプを、なるべく広範囲にカバーするようなレコメンドが求められていました。そのためには、ユーザーの嗜好を広く浅く捉えた、シンプルなレコメンドが必要でした。

スタンプへの接点が多様化した現在では、「あなたへのおすすめスタンプ」を閲覧するユーザーは、非常に能動的な姿勢でスタンプを探しにきています。そのようなユーザーに対して、今までにない新たなスタンプとの出会いを提供することが求められていると我々は考えました。

これには、今まで以上にユーザーの嗜好を深く捉え、多種多様なスタンプをレコメンドすることが必要となります。キーワードは、レコメンドの多様化です。

レコメンド多様化の実現のための具体的な取り組み

ここからは、レコメンドの多様化を実現するために行った、具体的な取り組みについてお話しします。

先ほどもお話したように、今まではシンプルなレコメンドが求められていました。レコメンドのモデルとしては、Naive Bayesモデルを利用していました。Naive Bayesモデルとは、特徴量間の従属性を扱わないことでパラメーター数を抑えた、シンプルなレコメンドモデルです。

(スライドを指して)そして、レコメンドの多様化を実現するための新たなモデルとして、最初に検討したモデルがこちらになります。利用したモデルは、グラフ構造のニューラルネットワークです。ユーザーとアイテムの情報を高次元の特徴ベクトルにすることで、従来のNaive Bayesモデルと比べ、ユーザーの嗜好をより深く捉えられます。

モデルの評価指標選びとA/Bテスト

ここからは、データサイエンティストがモデルの検証を行っていきます。まず、モデルの評価指標を選びます。これにはいくつかのパターンが挙げられます。

1つ目の指標の候補は、レコメンド経由で発生した売上です。このようなレコメンドに閉じた指標は、A/Bテストにおいてよく使われるものですが、例えばスタンプのランキングや検索といった、レコメンド以外の部分から発生する売上への影響を見逃してしまう可能性があるため、レコメンドに閉じた指標だけの評価では、誤った判断をしてしまう可能性があります。

2つ目の指標の候補は、スタンプショップ全体の売上です。こちらは、漏れがないという点ではよいですが、ただ全体だけ見ていても、当初の目的であるレコメンドの多様化が実現できているのかを検証できません。

3つ目の指標の候補は、メジャーなスタンプ、マイナーなスタンプといった、アイテム別の売上です。仮にマイナーなスタンプの売上が伸びていたとすると、それは今までレコメンドされていなかったスタンプがレコメンドされ、購入されるようになっていることを意味しているため、レコメンドの多様化を検証するための指標として適していると考えられます。

最終的に利用する指標としては、全体の売上、メジャー・マイナーのアイテム別売上の2つの指標を併用して、モデルの検証を行っていきます。

このように、目的によって適切な評価指標は変わるため、事業のデータを理解しているデータサイエンティストが指標を検討することは、モデル検証の重要なプロセスです。

実際にA/Bテストを行ってモデルを評価します。こちらのグラフは、これまでのモデルに比べた売上の増分をパーセンテージで示したものです。中央の棒グラフを見てみると、我々の狙いどおり、マイナーなスタンプの売上が伸び、レコメンドの多様化が実現できていることが確認できました。同時に、全体の売上も向上しています。

この結果自体には、特に何の問題もないように思います。しかしこの時点ですぐにリリースは行わず、データサイエンティストがA/Bテストの結果をより詳細に分析することで、モデルの改善点を見つけ出します。

ここでレコメンドの表示回数の変化を見てみます。(スライドを指して)中央の棒グラフから、マイナーなスタンプの表示回数が大きく増加していることがわかります。

ここで注目したいのが、赤い矢印で示されている、売上と表示回数の増加率のギャップです。このギャップは、トータルの表示回数が増えた一方で、売上に結びついていないケースが今までよりも増えていることを意味します。

つまり、レコメンドの精度になにかしらの課題があるのではないかと思い、原因を探っていきました。

そして、実際のレコメンドのケースを見ていく中で、我々は1つの仮説にたどり着きました。それは、スタンプの特徴が、過度に抽象化されているのではないか、ということです。実例で説明します。

例えば、大阪弁のスタンプを購入したユーザーに対し、このモデルは、ほかの地域の方言のスタンプをレコメンドしているようなケースが見られました。これらのスタンプは、方言という抽象的な意味では似ていますが、実際に両方購入するユーザーは少ないと考えられます。

そこで、特徴量の抽象化レベルを抑制することで、レコメンドの精度が改善するのではないかと思い、Machine Learning室に仮説をフィードバックしました。

先ほどの仮説をもとに、再度モデルの検討を行います。特徴量の抽象化レベルを抑制するために、よりシンプルなネットワーク構造のモデルを検討しました。

先ほどのモデルと異なる部分は、Light Graph Convolutionと呼ばれる、畳み込み層を導入した点です。これによりレイヤー内での特徴量変換が簡素化され、シンプルなネットワーク構造となります。

再びA/Bテストにより、モデルの評価を行います。(スライドを指して)比較のために、初回に検証したモデルを再度A/Bテストした結果がこちらになります。

そして、右側のグラフが2番目のモデルのA/Bテストの結果です。2番目のモデルでは、マイナーなスタンプの売上がさらに改善しています。これによって、売上とレコメンド表示回数の増加率のギャップが小さくなり、レコメンドの精度は、より向上していることがわかります。

さらに、全体の売上の増加率も約2倍に改善する結果が得られました。最終的に、2番目のモデルがリリースされ、現在ではさまざまな地域のスタンプショップで、こちらのモデルが運用されています。

事例は以上となります。

データ分析と機械学習で継続的なプロダクト改善を

最後にまとめです。このセッションでは、LINEにおけるデータサイエンティストと、マシンラーニングエンジニアの関係について、具体的なプロジェクトの実例を通じて説明してきました。

マシンラーニングエンジニアが高度な技術に基づいて開発したモデルを、データサイエンティストが事業全体の視点から検証し、改善点をフィードバックします。LINEではこれらのサイクルを繰り返すことで、継続的にプロダクトの改善を進めています。

以上になります。ありがとうございました。