Google Cloud ML を活用した風向き予測によりルフトハンザドイツ航空で定時運航の便数が増加

Google Cloud Japan Team
※この投稿は米国時間 2022 年 9 月 29 日に、Google Cloud blog に投稿されたものの抄訳です。
空港の運営は、風の強さと方向に大きな影響を受けます。ルフトハンザ グループも例外ではありません。特に厄介なのが、BISE と呼ばれる、スイス高原を北東から南西に横切って吹く冷たく乾燥した風です。この風は、フライト スケジュールに深刻な影響を及ぼすことがあります。たとえば、航空機が滑走路を変更せざるを得なくなり、結果として航空便の遅延や欠航が連鎖的に発生することがあります。特にチューリッヒ空港では、BISE の影響で発着便数が最大 30% 減少することもあるため、航空便の遅延と欠航が一層深刻で、このことはルフトハンザドイツ航空にとって巨額の収益減(および乗客の不満)の原因となっています。
このような風を事前に予測できれば、ネットワーク運用管理チームは、滑走路と時間枠をまたいで最適なフライト スケジュールを組み、スケジュールの混乱を最小限に抑えることができます。とはいえ、風の速度と強さをモデル化し、予測するのは非常に困難です。そこでルフトハンザドイツ航空は、Google Cloud に協力を求めました。
機械学習(ML)を活用すれば、空港と航空会社は、このような運航の妨げとなる気象現象をより的確に予測し、管理できるようになります。このブログ記事では、ルフトハンザドイツ航空が Google Cloud とともに Vertex AI Forecast サービスを使用して行ったテストをご紹介します。このテストでは、ヒューリスティックに基づく社内システムと比較して 40% 以上高い精度で BISE の発生時間を予測することができました。しかも、この大幅な改善は数日以内に達成されました。この規模と精度の ML プロジェクトには数か月を要することが多いにもかかわらずです。

ルフトハンザ グループのデジタル運用最適化担当シニア ディレクターの Christian Most 氏は、「Googleは AI と機械学習の分野で感心するほど高度なテクノロジーと技量を持っているため、Google の専門家と協力して当社の技術と Google の専門知識を組み合わせれば、最高の成果を得られると確信していました」と述べています。
データセットの収集と準備
今回のルフトハンザと Google Cloud のプロジェクトの目標は、深層学習に基づく機械学習の手法を活用してチューリッヒのクローテン空港の BISE を予測してから、その予測がヒューリスティックに基づく社内ソリューションを上回るか確認し、本番環境における深層学習の手法の使いやすさと実用性を測定することでした。
深層学習に基づく手法には大規模なデータセットが必要なため、本プロジェクトでは、過去 5 年間にスイス国内の複数の気象台で収集された多数の気象センサー測定値からなるデータセット「Meteoswiss シミュレーション データ」を利用しています。このデータセットを使用することで、風向、風速、気圧、気温、湿度などの要素を 10 分刻みで測定したデータと、高度などの気象観測所の位置に関する情報を合わせて取得できました。BISE の予測に有用であると仮定したこれらの要素には、貴重な指標が含まれていることが判明しました。これについては後述します。
次に、収集されたデータに対して Vertex AI Workbench を使用した大規模なクリーニングと特徴量エンジニアリング処理を実行し、トレーニング用の最終データセットを準備しました。クリーニング段階では、欠損値が多すぎる特徴(行)やエントロピーの統計的テストに不合格となった特徴(行)を削除する処理が実行されました。風向は円形(0~360 度)の特徴であるため、この列(特徴)は、対応するサインとコサインの埋め込み値という 2 つの特徴に置き換えられました。次に、すべての気象台のデータを 10 分間隔で整理したうえで、10 分間隔で配置した各列に関連する特徴とセンサー測定値をすべて格納するという方法でデータセットを平坦化しました。
ターゲット変数である BISE は変数として直接利用できないため、「滑走路周りの追い風速度」という BISE の代理変数を考案しました。これは、あるしきい値を超えると、滑走路沿いに BISE が存在することを示すものです。
Google Cloud での風の予測
これでデータセットの準備が整ったわけですが、ルフトハンザと Google Cloud は、Google の AutoML を搭載した予測サービス「Vertex AI Forecast」のテストと調整を決定する前に、複数の選択肢を評価しました。こうすることで最適な結果を得られると考えたためです。Vertex Forecast では、必要な特徴量エンジニアリング、ニューラル アーキテクチャ探索、ハイパー パラメータ チューニングが可能です。このサービスは Google Cloud によって完全自動方式で管理されており、Kaggle の M5 Forecasting Competition では上位 2.5% のスコアを獲得しています。最高性能のディープ ラーニング モデルを作成、デプロイ、メンテナンスする際の手作業を減らしたいと考えていたルフトハンザドイツ航空は、こうした利点のある Vertex Forecast を、きわめて優れた選択肢であると判断しました。


