グラフニューラルネットワークに基づく動的マテリアライズドビュー管理

この号の論文読解では、2023 年に ICDE によって発行された論文「グラフ ニューラル ネットワークを使用した動的マテリアライズド ビュー管理」を主に紹介します。この論文は、動的マテリアライズド ビュー管理の問題を研究し、GNN に基づくモデルを提案しています。実際のデータセットでの実験結果は、より高い品質が達成されることを示しています。

1. 背景

マテリアライズド ビュー (以下、MV) はデータベース管理システムで重要な役割を果たし、ワークロード内の共有サブクエリの冗長な計算を削減することでクエリの効率を向上させます。従来のアプローチは、MV が追加または削除されないことを前提とした静的な MV 管理に焦点を当てています。ただし、実際のシナリオでは、クエリのワークロードは動的に変化することが多いため、クエリの分散が変化する可能性があるため、以前に維持された MV は将来のワークロードにうまく適応できません。したがって、ワークロードが動的に変化する場合には、動的な MV 管理の問題を研究することが非常に重要です。

2. 動的 MV 管理の概要

動的ワークロードの MV の仕組み

 

動的 MV 管理の 2 つのステップ:

(1) クエリリライト

新しいクエリ q が与えられた場合、クエリの書き換えは、現在維持されている MV の一部を使用して q を書き換えることを目的としています。この目的を達成するために、この論文では、q に答えるためにビュー v を使用するメリット、つまり、v を使用した後に q に答える実行時間が短縮されることを推定し、書き換えに最もメリットが得られる MV を選択して、クエリのパフォーマンスを最大化します。 。

(2)MVコレクションのメンテナンス

このペーパーでは、クエリが長期間にわたって継続的に発生する一般的なシナリオ、つまり動的ワークロードについて検討します。クエリの分布は変化する可能性があるため、これらの固定 MV を使用して後続のクエリを最適化することは最適ではありません。したがって、このホワイトペーパーでは、新しいワークロードの到着に合わせて MV を継続的かつ反復的に更新し、分散シフトの可能性による新たなクエリに対処し、すべてのクエリを一定期間にわたって適切に最適化できるようにすることを提案します。

3. 動的 MV 管理の概要

1. 制限事項

MV の管理は、数十年にわたって研究されてきた重要な問題です。従来の方法では、DBMS のオプティマイザを利用してMVの利点を効率的に推定し、これに基づいて実装に適切なMVを繰り返し選択します。したがって、新しいクエリ ワークロードを与えて MV を最初から構築した場合でも、高い効率は達成できますが、純粋にオプティマイザーを使用した利点の推定は不正確であるため、低品質のMV が生成されます。   

この問題を解決するために、収益を正確に見積もるための学習ベースの方法が提案されています。ただし、動的なシーンを処理するには、MV を最初から構築する必要があります。高品質のMVを導き出すことはできますが、ディープ ニューラル アーキテクチャでは利益やコストの見積もりが遅くなるために、法外に高価になります。したがって、ワークロードが頻繁に変化する場合の高効率の要件を満たすことができません。  

2. チャレンジ

動的シナリオにおけるクエリ ワークロードの合計実行時間を最小限に抑えるという最終目標を達成するには、2 つの基本的な課題があります。まず、クエリの数が多い場合、クエリごとに各MV の利点を正確に推定する方法が課題であり、これは高品質のMV を生成する上で非常に重要です。  

第 2 に、新しいクエリが生成されたMV をタイムリーに利用できるようにするために、動的シナリオでのMV セットのメンテナンスが非常に効率的である必要があります。ただし、クエリの数が増加するにつれて、高い精度を維持しながら効果的にメリットを推定する方法は非常に困難な問題になります。  

4. ソリューションの詳細

これらの課題に対処するために、この論文では、効率的かつ効果的な動的MV管理の利点を評価するためにグラフ ニューラル ネットワーク (GNN) を利用する新しいフレームワーク GnnMV を提案しますまず、動的なクエリ負荷がクエリ グラフとして維持され、クエリの主要な特徴が抽出されてエンコードされ、GNN モデルが確立されます。次に、グラフ内の隣接ノードに対して特徴集約関数が設計され、より高い精度が実現されます。第三に、本論文は、連続的なクエリによりグラフがますます大きくなる場合に、効果的な利益推定のために小さなサブグラフを抽出することを提案する。 

1. 全体的なフレームワークの紹介

GnnMV アーキテクチャ

 

GnnMV は、オフライン GNN モデル トレーニング、クエリ書き換えのためのオンライン GNN 推論、MVコレクション メンテナンスのための GNN 推論の 3 つのモジュールで構成されます。  

