第11章. リアルタイムマシン学習のための時間窓機能
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
第8章では、出発空港でのタクシ ーアウト遅延の移動平均のような、タイムウィンドウ機能をモ デルの入力として取り入れることを簡単に検討した。その結果、時間軸の特徴によってモデル誤差が減少することが発見された。しかし、(自分が乗っているフライトのことしか知らない)顧客がどのように正しい値を提供できるかは不明であった。そのため、我々は時間窓機能を削除することにした。この章では、Cloud DataflowとVertex AIを使用したリアルタイム・ストリーミング・マシン学習パイプラインを実装することで、この欠点に対処する。
この章のコード・スニペットはすべて、GitHubリポジトリの11_realtimeフォルダにある。この章で説明するステップのやり方は、そのディレクトリにあるREADME.mdファイルを参照のこと。
時間平均
使いたくても使えなかった時間帯別集計機能とは?フライトの到着時刻は、出発空港でのその特定の時間帯の平均タイムアウトに基づいてスケジュールされる。データセット全体を表示し、出発空港の名前をMLモデルに伝えているため、機械学習モデルはこの平均を非常に簡単に学習する。例えば、ニューヨークのJFK空港のピーク時には、1時間程度のタイムアウトはよくあることで、航空会社はフライトスケジュールを発表する際にそれを考慮する。私たちが心配すべきなのは、タイムアウト時間が平均を超える場合である。このような世界平均は、通常、モデルに組み込む必要はない(組み込んでも害はないが)。
一方、最近のフライトの時間平均を計算する必要がある場合もある。例えば、出発空港で経験される出発とタクシーアウトの平均遅延は、時間通りに到着する可能性が高いかどうかに影響を与えるという直感がある。これは、私たちが乗っている便がたまたま定刻に出発した場合でも同様である。遅延が発生している空港からの多くのフライトは、通常、天候やその他の理由による滑走路閉鎖に関連している。これは空域の混雑につながるため、天候による遅延が続く可能性があることと、滑走路の数が制限される可能性があることから、後続便も影響を受けることになる。世界平均のタイムアウトとは異なり、出発遅延の最近の平均はリアルタイムで計算する必要がある。過去のデータでは、航空機の出発時刻の1時間前から計算する。リアルタイムでは、この計算はストリーミング・データで行われる。
Apache BeamとCloud Dataflow
Apache Beamを使って、データセットを時間窓付き集約特徴で補強するという問題を解決する。
なぜApache Beamなのか?
Apache Beamを使えば、バッチ処理とストリーム処理の両方に同じコードを使うことができる。例えば、過去のデータで集約特徴を計算し、予測時に同じ集約特徴をリアルタイムで計算することができる(図11-1参照)。