メルカリにおける AI 活用事例PyCon JP 2018Ryusuke Chiba @metalunk
View Slide
発表タイトルについて弁明申し込み時点で完成していなかったものを発表したかったので,もしもできなかったときのために,曖昧なタイトルにしました...> メルカリにおける AI 活用事例画像検索はだいたいできたので話せることになりました!
自己紹介Ryusuke Chiba@metalunk● グリー○ GREE News○ 消滅都市● 数理最適化● メルカリ○ 検索○ 機械学習基盤 (SysML)
きょう話すことメルカリで Python を使っている事例についてお話しします● メルカリにおける機械学習の活用事例ざっくり● 画像検索機能をつくった話● 量子アニーリングインターンの話
メルカリでの PythonいまのところメルカリではPython を使っているのはほとんど Team-AI だけ(あとは Search チームくらい)しかし,マイクロサービス化が進んでおり,それぞれのサービスにぴったりな言語を自由に選択できる!
メルカリにおける機械学習Machine Learning Usage in Mercari
メルカリのご紹介「メルカリ」は、個人がスマホで簡単に売り買いを楽しめる、CtoCマーケットプレイスです。
メルカリのご紹介2013年7月に日本での提供を開始しました。2014年9月にUS、2017年3月にはUKにおいてもサービスの提供を開始しています。※ 1.累計ダウンロード数は、各月末の累計数を記載しております。 2.累計ダウンロード数及び登録MAUには「メルカリ カウル」、「メルチャリ」は含んでおりません。 3.登録MAUは、「登録Monthly Active User」の略であり、「メルカリ」に登録しているユーザーのうち、1ヶ月に一度以上「メルカリ」を利用したユーザーを集計しております。 4.登録MAUの四半期平均を記載しております。 5.流通総額は取引高の合計(「メルカリ カウル」を経由した購入を含む)を記載しており、四半期毎の合計額となっております。為替レートについては、各月の期中の期中平均為替レートを使用しております。累計ダウンロード数(1)(2)百万件1億件突破20156月期20166月期20176月期20176月期登録MAU(2)(3)(4)百万人1,075万人20156月期20166月期20176月期20176月期流通総額(5)十億円961億円20156月期20166月期20176月期20176月期
メルカリが保有するデータの種類
メルカリが保有するデータ規模
メルカリにおける機械学習の取り組み「簡単」な売買● 画像認識による商品タイトル、情報自動入力 (JP, US)● 商品の重さ推定 (US)● 商品の値段推定 (US)「安全」な売買● 類似画像検索 (JP)● マルチモーダルによる違法出品検知 (JP)
画像認識によるタイトル,カテゴリ,ブランド自動入力簡単 !
機械学習基盤Machine Learning Platform
チーム構成Sculley, et al, “Hidden Technical Debt in Machine Learning Systems”, NIPS 2015https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdfメルカリ Team-AI機械学習エンジニアSysML
機械学習基盤メルカリでは内製の機械学習基盤をつくっています1. つくったモデルをかんたんにデプロイa. 設定ファイルさえ書けば出せるように2. モデルの管理a. バージョン管理,デグレしない3. Kubernetesa. Container による再現性b. Resource management4. Component の再利用a. たとえばある分類器のために作られた Feature Extraction は他でも使える
構成
画像検索Image Retrieval
モチベーション画像をクエリにし,画像が似ている商品を探し出すまずは社内の Customer Support Tool に提供● 違反出品を発見したときに,似ている商品を検索し一網打尽● 商品についての何らかの判定モデルを作るときの教師データ収集自分は基盤を作る役割
画像検索の仕組み - 全体像
画像検索の仕組み - Feature Extraction画像をベクトルに変換する今回は商品のカテゴリとブランドを当てられるようにトレーニングした DeepNeural Networks の中間層のベクトルを利用する
画像検索の仕組み - FaissFaissFacebook AI Research 製の類似検索 / クラスタリング用ライブラリC++ 製だが,Python wrapper をもつJohnson et al, “Billion-scale similarity search with GPUs”, https://arxiv.org/pdf/1702.08734.pdf, 2017
画像検索
量子アニーリングQuantum Annealing
急に量子...?https://tech.mercari.com/entry/professional_internship量子アニーリングマシンであるD-Wave を使ったインターンを実施しましたそして D-Wave は Python API を提供している!
量子アニーリングとは?量子アニーリングマシンである D-Wave は QUBO (Quadratic Unconstrained BinalyOptimization Problem) という形の最適化問題の近似解(精度保証はなし)を得られますMedia Resources https://www.dwavesys.com/resources/media-resources
かんたんな D-Wave の使い方1. 好きな最適化問題を QUBO に変換し,パラメータ Q を得ます2. Python で D-Wave API を叩きます3. カナダの D-Wave マシンに Q が送られ,量子効果により答え(最適解とは限らない)が得られます4. 変換の逆操作で,元の問題の解に戻します
かんたんな D-Wave の使い方https://github.com/dwavesystems/qbsolv/blob/master/examples/tryDwaveQbsolv.pyこれは実際は CPU で解かれているシミュレータで,QPU を使いたい場合はD-Wave に発行された token が必要になる
量子アニーリングインターン● yonesuke○ 「D-WaveマシンでGraph Golfに挑戦した話」○ https://tech.mercari.com/entry/2018/09/11/171607● @__ukun○ 「D-waveマシンで最大カット問題を解く」○ https://tech.mercari.com/entry/2018/09/13/165921
まとめConclusion
まとめメルカリの Python 利用事例について話しました● 機械学習の活用事例ざっくり● 機械学習基盤の説明● 画像検索の説明● 量子アニーリングの説明メルカリブース出してます!