最初に、このペーパーでは履歴ワークロードを入力として取得し、これに基づいてクエリ グラフを構築し、グラフ上で GNN モデルをトレーニングします。モデルの出力は、ワークロード内のクエリに対するビューの利点の推定値です。

次に、クエリが継続的にオンラインに到着すると、トレーニングされたモデルがクエリの書き換えとMVセットのメンテナンスに使用されます。新しく到着した各クエリが与えられると、クエリ書き換えモジュールは GNN モデルを利用して利点を推定し、現在維持されているMVからMV を選択してクエリを書き換えます。      

新しいワークロードに対して、このペーパーでは新しいMVを生成します。この中で GNN モデルも利点の推定に使用され、MV選択のための 2 部グラフを構築します。   

2. GnnMVのトレーニング

オフライン トレーニング用に収集されたワークロード WT が与えられると、ワークロード内のクエリのクエリ ツリーをマージすることによってクエリ グラフが構築されます。次に、グラフ内の各ノードの特徴 (演算子タイプ、メタデータ、述語など) が抽出およびエンコードされて、特徴グラフが生成されます。また、集約関数は、各ノードの近隣ノードの特徴を集約し、ノード エンベディングを生成するように設計されています。

次に、クエリ q とビュー v の埋め込みを使用して、ニューラル ネットワークを使用してペイオフ B'(q, v) を計算します。しかし、考えられるすべてのビューを実体化するのはコストがかかりすぎます。この論文では、ビューをサンプリングして実体化し (つまり、セット VT)、それらを使用して WT でクエリを最適化し、実際の利点 B(q, v) を計算します。次に、B(q, v) と B'(q, v) を使用して、モデルをトレーニングするための損失を計算します。

(1) 特徴エンコーディング

GNN モデルを構築するには、まずグラフ内の各ノードの特徴を抽出し、それらをエンコードする必要があります。より具体的には、MV 管理には、演算子タイプ、メタデータ、述語という 3 つの重要な機能があります。ノードの各特徴ベクトルは、これら 3 つの特徴の連結によって表されます。次に、例を使用して説明します。

上の図に示すように、ノードが seq-scan オペレーターに関連付けられており、述語 a.age>30 を使用して author テーブルをスキャンすると仮定します。この論文では、演算子型 seq-scan をワンホット ベクトル fo ( v )としてエンコードします。ここで、 seq-scan の対応する位置の値は 1 です。述語 a.age>30 は、ルート ノード > に 2 つの子ノード a.age と 30 がある式ツリーとして表すことができます。この論文では、ツリー LSTM モデルを通じてこの式ツリーを埋め込みベクトル fp ( v )にエンコードします。メタデータには、作成者、年齢列、スキャンコスト、行、幅が含まれます。この論文では、これをベクトル fm(v) にエンコードします。このベクトルには、列 a.age の対応する位置が値 1 およびその他の統計情報を持つワンホット ベクトルが含まれます。

(2) 便益試算

GNN モデルの最終的な目標は、グラフ内のクエリ q に答えるためにマテリアライズド ビュー v を使用する利点 (つまり、B(q, v)) を正確に推定することです。これを行うには、まずトレーニング データを作成します。第 2 に、特徴エンコーディングが与えられた場合、この論文では、モデルがクエリ ノードと MV ノード間の関係を適切に捕捉して各 B(q, v) を正確に推定できるように、クエリ ノードと MV ノードの適切な表現 (または埋め込み) も必要とします。

  • トレーニングデータ

考えられるすべてのビューを実体化するとコストが高すぎるため、MV ノードのコレクションをサンプリングして実体化します。この論文では、強力な汎化能力を備えたモデルを生成するためにトレーニング サンプルのバランスをとる必要があるため、MV ノードは均一にサンプリングされています。  

  • 特徴の伝播

クエリに対するビューの利点は、そのビュー自体の特性だけでなく、クエリ グラフ内の隣接するビューにも依存します。たとえば、結合操作のコストは、その副述語の選択性と高度に相関しています。バッファーの存在により、クエリのパフォーマンスは前のクエリと高度な相関関係があります。したがって、近傍情報はノードの表現に役立ちます。

上記の問題を考慮して、この論文では GNN を使用して、グラフの構造を通じて異なるクエリ プラン間およびプラン ノード間の相関関係を捕捉します。この論文では、反復全体にわたってグラフ上の特徴を伝播することを提案します。このペーパーでは、反復ごとに、ノードごとに、隣接するノードの特徴を並行して集約します。