元データファイルがクラウド ストレージから読み込まれ、Vertex AI Workbench 上で前処理が行われました。次に、Vertex AI Pipelines 上でトレーニング パイプラインが開始され、以下の手順が順次実行されました。
.csv データファイルが、Cloud Storage から Vertex AI が管理するデータセットに読み込まれました。
このデータセットを使用して Vertex AI の予測トレーニング ジョブが開始され、Vertex AI Model Registry にもモデルとして登録されました。
完了後、モデルがテストセットで評価され、モデルの予測、およびテストセットの入力特徴とグラウンド トゥルースが BigQuery のユーザー定義テーブルに格納されました。また、サービスとモデルのダッシュボードでは、複数のテスト指標を利用することができました。
特に大きな課題として、BISE 発生時の測定値の間隔が非常に長く、測定値の数が非常に少なかったため、データセットのバランスが悪いということがありました。これに対処するため、BISE が発生したインスタンスと、これらと時間的に近いインスタンスが、サンプル数の逆平方根(ISNS)、有効サンプル数(ENS)、ガウス再重み付けなどの方法で算出した重みを使用して重み付けされました。各方法の計算式を以下に示します。これらの重みはデータセット内に別の列として提供され、以後、このサービスで「重み」列として繰り返し使用されました。
ISNS


ENS


加重ガウス


結果と次のステップ




図 2. 2 時間における F1 スコア
上図において、X 軸は予測期間を、Y 軸はそれぞれの指標(再現率 / F1 スコア)を表しています。複数回のテストを経て、Vertex AI Forecast は、ベースラインとしたルフトハンザドイツ航空のヒューリスティックに基づくシステムを上回る高い再現率と精度 t(赤い棒)を達成していることが判明しました。また、予測期間が未来に向けて延長されるにつれ、精度の差が徐々に拡大していました。2 時間の予測期間におけるスコアを見ると、Google のカスタム構成 Vertex AI Forecast モデルは、ヒューリスティックに基づく社内システムと比較して 40%、ランダム推測ベースラインと比較して 1,700% の改善を達成していました。他のテストでは、6 時間の予測期間で Vertex AI Forecast の精度の優位性がさらに高まることが確認されました。数時間前に BISE を予測できれば航空便の遅延を防ぐうえで非常に有用であるため、これはルフトハンザドイツ航空にとって素晴らしいソリューションとなりました。
スイス国際航空のプロダクト オーナーである Oliver Rueegg 氏は、「Vertex AI Forecasting によって、BISE の正確な長期予測をできるだけでなく、予測モデルのトレーニングとデプロイをこれまでよりはるかに簡単かつ迅速に行えるようになったことは、非常にうれしいことです。お客様や関係者に最高のサービスを提供するためのイノベーションを加速できるのですから。」と述べています。
ルフトハンザドイツ航空は、このソリューションをクローテンの運用管理センターでネットワーク管理者が使用している Operations Decision Support Suite に統合して本番環境に導入する計画を立案しています。また、Google の専門家と緊密に連携して、Vertex AI Forecast と Google の他の AI/ML サービスの両方を自社のユースケースに合った形で統合することも検討しています。
- Google 機械学習シニア スペシャリスト エンジニア Anant Nawalgaria