リクルート住まいカンパニー Tech Blog

ITのちからで暮らしをよくしたい、エンジニア・デザイナーが発信するTech情報メディア

住宅画像をディープラニング使って、リコメンドをつくってみる

f:id:recruit-sumai:20170309104627p:plain

こんにちは。データソリューショングループの李です。

データソリューショングループでは、ウェブリコメンドやターゲティングバナー設置のアルゴリズム実装、賃料の予測、投函チラシの配布エリア最適化など、 機械学習や統計モデリングをつかってサービスの磨きこみをしています。

今回は、SUUMOが持っている建築物の外観画像と内観画像を使って画像分析を行いました。Deep learningを用いた手法や、得られた結果について紹介します。

 

Deep Learningとは

Computer Vision(CV)やAIなどの難易度が高い学習タスクに対して、深い構造*を使って処理する機械学習アルゴリズムセットです。 表現としては、Deep Structured Learningのほうが本来の意味に近いと思います。

今回の実験ではDeep Learningを用いて、SUUMOが持っている新築戸建の部屋の画像をつかって、リコメンドに挑戦します。 Deep Learningについてもっと詳細に知りたい方には、こちらの本をおすすめします。

 

データセットとツール

Deep learningに必要なデータセットには、640px × 480pxで、新築戸建の部屋の画像を902,538枚用意しました。(下記の画像は、権利の関係上実データではなく、サンプルの画像です。)

データセットの前処理にはMatlab、学習にはPylearn2、クラスタリングにはSciPyの fastclusterというツールを使用しています。 f:id:recruit-sumai:20170328175313j:plain

外観画像のクラスタリング

まず、新築戸建の外観画像をクラスタリングしました。

データセットから外観画像にあたるものを選出してモデルをつくり、特徴量としてはHOGをつかっています。HOG特徴量(2,882次元)と縮小画像(6080=4,800次元)の両方を試しましたが、今回はHOGの方が精度がよかったです。

また、学習には以下の設定をしています。2~4時間の学習終了後データを再投入し、中間層の出力をユークリッド距離で5クラスターに分割しました。

  • モデル:2層SdA、Stacked denoising Autoencoderを用いて中間層2層のネットワークを構築
  • epoch数:100回
  • 中間層次元: [300,100][480,100]

f:id:recruit-sumai:20170328175334p:plain

※学習のイメージです。

 

結果のクラスターは下の箇条書きのようになりました。画像の特徴を捉えることはできましたが、この結果を元にリコメンドをするのは難しそうです。 クラスター3・4では、被写体となる建築物が画面の奥にあったり、道が主要な被写体だったり、妙に明るかったり暗かったり、木が邪魔だったりする場合があったのですが、それらをさらに細分化して判別するのは難しそうでした。

  1. さら地、基礎工事中 2,465枚
  2. さら地、シート比率の多い外観 2,254枚
  3. 比較的見栄えの良い外観 2,865枚
  4. 比較的見栄えの良い外観 1,875枚
  5. ブルー・ブラックーシート、足場 1,909枚

f:id:recruit-sumai:20170328175400p:plain

f:id:recruit-sumai:20170328175437p:plain

 

内観画像のクラスタリング

外観画像ではさら地などに引っ張られてあまり上手くいかなかったので、内観画像でクラスタリングをしてみました。

(R,G,B)のどの組み合わせの影響と明るさ(白灰黒)の影響の調査するために、重み行列を作りました。

実験中では、512(インプット)×100(第一中間層)という行列を作り、そこからわかったのは、以下情報です。

  • R(ed)やB(lue)の部分が重み大
  • 判別に重要な色:白~灰~黒の影響大(光の具合が重要な情報である可能性がある) これは、前に調べたカラーヒストグラム*で白黒の部分が頻度大であったこととも矛盾がない 画像の明るさを揃えれば色合いの違いが明確になることが期待される

画像をクラスタリングすることで、「落ち着きのある部屋」「日光の明るい部屋」「ぬくもりのある木」などいくつかの軸で画像を分類することができました。

 

まとめ

今回は、Deep learningを使ってSUUMOが持っている建築物の外観画像と内観画像を使って画像分析を行ってみました。精度には向上余地がありますが、使い方はいろいろと考えられます。タグなどのテキストを併用したリコメンドシステム、違反画像の自動検知、画像ベースでの検索などの機能に落とし込むことができそうです。 テキストを併用したリコメンドシステムには、こちらの商品リコメンドを作る事例が参考になりそうです。

APPENDIX

深い構造

複雑な非線形性演算ユニットのことで、例えば大量なSUBLAYERを持っている神経ネットワークなどを指します。

HOG

Histogram of Oriented Gradient の略で、輝度勾配を特徴点でなくセルごとに集約した特徴量です。 特徴としては、セルサイズを調整することで比較的画像の大域的情報を抽出することができ、一般物体認識にもよく用いられています。

特徴量の算出には、輝度の強度と方向を集計して正規化するといった手順を踏みます。 f:id:recruit-sumai:20170328175507p:plain 出所:http://www.hci.iis.u-tokyo.ac.jp/~ysato/class14/supplements/sift_tutorial-Fujiyoshi.pdf

カラーヒストグラム

画像の色情報をベクトル化したものです。 まずは画像のカラー空間({R,G,B})を減色し、各画素についてR,G,Bの組み合わせを調べます。 次に、出現する色の組み合わせの頻度を数え上げ、全て数えたら正規化し、実数ベクトルとして扱います。 一般的な{R,G,B}は[0,255](256色)ですが、今回は[0,7]へ減色しました。