GnnMV のモデル

たとえば、上記の特徴マップを考えると、最初の伝播では、v1 は v2、v3、v5、v6 の特徴を受け取ります。同時に、q1 と v7 の機能も v6 に伝達され、q2 と v4 の機能は v5 に伝達されます。次に、2 回目の伝播では、v2、v3、v5、v6 が再び v1 に伝播されますが、最初の反復で q1 の特徴が v6 に伝播されているため、この時点で v1 は q1 の情報を取得できます。このようにして、各ノードは数回の反復を通じて近隣ノードの情報を適切に取得できます。

  • 集計関数

伝播後、ノード自体とその隣接ノードの特性を考慮して、各ノードの埋め込みを計算するための集約関数が必要です。簡単なアプローチは、一般的な GCN アグリゲーターを集約関数として使用することです。具体的には、k 回目の伝播反復における各ノード v について、アグリゲーターは、k-1 反復における v とその近傍の埋め込みの要素ごとの平均を計算します。フォーマル、

ただし、上記の方法は各近傍を同等に扱い、クエリ グラフ内のさまざまなタイプのノードとエッジのさまざまな特性を考慮していません。クエリ ツリーでは、実行中にデータが下から上に流れるため、集計関数では親ノードと子ノードの特性を区別する必要があります。さらに、子ノードの違いも特定する必要があります。具体的には、この論文では、ノード v の子ノードの 1 つにインデックスがある場合、v の演算子 (特に結合演算子) がインデックスを使用しない場合よりも効率的に実行されることを観察しています。したがって、インデックスの有無にかかわらず、子ノードはクエリの実行に大きな影響を与えます。この論文では、さまざまなタイプのノードが利益の推定に及ぼす影響を分析することにより、より適切な推定を行うには、親ノードとインデックス ノードを特別に扱う必要があることがわかりました。

上記の問題に対応して,本論文は,クエリグラフ上の特徴集約のためのMVアグリゲータを設計する.アグリゲータは,親ノード,インデックスノード,その他のノードを,それぞれ(WF,BF),(WI,BI)として表される異なる線形変換で処理する)、(WO、BO)。図 4 に示すように、WF、WI、および WO に応じて、近隣ノードは異なる特性を集約内のノードに伝播します。この論文では正式に、コミュニケーションの特性を次のように定義しています。

MV 集計関数は次のとおりです。

伝播の反復数は K で、各ノードの最終的な埋め込みは e (vi) = hiK です。

  • 利益の見積もり

各ノードの埋め込みを考慮して、この論文では各クエリ ノードに対する各 MV ノードの利点を推定できます。クエリ q とビュー v の埋め込みを連結し、MLP でそれらの間の関係を取得することにより、ゲイン B'(q, v) が計算されます。q と v をそれぞれ vi と vj で表すとします。フォーマル:

次に、GNN モデルは、パラメーター W と b を最適化することを目的として、損失関数を最小化することによってトレーニングされます。

3. GnnMV の推論

(1) クエリリライト

新しいクエリが出現したら まず、利用可能な MV (下図の {v1, v2, v3} など) を検出します。次に、クエリに答えることの利点を最大化するMV を選択するには、利点を正確に推定する必要があります。直観的なアイデアは、書き換える利点が高いビューを選択することですが、一部のビューは競合する可能性があるため、同時に使用できません。したがって、2 つのビューがすべて競合しない、最大の利点を持つ最適なサブセットを選択することは NP 困難な問題です。 

クエリの書き換えと MV セットのメンテナンスの推論

上図のように、q4が来たらグラフに追記するとR(q4)={v1,v2,v3}となります。この論文の目的は、B(q4, v)、λv∈R(q4) を計算することです。まず、q4 の特徴を抽出して符号化し、次に近傍の特徴を捕捉して e(q4) を計算します。k=3 と仮定すると、q4 はそこから 3 ホップ離れたノード、つまり q4 の赤いノードと、q3 と q2 をクエリする黄色のノード v1 と v3 の情報をキャプチャできます。

この論文では、2 つのMVが互いに競合する可能性があるため、与えられた条件下でクエリに答えるためのビューのサブセットを選択することを目的としています。したがって、実際には、 MV が返すときのノードの重みを伴う重み付き最大独立集合問題として表すことができ、これは NP 困難です。この論文では、近似アルゴリズムを使用してそれを解決できます。  

(2) MV コレクションのメンテナンス

