Tabelog Tech Blog

食べログの開発者による技術ブログです

AI導入による口コミ投稿画像のカテゴライズ業務の一部自動化について

目次

はじめに

こんにちは。食べログシステム本部 ウェブ開発部 プロダクトチームの高橋です。

この記事では、食べログにおいて、口コミ投稿画像のカテゴライズ業務の一部を自動化した事例について紹介します。

口コミ投稿画像のカテゴライズ業務について

食べログの口コミ投稿では画像を添付でき、投稿後に食べログ内で「料理」や「ドリンク」といったカテゴリに分類しています。 これらのカテゴリは、店舗の詳細画面でタブごとに表示するなど、食べログ内の様々な機能で使われています。

写真のカテゴリ別表示

これまで、口コミ投稿画像をカテゴリごとに分類する作業は手動で行われていました。 分類作業は、画像のカテゴリを選択する「カテゴライズ作業」と、選択したカテゴリの誤りを訂正する「カテゴライズ後のチェック作業」に分けることができます。

2023年12月より、この「カテゴライズ作業」の一部を自動化し、手動で行う部分を最小限に抑えて口コミ投稿画像をカテゴリごとに分類出来るようにしました。

施策前後での作業フローの変化

なぜ自動化することにしたのか?

食べログでは、多くのユーザーに画像を投稿いただいており、その枚数は日を追うごとに多くなっています。 そのため、口コミ投稿画像のカテゴライズ業務を手動で行っていると、投稿画像の枚数増加に合わせて、必要な人員や時間のコストを増やし続けなければいけないことになります。

今後も投稿される画像枚数は増加が見込まれ、口コミ投稿画像のカテゴライズ業務の効率化によるコスト削減が必要でした。

どのように自動化を実現したのか?

「食べログのシステムに画像をカテゴライズできる機械学習モデルを組み込む」というのが実現方法の概要です。

今回は、下記の2テーマに分けて説明します。

  1. 画像をカテゴライズできる機械学習モデルを実現した方法
  2. 食べログのシステムに機械学習モデルを組み込んだ方法

1. 画像をカテゴライズできる機械学習モデルを実現した方法

OpenAI によって公開されている Contrastive Language-Image Pre-training(CLIP)1という機械学習モデルを利用しました。

1-1. CLIPについて

CLIPは画像とテキストを同じベクトル空間に埋め込むことができる言語画像モデルです。画像ベクトルとテキストベクトルの類似度計算ができます。

学習済みのモデルが公開されているため、モデルの学習にかかる時間や労力を抑えることができます。 また、比較的高速で動作し、実運用に優れています。

1-2. 口コミ投稿画像のカテゴライズ業務にCLIPを利用する方法

CLIPを用いて、口コミ投稿画像に対して最も類似度の高いカテゴリ名を求めることで、画像をカテゴライズできるようにしました。

具体的には、下記の流れになります。

  1. カテゴリ名を説明する適切なテキスト(プロンプト)を用意する。
  2. 口コミ投稿画像に対する、各プロンプトの類似度を計算する。
  3. 最も高い類似度を示したプロンプトに対応するカテゴリに画像を分類する。

図で説明すると下記のようになります。

CLIPで画像を分類する仕組み (出典:柳沢勇気. レストラン検索・予約サイトの投稿画像分類におけるマルチモーダルモデルの適用検証. 言語処理学会第30回年次大会 発表論文集. 2024, https://www.anlp.jp/proceedings/annual_meeting/2024/pdf_dir/P7-17.pdf , 参照 2024-03-18)

ただし、下記の課題から、各カテゴリを網羅的に表現するようなテキスト(プロンプト)の用意が困難でした。 「その他」以外のカテゴリの類似度には閾値を設定しておき、その閾値を下回る場合には「その他」に分類することで課題を解決しました。

  • どのプロンプトとも類似度の低い画像は、どのカテゴリに分類しても誤分類となる可能性が高い
  • 「その他」はプロンプトの用意が困難
    • カテゴリ名は「料理」「ドリンク」「メニュー」「外観」「内観」「その他」の6種類
    • 「その他」への分類対象となる画像は、「人」、「張り紙」、「風景」、「食器」など多岐に渡る

2. 食べログのシステムに機械学習モデルを組み込んだ方法

2-1. 今回の施策で開発したシステムの概要

クラウド上にカテゴライズ用システムを新規構築し、オンプレミスで運用されている食べログのシステムからカテゴライズ用システムを利用するという方針にしました。

カテゴライズ用のシステムをオンプレミスではなく、クラウド上に構築した理由は下記の通りです。

  • GPUサーバーを用意する初期コスト(費用/時間)を抑えられるため。
  • GPUのモデルを変更するといったスケールが容易なため。

下記の図のように、食べログのシステムから1時間に1度、口コミ画像をカテゴライズ用システムに渡して、カテゴライズするという流れになっています。

システムの全体像

2-2. 機械学習モデルを組み込む際の運用設計

自動化を開始するにあたり、手動と同等のカテゴライズ精度を保ち、システム障害時にも業務を滞らせない運用設計が必要でした。

そこで、下記2点について説明します。

  1. 自動でのカテゴライズ精度が低いカテゴリへの対応
  2. システム障害時の対応

2-2-1. 自動でのカテゴライズ精度が低いカテゴリへの対応

自動でのカテゴライズ精度を検証した結果、「内観」へのカテゴライズ精度が低かったです。 そこで、「内観」へのカテゴライズは手動で行うことにしました。

具体的には、下記図のような作業フローとしました。

CLIPは類似度が閾値を下回る画像は「その他」に分類するため、「内観」に分類されるべき画像は一旦「その他」に分類されます。 「その他」に分類された画像を手動で「その他」もしくは「内観」に分類します。

その他の画像の対応方法

2-2-2. システム障害時の対応

カテゴライズ用システムで障害が発生した場合でも、カテゴライズ業務は継続する必要があります。

リリース前にカテゴライズ業務担当者と擦り合わせ、自動でのカテゴライズ作業に失敗した場合は、手動でカテゴライズを行うことにしました。

失敗した画像に対して、自動でのカテゴライズを再度試みることも検討しましたが、失敗頻度によってはカテゴライズ用のシステムへ負荷がかかりすぎてしまう懸念があります。 そのため、初回リリース時は開発スコープから外しました。今後、運用の状況を見て再検討します。

自動でのカテゴライズ失敗時の作業フロー

また、失敗頻度によっては、手動でのカテゴライズ作業に大幅な遅れが出てしまう場合もあります。 自動でのカテゴライズ作業に4回以上失敗し続ける場合は、システム上で手動作業者に通知を送り、遅れが出ないように人員を増やして対応する運用を定めました。

一部自動化を実現した結果、どうなったか?

2024年3月の1ヶ月間でカテゴライズ対象となった口コミ投稿画像において、約67%を自動でカテゴライズできました。

カテゴライズ作業の内訳

今回の施策で、今後しばらくは人員を増やさず口コミ画像のカテゴライズ業務を運用できるようになりました。

また、リリースと同時にシステム障害時の運用設計もされていたため、実際にシステム障害が発生した際にも問題なくカテゴライズ業務を継続することができました。

最後まで読んでいただき、ありがとうございました。

食べログではエンジニアを募集しています。
ご応募をお待ちしています!


  1. Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever. Learning Transferable Visual Models From Natural Language Supervision. arXiv:2103.00020, 2021