Neural Architecture Searchを用いて出品違反検知モデリングを高速化したお話
by
Daiki Kumazawa
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Slide 1
Slide 1 text
1 Confidential - Do Not Share Neural Architecture Searchを用いて 出品違反検知モデリングを高速化したお話 Software Engineer Intern, Machine Learning Daiki Kumazawa
Slide 2
Slide 2 text
2 Confidential - Do Not Share - Twitter: @dkumazaw - Second-year M.S. student in Statistics @ Stanford - 9月までインターン - 経済→統計→機械学習 - 次は 低レイヤーをやりたい 自己紹介
Slide 3
Slide 3 text
3 Confidential - Do Not Share ● メルカリは約1300万MAUにご利用頂いており、日々多数の出品がある ● メルカリの規約や法令に違反する出品があり、それらは早急に検知・削除されな ければいけない(https://www.mercari.com/jp/help_center/getting_started/prohibited_items/) ● 理想: お客様の目に規約違反出品が触れないようにする ● カスタマーサポートが人力で全ての出品をチェックするのは非現実的 ● 機械学習エンジニアのタスクは、特定の違反に該当する出品を高いPrecision で見つけること!(意訳:もし誤って正常出品を削除してしまうと、出品者のお客 様体験は悪い) ● 使用可能な色々なモダリティのデータを最大限活用したい 問題設定
Slide 4
Slide 4 text
メルカリが保有する商品データ概要 商品名 フォーマルワンピース 商品説明 未使用で美品です。タグ付きになって います。 出品者 めるーさん カテゴリー レディース/ワンピース/ ミニワンピース ブランド 無し 商品サイズ M 商品状態 新品、未使用 配送料負担 送料込 値段 ¥2,180 配送方法 らくらくメルカリ便
Slide 5
Slide 5 text
5 Confidential - Do Not Share 規約や法令は常に変化する e.g.) チケット不正転売禁止法 (2019年6月14日施行) 第一条の4: “この法律において「特定興行入場券の不正転売」とは、興行主の事前の同意を得な い特定興行入場券の業として行う有償譲渡であって、興行主等の当該特定興行入場券の販売 価格を超える価格をその販売価格とするものをいう。 ” 第三条: “何人も、特定興行入場券の不正転売をしてはならない。 ” (出典: http://www.bunka.go.jp/seisaku/bunka_gyosei/ticket_resale_ban/index.html) ➞違反カテゴリに変化や追加がある度に対応するのは大変! 課題その①
Slide 6
Slide 6 text
6 Confidential - Do Not Share マルチモーダルモデリングのベ ストプラクティスとは? 課題その② 出典: https://tech.mercari.com/entry/2018/04/24/164919 弊社でも過去から取り組んでいるが、画像の分 類タスク等の様なOff-the-shelfのネットワーク やモデルのトポロジーは存在しない。 ➞タスクに最適なネットワーク設計とは?
Slide 7
Slide 7 text
7 Confidential - Do Not Share 1. ルールの変化にスケーラブルに対応できる 2. マルチモーダルで精度の出るモデルを作れる そんな仕組みが欲しい! Q:どのような機械学習システムを作ればこれらの課題に対応できるか? A: AutoML的な、モデリングからデプロイ準備までやってくれる何か ➞Neural Architecture Searchを活用したシステムを開発することに 整理すると・・・
Slide 8
Slide 8 text
8 Confidential - Do Not Share Neural Architecture Search Neural Architecture Search with Reinforcement Learning (Zoph & Le 2017) - 元祖NAS - RNNを使ってニューラルネットをサン プル - 強化学習でRNNの重みを最適化 - 生成された子モデルのシグナルを 使ってパラメータ更新をする 出典: https://arxiv.org/abs/1611.01578
Slide 9
Slide 9 text
9 Confidential - Do Not Share ではなくて・・・ DARTS: Differentiable Architecture Search (Liu et al., 2018) - アーキテクチャの最適化を微分可能にすることでRNNを不要に - レイヤーごとの接続が全てのオペレーションの重ね合わせになっている 出典: https://arxiv.org/abs/1806.09055
Slide 10
Slide 10 text
10 Confidential - Do Not Share 実験してみる
Slide 11
Slide 11 text
11 Confidential - Do Not Share - 今回の実験では画像とテキストを使用 - 実験のねらいは、どの程度の精度が出るモデルを自動生成できるか検証す ること(e.g. 現在プロダクションに乗っているモデルに勝てるか?) - 画像の特徴量抽出:一般に使われているCNNを利用(ImageNetから効率 的に転移学習するため) - テキストの特徴量抽出:DARTSを1D Convolutionに対応させたアーキテク チャサーチでネットワークを探索する NAS手法
Slide 12
Slide 12 text
12 Confidential - Do Not Share - 6つの違反カテゴリに対してマルチモーダルなデータを集める - NASで6カテゴリについて最適化されたアーキテクチャを探索 - それぞれのカテゴリについて従来のモデルとNASで発見されたモデルの両方を トレーニング - 評価:Average precisionと、閾値を上下させた際のPrecision/recallの挙動 に注目 NAS手法 v.s. 従来手法 実験内容
Slide 13
Slide 13 text
13 Confidential - Do Not Share 正クラス(違反)のSoftmax出力の閾値を0.9に設定した場合の PrecisionとRecall値 実験結果(の一部) ➞各カテゴリにおいて精度向上、NAS手法の有効性を確認
Slide 14
Slide 14 text
14 Confidential - Do Not Share - データをFeedしたら勝手にトレーニングと 評価をして、サービングできるようなモデル を自動で仕上げるところまでやってほしい - 内製のデータETLプラットフォームに組み 込むことで対応 どうやってシステム化するか? name: nas-classifier workflow: - name: dataset module: nas.dataset_script args: - --categories - hogehoge - name: search module: nas.architecture_search args: - --batch_size - 512 dependencies: - dataset - name: evaluation module: nas.evaluation args: - --num_workers - 16 dependencies: - dataset - search こんな感じでyamlを書くと、データ獲得・サーチ・評価・デ プロイ可能なモデル生成までやってくれるようになった!
Slide 15
Slide 15 text
15 Confidential - Do Not Share 1. 違反カテゴリが追加Or変更される! 2. エンジニアのアサイン 3. 情報収集、データ収集、モデリング、精度検証 4. 精度がでなければ3に戻る 5. デプロイ準備、QA 6. 無事デプロイ! ・・・と、どうしても時間がかかってしまう(場合によるが、1〜3ヶ月)。 従来の開発の流れ
Slide 16
Slide 16 text
16 Confidential - Do Not Share 1. 違反カテゴリが追加Or変更される! 2. エンジニアのアサイン 3. 情報収集、データ収集、モデリング、精度検証 4. 精度がでなければ3に戻る 5. デプロイ準備、QA 6. 無事デプロイ! 新しいシステムでの開発 データETLプラットフォームへの組み込みで自動化 NASのライブラリ化で自動化 NASの面倒を見れる人がいれば良い
Slide 17
Slide 17 text
17 Confidential - Do Not Share タスク発生から実際のデプロイまでを高速で行えるようになった 何が変わったか 〇〇についても対応したいですね。 じゃあPoCしてみましょうか。 ➞即実験、上手く行けばそのままデプロイが可能に! (2,3週間)
Slide 18
Slide 18 text
18 Confidential - Do Not Share - 1)規約や法令の変化にスケーラブルに対応できて、 - 2)マルチモーダルで精度の出るモデルを作成できるシステムが必要! - Neural Architecture Searchを用いたAutoML的システムを開発した - 内製のデータETLプラットフォームに載せることでモデルの開発サイクルを高速 化! - 月単位で行われていた開発を、週単位に落とした - 高速に実験とデプロイのイテレーションを回せるように まとめ
Slide 19
Slide 19 text
19 Confidential - Do Not Share - データ・特徴量設計は当然手動! - 上手く行かなかったカテゴリでは、利用していないモダリティが効いていた - では、画像とテキスト以外にどんなモダリティ・特徴量をどこまで含めるべきか? - NAS手法の改善は可能か? - 画像とテキストの中間特徴量の fusionをする手法も提案されている - (Multimodal Fusion Architecture Search) - アーキテクチャ最適化手法についても、ここ1 −2年で活発に研究が進んでいる段階 課題点