セマンティック型の検出は、表のカラムなどのデータソースのリアルワールドデータ ( real-world references ) を識別することを目的としています。実世界の概念との対応関係を確立することで、セマンティック型はきめ細かいデータ記述を提供し、データクリーニング、 スキーママッチング、 セマンティック検索、 データの可視化などのデータ前処理と情報取得のタスクを改善することができます。 たとえば、特定のカラムの文字列の値が人や物の名前を参照していることをシステムが検出できた場合、各文字列の最初の文字を大文字にし、残りは小文字のままにする変換ルールを自動的に適用することが可能です。 ユーザーはこのデータセットを解析できようになり、データセットを修正するための時間と労力を削減することができます。
図1:データシステムは、string、integer、decimalなどの基本的なデータ型 (Atomicデータ型) を自動的に検出し、正確に機能して、ユーザー体験を向上させます。しかし、国、人口、緯度などのセマンティック型データは情報量が非常に多くパワフルで、一部のユースケースには不可欠です。
変換ルールと検証ルールを使用してクリーンなデータを生成するタスク、データクリーニングについて考えてみましょう。これを自動化するには、既定のデータセットのデータ型を検出し、適用にあたって最も適切なルールが推測できなければなりません。たとえば、図1のテーブルの最初の2列に国名とその首都が入っていることがわかれば、エラーを修正し、これらの列の欠損値を検出して入力する作業が大幅に軽減されます。同様に、テーブルの3番目と4番目の列が緯度と経度の値であることがわかっている場合、マップを使って値のペアを視覚化することができます。これらの2つの列がDecimal型カラムとして扱われている場合、散布図を視覚化するデフォルトよりもこの方がはるかに便利です。
セマンティック型の検出アルゴリズムには3つの基本的な要素が求められます。まず、データの非均質性とノイズに対してロバスト的でなければなりません。また、行と列の数だけでなく、セマンティック型の数に応じて拡張可能でなければなりません。もちろん正確性も必要です。このタスクに対する従来型のアプローチと新しいアプローチの両方を検討し、自動的型検出の複雑さについて深く掘り下げてみましょう。
従来のセマンティック型検出の限界
これらの利点を認識しているため、Google Data Studio、Tableau、PowerBI、Trifactaなどの多くの商用システムはどれも、限られた数のセマンティック型を自動的に検出しようとします。一部のシナリオでは、セマンティック型の検出は簡単です。たとえば、ISBNやクレジットカード番号は、厳密なバリデーションルールに従って生成されているため、データ型を簡単に検出することができます。しかし、表1に示すように、場所、生年月日、名前を含むほとんどの型は、このような一貫した構造に準拠していません。
表 1: (一部の)データ列とVizNetコーパスからサンプリングされた対応するセマンティック型の例。
一般的に、既存システムではセマンティック型の検出に対してマッチング・ベースのアプローチを利用しています。正規表現のマッチングを例に挙げて見てみましょう。この手法では、事前に定義された文字配列を使用して、データ値のパターンを把握し、値が一致しているかどうかをチェックします。日付のような特定の構造を持つ単純なデータ型を検出するにはこれで十分です。しかし、正規表現を使ったマッチングなどのアプローチは汎用性に限界があります。これらのアプローチはノイズの多い実世界のデータを扱うのに十分なロバスト性がなく、限られた数のセマンティック型にしか対応することができなかったり、厳密な検証が行われていないデータ型ではパフォーマンスが低下します。一方、ロジスティック回帰や決定木のようなモデルを利用したセマンティック型検出に対する現在の機械学習アプローチは、予測性能が限られていたり、メモリ要件が厳しいという問題があります。その限定的な予測性能や必要とされる急峻なメモリー要求が課題になります。
大規模なコーパス上で学習した機械学習モデルは、これらの課題に対処し、複数のドメインに渡ってさまざまな予測タスクの実行に効果的であることが証明されています。次に、列の数が多い実世界データを用いた学習モデルに基づく、セマンティックタイプの検出に対する2つの新しいアプローチを見てみましょう。
いかがでしたか? Semantic Type Detection: Why It Matters, Current Approaches, and How to Improve It のサマリーを日本語でお届けしました。セマンティックタイプ検出におけるディープラーニングの応用や、その改善への取り組みについては、Megagon Labs 英語ブログでお楽しみください!
(翻訳:Megagon Labs Tokyo)