For Your ISHIO Blog

データ分析や機械学習やスクラムや組織とか、色々つぶやくブログです。

Mercari Tech Meetupに参加してきたメモ - 前半

いしおです。 下記イベントに参加してきました。

mercaridev.connpass.com

インフラは勉強不足なのですが、下記個人的目的のもと参加しました。

  1. 機械学習の適用範囲を把握し、自プロジェクトに持ち帰れるか考える。
  2. MLOpsのベストプラクティスの考え方を探る。

いくつか面白かった話を、備忘録として記載します。(長くなったので前半部のみ)

機械学習(ML)の適用範囲

メルカリのMLの適用範囲は大きく2つです。1つ目は簡単な売買の実現。2つ目は安全な売買の実現です。 「簡単な売買の実現」に向けては、以下のようなMLの取組みがあります。

  1. 書籍・DVD・ゲームなど一部のカテゴリのランキング
  2. 補完入力
  3. 出品商品の重さ推定(USのみ)
  4. クーポン最適化

また、「安全な売買の実現」に向けては、違反出品の検知にMLを利用しています。

出品商品情報の補完入力の話

アプリ利用ユーザが出品時に、商品名や商品説明、カテゴリの入力サポートにMLを利用しています。出品商品の写真を撮影すると、都度MLの「推論」が適用され。自動的に出品商品の可能性が高い商品候補が提示される仕組みとなっています。カテゴリは5~6千程存在しているようで、特に初心者の方だと適切なカテゴリ設定できずに「その他」を入力してしまうことも多いようです。これらの出品時の手間を省き、感動体験を提供するための手段として利用しているとのことでした。

仕組みとしては、Inception-v3というConvolutional Neural Networks (CNN)を利用して、メルカリ上の出品画像5千万枚を学習して特徴ベクトル化し、ベクトル近傍探索を行って類似商品N件を抽出しています。

興味深かった点は、フェールセーフなアルゴリズムにしている、つまり安全側に倒した設計にしていること。例えば、iPhoneの箱の出品写真には、「iPhoneを出品する人」と「iPhoneの箱を出品する人」がいます。iPhoneの箱の出品写真に対して、推奨販売価格の提示を試みると非常にブレ幅が大きく、利用者の期待値調整がおかしいことになるため、これらも踏まえて設計しているとのことです。 また、書籍の予測は比較的簡単だが、シリーズ物の書籍の場合、全て同じ表紙になる場合もあるらしいので、ランキングが難しいなどの小ネタも在りました。

ちなみに、試しに自分のスマートフォンでやってみたところ、しっかり撮影した書籍の情報を表示してくれました。 f:id:ishitonton:20181027002213p:plain

クーポン配布の最適化の話

クーポン配布時に、行動履歴から介入効果が高いお客様を推定する取組みも開始しているとのことです。一辺倒に機械学習だけに固執することなく、ルールベースも併用した両面からのトライをしているようです。例えば、特徴量の重要度をみて、検索を多くした人が良く使ってくれるなどのインテリジェンスを導き、その結果から「5回以上検索した人に、●●施策を実施」等、データの傾向を見てルールベースで運用したりしているようです。

エッジコンピューティングの話

次の施策として、エッジコンピューティングに対して、高い期待を持っていると感じました。その1つの取組みとして、メルカリアプリ上でカメラを起動し身の回りの物をかざすと、そのアイテムの値段や名前を推論して表示するサービスです。裏側にMLのモデルが走っています。値段推定の機能面白いからインストールしてみた等、新しい体験から生まれるユーザの獲得を期待できるのではないでしょうか。海外の競合サービスも同様のサービスを提供しているようです。機械学習技術自体がエンターテイメントになるのが面白いですね。

Kaggleコンペの話

以前にKaggleでメルカリ商品価格を予測するコンペMercari Price Suggestion Challenge | Kaggleがありましたが、コンペ上で多くのディスカッション等の知見を吸い上げて、商品値段の予測モデルを作成しているとのことです。ただし、価格推定モデルで何を実現したいかによって利用すべきモデルも変わってくるので、複数モデルを用意して考え中のステータスとのこと。

似たような話として画像検索の話もありました。「完全に同一画像が欲しい」のか、「関連画像が欲しい」かでモデルは当然異なりますし、利用者自身もどちらを望むかが都度異なると思います。この場合は、A/Bテストしてどちらかを提示するのではなく、複数個提示するのが正しいやり方な気がする、とおっしゃっていました。

Ops系の話が少ないですが、長くなったので気が向いたら続きをまとめようと思います。