Coda

Applying Deep Learning To Airbnb Search

August 31, 2018

概要

論文では、Airbnbが深層学習を宿泊先検索に適用した時の試行錯誤と結果を紹介している。 採用したモデルのアルゴリズムと特徴量エンジニアリングの説明が本稿の大部分を占める。 深層学習を試す以前はGBDTを採用おり、以下の順にアルゴリズムを変えていった。 当初は、アルゴリズムを段階的に高度にしていくつもりはなく、1.以前には複雑なアルゴリズムをいきなり試したが、失敗に終わっている。

  1. 隠れ層が1層のニューラルネットワーク
    • 入力と学習するターゲットはGBDTと同様。
  2. Lambdarank + ニューラルネットワーク
    • Lambdarankを採用した理由は、Lambdarankを組み合わせれば、オフラインにおけるモデル評価指標に使われているNDCGの値で最適化することができるから。なお、オンラインでの評価にはA/Bテストが使われている。
  3. GBDT/ Factorization Machine + ニューラルネットワーク
    • GBDTやFactorization Machineの出力を他の特徴量と共にニューラルネットワークに与える。
    • オフラインでの評価では2に匹敵するようであったが、オンラインでは期待した検索結果が出てなかったため、実際には運用されなかった様子。
  4. 2層の隠れ層からなるニューラルネットワーク
    • この時点でオンラインで運用されているモデルのアーキテクチャが非常に複雑になっていた。
    • 教師データを10倍に増やし、隠れ層を2層にすることで、入力となる特徴量を複雑な計算なしに与えることができるようになった。
    • 特徴量には、2つの異なるモデルからの出力を使うものの、それ以外については、価格、アメニティ、過去の予約数などの単純な特徴量が使われている。

感想

本稿を読んだ動機は、検索アルゴリズムの技術調査のため。 うまく行かなかったアルゴリズムも紹介されており、アルゴリズムを提案評価する形式の論文にはない面白さがあった。


論文はこちらからダウンロードできます。