このペーパーでは、その後のワークロードにさらに適応できるように、MV を定期的にメンテナンスする必要があります。通常、このペーパーは、既存のMVのパフォーマンスに基づいてMVのセットのメンテナンスをトリガーします。このペーパーでは、利点がワークロードのパフォーマンスに直接反映されるため、最近のクエリに対する既存のMVの累積的な利点を監視します。累積収益がしきい値よりも低い場合、このペーパーは MV セットのメンテナンスをトリガーします。    

  • メリットの評価

新しく到着するクエリの数が増加するにつれて、この論文では新しいワークロード Wn を導出し、それを現在のクエリ グラフ Wc に追加し、MV のセットの維持を開始します。これを行うために、この論文ではMV の利点とコスト(つまり、候補MV を生成するコストと既存のMVを更新するコスト) を見積もる必要があります。   

コスト: 生成コストは、ビューの実行と結果の書き込みにかかる時間を追加することで推定されます。生成コストは、ビューを生成する実行されたクエリ プラン ツリーのサブツリーから情報を抽出することで計算できます。このペーパーでは、更新コストをMV 再計算コストとして扱います。これは、ビューを再作成するコストにほぼ等しくなります。 

ゲイン: MV 候補のゲインを推定するには、ノードの埋め込みを取得する必要があります。簡単なアプローチは、新しいクエリの特徴をエンコードし、その特徴をグラフ全体 (WC®WN) に伝播し、埋め込みを推論することです。ただし、多数のワークロードが到着すると、グラフはますます大きくなり、グラフ全体の推論には非常に時間がかかります。さらに、新しいノードは、グラフ上で遠く離れたノードの埋め込みにほとんど影響を与えないため、これを行う必要はありません。 

したがって、この論文では、必要な特徴の伝播をカバーする抽出されたサブグラフの埋め込みを計算することを提案します。まず、WN に含まれるノードの埋め込みが不明であるため、このサブグラフには WN が含まれている必要があります。第 2 に、サブグラフには WN に近いいくつかのノードも含まれている必要があります。これらのノードは大きな影響を受けるため、その埋め込みを更新する必要があります。

  • MV の生成

新しいワークロードが到着すると、新しい現在のワークロードは Wc=Wc∪Wn になります。空間予算 τ 内で WC を最適化する V*n∈V を生成するために、この論文では、WC からの片側にノード、V からもう一方の側にノードを持つ 2 部グラフを構築します。各エッジは V∈V から Q∈WC への利得を表し、B(q,v) とラベル付けされます。新しいビューを作成するためのビューの実体化コストを考慮するために、このドキュメントでは、ビュー作成のメリットからビューの実体化コストを差し引きます。

いくつかのビューは互いに競合します。クエリを書き直すとき、この論文では行列 T|v|×|v|×w を使用してビュー間の関係を表します。ここで、tijk=1(0) は、vi と vj が qk にあることを示します。衝突(衝突ではない)。この論文では、xik=1(0) を使用して、qk を書き換えるために vi が選択されるかどうかを示します。この論文は、V の空間を |V| として表します。最大の総合利益を得るために、この論文は次の整数計画問題としてモデル化されています。

 

これは NP 困難問題であるため、この論文では、近似比 2 の貪欲アルゴリズムを使用して V* を選択します。

5. まとめ

この論文では、効率的かつ効果的な動的 MV 管理の利点を評価するためにグラフ ニューラル ネットワーク (GNN) を利用する新しいフレームワーク GnnMV を提案します。

  • まず、動的クエリ負荷をクエリ グラフとして維持し、クエリの主要な特徴を抽出してエンコードし、GNN モデルを構築します。

  • 次に、より高い精度を達成するために、グラフ内の隣接ノード用に特徴集約関数が設計されています。

  • 最後に、この論文では、継続的なクエリによってグラフがますます大きくなる場合に、効率的な利益推定のために小さなサブグラフを抽出することを提案します。

Broadcom は、既存の VMware パートナー プログラム Deepin-IDE バージョン アップデートの終了を発表し 、新しい外観に なりました。WAVE SUMMIT は第 10 回を迎えます。Wen Xinyiyan が最新の情報を公開します。 周宏儀: 紅夢ネイティブは間違いなく成功するだろう GTA 5 の完全なソースコードが公開された ライナス: クリスマスイブにはコードを読まないつもりだ Java ツールセットの新バージョン Hutool-5.8.24をリリースする来年。一緒 にフリオンについて文句を言いましょう。商業探査: ボートは通過しました。万中山、v4.9.1.15 Apple、オープンソースのマルチモーダル大規模言語モデルをリリース フェレット ヤクルト会社、95G データが漏洩したことを確認
{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/5148943/blog/10464742