ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog

テクノロジー

PayPayフリマにオンデバイス機械学習を導入! 〜 アプリエンジニアがモデル作成からやってみた

こんにちは、CTO室アプリ統括部の平松と大西です。普段はiOSアプリエンジニアとして、Appleプラットフォームの技術キャッチアップや全社への技術サポートを行っています。

最近はオンデバイス機械学習に取り組んでおり、その取り組みを紹介します。今回の記事はPayPayフリマのハッシュタグ機能を改善するために、オンデバイス機械学習を導入したことについてお話しします。

PayPayフリマとは

PayPayフリマとは個人間で売買できるフリマアプリです。 PayPayで支払いや売上金の受け取りができます。リリースから2年たちましたが、価格の相談やハッシュタグ機能、動画出品などスムーズに売買するための便利な機能が多く提供されています。

今回の取り組みのきっかけ

私たち2人は2021年4月にPayPayフリマチームからアプリ統括部に異動しました。主な業務は、アプリの最新技術の獲得や全社への技術的なサポートです。その業務の中で、オンデバイス機械学習に取り組むことになり、機械学習の勉強を0から始めました。Kaggleや専門書の情報に加え、社内の機械学習エンジニアにアドバイスをもらうなどして勉強していましたが、学んだ内容を生かすために実際のプロダクトでの活用を目指しました。そこで、PayPayフリマにオンデバイス機械学習を導入できないかブレストし、ハッシュタグ機能の改善に取り組むことにしました。

ハッシュタグレコメンド機能

今回実装するのはユーザーが興味を持ちそうなハッシュタグをレコメンドする機能です。まだユーザーがフォローしていないタグの中からユーザーに適していそうなものを推薦します。

ユーザーIDとハッシュタグのレコメンド機能

上記の画像のように、関連するハッシュタグとして、ユーザーが興味を持ちそうなハッシュタグがレコメンドされます。この表示の仕組みには「このタグをフォローしている人はこのタグもフォローしています」という、協調フィルタリングと呼ばれる手法を用いています。協調フィルタリングについて、詳しい説明は省略しますが、興味がある方はこちらの記事をご覧ください。

ヤフオク!でユーザーが落札したいと感じる商品推薦の作り方

オンデバイス機械学習(Core ML)の活用

オンデバイス機械学習はスマホの端末上に機械学習のモデルを搭載し、サーバーと接続することなく計算が完結します。そのためユーザーの情報を外に出すことなく機械学習が利用できるので、プライバシーの観点から近年注目されています。iOSアプリではAppleがCore MLというフレームワークを提供しており、この仕組みを使って今回は実装を進めました。アプリエンジニアから見ると、APIやサーバーの運用が不要なため導入しやすいという利点もあります。

データを集める

機械学習のモデルを作るにあたって重要なのはデータです。ヤフーではログ基盤が整えられており、必要なログに権限を持つ人であれば誰でもアクセスできます。今回のモデルではハッシュタグのフォローのログを過去1年分使用しました。CoreMLのモデルを作る(後述)には、ユーザーIDとその人がフォローしたハッシュタグのペアのリストが必要なため、pandasを用いて前処理し、整形しました。
ここで取り扱っているデータは、プライバシーポリシーの範囲内で取得したデータを個人が特定できない状態に加工しています。

ユーザーIDとハッシュタグのペアリスト

モデルの作成とアプリへの組み込み

Appleが提供するツール「Create ML」を使えば簡単にCore ML用のモデルを作ることができます。先ほど用意したデータをCreate MLに読み込ませ、GUIベースでモデルを作成しました。Core ML用のモデルを作るには、TensorFlowやscikit-learnでも利用できますが、複雑なことが必要なければCreate MLで作ってしまうのが簡単でおすすめです。

モデルが用意できたらアプリに組み込んでいきます。CoreMLの詳細な仕様や実装方法は弊社の林 (@kazuhiro494949)が紹介している以下の記事を読んでみてください。

ヤフーでのエッジAIの実践的活用 #CoreML

プロトタイプをもとに相談し、リリースへ

モデルを組み込んだプロトタイプを作成し、それをもとにサービスマネージャーに相談しました。プロトタイプを作ったことによって本番のデータでどのようなレコメンドがどの程度の精度で表示されるかがわかり、これなら世に出してみても良いのではということになりました。パラメータの異なるモデルを上下に並べて表示するなどして直感的にどのモデルが良いか第三者でも判断しやすいように工夫しました。「スニーカー」「化粧品」など人気のハッシュタグに加え、チームメンバーそれぞれが気になるハッシュタグでのレコメンド結果を見て、どのモデルが良いか話し合いました。

リリース後にA/Bテストの集計をしたところ、既存の仕組みよりもCTRが増加し、ハッシュタグ経由の回遊が大幅に増えてアプリの滞在時間増加につながる良い結果が得られました。

アプリエンジニアが機械学習に取り組んでみた所感

今回のモデルはCreate MLで作ったものを採用したので、モデルの中身はブラックボックスです。一般的にはレコメンドの手法を変えてみたり、パラメータをチューニングしたりと、モデルの精度を追求すると思いますが、アプリエンジニアの私たちはモデルのロジック理解や精度はそれほど重要視しておらず、いかに早くユーザーに便利な機能を届けられるかを重視して取り組みました。

ユーザー体験を考える際に、ユーザーに近いフロントの開発をしているアプリエンジニアの考え方はとても有用です。「機械学習」と聞くと身構えてしまうかもしれませんが、あくまでユーザーの体験を向上させる手段のひとつです。トップ画面のレコメンドなどはサイエンス部門が担当していることが多いと思うので、アプリエンジニアとして機械学習を導入する際は主導線ではない画面から始めていくと進めやすいと思います。

おわりに

PayPayフリマアプリにオンデバイス機械学習を導入することで、ユーザー体験を向上できました。

オンデバイス機械学習であればプライバシーへの配慮ができるうえ、アプリエンジニアとしてはAPIの開発、サーバー運用が不要で、アプリだけで完結できます。Core MLやCreate MLなどといったツールを使えばアプリエンジニアでもモデル作成から比較的簡単にできますし、UIも含め実際に動く機能を作りきれることは大きな強みになると思います。機械学習に興味がある方は、ぜひ試してみてください。

この取り組みは私たちの初めての機械学習プロジェクトでしたが、社内表彰制度でも評価され、非常に良い経験になりました。

こちらの記事のご感想を聞かせください。

  • 学びがある
  • わかりやすい
  • 新しい視点

ご感想ありがとうございました


平松 亮介
iOSアプリエンジニア
Appleプラットフォームの技術キャッチアップや全社への技術サポートを行っています。
大西 智也
iOSアプリエンジニア
Appleプラットフォームの技術キャッチアップや全社への技術サポートを行っています。

このページの先頭へ