18 明示的セマンティック分析

明示的セマンティック分析(ESA)を特徴抽出関数の教師なしアルゴリズムとして使用する方法、および分類の教師ありアルゴリズムとして使用する方法を学習します。

18.1 明示的セマンティック分析とは

Oracle Database 12cリリース2では、明示的セマンティック分析(ESA)は、特徴抽出の教師なしアルゴリズムとして導入されました。Oracle Database 18c以降では、ESAは分類の教師ありアルゴリズムとして拡張されています。

特徴抽出アルゴリズムとしてのESAは、潜在的な特徴を検出するのではなく、既存のナレッジ・ベースに表れている明示的な特徴を使用します。特徴抽出アルゴリズムとしてのESAは、主にテキスト・ドキュメントの意味的類似性の計算と、明示的なトピックのモデル化に使用されます。分類アルゴリズムとしてのESAは、主にテキスト・ドキュメントの分類に使用されます。特徴抽出版および分類版のESAは両方とも、量的入力データおよび質的入力データに適用することもできます。

ESAへの入力は属性ベクターのセットです。すべての属性ベクターは、1つの概念に関連付けられています。概念とは、特徴抽出の場合は特徴、分類の場合はターゲット・クラスです。特徴抽出では、特徴に関連付けることができる属性ベクターは1つのみです。分類では、指定されたターゲット・クラスに関連付けられた複数個の属性ベクターをトレーニング・セットに含めることができます。1つのターゲット・クラスに関連するこれらの行は、ESAアルゴリズムによって1つに集約されます。

ESAの出力は、最も重要な属性と概念の相関が含まれるスパース属性概念マトリックスです。相関の強度は各属性と概念ペアの重みの値によって取得されます。属性と概念のマトリックスは、各属性の最も重要な概念をリストする逆インデックスとして格納されます。

ノート:

特徴抽出の場合、ESAアルゴリズムでは、元の特徴空間は投影されず、そのディメンション性が低下することはありません。ESAアルゴリズムは制限されたまたは有益でない属性セットの機能を除外します。

ESAで処理される分類タスクの範囲は、Naive Bayesやサポート・ベクター・マシンなどの分類アルゴリズムとは異なります。ESAは、個別クラスの数が何十万にもおよぶ大規模な分類を実行できます。大規模な分類では、膨大なトレーニング・データセットが必要となり、このようなデータセットでは、一部のクラスはかなりの数のトレーニング・サンプルを有しているが、他のクラスはトレーニング・データ・セット内にまばらに存在する可能性があります。

18.1.1 テキスト分析用のESA

明示的セマンティック分析(ESA)をテキストに対する機械学習操作に使用する方法を学習します。

明示的な知識は、通常、テキスト形式で存在します。複数のナレッジ・ベースがテキスト・ドキュメントの集合として使用できます。これらのナレッジ・ベースは、Wikipediaなど一般的なものでもドメイン固有のものでもかまいません。データ準備は、テキストを属性と概念の相関を取得するベクターに変換します。ESAは、共通の用語がない場合でも、ドキュメントの意味的な関連性を定量化できます。意味的な関連性を計算するために、関数FEATURE_COMPAREを使用できます。

18.2 ESA用のデータ準備

自動データ準備では、明示的セマンティック分析(ESA)のために入力ベクターをユニット長に正規化します。

単純な(ネストされていない)データ型の列に欠損値がある場合、ESAによって質的データの欠損値は最頻値に、量的データの欠損値は平均値に自動的に置換されます。ネストした列に欠損値がある場合、ESAではそれらをスパースとして解釈します。スパースな量的データは0(ゼロ)に、スパースな質的データはゼロ・ベクターに置換されます。Oracle Machine Learning for SQLのデータ準備では、入力テキストは実数のベクターに変換されます。これらの数値は、テキスト内の各用語の重要度を表しています。

関連項目:

使用可能なモデル設定のリストと解説は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

注意:

モデル設定と同じ意味でハイパーパラメータという用語も使用されます。

18.3 ESAによるスコアリング

明示的セマンティック分析アルゴリズム(ESA)を使用してスコアリングする方法を学習します。

ESAの特徴抽出の典型的な用途は、指定された入力に最も関連する特徴の識別と、その関連性のスコアリングです。ESAモデルのスコアリングによって、概念の特徴空間にデータ投影が生成されます。ESAモデルがドキュメントの任意の集合から作成される場合、それぞれが機能として扱われます。こうすることで、集合内で最も関連するドキュメントを識別することが簡単になります。特徴抽出関数は、FEATURE_DETAILSFEATURE_IDFEATURE_SETFEATURE_VALUEおよびFEATURE_COMPAREです。

ESAの分類の典型的な用途は、指定されたドキュメントのクラスの予測と、それらの予測の確率の推定です。分類アルゴリズムとしてのESAは、次のスコアリング関数を実装しています: PREDICTIONPREDICTION_PROBABILITYPREDICTION_SET PREDICTION_DETAILSPREDICTION_COST

18.3.1 大きいESAモデルのスコアリング

テキスト・ドキュメントの大きな集合に明示的セマンティック分析アルゴリズム(ESA)モデルを作成すると、多くの機能またはタイトルを持つモデルになる場合があります。

スコアリングのモデル情報は、共有(共有プール・サイズ)ライブラリ・キャッシュ・オブジェクトとして、システム・グローバル領域(SGA)にロードされます。別のSQL予測問合せがこのオブジェクトを参照できます。モデル・サイズが大きい場合、データベースのSGAパラメータを大きなオブジェクトに対応する十分なサイズに設定する必要があります。SGAが小さすぎると、モデルが参照されるたびに再ロードする必要があり、パフォーマンスが低下する可能性があります。

18.4 明示的セマンティック分析の用語

明示的セマンティック分析(ESA)に関連する用語を説明します。

多ターゲットの分類

大規模な分類では、トレーニング項目が複数のクラスに属しています。このような場合の分類の目的は、1つの項目に対して考えられるターゲット・クラスを複数個検出することです。この種の分類は、多ターゲットの分類と呼ばれます。ESAベースの分類のターゲット列は拡張されています。各集合は、ターゲット列の値として受け入れられます。ESAベースの分類でのターゲットの集合タイプは、ORA_MINING_VARCHAR2_NTです。

大規模な分類

大規模な分類は、通常は何万または何十万にも及ぶ、膨大な数のカテゴリを含むオントロジに適用されます。このような大規模な分類では、膨大なトレーニング・データセットも必要となります。こうしたデータセットは不均一であることが多く、一部のクラスはかなりの数のトレーニング・サンプルを有しているが、他のクラスはトレーニング・データセット内でまばらに存在するという可能性があります。通常、大規模な分類では、指定されたテスト・ケースに対して複数のターゲット・クラスが割り当てられます。

トピックのモデリング

トピックのモデリングとは、ドキュメントの最も重要なトピックを導出することです。トピックのモデリングは、明示的または潜在的に行うことが可能です。明示的なトピックのモデリングを行うと、指定されたドキュメントに対し、事前定義されたセットから最も関連性の高いトピックが選択されます。明示的なトピックには名前があり、言語化できます。潜在的なトピックのモデリングでは、ドキュメントの集合に対し、一連の潜在的トピックの特性が識別されます。これらの潜在的トピックのサブセットは、検討対象のすべてのドキュメントに関連付けられています。潜在的なトピックには、言語による説明や意味のある解釈がありません。