セマンティックID - Entity Enricher ドキュメント

セマンティックID

同じ種類のエンティティを何度もエンリッチしていると、同じ現実世界の対象——同じ企業、同じ薬の副作用、同じ人物——が、そのたびに少しずつ異なる言葉で表現され、繰り返し再発見されることになります。セマンティックIDは、Entity Enricherがオブジェクトのキーフィールドから割り当てる、組織スコープで安定した識別子です。これにより、こうした準重複が、グループ化・重複排除・結合が可能な1つのアイデンティティにまとまります。

問題:同じものを、異なる言葉で

オブジェクトのアイデンティティは、そのキーフィールドから構築されます — 1つの場合も複数の場合もあります。2つの例を示します:

1つのキー

name をキーとする副作用

実行や言語をまたいで HeadacheCéphaléeCephalalgia として現れます。1つのキーフィールド、3つの表記、実際には1つの概念です。

2つのキー

名前をキーとする企業

Acme Inc. · United StatesAcme Incorporated · United States は同じ会社ですが、Acme Inc. · Germany は別の会社です。2 つ目のキーが区別を可能にします。だからこそ、1 つのオブジェクトが複数のキーを持つことができます。

単純な文字列一致ではこれらすべてに対応できませんが、人間ならどれが同じかを判断できます。セマンティックIDはその判断を自動的に符号化します。

semantic IDとは

仕組み

モデルが結果を返した後、Entity Enricherは各セマンティックIDを4つのステップで解決します(コストの低い順に):

1
アイデンティティテキストを作成
オブジェクトのすべてのキーフィールドと、そこに含まれる1対1のネストされたオブジェクトのキーを、主要言語で1つの文字列に結合します。配列内の項目は取り込まれません。各配列項目はそれぞれ独自のアイデンティティを持ちます。テキストは正規化され(小文字化、括弧内の削除、空白の圧縮)、些細な差異が縮小されます。
2
完全一致を検索します
その正規化済みテキストがまったく同じ形で組織内で以前に確認されている場合、既存のIDが即座に再利用されます — モデル呼び出しもコストもありません。
3
埋め込みと比較
それ以外の場合、テキストは埋め込まれ、同じ種類の既存の概念とベクトル類似度によって意味的に比較されます — そのため 「Acme Inc.」「Acme Incorporated」 は互いに近くに配置されます。
4
再利用または新規発行
最も近い一致が類似度しきい値(デフォルト0.92、プロパティごとに調整可能)を上回るスコアの場合、そのコンセプトのIDが再利用されます。それ以外の場合は、まったく新しいIDが生成され、次回のために保存されます。

しきい値のトレードオフ: しきい値が高いほど厳格になり(誤ったマージが減ります)、低いほど緩やかになります(より積極的な重複排除)。デフォルトの0.92でマージが過剰または不足する場合は、プロパティごとに調整してください。

入力 ID と生成された ID

IDが生成されるかどうかは、そのオブジェクトについて入力内にすでに存在しているかどうかで決まります。これによりラウンドトリップが可能になります。まず一度エンリッチメントを実行してIDを取得し、その後の実行で既知のIDを渡すことで、同じアイデンティティに新しい事実を追加できます。より低コストで曖昧さもありません。

入力にすでにIDがある場合 → 保持(ルックアップ)

送信するオブジェクトがすでにセマンティックIDを持っている場合、それはルックアップとして扱われます。IDはそのまま保持され、レコードは既存のコンセプトにリンクされ、埋め込みは行われません — コストもなく、match-or-mintもありません。プラットフォームに対して「このオブジェクトはすでに当社のデータベースで識別済みです」と伝えていることになります。

入力にIDがありません → 生成しました

オブジェクトにセマンティックIDがない場合、プラットフォームは上記の4つのステップでIDを生成します。そのIDは、それ以降、組織のデータベース内でそのオブジェクトの安定した識別子になります。

存在するが認識できない値(実際のコンセプトIDではないもの)は無視され、代わりにIDが生成されます。

有効化する方法

1
埋め込みモデルを選択します(組織ごとに1回)
オーナーがModel Managementで埋め込み対応のモデルを組織のデフォルト埋め込みモデルとして選択します。これはほぼ変更不可能です:コンセプトが一度存在すると、クリアすることはできても切り替えることはできません(保存されたベクトルはモデル間で比較できないため)。設定しない場合、セマンティックIDは単にスキップされます。
2
スキーマにセマンティックIDを追加
いずれもスキーマエディター内の2つの方法:
  • 生成時に自動的に「型のセマンティック ID を生成する」にチェックを入れます。キーを持つすべてのオブジェクト(自身のキー、または 1 対 1 のネストされたオブジェクトのキー)は、ルートエンティティを含めてセマンティック ID を取得します。
  • 手動で — 任意のオブジェクトまたはentityのフッターにある「+ semantic IDを追加」コントロールを使用します。

解決はエンリッチメントごとにわずかな埋め込み使用量を消費します(他のモデル呼び出しと同様に従量課金されます)。完全一致キャッシュにより繰り返しは無料になり、入力で指定された ID には費用がかかりません。

ID の表示場所と使い方

解決された ID は、エンリッチメント出力の JSON(各オブジェクトの id フィールド)と、レコード詳細のセマンティックコンセプトに表示されます。次の用途に使用できます:

マルチモデルフュージョンを補完

fusionは単一の実行内におけるmodel間の相違を調整し、semantic IDは実行と時間をまたいで同一のentityを調整します。この2つは連携して機能します。