BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Chrononを使ったAirBnbの特徴量エンジニアリング

Chrononを使ったAirBnbの特徴量エンジニアリング

AirBnbは、機械学習モデルで使用する新しい特徴量を作成する際の生産性とスケーラビリティを向上させるために、生データを学習と推論のための特徴量に変換するために必要なインフラを構築するソリューションであるChrononを構築した。

AirBnbのエンジニアでChrononの開発者であるNikhil Simha氏は、生データからMLモデルの学習に使用する特徴量に変換するのは複雑で時間のかかる作業であり、エンジニアはAirBnbのデータウェアハウスからデータを抽出し、特徴量に変換するための複雑なETLロジックを記述する必要があると説明する。さらに、ロジックが学習時と推論時に同じ特徴分布を生成することを保証する必要があることも、障害となっている。

Chrononは、MLエンジニアが特徴を定義し、トレーニングと推論にまたがって再現可能な方法でデータ計算を一元化できるようにすることで、これらの問題に対処しようとしている、とSimha氏は言う。

ユーザーとしては、一度だけ計算を宣言する必要があります。Chrononは、生データをトレーニングと推論の両方で継続的に特徴量に変換するために必要なすべてのインフラを生成するのです。AirBnbのML担当者は、複雑なパイプラインや特徴インデックスを手作業で実装するのに何ヶ月も費やすことは何もありません。通常、モデル用の新しい特徴セットを生成するのに1週間もかからないのです。

Chrononの最初のコンポーネントは、イベント・データ・ソース、エンティティ・データ・ソース、累積イベント・ソースなど、様々なソースからデータを取り込むことを可能にする。

取り込まれたデータは、SQLライクなオペレーションとアグリゲーションによって変換され、低レイテンシーのエンドポイントとオフラインでの学習用のHive tableが生成される。Chrononは、Kafka、Spark/Spark Streaming、Hive、Airflowを使ってパイプラインを構築する。SQLライクな操作としては、GroupByJoinStagingQueryがあり、これは1日1回オフラインで計算されるSpark SQLクエリーである。集計には、ウィンドウ、バケット、時間ベースの集計が含まれる。

最後に、Python APIも利用可能で、SQLライクなプリミティブを提供し、時間ベースの集約とウィンドウをファーストクラスの概念として理解する。例えば、Python APIを使えば、あるアイテムが過去5時間以内にユーザーによって閲覧された回数をフィルタリングして変換できる。

Chrononの重要なコンセプトのひとつに、精度というものがある。つまり、特徴量の値がどれくらいの頻度で更新されているであり、リアルタイムか一定間隔かである。Chrononは、ユーザーが計算の精度を時間的かスナップショットかを簡単に指定できる。

この記事を書いている時点では、AirBnbがChrononをGitHubで公開するかどうかは不明だが、独自の特徴エンジニアリング・パイプラインを構築したいのであれば、元記事のディスカッションは興味深く読めるだろう。

作者について

この記事に星をつける

おすすめ度
スタイル

BT