(57)【要約】【課題】データ列を比較し、類似値を計算する頑健な装置およびその方法を提供する。【解決手段】少なくとも２つのデータ列の自動比較に用いられる方法およびその装置に関するものであり、２つ以上の列における部分列の任意の一対の間の局所関係の評価と、前記部分的な関係の評価の集約による大域関係の評価とを実行する。一方のデータ列の少なくとも１つの部分列が他方のデータ列に存在しないことを検知して、第１のデータ列における第１の部分列と第２のデータ列における第２の部分列との間の局所関係を評価してもよい。また、局所関係の評価の集約によって大域関係を評価してもよい。【選択図】図１
2009523270.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも2つのデータ列を自動比較する方法であって、
2つ以上の列における部分列の任意の一対の間の局所関係を評価する工程と、
前記局所関係の評価の集約によって大域関係を評価する工程とを備えた、データ列の自動比較方法。
【請求項２】
請求項１において、
一方のデータ列の少なくとも1つの部分列が他方のデータ列に存在しないことを検知して、第１のデータ列における第１の部分列と第２のデータ列における第２の部分列との間の局所関係を評価する工程と、
前記局所関係の評価の集約によって大域関係を評価する工程とを備えた、データ列の自動比較方法。
【請求項３】
請求項１または２において、局所関係の評価の対象の部分列が、
所定の一連のデリミタによって分割された部分列からなる単語、
所定の長さｎの重複する部分列からなるＮグラム、および、
2つ以上の列の全ての起こり得る部分列、の３つのうちの任意の１つの選択モードによって指定される、データ列の自動比較方法。
【請求項４】
請求項１から３のいずれか一項において、局所関係および大域関係の全体が、2つ以上の列の類似性または非類似性についての尺度ｓを構成している、データ列の自動比較方法。
【請求項５】
請求項１から４のいずれか一項において、局所関係および大域関係の評価が、
ハッシュテーブルもしくは索引付きのテーブル、
トライもしくは圧縮トライ、
接尾辞木もしくは接尾辞配列、および
一般化接尾辞木もしくは一般化接尾辞配列のデータ構造またはこれらの表現のいずれかを用いて実行される、データ列の自動比較方法。
【請求項６】
請求項１から５のいずれか一項において、少なくとも1つのデータ列が、前記局所関係が評価されるオブジェクトとして、記号、画像、テキスト、アスキー文字、遺伝子データ、タンパク質データ、バイト、バイナリデータ、トークンのうちの少なくとも1つを含む、データ列の自動比較方法。
【請求項７】
請求項１から６のいずれか一項において、局所関係および大域関係の全体が、
マンハッタン距離もしくはタクシー距離、
ユークリッド距離、
ミンコフスキー距離、
キャンベラ距離、
χ二乗距離、
チェビシェフ距離、
測地線距離、
ジェンセン情報量もしくは対称的カルバック・ライブラー情報量、
位置独立ハミング距離、
第１のカルチスキー類似性係数および第２のカルチスキー類似性係数、
ムカジョフスキー類似性係数またはソレンセン・ダイス類似性係数、
ジャカード類似性係数、
シンプソン類似性係数、
ソーカル・スニース類似性係数もしくはアンダーバーグ類似性係数、
大塚の類似性係数もしくは落合の類似性係数、
ブラウン・ブランケット類似性係数の類似性尺度ｓまたはこれらの非類似性尺度ｓのいずれかを構成している、データ列の自動比較方法。
【請求項８】
請求項１から７のいずれか一項において、
複数のオブジェクトをそれぞれ含む少なくとも2つのデータ列（Ｘ、Ｙ）が検出され、
類似性尺度ｓが、前記データ列における部分列について自動的に計算され、
前記類似性尺度ｓに応じて、さらなる処理が行われる、データ列の自動比較方法。
【請求項９】
請求項８において、前記データ列（Ｘ、Ｙ）が、コンピュータネットワークにおけるコンピュータ間で伝達されるデータを含んでおり、前記類似性尺度ｓのオンラインの計算に応じて、異常なデータストリーム、特に、侵入を示す少なくとも1つの信号が自動的に生成される、データ列の自動比較方法。
【請求項１０】
請求項８または９において、前記コンピュータが、金銭情報、特に、クレジットカード情報の伝達用のネットワークの一部である、データ列の自動比較方法。
【請求項１１】
請求項１から１０のいずれか一項において、前記データ列が、遺伝子データ、コンピュータ間で交換されるデータ、テキスト、画像データ、バイナリデータ、記号のうちの少なくとも1つを含む、データ列の自動比較方法。
【請求項１２】
データ列を比較する装置であって、
特に請求項４に記載されているように、適切なデータ構造におけるデータ列を表現する表現手段と、
前記データ列における部分列の任意の対の間の局所関係を評価する評価手段と、
前記局所関係の評価の集約によって大域関係を評価する評価手段と、
特に請求項６に記載されているように、局所関係および大域関係の全体を計算する計算手段とを備えた、データ列の比較装置。
【請求項１３】
データ列を処理および解析するシステムであって、
特に請求項５に記載されているように、データ列を入力する入力手段と、
特に請求項７に記載されているように、データ列を比較する比較手段と、
分類、回帰、特異点検知、序列、クラスタリング、構造推論を含むデータ列の解析を行う解析手段と、
この解析の結果を報告する報告手段とを備えた、データ列の処理解析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ列の比較に用いられる方法および装置に関する。
【背景技術】
【０００２】
列形式のデータの自動比較は、コンピュータ科学、自然科学および工学的問題において一般的に遭遇される課題である。本発明の文中において、データ列は、一致、またはより一般的には、類似もしくは非類似についてテストされうる連続するオブジェクトの集まりに相当する。
【０００３】
データ列の典型的な例は、記号、画像、テキスト（例えば、アスキー文字）、遺伝子データ、タンパク質、バイト、バイナリデータ（2進数のデータ）または抽象的なトークン（abstract token）の列である。
【０００４】
これらの種類のオブジェクトのいずれかを含む2つのデータ列は、互いに比較されることができ、双方の間の類似（または非類似）の数値が計算されることができる。この発想の延長では、2つを超える数のデータ列が互いに比較されることができ、一対（pairwise）における類似値を含む行列が得られる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
データ列を比較し、類似値を計算する頑健な方法およびその装置を提供することが本発明の目的である。
【課題を解決するための手段】
【０００６】
データ列の比較に用いられる方法およびその装置は、実施形態において、
ａ）データ列を、そのデータ列に含まれる部分列の集まりとして表現し、
ｂ）類似性尺度を、2つのデータ列のうち両方または1つのみにおける、部分列の出現の回数について計算することによって進行する。この方法および装置の実施形態は、類似性のさまざまな尺度と、考慮すべき部分列を選択する種々の仕組みとをサポートしている。
【０００７】
本発明の考えられる実施形態が、本発明の出願の明細書の一部である章Ａ〜Ｄとして説明される。これらの実施形態は、データ列の記憶および比較に用いられる特定のデータ構造において異なる。トライを伴う本発明の一実施形態のフローチャートが、図７に示されている。
【０００８】
比較に用いられる部分列を選択する種々のモードが、章Ｃおよび章Ｄに提示されている。データ列があるとして、そのコンテキストを部分列によって表現する3つの一般的なモードがある。
ａ）単語。列は、一連の区切り記号によって区切られる、重複しない部分列に分割される。自然言語テキストでは、これらの記号は空白および句読記号に相当する。他の用途に関しては、これらのような記号の異なる定義が可能である。
ｂ）Ｎグラム。列は、最大で（ｎ−１）個の記号で重複する、長さｎの部分列によって表現される。Ｎグラムは、デリミタなどの構造的情報が未知であるか、またはこれをモデル化することが困難である場合、例えばＤＮＡ配列の解析において、一般的に使用されている。
ｃ）全ての部分列。この最も一般的な場合では、列は、その列に含まれる全ての部分列によって表現される。このようにして、ｍ個の記号の列が、ｍ（ｍ−１）／２個の部分列の集まりにマッピングされ、この部分列は全ての起こり得るNグラムおよび単語も包含する。
【０００９】
これら３つの全てのモードは、本発明の実施形態によってサポートされている。
【００１０】
列に含まれる部分列の集まりを構築した後に、上述の3つのモードのいずれかに従って定義された部分列の出現の回数を検討することによって、2つの列ｘおよびｙが比較されることができる。
【００１１】
開示される方法の主な構成は、2つの列のうち両方または1つに含まれる全ての適当な部分列に基づく。一般的な手順が、類似性尺度におけるこのような適切な部分列の集約について提示されている。本発明における2つのデータ列ｘおよびｙの間の類似値を計算するために用いられる類似性尺度ｓは、以下の一般的な形式で表現される。
【００１２】
【数１】
2009523270.tif 000003
【００１３】
2009523270.tif 000004
【００１４】
関数φＷ（ｘ）は、データ列ｘに存在する部分列ｗの出現についての定量的な尺度、例えば、カウントまたは頻度値を返す。
【００１５】
類似性尺度の異なる実施形態は、関数ｍおよび演算子＊の定義において異なる。
（ａ）一致関数ｍは、局所関係の尺度、すなわち、φＷ（ｘ）およびφＷ（ｙ）において部分列間の類似性または非類似性の尺度である。この関数は、例えば、データ列における部分列の出現の差の絶対値または差の二乗でもよい。しかしながら、章Ｄでの線形カーネルの場合の公式化のように、類似性を表す他の公式化も可能である。さらなる例は、章Ｃの表８および表９ならびに章Ｄの表１４に示されている。
（ｂ）大域集約演算子＊は、大域関係の評価のための複数の起こり得る演算、すなわち、一致関数ｍによって表現される局所関係の集合を示している。この演算子は、選ばれた部分列の選択モードに対応する部分列の集合Ｌに適用される。これらのような演算子についての例は、章Ｃの表８および表９ならびに章Ｄの表１４に示されている。
【００１６】
類似性および非類似性のさまざまな尺度が、一致関数ｍおよび集約演算子＊についての対応する定義を導き出すことによって、上記の式で表現されることができる。
【００１７】
一例として、ユークリッド距離関数Σi=1〜n（ｘｉ−ｙｉ）２は、＊およびｍによって表現されることができ、一致関数が（ｘｉ−ｙｉ）２に相当し、集約演算子＊が総和になる。他の例では、チェビシェフ距離が、＊としてＭＡＸ関数を使用し、一致関数ｍとして差の絶対値｜ｘｉ−ｙｉ｜を使用することによって表現される。類似性尺度についてのさらなる実施形態は、章Ｃにおける表８および表９ならびに章Ｄにおける表１４を用いて文中で説明されている。
【００１８】
ｍおよび＊の一般的な表現に適した、ユークリッド距離、チェビシェフ距離、マンハッタン距離、またはジャカード（Jaccard）、ムカジョフスキー（Czekanowski）もしくはカルチスキー（Kulszynski）による類似性係数などの類似性尺度のリストが、章Ｃの表５〜表７ならびに章Ｄの表１２および１３に示されている。
【００１９】
列に含まれる部分列についての類似性尺度の一般公式化の他に、データ列の比較に用いられる方法およびその装置における第2の要素は、効率的な計算のための特定のデータ構造の利用である。
【００２０】
以下は、適切なデータ構造のリストと、列データについての類似性尺度の計算へのこれらの利用のための手順とについての説明である。
（ａ）ハッシュテーブル。各データ列ｘはハッシュテーブルに変換される。このハッシュテーブルは、選ばれた選択モードに応じて、ｘの部分列ｗに対応した数値φｗ（ｘ）を含む。類似性尺度の計算は、2つの列ｘおよびｙに対応する2つのハッシュテーブルのビン（ｂｉｎ）をループし、φｗ（ｘ）およびφｗ（ｙ）について一致関数と集約演算子を計算することによって実行される。対応する手順は、章Ｃのセクション３．１に示されている。
【００２１】
（ｂ）トライ。各データ列ｘは、トライのデータ構造に変換される。大きさｍのオブジェクトの集まりから作り出される列について、トライは、選ばれた選択モードに対応する全ての部分列を含むｍ項のツリーである。トライのノードには、ｘ内の各部分列ｗについての数値φｗ（ｘ）が付加されている。類似性尺度の演算は、2つの列ｘおよびｙに相当する2つのトライを平行にトラバース(巡回)し、トライのノードにおけるφｗ（ｘ）およびφｗ（ｙ）を、一致関数および集約演算子を計算するために取り出すことによって実行される。トライに基づく比較に用いられる手順は、章Ｃのセクション３．２に示されている。ネットワーク侵入検知の用途の一部としての具体的な実施形態が、章Ａで説明されている。
【００２２】
（ｃ）接尾辞木および接尾辞配列。各データ列ｘは、接尾辞木または接尾辞配列に変換される。接尾辞木は、根から葉までの各経路が、対象のデータ列の接尾辞に相当するツリー構造である。トライと同様に、ｘにおける部分列ｗについての数値φｗ（ｘ）が、選択方式に応じて接尾辞木のノードに記憶されている。類似性尺度の計算は、2つの列ｘおよびｙに相当する2つの接尾辞木の複数回のトラバースによって実行される。各接尾辞木の第１のパス（pass）の間に、ノードによって示された部分列が特定され、印が付けられる。これら各接尾辞木の部分列は、両方の列に含まれるものである。各接尾辞木の第2のパスの間、印が付けられたノードおよび印が付けられていないノードからの適切なφｗ（ｘ）およびφｗ（ｙ）が類似性尺度の計算のために集約される。代替案として、比較の手順が、接尾辞木の代わりに接尾辞配列を用いて実現されてもよい。接尾辞配列は、列の全ての接尾辞を辞書編集的に整列された順序で含んでいる。接尾辞木に基づく開示される方法は、2つの補助的な配列と、最長共通接頭辞と、接尾辞リンク配列（suffix link array）とを組み合わせることにより、接尾辞配列を用いて実行されることができる。
【００２３】
（ｄ）一般化接尾辞木。一般化接尾辞木は、一連のデータ列の全ての接尾辞を備えることによって接尾辞木を拡張させている。この方法は、比較対象のデータ列が単一のデータ構造によって表現されているので、実施形態（ａ）〜（ｃ）とは異なる。一般化接尾辞木の帰りがけ順のトラバースの間、列ｘの各部分列ｗについての数値φｗ（ｘ）が集約されることができる。類似性尺度の計算は、一致関数および集約演算子を計算することによって、帰りがけ順のトラバースの間に実行される。一般化接尾辞木の場合、部分列の選択モードは、ツリーにおける各ノードに適切な方法で重み（weight）を割り当てることによって実現される。接尾辞配列の方法と同様に、開示される実施形態は、一般化接尾辞配列を用いて実現されることもできる。この比較のアルゴリズムに用いられる手順は、章Ｄに示されている。
【００２４】
様々なデータ構造に基づく本発明の4つ全ての実施形態は、2つを超える数の列に対する類似性尺度の計算をサポートするように拡張されてもよい。上記（ａ）〜（ｃ）の場合には、上記の方法は、ｍ個の列の集まりをｍ個の対応するデータ構造の集まりに変換することによって拡張される。類似値の行列が、この結果生じたデータ列間のｍ2個の一対ごとの類似性を計算することによって得られる。実施形態（ｄ）は、本質的に、複数のデータ列についての類似性尺度を計算することができる。いったん一連の列が一般化接尾辞木の表現に変更されると、単一の帰りがけ順のトラバースが、全ての一対の類似値の計算に関して十分である。
【発明を実施するための最良の形態】
【００２５】
以下、章Ａ〜Ｄとして、それぞれ論文の形式で、本願発明にかかる実施形態を説明する。
【００２６】
＜章Ａ＞
我々は、トライのデータ構造を使用して、ＴＣＰ接続から抽出されたＮグラムおよび単語を効率良く記憶する、ネットワーク侵入検知に用いられる言語モデルの新規な表現を提案する。この表現によって、ＴＣＰ接続について、さまざまな類似性尺度を計算したり、未知の攻撃の検知に適した、教師なし異常検知（unsupervised anomaly detection）アルゴリズムを適用したりすることができる。
【００２７】
ＤＡＲＰＡ１９９９のデータセットおよび我々のデータセット、ＰＥＳＩＭ２００５について行った実験の結果は、ネットワーク攻撃の検知についての高次のＮグラム（１グラムとは反対に）の重要性を証明している。我々の方法は、単語に基づく言語モデルにも適している。この単語に基づく言語もモデルは、Ｎグラムモデルよりも、実際のセキュリティ・アプリケーションに適したものである。我々のシステムの実施は、ＨＴＴＰトラフィック、ＦＴＰトラフィックおよびＳＭＴＰトラフィックにおける27件の最新の攻撃について、0.2％の誤検知率（false-positive rate）で80〜100％の検知精度を達成した。
【００２８】
１．序論
未知の攻撃の検知は、セキュリティ業者が強く解決を望む長年にわたる課題である。脆弱性およびこれらの攻略を追跡するための現在のアプリケーションならびにインフラストラクチャが、攻撃シグニチャによって十分な保護を提供しているとしばしば主張される一方で、シグニチャに基づく防御を打破した未知の攻撃、特に、ワーム[例えば、38]およびゼロデイ攻略（zero-day exploits）[例えば、1]の数々の例が存在する。さらに、シグニチャが利用可能であるのみでは、しばしば十分でなく、導入されたシグニチャは、システムを安全にするために、セキュリティアドミニストレータによって最新に維持されなければならない。
【００２９】
未知の攻撃についての議論は、侵入検知コミュニティのさまざま部門で行われている。不正検知に関して、議論は、シグニチャをより汎用的にし、かつ、既知の攻撃が突然変わったとしてもだまされないようにするということが争点になっている[37,22,15,30,7,33]。しかしながら、純粋に新しい攻撃は、異常検知ツールによってのみ検知されることができるという共通認識が高まりつつある。ただし、この場合、有効な異常かもしれない誤検知（偽陽性）を処理しならないという代償がある。
【００３０】
これまでの研究の多くは、ネットワークトラフィックにおける異常検知についてなされてきた[例えば、41,42,16,26,25,9]。異常検知の実用面での受け入れまでの道のりにおける主な障害は、高い誤検知率である。これまでの方法のほとんどは、業者が必要とする、誤検知率の1000分の1の範囲での十分な精度（これでも高すぎるかもしれない）を提供していない。それゆえに、異常に基づく侵入検知技術のさらなる改善が高く望まれる。
【００３１】
方法的な違いのほかに、さまざまな異常検知方法の根底にある主な問題は、これらが作用する対象となる構成である。初期の方法のいくつかは、パケットのヘッダ情報、またはパケットもしくは接続の集まりの統計上の特性のみを考慮していた[25,19]。この情報は、特定の種類の悪意ある活動、たとえば、プローブおよびポートスキャンの検知に有効であることが証明されているが、通常、アプリケーション層プロトコルおよびこれらの実装の意味上の脆弱性を攻略する攻撃を検知するのには十分でない。
【００３２】
この論文において、我々は、ＴＣＰ接続におけるバイトストリームの解析に用いられるＮグラムおよび単語などの言語モデルについて類似性尺度を使用する、未知のネットワーク攻撃の検知に用いられる一般的な技術を提示する。Ｎグラム表現は、ホストをベースとした侵入検知システム（ＩＤＳ）についての文献において長く知られてきた[例えば、10,14,43,27,12]。近年では、Ｎグラムモデルがパケットのペイロードまたは接続内容についての異常検知に適用されている、ネットワーク侵入検知の技術がいくつか提案されている[16,42,41]。これらのようなモデルが、パケットのヘッダでは明らかにならない攻撃を検知するのに極めて効果的であることが証明されている。
【００３３】
Ｎグラムモデルが内容に基づいた区別できる構成の記述に成功している理由は、プロトコルと自然言語とを比較することによって理解されることができる。両方の内容は、豊富な構文（syntax）と意味（semantics）とで特徴付けられており、異なるカテゴリー間での区別は、意味的な構成物および構文的な構成物によってのみ可能である。プロトコルおよび自然言語の両方について、法則によって重要な概念を説明するために広範囲に及ぶ努力がなされたが、法則では、根底にある内容の完全な一般概念を包含することが困難であるということを発見するのみであった。プロトコルおよび自然言語は、文法的構造を有しているが、この構造の再生は、不明確性および曖昧さによって妨げられる。
【００３４】
言語学的な類推からみて、（未知の）誤用パターンの識別が、根底をなすプロトコル言語における（未知の）概念を学習することにつながる。それゆえに、自然言語処理の機械をネットワーク侵入検知に適用することは、明らかに有望である。しかしながら、そうする一方で、ネットワークのＩＤＳの技術的課題、つまり、高速および大量のデータに注意しなければならない。これまでに報告された、ネットワークトラフィックのＮグラムモデルを用いた全ての実験結果については、Ｎ＝１が使用されており、これは、このモデルを適用することについての主要な技術的問題を間接的に指し示している。数が大きくなり得るＮグラムの統計学的特徴は、いかにして効率的に計算され、比較されることができるのであろうか？
【００３５】
この問題に対処するために、我々は、トライに基づいたＮグラムの新規な表現を提案する。この表現によって、Ｎグラムでの多種多様の類似性尺度、例えばマンハッタン距離、ユークリッド距離およびキャンベラ距離、カルチスキー類似性係数およびムカジョフスキー類似性係数、ならびにさまざまなカーネル関数の線形時間での計算が可能になる。これらの類似性尺度を用いて、通常とは異なるイベントを検知するために教師なし異常検知アルゴリズムを適用することができる。結果として、我々の技術を用いた異常検知は、実用配備することが極めて容易である。いったんネットワークに接続されると、我々のシステムは、訓練または広範囲にわたる設定なしで異常検知を実行し、通常データのプロファイルを学習する短い期間の後に、安定した体制となる。
【００３６】
概念実証として、我々は、ＤＡＲＰＡ１９９９のＩＤＳのデータセットおよび侵入テストの専門家によって作り出された我々のデータセットについて我々の方法を実験的に評価する。通常、全範囲の攻撃が対象となっているＤＡＲＰＡ１９９９のＩＤＳのデータセットを用いた以前の研究とは異なり、我々は、増大する複雑性が大量の脆弱部を生み出しているアプリケーション層のプロトコルに対する攻撃に着目する。これらのような脆弱部の攻略は、攻撃者がネットワークサービスの重度の悪用をするのに十分な特権を得ることを可能にする。それゆえ、アプリケーション層プロトコルに対する攻撃は、実際のセキュリティという点において最も危険である。我々の実験において存在する攻撃のリストは、本文末尾に添付した表１および表２に示されている。
【００３７】
我々の実験の結果は、Ｎグラムが未知の攻撃の検知のための貴重な情報を伝えることができることを証明している。以前の研究との違いとして、我々は、いくつかの攻撃について、重要な区別できる構成がＮ＞１の長さのＮグラムに含まれていることに気付いた。その一方で、我々の実験は、自然言語処理における研究から知られている結果として、Ｎグラムモデルの最適な長さを前もって決定することが難しいことを示している。この問題を改善するために、我々は、我々のモデルをＮグラムから単語へと拡張し、これらのようなモデルが、実験的に最適のＮグラムモデルの精度よりもわずかに低いだけにすぎない精度をもたらすことを示している。最後に、我々は、提案される方法が、標準のシグニチャのセットを備えた、オープンソースのＩＤＳのＳｎｏｒｔ（スノート）の最新版を著しく凌ぐことを証明する。
【００３８】
２．関連の研究
極めて自然なことに、言語モデルは、侵入検知に対する関連性が発見される数十年も前に、情報検索および自然言語処理の分野における研究者によって最初に開発された。早くて６０年代半ばには、文字Ｎグラムが光学式文字認識におけるエラー訂正のために使用されていた[32]。テキスト分類へのＮグラムの利用は、Suenによって開拓され[40]、その後の多くの研究によって追随された[例えば、4,3,35]。Ｎグラムベースの方法の主な考え方は、Ｎ個の連続する文字（Ｎグラム）を含む全ての部分列の頻度を計算し、これらの頻度に基づいて類似性尺度を設定することである。アルファベットにおけるＮグラムの幾何学級数的な数にもかかわらず、線形数のＮグラムのみが、所与の文字列に存在している。Ｎグラムの効率的な比較は、ハッシュ法を用いてなされることができる。さまざまな類似性尺度、例えば、頻度ベクトル間の内積[4]またはマンハッタン距離およびキャンベラ距離[3]が、Ｎグラムの頻度を比較するために用いられた。テキスト分類についての最新の方法は、コンテキストの情報を組み入れることを可能にする、類似性尺度としてのカーネル関数の使用を推奨している[44,21,24]。
【００３９】
ホストベースのＩＤＳの分野におけるＮグラムモデルの再発見は、９０年代半ばに、Forrestらの一見、反復的でない「スライディング・ウィンドウ」方法によって始まった[10]。この方法は、現代の専門用語において、Ｎグラムの教師あり異常検知として分類されることができる。Forrestらの主な目的は、プログラムの通常の動作から生じるシステムコールのトレース（追跡）における、あり得る全てのＮグラムのデータベースを作り出すことであった。このデータベースに対して多くの2進数の不一致を有するトレースは、異常であるとしてフラグをたてられた（印が付けられた）。これらの考えは、隠れマルコフモデル（Hidden Markov Model）[43]、フィード・フォワード型および再帰型のニューラルネットワーク[12]、ならびにルール導出アルゴリズム（rule induction algorithm）[20]の活用を通して拡張された。これらの方法の総合的な評価は、上記の方法の全てが、これらがチェックされたデータセットにおける侵入の異常動作を効果的に検知できることを示した。
【００４０】
ネットワークベースのＩＤＳへのＮグラムモデルの活用は、パケットのペイロードの限定された形式のバイトのヒストグラムを、異常の統計的なテストに使用するという発想に始まった[16]。より進化したモデルが、WangおよびStolfoによって提案された。このモデルでは、パケットのペイロードのヒストグラムが用いられ、ペイロードのヒストグラムが通常データから学習されたヒストグラムに対して大きいマハラノビス距離を有する異常なパケットを検知する[42]。この方法は、Ｎ＝１のＮグラムの方法の具体的な事例として容易に理解されることができる。WangおよびStolfoの方法の特徴は、パケットのペイロードの分布がパケットの長さを条件としていることである。隣接するモデルの統合が、全体のモデルの大きさを減少させるために用いられる。この方法を用いる異常ペイロード検知センサＰＡＹＬが、ネットワークトラフィック内のワームを検知するために良好に適用されてきた[41]。
【００４１】
３．Ｎグラムのトライ
関連の研究の簡潔な説明から容易に理解できるように、さまざまな洞察が、単純な言語モデルに導く。単純な言語モデルとは、通常のイベントと異常なイベントとを識別するのに十分な方法で、基礎をなす言語の雑然とした（coarse）構文をとらえるＮグラムである。これらのようなモデルを異常検知のアルゴリズムにおいて利用する秘訣は、所望の区別的特性を有する一連の類似性尺度を提供することである。多種多様な類似性（および非類似性）の尺度を文献から得ることができ、これらのうちいくつかは、後述するＡ．２において概要されている。したがって、データ構造とＮグラムのヒストグラムの計算に用いられるアルゴリズムとを変更することなく、これらの尺度を利用することが極めて望ましい。
【００４２】
基礎をなすデータ構造が類似性尺度の効率的な実行にとって重要である理由を理解するためには、いくつかの技術的課題が検討されなければならない。Ｎグラムのヒストグラムを保管して比較する古典的な仕組みは、ハッシュテーブルを使用する[例えば、4]。これにより、文字ストリームに存在するｌ−ｎ＋１個（最悪の場合において）の異なるＮグラムを大きさｋのハッシュテーブルに保管することができる。ここで、ｌとｋとの関係は、ハッシュ関数のパラメータに依存する。ハッシュテーブルへの挿入には、一定の時間を要し、また一方で、2つのハッシュテーブルの簡単な比較は、多すぎる衝突を回避できるほどハッシュ関数が十分に優れているという条件で、Ｏ（ｋ）の計算量である。ハッシュテーブル要素は整列されていないので、いかなる類似性尺度の演算も、ｋ個全てのテーブル要素をループすることを必要とする。
【００４３】
我々は、バイトストリームから集められたＮグラムをトライに保管させることを提案する[5,11]。トライへの挿入は、Ｏ（ｎｌｏｇ｜Σ｜）の計算量を要し、ここで、｜Σ｜はアルファベットの大きさである（我々の場合では２５６）。一連の単語｛“ｂａｎｋ”，“ｂａｎｄ”，“ｃａｒｄ”｝を保管させる一例が、図１に示されている。トライの各ノードは、Ｎグラムのトライへの挿入時にノードがヒットする（当たる）たびにインクリメントされるカウンタを含むように拡張されている。図１におけるカウントは、入力ストリームにおいて、“ｂａｎｄ”が３個、“ｂａｎｋ”が５個および“ｃａｒｄ”が２個の存在することに相当する。
【００４４】
Ｎグラムのトライについての類似性尺度の計算は、対象の尺度を一致関数についての演算子として表現することによってなされることができる。
【００４５】
2009523270.tif 000005
【００４６】
ここで、一致関数は、一致ｍ＋（ｓ，ｔ）の関数、局所不一致ｍ−（ｓ）の関数および大域不一致ｍ＊（ｓ）の関数になり得る。ｍ＋、ｍ−およびｍ＊の適切な定義を用いて、さまざまな尺度が定義されることができる。例えば、2つのトライの間のマンハッタン距離は、ｍ＋（ｓ，ｔ）＝｜ｃｓ−ｃｔ｜、ｍ−（ｓ）＝ｍ＊（ｓ）＝｜ｃ３｜で得られ、ｃｉはトライにおける各ノードのカウントである。トライのハッシュテーブルに優る決定的な利点は、異なる長さ、例えば、ｌ１≪ｌ２の２つのバイトストリームを比較する際に生じる。トライの表現に関して、一致は、Ｏ（ｍｉｎ（ｌ１，ｌ２））の計算量で実行される。ハッシュテーブルに関しては、一致は常に、Ｏ（ｋ）≒Ｏ（ｍａｘ（ｌ１，ｌ２））の計算量の動作を必要とする。
【００４７】
ネットワークトラフィックのＮグラム解析へのトライのデータ構造の利用において、我々は、組み立てられたＴＣＰ接続の入力バイトのストリームを考える。全ての接続について、入力バイトストリームにおける全てのＮグラムの圧縮表現を含むトライが構築される。次に我々は、トライを、所与の類似性尺度を用いて検知を実行する、教師なし学習アルゴリズムに入力する。こうして、我々の方法は、ペイロードの長さを条件にしたり隣接ビンのクラスタ化を行わないことを除いて、WangおよびStolfoの「接続ごと」モデル（“per connection” model）と類似している[42]。
【００４８】
ＮグラムがＴＣＰ接続におけるネットワーク攻撃を特性化する様子は、例によって最も良好に示されることができる。図２は、ＩＩＳ（Microsoft Internet Information Services）ユニコード攻撃の３グラム頻度と通常のＨＴＴＰトラフィックとの違いを示している。３グラムの取り得る大きい領域により、このグラフは、ＩＩＳユニコードの攻撃に存在する３グラムに限定されている。
【００４９】
いくつかの正のピークは、通常のトラフィックからの大きい逸脱を示しており、攻撃の典型的な３グラム、例えば、”35c”、”/..”および”%35”に相当している。これらの３グラムはユニコード攻撃”%%35c”の基本的なパターンを明らかにしている。このユニコード攻撃は、脆弱性のあるＩＩＳサーバによって”%5c”（アスキーコード0x35は”5”に相当する）に変換され、最終的にはバックスラッシュ（アスキーコード0x5c）として解釈される。この攻撃の対応する断片は、以下に示されている。
【００５０】
2009523270.tif 000006
【００５１】
４．Ｎグラムのトライにおける教師なし異常検知
アドミニストレータを、通常動作活動を代表するデータ収集から免れさせるので、教師なし異常検知は異常検知の実際の需要に特に適している。教師なし異常検知のアルゴリズムは、データのストリームに直接適用されることができ、通常のパターンと異常なパターンとを「素早く」効果的に区別すると考えられる。さらに、人手によってラベル付けされたデータを用いたアルゴリズム、または訓練の広範囲にわたる設定が必要でない。
【００５２】
教師なし異常検知は、その魅力的な性質のため、侵入検知についての最近の研究において多大な関心を得てきている[例えば、34,9,18]。教師なし異常検知に用いられるアルゴリズムは、異常と通常データとの幾何学的特徴における違いを利用する。これらのアルゴリズムは、例えば、最短距離法[34]およびｋ近傍法Ｚｅｔａ（引用割愛）のように局所特性を探索するか、または、例えば、簡素化されたマハラノビス距離[42]および１／４球状サポートベクターマシーン（quarter-sphere ＳＶＭ）[17]のように大域特性を探索する。（我々の研究で用いられるこれら4つのアルゴリズムの概要はＡ．１に示されている）。
【００５３】
異常検知アルゴリズムは、通常、データの幾何学的表現を実質的に定義する、対のオブジェクト間の類似性尺度を必要とする。セクション３で示されたように、さまざまな類似性尺度がＮグラムのトライにおいて定義されることができる。特に、我々は、以下の尺度を調べた。キャンベラ距離[8]、「2進数化された」マンハッタン距離、ムカジョフスキー係数[6]および（第２の）カルチスキー係数[39]。（これらの尺度の概要はＡ．２に示されている。）
【００５４】
５．実験結果
ネットワーク接続の提案されたＮグラムのトライ表現を、検知性能について評価し、再現された構文情報の性質についての洞察を得るために、我々は、2つのネットワークトラフィックのデータセットについて実験を実施した。詳細には、我々は、以下の未解決の疑問を解明することに関心がある。
１．Ｎグラム（Ｎ＞１）の増加された長さは、検知性能を向上させるか？
２．いかなる誤検知率で、我々のデータに存在する攻撃の全ての事例を検知するのか？
【００５５】
我々は、我々の実験を、一般的なアプリケーション層プロトコルＨＴＴＰ、ＦＴＰおよびＳＭＴＰに限定する。これらプロトコルは、過去十年においてネットワーク攻撃の変わらないターゲットとなっている。
【００５６】
５．１．データセット
ＤＡＲＰＡ１９９９のデータセット
1999年にＤＡＲＰＡによって実施されたＩＤＳの評価からのこの周知のデータセット[23]は、多数の文献において使用されており、ＩＤＳの評価に用いられる標準のベンチマークであると考えられることができる。
【００５７】
前処理工程として、我々は、通常データを示す第1週目および第3週目のデータのコーパスからの各プロトコルについての1000個のＴＣＰ接続を無作為に取り出した。我々は次に、このデータセットの第4週目および第5週目に存在した全てのリモートからローカルへの攻撃（Ｒ２Ｌ攻撃）を選出した。表１は、これらのＲ２Ｌ攻撃を挙げている。
【００５８】
ＤＡＲＰＡ１９９９のデータセットにはいくつかの欠陥およびアーチファクトの問題があることが知られており[26,28,29]、特に、攻撃の選出は、現代のセキュリティ脅威と比較して時代遅れであると考えられることができるが、未だに、結果を再生できる唯一の主要なデータセットである。
【００５９】
ＰＥＳＩＭ２００５のデータセット
ＤＡＲＰＡ１９９９のデータセットの問題を克服するために、我々は、ＰＥＳＩＭ２００５と名付けられた第２の評価データセットを生成した。我々は、仮想マシン環境を用いる５つのサーバの組み合わせを配備した。これらのシステムは、２つのウィンドウズ（登録商標）、２つのリナックスおよび１つのソラリスを実行させ、ＨＴＴＰ、ＦＴＰおよびＳＭＴＰのサービスを提供した。
【００６０】
これらのシステムについての通常のネットワークトラフィックは、我々の研究室のメンバーによって生成された。現実的なトラフィック特性を得るために、我々は、ＨＴＴＰサーバにおいて透過的に新しいサイトをミラーリングし、ＦＴＰサーバにおいて、ファイル共有機能を提供した。個人通信およびメーリングリストからのメールを70％、および5人の個人によって受信されるスパムメールを30％含むＳＭＴＰトラフィックが、人為的に投入された。通常データは、ＤＡＲＰＡ１９９９のデータセットと同様に、データのコーパスからの各プロトコルについての1000個のＴＣＰ接続の無作為の選出によって前処理された。添付ファイルは、ＳＭＴＰトラフィックから取り除かれた。
【００６１】
これらのシミュレーションされたサービスに対する攻撃は、侵入テストの専門家によって、最新の侵入テストツールを用いて作り出された。27件の異なる攻撃の多数の事例が、ＨＴＴＰ、ＦＴＰおよびＳＭＴＰのサービスに対して開始された。これらの攻撃は表2に挙げられている。これらの攻撃の大部分は、メタスプロイト・フレームワーク（Metasploit framework）における最新の攻略の総合的な群の一部である[31]。さらなる攻撃は、バグトラック（Bugtraq）およびパケットストームセキュリティ（Packetstorm Security）などの一般的なセキュリティメーリングリストおよびアーカイブから得られた。「ＰＨＰスクリプト攻撃」は、侵入テストの専門家によって取り入れられたものであり、ＰＨＰスクリプトにおける安全でない入力処理を攻略する。
【００６２】
５．２．実験
最良の尺度／ディテクタの設定
これまでに述べたように、類似性尺度はさまざまな幾何学的性質を生じさせ、次にこれら幾何学的性質が、異常検知方法によってさまざまな方法で探索される。したがって、最初の工程として、我々は、類似性尺度と異常ディテクタ（anomaly detector）とのいずれの組み合わせが、問題の各プロトコルについてのＮグラムにおいて最も良好に機能するかを、おおよそはっきりさせる必要がある。この実験に用いられる候補の類似性尺度は、キャンベラ距離、「2進数化された」マンハッタン距離、ムカジョフスキー類似性係数およびカルチスキー類似性係数である。想定される異常ディテクタは、簡素化マハラノビス距離、１／４球状ＳＶＭ、最短距離法およびＺｅｔａ異常ディテクタである。
【００６３】
以下の実験手順が実行される。各尺度／ディテクタのコンフィグレーションに関して、10個の独立したデータセットがコーパスから作り出される。各データセットは、最適のディテクタのパラメータを見つけるために用いられる有効性確認区分（validation partition）と、ディテクタの精度の評価のために用いられる独立試験区分（independent test partition）とに分割される。評価の基準は、我々の場合では0〜0.1の誤検知率の特定の間隔にわたって正検知率を積分した、いわゆる曲線下面積（ＡＵＣ）である。この手順は、1〜8の値をとるｎの数値について繰り返され、結果は、10回の実行およびｎの全ての数値について平均されたものである。
【００６４】
表３は、両方のデータセットにおけるＨＴＴＰプロトコル、ＦＴＰプロトコルおよびＳＭＴＰプロトコルについての最良の3つの尺度／ディテクタのコンフィグレーションを挙げている。全てのプロトコルについて、類似性係数がカルチスキーで、局所異常ディテクタがＺｅｔａであるコンフィグレーションが、ｎのさまざまな長さに関して最良の総合的な性能をもたらす。残りの実験において、我々は、尺度／ディテクタのコンフィグレーションをこのシステムの設定とする。
【００６５】
さまざまなＮグラムの長さ
自然言語処理およびホストベースのＩＤＳにおける以前の結果は、最適のＮグラムの長さが、用途に応じて変化するかもしれないことを示している[24,10]。我々は、これから、同一観測結果がＴＣＰ接続のＮグラムモデルについても適用するか否かを調査する。
【００６６】
ｎの個々の数値の結果が、一定のコンフィグレーションを用いて記録されることを除いて、我々は、最適の尺度／ディテクタのコンフィグレーションの選出における設定と同一の設定に従う。これらの結果は、図３（ＤＡＲＰＡ１９９９のデータセットについては）と、ｎの選択された数値についてのＲＯＣグラフを表示する図４（ＰＥＳＩＭ２００５のデータセットについては）とに示されている。
【００６７】
検知性能が、異なるプロトコルに関して、ｎの数値間で著しく変化することが明確に理解される。実際に、この実験で検討された3つの数値のそれぞれが、あるプロトコルについて最適であり、また、２つのデータセットにおいて異なるプロトコルについて最適であることが分かる。これは別として、我々の方法の総合的な精度は極めて有望であり、特に、新しいＰＥＳＩＭ２００５のデータセットについて有望である。ｎの最良の数値に対しては、ＨＴＴＰプロトコル、ＦＴＰプロトコルおよびＳＭＴＰプロトコルについて、80％〜100％の検知率が、0.2％の誤検知率で観測された。
【００６８】
特定の攻撃の分析
ＩＤＳがデータセットにおける特定の攻撃をいかに良好に検知するかについて知ることに常に関心がある。前実験の結果は、さらに、各攻撃についての最適のＮグラムの長さは洞察力のあるものであることを示唆している。この実験に用いられる基準として、我々は最小の誤検知率を考慮した。この最小の誤検知率においては、攻撃の全ての事例が検知される。これらの結果は表４に示されている。
【００６９】
ＰＥＳＩＭ２００５のデータセットからのネットワーク攻撃のほとんどが、1％を下回る誤検知率で検知される。1つの攻撃、ＰｒｏＦＴＰｄ攻略のみが上手く識別されない。この攻略は、悪意あるファイルをＦＴＰサーバにアップロードする。このファイルの内容は、我々のシステムによって監視されていないデータチャンネル上で転送されるので、この攻撃は、我々の設定においては、偶然によってのみ検知される。
【００７０】
攻撃の全体の最適のＮグラムの長さの分布は、2つの側面を明らかにしている。検知するのが特に容易であるいくつかの攻撃については、Ｎグラムの長さは無関係である。しかしながら、特定のＮグラムの長さに対しては検知精度が著しく良好である攻撃（検知が簡単なものおよび困難であるもの）が存在する。
【００７１】
６．Ｎグラムから単語へ
前のセクションにおける実験からのメッセージは、業者にとって少し分かりづらいかもしれない。いくつかの場合では、長いＮグラムが検知性能に向上をもたらすが、さまざまな攻撃およびプロトコルにおいて一貫性は発見されることができない。もし攻撃が未知であれば、いかにして正しいｎを事前に選択すべきか？
【００７２】
Ｎグラムモデルの以下の拡張が、この懸念に対応している。自然言語の意味は、実際には、Ｎグラムよりもむしろ単語によって定義されていることに注目されたい。自然言語における単語は、空白記号によって分けられた連続する文字列として定義される。我々は、ＨＴＴＰ、ＦＴＰおよびＳＭＴＰなどのアプリケーション層のプロトコルの意味が、適切に定義された単語によって同様にとらえられることができると推測する。単語区切り文字として、以下のバイトが提案される。
【００７３】
2009523270.tif 000007
【００７４】
我々は、これから、この論文において提案されているＮグラムのトライ表現の他の注目すべき性質を発見しようとしている。このトライ表現は、いかなる変更もなく、可変の長さの「グラム」を取り扱うことができる！
【００７５】
我々は、これらの実験を、さまざまなＮグラムの長さについての実験における設定と同一の設定下で、Ｎグラムの代わりに単語のストリームを用いて繰り返し行う。類似性尺度は、単語の頻度について計算され、同一の尺度／ディテクタのコンフィグレーションが用いられる。この実験の実用面の焦点を強調するために、我々は、我々のモデルの結果を、オープンソースのシグニチャベースのＩＤＳＳｎｏｒｔの性能と比較する[36]（2005年9月28日に公開され、ルールのデフォルトセットでコンフィグレーションされたＳｎｏｒｔ  ｖｅｒｓｉｏｎ ２．４．２）。これらの結果は、図５（ＤＡＲＰＡ１９９９のデータセットについては）および図６（ＰＥＳＩＭ２００５のデータセットについては）に示されている。
【００７６】
我々の単語ベースのディテクタは、ＰＥＳＩＭ２００５について、Ｎグラムベースのディテクタと同一の精度をもたらすことが理解されることができる。残念ながら、ＤＡＲＰＡ２００５のデータセットについて一貫性は観察されることができず、これは、このデータセットにおいて存在するいくつかの攻撃の人為的な性質に起因すると考えられることができる。驚いたことに、「ＰＨＰスクリプト」を除く、全ての含まれる攻撃がＳｎｏｒｔの配布の公開日の何ヶ月も前に知られていたにもかかわらず、これらＮグラムモデルおよび単語モデルは、ＰＥＳＩＭ２００５のデータセットについてＳｎｏｒｔに著しく優った。
【００７７】
この結果は、最新のシグニチャ保管庫を維持しようとするセキュリティコミュニティにおける多大な努力にもかかわらず、シグニチャベースのＩＤＳが、「登場したて」の攻撃を発見することができないかもしれないという懸念を確かなものにしている。注目すべきは、Ｓｎｏｒｔが、我々の実験において、2つの理由により機能しなかったことである。適切なシグニチャが存在していなかったので、いくつかの攻撃が検知されなかった。これは、100％に達しない平坦なＲＯＣグラフによって明らかにされている。他の不具合は、攻撃の構文における軽微な変化によって生じた。例えば、開始の“ＨＥＬＯ”コマンドを“ＥＨＬＯ”に攻撃者が、置き換えると、これはプロトコル仕様で許可され、実際に頻繁に使用されているのであるが、ＳＭＴＰ攻撃の1つが発見されなかった。
【００７８】
７．結論
我々は、ＴＣＰ接続から取り出されたＮグラムおよび単語の効率的な記憶のためにトライを用いた、ネットワーク侵入検知のための言語モデルの新規な表現を提案した。我々の表現によって、これらのモデルについて、さまざまな類似性尺度および非類似性尺度を線形時間で計算することができる。ＴＣＰ接続間の類似性が計算できるので、我々は、これまで未知であった攻撃の検知に適した、教師なし異常検知アルゴリズムを適用することができる。
【００７９】
ＤＡＲＰＡ１９９９のデータセットおよび我々のデータセットＰＥＳＩＭ２００５について実施された実験の結果は、最新のネットワーク攻撃の検知に用いられる高次のＮグラム（１グラムとは異なり）の重要性を証明している。それでもなお、特定の攻撃およびプロトコルについてＮグラムモデルの最適の長さを決定することは困難である。この問題は、プロトコルの構文に適した「空白」の区切り文字を用いて、単語に基づく言語モデルを検討することによって緩和される。単語モデルに基づく教師なし異常ディテクタの精度は、我々の実験で調査したように、最良のＮグラムモデルの精度とほぼ同一である。さらに、我々の言語モデルに基づくシステムは、「プラグアンドプレイ」設定で、オープンソースのＩＤＳのＳｎｏｒｔの最新版（シグニチャの標準的なセットが備えられた）に著しく優った。
【００８０】
参考文献
【００８１】
2009523270.tif 000008
【００８２】
2009523270.tif 000009
【００８３】
2009523270.tif 000010
【００８４】
2009523270.tif 000011
【００８５】
＜章Ｂ＞
Ａ．１．異常ディテクタ
Ａ．１．１．大域異常ディテクタ
簡素化マハラノビス距離[42]は、データμの重心、および入力空間における各次元σｉの分散を決定する。異常スコアは、ｘからμまでの分散スケール化された距離として定義される。
【００８６】
【数２】
2009523270.tif 000012
【００８７】
１／４球状ＳＶＭ[17]は、非線形マッピング関数φを用いて、高次元の特徴空間における入力データφ（μ）の重心を決定するカーネルベースの学習方法である。異常スコアは、特徴空間におけるφ（ｘ）からφ（μ）までの距離として定義される。
【００８８】
【数３】
2009523270.tif 000013
【００８９】
Ａ．１．２．局所異常ディテクタ
簡素化された最短距離法[34]は、一般的なクラスタ化アルゴリズムである。クラスタ割り当てが与えられると、異常スコアは以下で指定されるクラスタｘの大きさとして定義される。
【００９０】
【数４】
2009523270.tif 000014
【００９１】
我々の新しい方法Ｚｅｔａは、ｋ個の近傍点の概念に基づいた異常スコアである。このスコアは、平均内クリーク距離（mean inner-clique distance）によって正規化されたｋ個の近傍点に対するｘの平均距離として計算される。
【００９２】
【数５】
2009523270.tif 000015
【００９３】
Ａ．２．類似性尺度
（非）類似性尺度は、ｘおよびｙをそれぞれ成分値ｘｉおよびｙｉとともに、単数の（非）類似性スコアにマッピングするバイナリ関数（2進数を扱うことができる関数）である。
【００９４】
Ａ．２．１計量距離
キャンベラ距離ｄｃはマンハッタン距離の正規化された型である。これは計量的な特性を示し、距離スコアは、0〜1の範囲にある。キャンベラ距離は、量および頻度を含むヒストグラムに適している。
【００９５】
【数６】
2009523270.tif 000016
【００９６】
「2進数化された」マンハッタン距離ｄｂは、ハミング距離と類似である[13]。これは計量的であり、ゼロでない数値については1を返す関数ｂを用いて、入力ベクトルｘおよびｙをバイナリ空間（2進数の空間）にマッピングする。
【００９７】
【数７】
2009523270.tif 000017
【００９８】
Ａ．２．２．類似性係数
類似性係数は、しばしば、バイナリデータに適用され、非計量的な特性を示す[2]。これらの係数は、４つの総和変数（summation variable）ａ，ｂ，ｃおよびｄで構成されている。変数ａは、正の一致の成分の数を定義し（１−１）、ｂは左側の不一致の数を定義し（０−１）、ｃは右側の不一致の数を示し（１−０）、ｄは負の一致の数を示している（０−０）。
【００９９】
これらの係数は、これらの総和変数の変更によって、バイナリでないデータにも拡張されることができる。2つの成分間の一致の程度は、ｍｉｎ（ｘｉ，ｙｉ）として定義され、したがって、不一致はｍｉｎ（ｘｉ，ｙｉ）からの差として定義されることができる。
【０１００】
【数８】
2009523270.tif 000018
【０１０１】
ムカジョフスキー係数ｓｃは、正の一致の成分と全ての成分の総和との比率である[6]。拡張された形式では、以下のように表現されることができる。
【０１０２】
【数９】
2009523270.tif 000019
【０１０３】
第２のカルチスキー係数ｓｋは、不一致の左側および右側に対する正の一致の成分の比率である[39]。拡張された形式では、第２のカルチスキー係数は以下のように定義される。
【０１０４】
【数１０】
2009523270.tif 000020
【０１０５】
＜章Ｃ＞
列データについての類似性尺度としてのカーネル関数は、これまでの研究で広範囲にわたって調査されてきた。この論文は、列データについての距離関数および類似性係数の効率的な計算を扱う。2つの提案されるアルゴリズムは、効率的な計算のために異なるデータ構造を利用しており、列の長さにおいて線形的な実行時間をもたらす。侵入検知のためのネットワークデータにおける実験は、列データについての距離の重要性を示唆しており、さらには、列データについての非計量的な類似性尺度の重要性も示唆している。
【０１０６】
１序論
列は、さまざまな機械学習およびパターン認識の用途、例えば、情報検索におけるテキスト文書、バイオインフォマティクスにおけるＤＮＡ配列、または侵入検知におけるパケットペイロード、に用いられる一般的な、ベクトルでないデータ表現である。これらのようなデータの解析に用いられる最も重要な手順は、列間の一対ごとの類似性の効率的な計算である。
【０１０７】
特殊化された文字列間の距離[例えば、1,2]の他に、列データについての類似性尺度の多くのクラスが、その部分列について、これらを高次元の特徴空間に埋め込むことによって定義されることができる。これまでの研究は、これらのような特徴空間におけるカーネル関数の計算に焦点を当てていた。例えば、Ｎグラムの頻度または単語の頻度についての内積が、テキスト文書の解析[例えば、3,4,5]またはホストベースの侵入検知[例えば、6]に広く用いられてきた。ＤＮＡにおける情報を明らかにするという課題は、例えば、部分列の異なる集まりを探索したり[例えば、7,8,9,10]、不一致、ギャップおよびワイルドカードを組み入れたり[例えば、11,12,13]することによって、カーネル関数のさらなる発展を促してきた。
【０１０８】
しかしながら、カーネル関数に直接的には適さない多くの学習アルゴリズムが存在する。原則として、いかなる内積も特徴空間においてユークリッド距離を生じさせるが[14]、列データにおける内容の多様性および特徴空間におけるその特徴のばらつきは、他の距離関数を利用することに対して動機を与える。
【０１０９】
カーネル、距離および類似性係数に適する、類似性尺度の計算に用いられる一般的な方法が、この論文に提案されている。これは、特徴空間を備えた部分列間の一致および不一致の徐々に増加する累積に基づいている。効率的な計算のために異なるデータ構造を利用する、ハッシュテーブルおよびトライの2つのアルゴリズムが提示されている。両方のアルゴリズムは、列の長さに関して線形的な実行時間の複雑性を有している。
【０１１０】
この論文の残りは、以下のように編成されている。セクション２は、カーネル、距離および類似性係数を含む、列データについての類似性尺度を定義している。比較アルゴリズムおよび対応するデータ構造がセクション３で紹介されている。最後に、セクション４における実験が、紹介されたアルゴリズムの効率性を比較し、ネットワーク侵入検知におけるこれらの用途を示している。
【０１１１】
２  列データについての類似性尺度
大きさＮのアルファベットΣがあるとすると、列ｘは、Σからの記号の連なりとして定義される。列の内容は、有限な言語Ｌ⊂Σφから抽出された、一連の重複し得る部分列ｗとしてモデル化されることができる。我々は、これらの取り出された部分列を単語と称する。言語Ｌは、列の類似性を計算するための基礎を成しており、典型的にひとまとまりの文字、単語またはＮグラムに相当する。列ｘおよび言語Ｌがあるとして、特徴空間への埋め込みは、ｘに現れる全てのｗ∈Ｌについてφｗ（ｘ）を計算することによって実行される。通常、関数φｗ（ｘ）は、ｘにおけるｗの頻度を返すが、ｗについてのカウントまたはバイナリフラグを返す他の定義も可能である。さらに、我々は、ｌをｘの長さとして定義する。
【０１１２】
我々は、各列ｘにおける単語の全体的な長さがｌに比例すると仮定する。この仮定は、例えば、固定長さｎのＮグラムおよび重複なしの単語について有効であり、提案されるアルゴリズムの線形的な実行時間を保証する。カーネルのコンテキストにおいてはこのような仮定をしないいくつかの方法が研究されている[例えば、9,10,11,12,13]が、これらのうちいくつかは、超線形の複雑性という代償がある。
【０１１３】
φを介してもたらされた特徴空間を利用することによって、列に作用させるように、古典的なカーネルおよび距離関数を適用することができる。表５は、カーネル関数を列挙し、表６は、セクション３に提示されたアルゴリズムを用いて実行される距離関数を列挙する。
【０１１４】
類似性を測定するさらなる他の方法は、いわゆる類似性係数である[例えば、15,16]。これらは非計量的であり、主にバイナリデータに用いられてきた。類似性係数は、ａ、ｂおよびｃの3つの総和変数を用いて構成されている。変数ａは、正の一致の数からなり（１−１）、ｂは左側の不一致の数からなり（０−１）、ｃは右側の不一致の数からなる（１−０）。最も一般的な類似性係数は、表７に示されている。
【０１１５】
類似性係数は、総和変数を変更することによってバイナリでないデータにも拡張されることができる。単語ｗ∈Ｌについての一致の程度は、ｍｉｎ（φｗ（ｘ），φｗ（ｙ））として定義されることができ、不一致はそれぞれ、ｍｉｎ（φｗ（ｘ），φｗ（ｙ））からの逸脱として定義される。
【０１１６】
【数１１】
2009523270.tif 000021
【０１１７】
３  アルゴリズムおよびデータ構造
提示されたカーネル、距離および類似性係数を計算するためには、列データについての類似性尺度の一般的なモデルを確立しなければならない。カーネル関数の計算のための重要な手段は、2つの列ｘとｙとに存在する単語ｗ∈Ｌを見つけることであり、我々は、これらの単語を一致と称する。さらに、距離および類似性係数について、我々は、ｘには存在するがｙには存在しない（この逆もしかり）単語ｗ∈Ｌを考慮する必要があり、これらの単語を不一致と称する（用語「不一致」は、2つの列が等しくないことに相当し、バイオインフォマティクスにおいて頻繁に用いられているように、列の不正確な一致に相当しない）。
【０１１８】
さらに、我々は、多くの類似性尺度で実行される大域集約に相当する外関数＊を導入する。類似性尺度は、例えば、さまざまなカーネル関数および距離関数における総和がある。これらの定義が与えられることで、我々は、一般的な類似性尺度を以下式で表現できる。
【０１１９】
【数１２】
2009523270.tif 000022
【０１２０】
我々は、＊、ｍ＋、ｍｘ−およびｍｙ−を用いて、表６に示された一連の距離を再公式化することができる。いくつかの距離の一般化された公式は、表８に提示されている。
【０１２１】
類似性係数をこのような一般的な表現に適合させることは、さらに簡単であり、というのも、表９に示されているように、3つの総和変数ａ、ｂおよびｃが再公式化される必要があるのみであるからである。
【０１２２】
３．１  ハッシュベースの列の比較
列についての類似性尺度の計算に用いられる古典的な仕組みは、索引付きのテーブル、または、より一般的な場合では、ハッシュテーブルを利用する[例えば、4]。列から取り出された単語と、対応する頻度またはカウントとが、ハッシュテーブルのビンに記憶される。図８（ａ）は、単語｛“ｂａｒ”、“ｂａｒｎ”、“ｃａｒｄ”｝および｛“ｃａｒ”、“ｂａｎｋ”、“ｂａｎｄ”、“ｃａｒｄ”｝を、対応するカウントと共に保持する2つのハッシュテーブルを示している。
【０１２３】
アルゴリズム１は、固定の大きさＭの2つのハッシュテーブルＸおよびＹの比較を定義している。このアルゴリズムは、全てのＭ個のビンをループし、一致する単語（アルゴリズム１の事例１を参照）および不一致の単語（アルゴリズム１の事例２および３を参照）を確認することによって進行する。図８（ｂ）は、対応するビンに記憶された不一致「ｂａｒ」および「ｂａｎｋ」におけるこの過程を示している。
【０１２４】
2009523270.tif 000023
【０１２５】
ハッシュテーブルの大きさはＭで固定されているので、1つの比較における平均の実行時間はΘ（Ｍ）である。起こり得るハッシュ衝突を回避するために、Ｍ≫１の高い数値が前もって選択されなければならず、もしそうでなければ、ビンのチェイン化が、Ｏ（ｌ）時間の列ごとの抜き出された単語に対して、Ｏ（ｌ２）の最悪の場合の実行時間を引き起こしてしまう。
【０１２６】
３．２  トライベースの列の比較
トライは、Ｎアレイのツリーであり、そのノードは、Σの要素に対応する成分を有するＮ次元のベクトルである[17]。図９（ａ）は、図８（ａ）におけるハッシュテーブルと同一の単語を含む2つのトライＸおよびＹを示している。これらトライのノードは、経過中の列のカウントを示す変数を保持するように強化されている。それぞれの取り出された単語の最後は、印の付いた円（二重円）で示されている。カーネル関数の計算へのトライの利用は、[18]で検討された。
【０１２７】
適用される類似性尺度に応じて、トライのノードは、サブツリー（部分木）を含む計算を加速させる他の集約された数値、例えば、下側の単語についてミンコフスキー距離Σｗφｗ（ｘ）ｋを記憶するように拡張されてもよい。
【０１２８】
2つのトライの比較は、アルゴリズム２のように実行されることができる。根のルートで始まり、両方のトライを平行にトラバースし、一致ノードおよび不一致ノードを処理する。もし、このトラバースが2つの等しい、印が付けられたノードを通過すると、一致単語が発見され（事例１）、もし1つのノードにのみ印が付けられていると、不一致が生じたことになる（事例２）。反復的なトラバースは、もし2つのノードが一致しなければ終了され、このようにして、下側に位置する2組の不一致単語が発見される（事例３）。図９（ｂ）は、このようなトラバースのある時点を示している。それらのノードｘおよびｙは等しくなく、単語｛“ｂａｒ”、“ｂａｒｎ”｝および単語｛“ｂａｎｄ”、“ｂａｎｋ”｝は不一致である。
【０１２９】
不変条件として、両方のトライにおける検討中のノードは同じ深さにあり、したがって、最長の実行時間はＯ（ｌ）である。トライのデータ構造の利点は、特に、提供されたアルファベットが大きく、多数の不一致が発生する場合に生じる。トラバースが、最初の数個の記号を通過した後に不一致単語を発見し、さらなる不必要な比較を省略する。
【０１３０】
2009523270.tif 000024
【０１３１】
４  実験結果
４．１  データ構造の効率性
2つの提案されたアルゴリズムの効率性は、ヒト遺伝子のＤＮＡ配列[19]、ＤＡＲＰＡ１９９９のデータセットからのシステムコールのトレースおよび接続のペイロード[20]、ならびにＲｅｕｔｅｒｓ−２１５７８（英文電子ロイターニュース）のデータセットからの新しい記事[21]などの列データについての4つのベンチマークのデータセット、において評価された。表１０が、これらのデータセットおよびこれらの特定の性質の概要を示している。
【０１３２】
各データセットについて、100個の列が無作為に引き抜かれ、長さ3、5および7のＮグラムが取り出された。各列のＮグラムは、さまざまな大きさ（102〜105）を有するトライおよびハッシュテーブルに記憶された。続いて、キャンベラ距離が、これらトライおよびハッシュテーブルについて、提案されたアルゴリズムを用いて一対ごとに計算され、この結果、設定ごとに5000回の比較演算がされた。この手順は、10回繰り返され、全ての実行について実行時間の平均が算出された。実験結果は表１１に示されている。
【０１３３】
ハッシュベースのアルゴリズムの平均実行時間は、ハッシュテーブルの大きさに強く依存する。最適の数値は、異なるデータセットおよびｎの数値によって変化する。しかしながら、12のうち10の事例において、トライベースのアルゴリズムが、パラメータに関係なく、最良のハッシュテーブルの設定と同等に良好に機能するか、またはそれよりも良好に機能する。
【０１３４】
４．２  用途：ネットワーク侵入検知
提案されたアルゴリズムを現実的なデータにおいて実証するために、我々は、ネットワーク侵入検知における教師なし学習についての実験を実施した。基礎をなすネットワークデータは、我々の研究室のメンバーによって、仮想ネットワークのサーバを用いて生成された。最新のネットワーク攻撃が、侵入テストの専門家によって投入された。
【０１３５】
距離ベースの異常検知方法[22]が5グラムに適用された。この5グラムは、線形カーネル（ユークリッド距離）、マンハッタン距離およびカルチスキー係数などの異なる類似性係数を用いて、ＴＣＰ接続のバイト列から取り出されたものである。一般的なネットワークプロトコルのＨＴＴＰ，ＦＴＰおよびＳＭＴＰについての結果が図１０に示されている。
【０１３６】
カルチスキー係数の利用が、最も高い検知精度をもたらす。各プロトコルに対する78％を超える攻撃が、誤検知なしで特定された。これに比べて、ユークリッド距離は、攻撃の識別のためのこの特定の設定における優れた幾何学的性質を明らかにすることができなかった。
【０１３７】
５  結論
我々は、カーネルと同様に、多数の距離および類似性係数が、列データについて効率的に計算されることができることを示した。これらのような類似性尺度の使用によって、専門的な問題の領域における機械学習の利用についての独特な数的指標を調査することができる。一例として、ネットワーク侵入検知に用いられる教師なし学習についての我々の実験における最良の結果は、接続ペイロードのＮグラムについてのカルチスキー係数を用いて得られた。したがって、列データにおける距離の直接的な利用は、カーネルによって生じさせられるユークリッド距離の暗黙的な使用よりも好ましいかもしれない。特に有望なのは、コンピュータセキュリティおよびバイオインフォマティクスにおける提案されたアルゴリズムのさらなる利用である。
【０１３８】
参考文献
【０１３９】
2009523270.tif 000025
【０１４０】
＜章Ｄ＞
我々は、列データについての類似性尺度の計算に用いられる一般的なアルゴリズムを提案する。このアルゴリズムは、さまざまなカーネル、距離および非計量的な類似性関数の効率的な計算のために一般化接尾辞木を使用する。最悪の場合の実行時間は、列の長さににおいて線形であり、基礎をなす埋め込み言語に無関係である。この埋め込み言語は、単語、ｋグラムまたは列に含まれる全ての部分列を対象とする。ネットワーク侵入検知、ＤＮＡ解析およびテキスト処理の用途についての実験は、古典的なカーネル関数の代わりとして、列についての距離および類似性係数の有用性を証明している。
【０１４１】
１  序論
列データを処理する能力は、多くの困難な分野における機械学習技術の利用にとって重要な必須条件である。これらのような利用の例は、自然言語処理（テキスト文書）、バイオインフォマティクス（ＤＮＡ配列およびタンパク質配列）ならびにコンピュータセキュリティ（バイトストリームまたはシステムコールのトレース）である。これらのようなデータを取り扱うための重要な手段は、列間の一対ごとの類似性の効率的な計算である。類似性尺度は、データの特定の構造と学習理論との間の抽象化として理解されることができる。
【０１４２】
近年徹底的に研究された最も成功した類似性尺度の1つは、カーネル関数である[例えば、1,2,3]。さまざまなカーネルが列データのために作り出され、Watkins[4]およびHaussler[5]の元々の発想から始まり、テキストおよび自然言語処理[例えば、6,7,8]、バイオインフォマティクス[例えば、9,10,11,12,13,14]、スパムフィルタリング[15]ならびにコンピュータセキュリティ[例えば、16,17]などの用途特定のカーネルにまで及んだ。
【０１４３】
カーネルベースの学習は機械学習の研究に大きな注目を集めたが、カーネル関数は、明らかに、オブジェクト間の類似性を測定するためのさまざまな可能性の1つに過ぎない。類似性尺度の選択は、基本的に、（ａ）問題の理解および（ｂ）適用されるべき学習アルゴリズムの性質によって決定される。ベクトル空間で作用するアルゴリズムもあれば、内積、計量的な特徴空間、または非計量的な特徴空間でさえも作用するアルゴリズムもある。再生核ヒルベルト空間（ＲＫＨＳ）以外の空間で学習する技術の研究が、現在、機械学習についての活発な研究分野の1つである[例えば、18,19,20,21]。
【０１４４】
この論文の焦点は、列データについての一般的な類似性尺度であり、特に、これらの計算に用いられる効率的なアルゴリズムである。多数のこれらのような類似性尺度が、一般的な形式で表現されることができ、これにより、簡単な線形時間アルゴリズムが、幅広いクラスの類似性尺度の計算に適用されることができる。このアルゴリズムが、問題分野知識のカーネル関数以外の代替的な表現の研究を可能にしている。一例として、2つの用途が提示されている。これらの用途に対して、カーネル、またはこれと同等であるユークリッド距離の異なる類似性尺度との取り換えが、教師なし学習シナリオにおいて精度の大幅な向上をもたらす。
【０１４５】
この論文の残りは、以下のように編成されている。セクション２は、列データについての一般的な類似性尺度の概要を提供し、多種多様なこれらの類似性尺度が当てはめられることができる一般的な形式を紹介する。一般化接尾辞木と、類似性尺度の線形時間的計算のための対応するアルゴリズムとが、セクション３に提示されている。最後に、セクション４における実験が、ネットワーク侵入検知、ＤＮＡ配列およびテキスト処理などの現実世界の用途における、提案されるアルゴリズムの効率性および実用性を証明する。
【０１４６】
２  列についての類似性尺度
２．１  列の埋め込み
列データについての類似性尺度を定義する一般的な方法は、高次元の特徴空間への明示的な埋め込みを行う。列ｘは、有限のアルファベットΣからの記号の連なりとして定義される。列の内容をモデル化するために、部分列ｗ∈Ｌを備える言語Ｌ⊆Σφを考える。自然言語に相当しないかもしれないが、我々は、これらの部分列を単語と称する。Ｌについての典型的な例は、「ひとまとまりの単語（a bag of words）」[例えば、22]、固定された長さの全ての部分列の集合（ｋグラムまたはｋ量体）[例えば、10,23]、または含まれる全ての部分列の集合[例えば、8,24]である。
【０１４７】
言語Ｌが与えられると、ｘに出現する全てのｗ∈Ｌについて埋め込み関数φｗ（ｘ）を計算することによって、列ｘは、｜Ｌ｜次元の特徴空間にマッピングされる。関数φｗは以下のように定義される。
【０１４８】
【数１３】
2009523270.tif 000026
【０１４９】
ここで、ｏｃｃ（ｗ，ｋ）はｘにおけるｗの出現回数で、φは数値変換、例えば、頻度への変換であり、Ｗは個々の単語に割り当てられた重み、例えば、長さ依存または頻度依存（ＴＦＩＤＦ）の重みである[3,24を参照]。Ｌおよびφによって生じさせられた特徴空間を用いることによって、多くのベクトル型の類似性尺度を列を処理するために適用することができる。
【０１５０】
明示的な埋め込みによって定義された特徴空間は、各特徴ベクトルについての非ゼロ次元の数が列の長さによって限定されるので、ほとんどない。したがって、計算の複雑性を示す根本的なパラメータは列の長さであり、以下ではｎとして示す。さらに、単語｜ｗ｜の長さがｋで示されるか、または単語の集合の場合、最大の長さがｋで示される。
【０１５１】
２．２  ベクトル型の類似性尺度
いくつかのベクトル型のカーネル関数および距離関数が、列データの提案される埋め込みに適用されることができる。Ｌおよびφによる一般的な関数のリストは、表１２に示されている。
【０１５２】
カーネル関数および距離関数の他に、一連のむしろ奇異な類似性係数も列データへの利用に適している[25]。これらの係数は、3つの総和変数ａ、ｂおよびｃを用いて構成され、これらの総和変数は、バイナリベクトル（2進数のベクトル）の場合、一致の成分の対（１−１）の数、左側の不一致の一対（０−１）の数、右側の不一致の一対（１−０）の数にそれぞれ相当する[26,27を参照]。一般的な類似性係数が表１３に示されている。バイナリでないデータへの利用については、これらの総和変数は、[25]に提案されているように拡張されることができる。
【０１５３】
【数１４】
2009523270.tif 000027
【０１５４】
２．３  一般的な表現
提示された類似性尺度は、外関数＊および内関数ｍで構成される一般的な形式に当てはめられることができることは容易に理解できる。
【０１５５】
【数１５】
2009523270.tif 000028
【０１５６】
この定義が与えられることで、表１に提示されているカーネル関数および距離関数は、＊およびｍによって再公式化されることができる。類似性係数の上記の一般的な形式（２）への適合は、総和変数ａ、ｂおよびｃの再公式化を必要とする。提示された類似性尺度についての外関数および内関数の特定の定義は、表１４に示されている。多項式カーネルおよび動径基底関数（ＲＢＦ）カーネルは、それぞれ線形カーネルまたは距離によって表現されることができるので、示されていない。
【０１５７】
３  列の比較に用いられる一般化接尾辞木
2つの列の効率的な比較の鍵は、類似性尺度の上記の一般的な形式（２）の計算に必要な最小限の単語のみを考えることにある。カーネルの場合には、両方の列における単語の共通部分（intersection）のみが考慮される必要がある。一方で、距離および非計量的な類似性係数を計算するためには、単語の合併集合（union）が必要である。このような比較の簡単かつ周知である方法は、各列の単語を整列されたリストで示すことである。最大の長さｋの単語については、このようなリストは、一般的なソーティング（並べ替え）を用いてＯ（ｋｎｌｏｇｎ）時間で、または基数整列を用いてＯ（ｋｎ）時間で構築されることができる。単語ｋの長さが無限である場合、ソーティング時間が二乗になるので、並べ替えられたリストはもはや選択してもしなくてもよいものではない。
【０１５８】
したがって、特別なデータ構造が、列の効率的な比較のために必要となる。カーネルの計算にこれまで用いられた2つのデータ構造は、トライ[28,29]および接尾辞木[30]である。これら両方は、さまざまなカーネル関数のＯ（ｋｎ）時間での計算に適用され[3,10]、また、一致統計（matching statistics）を用いたＯ（ｎ）実行時間での計算にも適用される[24]。この論文では、我々は、一般化接尾辞木が、上記形式（２）の全ての類似性係数のＯ（ｎ）実行時間での計算に適していることを主張する。
【０１５９】
一般化接尾辞木（ＧＳＴ）は、一連の文字列ｘ１，…，ｘｌの全ての接尾辞を含むツリーである[31]。一般化接尾辞木を構築する最も簡単な方法は、各文字列ｘｉをデリミタ＄ｉを用いて拡張し、接尾辞木構築アルゴリズム[例えば、32]を文字列の連なりｘ１＄１…ｘｌ＄ｌに適用させることである。残りの部分において、我々は、＃および＄によって区切られた2つの文字列ｘよびｙの場合に限定し、一連の文字列についての単一のＧＳＴを用いた類似性の行列全体の計算は言うまでもなくこの延長である。文字列“ａａｂ＃”および“ｂａｂａｂ＄”についての一般化接尾辞木の例は、図１１（ａ）に示されている。
【０１６０】
いったん一般化接尾辞木が構築されると、列ｘおよびｙに存在する各単語ｗの出現回数ｏｃｃ（ｗ，ｘ）およびｏｃｃ（ｗ，ｙ）を決定することが残る。両方の列に対応するノードのみが考慮される必要があるカーネルに関する場合[24]とは異なり、一般化接尾辞木では、全てのノードについて正確に計算されなければならない。以下の簡単な反復的アルゴリズムは、列ｘとｙとの間の一般的な類似性尺度を、一般化接尾辞木の1回の深さ優先トラバース（depth-first traversal）で計算する（アルゴリズム１（Algorithm 1）を参照）。
【０１６１】
このアルゴリズムは、ｘの接尾辞を示すＧＳＴにおける葉が、ｗがこの接尾辞の接頭辞である場合、まさに1をｏｃｃ（ｗ，ｘ）に与えるという点を利用している。ｙおよびｏｃｃ（ｗ，ｙ）についても同様である。このＧＳＴはｘおよびｙの全ての接尾辞を含んでいるので、ｘおよびｙにおける各単語ｗは少なくとも1つの葉で示されている。ある葉がｘまたはｙに寄与するか否かは、その葉のエッジ（枝）を検討することによって決定されることができる。デリミタ＃の特異性により、分岐ノードは、＃を含むエッジより下に生じることができず、したがって、＃の印の前に始まっているエッジにおける葉のノードは、ｘの接尾辞を含むに違いない。そうでない場合、葉のノードはｙの接尾辞を含む。全ての葉の貢献は帰りがけ順のトラバースの間、2つの変数ｘおよびｙにおいて集約される。各ノードにおいて、上記（２）の内関数ｍが、上記（１）における埋め込みφに応じて、Ψ（ｘ）およびΨ（ｙ）を用いて計算される。このトラバース手順のある時点が図１１（ｂ）に示されている。
【０１６２】
ＧＳＴのエッジに沿って内在のノードを考慮し、重み付けされた埋め込みφをサポートするために、[24]に紹介されている重み関数ＷＥＩＧＨＴが使用される。あるノードｖにおいて、この関数は、入力エッジ（incoming edge）の始まり（ｂｅｇｉｎ（ｖ））、終わり（ｅｎｄ（ｖ））およびノードの深さ（ｄｅｐｔｈ（ｖ））を引数とし、いかにノードおよびエッジが類似性尺度に寄与するかを決定し、例えば、ｋグラムモデルはｋの経路深さまでのノードのみが、考慮される必要がある。
【０１６３】
2009523270.tif 000029
【０１６４】
[33]に提案されている文字列カーネルの拡張と同様に、ＧＳＴのトラバースは、さらなる実行時間および領域の削減のために、改良された接尾辞配列[34]において実行されてもよい。
【０１６５】
我々のアルゴリズムの正確性を証明するために、[24]における方法と異なる方法が取られる必要がある。一致統計アルゴリズム（matching statistic algorithm）はカーネル関数に限定されているので、我々は、計算される類似値が一致統計アルゴリズムによって返される類似値と同一であるとは主張できない。代わりに、我々は、ＭＡＴＣＨ関数への反復的なコールにおいて、正確な出現の回数が維持されることを示す。
【０１６６】
定理１．ＭＡＴＣＨ（バーｗ）がｘ＝ｏｃｃ（ｗ，ｘ）およびｙ＝ｏｃｃ（ｗ，ｙ）を返す場合に限り、単語ｗは、ｘにおいてｏｃｃ（ｗ，ｘ）回、およびｙにおいてｏｃｃ（ｗ，ｙ）回出現する。ここで、バーｗはｘおよびｙの一般化接尾辞木においてｗを再構築する根からの経路の終わりにおけるノードである。
【０１６７】
証明．ｗがｘにおいてｍ回出現する場合、ｗを接頭辞として有する、ｘのまさにｍ個の接尾辞が存在することになる。ｗはＧＳＴの根からノードバーｗまでの経路に相当するので、ｍ個全ての接尾辞がバーｗを通過するに違いない。特異なデリミタ＃により、ｘの各接尾辞は、入力エッジが＃を含む、ＧＳＴにおける1つの葉のノードに対応する。したがって、ｍはｏｃｃ（ｗ，ｘ）に等しく、まさに、ＭＡＴＣＨ（バーｗ）によって返される集約された数量ｘである。同様に、ｏｃｃ（ｗ，ｙ）は、＃の後に始まり、ｙによって算出される接頭辞ｗを有する接尾辞の数である。
【０１６８】
４  実験結果
４．１  実行時間の実験
提案されたアルゴリズムの効率性を示すために、我々は、実行時間の実験を、ＤＡＲＰＡ１９９９のＩＤＳ評価からのネットワーク接続ペイロード[35]、Ｒｅｕｔｅｒｓ−２１５７８のデータセットからの新しい記事[36]およびヒト遺伝子からのＤＮＡ配列[14]など、列データについての3つのベンチマークのデータセットについて実行した。表１５は、これらのデータセットおよびこれらの特定の性質の概要を示している。我々は、一般化接尾辞木のアルゴリズムの実行時間を、距離の演算をサポートする最新のトライベースの方法と比較した。トライは、ｋグラムについての類似性尺度の計算に関して、添字配列およびハッシュテーブルを用いたアルゴリズムよりも優れた実行時間の複雑性、またはそれと同等の実行時間の複雑性をもたらす。トライベースの方法の詳細な説明は、[25]に示されている。以下の実験の全てにおいて、トライは前処理工程において作り出されており、記録される実行時間は、比較手順のみに相当することに留意されたい。
【０１６９】
これら3つのデータセットについて、我々は、以下の実験手順を実行した。マンハッタン距離が、埋め込み言語としてｋグラムを用いて無作為に選出された列の1000対について計算された。この手順は、ｋのさまざまな数値について10回繰り返され、実行時間は、全ての実行を通して平均化された。図１２は、一般化接尾辞木およびトライを用いた列比較アルゴリズムの実行時間を比較している。これら3つの全てのデータセットにおいて、トライベースの比較は、ｎの小さい数値について短い実行時間を有するが、ｋと共に線形的に増える。一般化接尾辞木を用いたアルゴリズムは、より複雑なデータ構造による、大きい定数という代償があるが、埋め込み言語の複雑性とは無関係である。一般化接尾辞木が、ｋの大きい値に選択するアルゴリズムであることは、明らかである。
【０１７０】
４．２  用途
我々の評価の第２の部分として、我々は、さまざまな類似性尺度を計算することを可能にする我々の方法の一般性が、実際の利用において、特に、教師なし学習シナリオにおいて功を奏することを示す。実験が、（ａ）実際のネットワークトラフィックにおける侵入検知および（ｂ）ＤＮＡ配列における転写開始位置（ＴＳＳ）の識別について実行された。
【０１７１】
第１の適用について、ネットワークデータが、我々の研究室のメンバーによって仮想ネットワークのサーバを用いて作り出された。最新の攻撃は、侵入テストの専門家によって投入された。距離ベースの異常検知方法Ｚｅｔａ[17]が、線形カーネル、マンハッタン距離およびカルチスキー係数などの異なる類似性尺度を用いて、ＴＣＰ接続のバイト列から取り出された5グラムに適用された。ＨＴＴＰプロトコルからのネットワークデータについての結果が、図１３（ａ）に示されている。カルチスキー係数の利用が最も高い検知精度をもたらしている。全ての攻撃のうち78％を超える攻撃が、教師なし設定において誤検知なしと識別されている。これに対して、線形カーネルは、これよりもおおよそ30％低い検知率をもたらしている。
【０１７２】
第２の用途は、ＤＮＡ配列におけるＴＳＳの同定に焦点を置いた。このデータセットは、固定された長さのＤＮＡ配列を含んでいる[14]。このＤＮＡ配列は、タンパク質コード遺伝子のＴＳＳを対象として含むか、または遺伝子の内部から無作為に取り出されたものである。我々は、教師なしのｋ近傍（ＫＮＮ）の分類子、教師ありのまとめられたｋ近傍（ｂａｇｇｅｄ  ＫＮＮ）の分類子およびサポートベクタマシーン（ＳＶＭ）などの3つの方法をこのデータについて評価した。各方法は、４グラムについての類似性尺度として線形カーネルおよびマンハッタン距離を用いて、訓練され、テストされた。図１３（ｂ）は、ｋＮＮの分類子の教師なしおよび教師ありのバージョンによって得られる性能を示している。線形カーネルとマンハッタン距離とは、教師ありの設定では同様の精度をもたらすが、教師なしの利用においては、これらの性能は著しく異なる。分類ラベルが事前に分からない場合、マンハッタン距離は、線形カーネルよりも、ＴＳＳ同定についてより区別的性質を示す。教師ありの利用では、ＴＳＳ同定のいくつかの区別的特徴のみがＮグラムモデルにカプセル化されているので、分類性能は、両方の類似性尺度について、抑制されている[14]。
【０１７３】
５  結論
列に用いられるカーネル関数は、最近、機械学習の多くの用途、特にバイオインフォマティクスおよび自然言語処理において強い注目を得ている。我々は、この論文において、計量的な距離または非計量的な類似性係数などの他の類似性尺度が、カーネル関数と同一の実行時間の複雑性で計算されることができることを示した。提案されたアルゴリズムは、2つ以上の列の一般化接尾辞木の帰りがけ順のトラバースに基づいている。このトラバースの間、埋め込み言語からの一致の単語および不一致の単語のカウントが、単語、ｋグラム、またはさらには全ての連続した部分列などの特定の選ばれる言語に関係なく、列の長さに線形的な時間で計算される。外関数および内関数に基づいた、検討される類似性尺度の一般的な表現を用いることによって、同一のアルゴリズムが、列データのさまざまなカーネル、距離および類似性関数について適用されることができる。
【０１７４】
我々の実験は、一般的な類似性尺度の使用が、学習精度に著しい向上をもたらすことが可能であり、我々の場合では、教師なし学習について観測される学習精度に著しい向上をもたらすことができることを証明しており、距離ベースの学習アルゴリズムおよび類似性ベースの学習アルゴリズムについてのさらなる研究の重要性を強調している。
【０１７５】
謝辞
著者達は、プロジェクトＭＩＮＤ（ＦＫＺ０１−ＳＣ４０Ａ）の下における連邦教育省からの資金について感謝の意を表し、また、ＫｌおよびＭｉｋｉｏ  Ｂｒａｕｎに対し、有益な議論および支援について感謝する。
【０１７６】
参考文献
【０１７７】
2009523270.tif 000030
【０１７８】
【表１】
2009523270.tif 000031
【０１７９】
【表２】
2009523270.tif 000032
【０１８０】
【表３】
2009523270.tif 000033
【０１８１】
【表４】
2009523270.tif 000034
【０１８２】
【表５】
2009523270.tif 000035
【０１８３】
【表６】
2009523270.tif 000036
【０１８４】
【表７】
2009523270.tif 000037
【０１８５】
【表８】
2009523270.tif 000038
【０１８６】
【表９】
2009523270.tif 000039
【０１８７】
【表１０】
2009523270.tif 000040
【０１８８】
【表１１】
2009523270.tif 000041
【０１８９】
【表１２】
2009523270.tif 000042
【０１９０】
【表１３】
2009523270.tif 000043
【０１９１】
【表１４】
2009523270.tif 000044
【０１９２】
【表１５】
2009523270.tif 000045
【図面の簡単な説明】
【０１９３】
【図１】一連の単語をトライに保管する例を示す図である。
【図２】ＩＩＳユニコード攻撃の３グラム頻度と通常のＨＴＴＰトラフィックとの違いを示す図である。
【図３】ＤＡＲＰＡ１９９９のデータセットにおける１グラム、３グラムおよび５グラムそれぞれの検知性能を示す図であり、（ａ）はＨＴＴＰ接続、（ｂ）はＦＴＰ接続、（ｃ）はＳＭＴＰ接続についての図である。
【図４】ＰＥＳＩＭ２００５のデータセットにおける検知性能を示す図であり、（ａ）はＨＴＴＰ接続、（ｂ）はＦＴＰ接続、（ｃ）はＳＭＴＰ接続についての図である。
【図５】ＤＡＲＰＡ１９９９のデータセットにおける最良Ｎグラム、ｓｎｏｒｔおよび単語それぞれの検知性能を示す図であり、（ａ）はＨＴＴＰ接続、（ｂ）はＦＴＰ接続、（ｃ）はＳＭＴＰ接続についての図である。
【図６】ＰＥＳＩＭ２００５のデータセットにおける最良Ｎグラム、ｓｎｏｒｔおよび単語それぞれの検知性能を示す図であり、（ａ）はＨＴＴＰ接続、（ｂ）はＦＴＰ接続、（ｃ）はＳＭＴＰ接続についての図である。
【図７】本発明の一実施形態にかかるデータ列の比較を示すフローチャートである。
【図８】ハッシュテーブルを用いた列比較を示す図であり、（ａ）はハッシュテーブルを示し、（ｂ）は（ａ）のハッシュテーブルの比較を示す図である。
【図９】図８（ａ）のハッシュテーブルと同一の単語を含む２つのトライ比較を示す図であり、（ａ）はトライを示し、（ｂ）は（ａ）のトライの比較を示す図である。
【図１０】距離ベースの検知を５グラムに適用した、カルチスキー係数、ユークリッド距離およびマンハッタン距離それぞれの検知性能を示す図であり、（ａ）はＨＴＴＰトラフィック、（ｂ）はＦＴＰトラフィック、（ｃ）はＳＭＴＰトラフィックについての図である。
【図１１】（ａ）は一般化接尾辞木の例を示す図であり、（ｂ）はそのある時点におけるトラバースを示す図である。
【図１２】一般化接尾辞木およびトライを用いた列比較アルゴリズムの実行時間を示す図であり、（ａ）はＮＩＤＳデータセット、（ｂ）はＴＥＸＴデータセット、（ｃ）はＤＮＡデータセットについての図である。
【図１３】異なるアプリケーションにおいて、カルチスキー係数、ユークリッド距離およびマンハッタン距離それぞれの検知性能を示す図であり、（ａ）はネットワークアプリケーション、（ｂ）はＤＮＡアプリケーションについての図である。
【図１】
2009523270.tif 000046
【図２】
2009523270.tif 000047
【図３】
2009523270.tif 000048
【図４】
2009523270.tif 000049
【図５】
2009523270.tif 000050
【図６】
2009523270.tif 000051
【図７】
2009523270.tif 000052
【図８】
2009523270.tif 000053
【図９】
2009523270.tif 000054
【図１０】
2009523270.tif 000055
【図１１】
2009523270.tif 000056
【図１２】
2009523270.tif 000057
【図１３】
2009523270.tif 000058
【国際調査報告】
2009523270.tif 000059
2009523270.tif 000060
2009523270.tif 000061
2009523270.tif 000062