コンテンツに移動
Google Cloud

株式会社 trippiece の導入事例:世界の絶景画像から日本の絶景画像をレコメンド表示する「ソックリトリップ」を Google Cloud AI ベースで構築

2019年2月5日
Google Cloud Japan Team

クリエイティブ × テクノロジー領域を横断できる人材育成を目的とする博報堂の社内研修「クリテク」によって、今年 7 月、画像認識の AI 技術を活用して “世界の絶景と似ている日本の絶景を提案してくれる” という株式会社 trippiece の Web サイト「ソックリトリップ」がローンチしました。
このソックリトリップでは、 Google Cloud AI の Cloud Vision API が活用されています。Cloud Vision API を利用して、ソックリトリップをどのように実現しているか、企画・開発を担当した株式会社博報堂の キーパーソンである、林智彦氏、久野祐揮氏、根岸冬馬氏の 3 人に話を伺いました。

https://storage.googleapis.com/gweb-cloudblog-publish/images/st.max-400x400.png
利用している Google Cloud Platform サービス


Cloud Vision API, TensorFlow


株式会社 trippiece


trippiece は 2011 年の創業以来、旅行 × インターネット領域でサービスの企画・開発を行っている企業です。みんなで旅に出かける旅行サービス「trippiece <トリッピース>」、旅行おでかけメディア「RETRIP <リトリップ>」を運営しています。


ソックリトリップの狙い


「日本の知られざる魅力をより多くの人にもっと知ってもらいたい、ソックリトリップはこの想いを実現するために企画されました。2020 年を目前に控え日本への注目が高まる中、「私たち日本人は日本の魅力をよく知らないのでは?」ということが企画の出発点でした。しかし日本人は絶景が大好き。その力はウユニ塩湖のような地球の裏側へ足を運ばせてしまうほどのものです。そこで、世界中の絶景を、日本の魅力を発見する手助けになるコンテンツと見立てて、サービスを作り上げました。もしソックリな場所が見つかれば素敵ですし、見つからなくても「ここもいいじゃん!」と思ってもらえるよう様々な工夫をこらしました。このサービスを通じて日本の魅力をもっと発信していきたいと考えています。」(久野さん)

Google Cloud AI を活用して世界の絶景画像から国内の絶景ポイントをレコメンドする仕組み

ソックリトリップでは、Google Cloud AI のサービスである Cloud Vision API と、TensorFlow を活用することで、世界の絶景画像から国内の絶景画像 (と絶景ポイント) を発見する機能を実現しました (下図) 。

レコメンド例

https://storage.googleapis.com/gweb-cloudblog-publish/images/insert_25E625A025AA25E525BC258F25E425BC259A2.max-700x700.PNG

ソックリトリップにより提案された絶景ポイント

ソックリトリップでは Cloud Vision API で検出された上位 10 個のラベル情報 (以下、ラベル情報) と、Keras ベースの学習済み機械学習モデルである VGG-16 の全結合層の出力結果 (以下、分散表現) を組み合わせることで、世界の絶景画像と似ている国内の絶景画像を抽出します。

Cloud Vision API のラベル情報を活用した類似度計測

Cloud Vision API のラベル検出機能を使うことで、画像内の物体についての情報を、幅広いカテゴリに渡って抽出することができます。例えば、Cloud Vision API のトップページにあるサンプルに画像を入力すると下記のラベル検出結果を、信頼度スコアと共に取得することができます。ソックリトリップでは、信頼度スコアが高い上位 10 件のラベル情報の重複数を、入力画像 (世界の絶景画像) と出力画像の候補 (国内の絶景画像群) の間で比較し、重複しているラベルの数が多いほど、入力画像と出力画像の類似度が高いとみなします。

https://storage.googleapis.com/gweb-cloudblog-publish/images/bX2nRKNW-fqMvwiibaUidLNsRGVIoTw-wMJly7Nyk9.max-1000x1000.PNG

VGG-16 の埋め込み表現を活用した類似度計測

VGG-16 は画像認識に特化した、畳込みニューラルネットワーク (CNN) ベース の機械学習モデルです。ソックリトリップでは Keras ベースの学習済みの VGG-16 モデルを利用し、入力画像から VGG-16 モデルの全結合層のベクトル (注: 本記事では埋め込み表現と呼びます) を抽出しています。この埋め込み表現にはラベル検出に有効な特徴が埋め込まれています。

この埋め込み表現の面白いところは、埋め込み表現の中に機械学習モデルが内部的に利用している特徴が埋め込まれていること、そして埋め込み表現同士の距離を数値的に計測可能であることです。VGG-16 はラベル認識のための機械学習モデルであるため、埋め込み表現に埋め込まれている特徴は、ラベルを認識するために必要な情報と解釈することができます。一方、埋め込み表現同士の距離が近いということは、両者が共通の特徴を有していることを意味しています。つまり、埋め込み表現同士の距離が近い画像は、類似した画像である可能性が高くなります。

ソックリトリップでは、上記埋め込み表現の特徴に着目し、埋め込み表現間の距離計測にコサイン距離を採用し、この距離を入力画像と出力画像の類似度とみなしています。埋め込み表現とコサイン距離、この 2 つを利用することで、人手をかけることなく画像間の類似度を効率的に計測しています。

ラベル情報と埋め込み表現を組み合わせることで国内の絶景画像を出力

ここまでソックリトリップが利用している 2 つの類似度計測手法を紹介しました。ソックリトリップでは出力画像 (国内の絶景画像) を決定するために、ラベル情報による類似度、埋め込み表現による類似度のそれぞれに対して、結果を見ながら独自に調整した重み係数をかけ合わせることで、最終的な類似度を算出しています。

今後の取り組み

「地方自治体と連携することで、各自治体が訴求したい観光スポットをオススメするなど、ソックリトリップによる地方創生の取り組みを強化していきたいと考えています。現時点では、厳選された国内の絶景画像 (約 500 枚) のいずれかが出力されているのですが、今後は地方自治体が絶景スポットの登録画像も検索対象にしたいと考えています。これを実現するためには、現状の仕組みをよりスケーラブルに改造していく必要があると考えています。」 (林さん)
「現在、埋め込み表現を抽出したり、埋め込み表現間の距離を算出するといった一連の作業を、単体のアプリケーションサーバで実現しています。 この構成では今より多くの絶景画像を検索対象とする場合にうまくスケールしません。Google Cloud にはこうしたワークロードを効率的に扱う製品がある*1 と伺っています。ソックリトリップを今より幅広く展開するときにはこうした機能をぜひとも利用したいと考えています。」 (根岸さん)

*1 例えば、埋め込み表現を抽出する部分を Cloud Machine Learning Engine を利用することで API として切り出すこと、また埋め込み表現同士の距離比較をする部分を BigQuery を活用することで、同時利用者数や、検索対象画像数が多くなってもスケールするシステムが構築できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/f52Zzr2_yGEHp6X0vIH8rMX-Nm_6FNYfri3sMAe6Y.max-1600x1600.JPEG
株式会社博報堂 林 智彦氏、久野 祐揮氏、根岸 冬馬氏
投稿先