1日22時間寝たい

技術頑張ってる最中です

【参加報告】「ML@Loft #11. 類似画像/テキスト検索 - オンライン開催」に参加した

コロナのおかげで色々な勉強会がオンラインになってすごく参加しやすいので、嬉しくて1年ぶりのブログ書くことにした。

本日開催された「ML@Loft #11. 類似画像/テキスト検索」に参加しました!

配信はYouTube Live、質問の受付はsli.doでした。勉強会のURLは以下。

ml-loft.connpass.com

sli.doと並行してTwitterでも「#MLLoft」のハッシュタグで盛り上がっていた気がします。

以下、ざっくりとした自分用のメモ。

発表

松井 勇佑 氏 (東京大学 生産技術研究所 助教) 「annbench: 近似最近傍探索アルゴリズムベンチマーク

画像検索を考える上で近傍探索アルゴリズムの選択は重要ですが難しいです。既存の有名なベンチマーキングライブラリは網羅的ですが実行に十数時間かかるという問題がありました。そこで私は軽量でシンプルなベンチマークのライブラリを作りました。これにより手軽に手法を比較出来ます。是非使ってみてください。

speakerdeck.com

  • どんなひと?
    • コンピュータビジョンをやってる
    • faiss(facebook作の強いライブラリ)のwikiの図書いてる
  • 近似再近傍探索について話す
    • どのライブラリどの手法が良いのか?
      • 基本ベンチマークで見るのが良い
        • 横が精度縦が速度
        • 2020年3月現在はNMSLIBとNGTが競っている
        • 素晴らしいが、全部やっていると10時間以上かかる
    • annbenchというライブラリが良い
  • 感想
    • パラメータをその場でoverrideできるのは試行段階では便利そう

中川 裕太 氏 (株式会社ABEJA) 「リピーター分析における特徴量DBって研究課題満載でホントおもしろい!」

株式会社 ABEJA では顔特徴量をベースにしたリピーター分析機能を提供しています.ここで用いられている特徴量DBについて,非常におもしろい課題たちをモデルとシステムの両面から振り返り,特にモデルに関して具体的な解決策を紹介します.ここで触れた課題についてLT後にみなさんと深堀りできることを楽しみにしています!

  • ABEJAで提供しているリピーター分析に使っているDBの話
    • 特徴量DBの話
      • 特徴量DBとは?
        • 動画の顔を判定して、リピーターかどうか判定するサービス
        • 動画の顔を時系列で特徴取得-->リピーターかどうか見てる
      • 課題
        • 検索/更新の速度
          • GW(平時の10倍)やお盆は負荷が大きい
            • ぶっちゃけGWに負荷上がりすぎて障害発生-->盆までにどうにかしたい
        • 変更の容易性
          • 元々売れるか分からないサービスだったのでDBは簡素なものだった
          • 修正したアルゴリズムをデプロイすると再起動に丸1日
        • トランザクションの競合
          • 特徴量DBに並列で複数モデルからリクエストが
            • サービス成長に伴うリクエスト増加で段々きつく
            • readとwriteがかぶってデータ不整合
      • 解決法
        • 検索/更新の速度
          • 特徴量の工夫(今日はココだけ話す)
            • 元々-->任意のひとに紐づく特徴量に対して再近傍探索
              • しかし、リピーター分析では検索精度が大事
            • 近似ではなく検索対象を絞る
            • 特徴量をvon-Mises Fisher分布に従うように学習
              • 精度そのまま9.8倍早くなった
        • 変更の容易せい
          • ロジックとデータの分離
        • トランザクションの競合
          • 楽観的なロック
    • 今後
      • 構造がなさそうな空間でどう検索をスケールさせるか
        • CPUで殴ればスケールは可能
        • しかし、金がかかる

氏原 淳志 氏 (BASE株式会社) 「BASEアプリの関連商品の裏側」

BASEアプリではBASEを利用してるECサイトの商品を横断的に検索し購入することができます。よりよい商品探し体験のため、商品ページにはその商品に似た商品を表示しています。この類似商品がどのような仕組みで提供されていて、どのように運用されているかを紹介します。

  • BASE:ネットショップ作成サービス
    • 表示商品の類似商品を提示するシステム
  • 画像の特徴量
    • MobileNet
    • 事前学習モデルをそのまま使っている
    • 全結合層を取って使っている
  • テキストの特徴量
    • fastText&SCDV
  • 近傍探索
    • faiss
      • 圧縮の仕組みが用意されている
      • ドキュメント充実
    • 元々NGTだったがメモリを食う
  • 運用
    • 画像は事前計算、テキストはオンデマンド
    • データチームが作ったモデル等は基本APIで提供

澁井 雄介 氏 (株式会社メルカリ) 「メルカリ写真検索1年の歩み」

メルカリに写真検索の機能が追加されてからちょうど1年が立ちます。この機能がどういう仕組で提供されていてるのかやどのように改善されてきたかなどを、1年間の運用の中で起こった様々な感動秘話を交えて紹介いたします。

  • 汎用APIとしても提供(おそらく社内に対して?)
  • ざっくりとした処理の流れ

    1. 画像から物体検出
    2. 特徴検索(ベクトル変換)
    3. faissのindexから類似アイテムを探す
    4. アプリに結果を返す
  • AWSGCPで、かつk8sという剛健構成

  • 運用したての頃は障害多発
    • ログ/リトライ/監視が不足して障害切り分けができなかた
    • メインスレッドが落ちてもキューが残ってサブスレッドが落ちず、リトライもされず
  • 写真から類似の別商品を探すメルカリIMEがリリースされたて!

  • 感想

    • アプリでの類似画像検索の先駆けはメルカリだった気がするけど、裏ではだいぶマンパワーが頑張ってたんだなと思うと感慨深い

田口 雄哉 氏 (株式会社朝日新聞社)「ELMoで文脈に応じた類似キーワード検索システムを作った話」

朝日新聞社では、Qrichという四択問題を解くことで時事ニュースに触れてもらうクイズサービスを提供しています。従来は4択問題の選択肢を単語ベクトル (word2vec) を用いて検索していましたが、常に近傍の単語が同じため選択肢が固定されるという問題がありました。そこで、文脈に応じて類似キーワードを検索するシステムを作った話をモデル中心に紹介します。

speakerdeck.com

  • word2vecだと記事の内容に関わらず近傍単語が同じになる
    • 単語ベクトルは1単語に1ベクトルがあるのみで意味の多様性はない
    • BERTは時間がかかる
  • ELMoに乗り換え
    • bi-LSTMなので文脈が考慮可能
  • ELMoに読み込ませる記事の工夫
  • 近傍探索
    • 新語は人手でELMoの単語ベクトルを取得してインデックス追加・更新
  • 感想
    • どんなサービスでも新語への対応はベストプラクティスがなかなか出ない印象

全体の感想

  • 再近傍探索に詳しくないのでどの発表も新鮮だった
  • 自然言語処理の潮流が追えていなくてつらい
  • あとみんなfaiss

各発表者の方のスライドはそのうち公開されるそうなので、公開され次第追記します。