

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Object2Vec アルゴリズム
<a name="object2vec"></a>

Amazon SageMaker AI Object2Vec は高度にカスタマイズ可能な汎用のニューラル埋め込みアルゴリズムです。このアルゴリズムは、高次元オブジェクトの低次元高密度埋め込みを学習できます。埋め込みは、元の空間内のオブジェクトのペア間の関係の意味が、埋め込み空間内に保持されるように学習されます。たとえば、学習した埋め込みを使用して、オブジェクトの最近傍を効率的に計算したり、関連オブジェクトの自然なクラスターを低次元空間で視覚化したりすることができます。分類や回帰など、下流の監視タスクで対応するオブジェクトの機能として埋め込みを使用することもできます。

Object2Vec は、SageMaker AI [BlazingText アルゴリズム](blazingtext.md) で最適化されている単語用のよく知られた埋め込み技術である Word2Vec を一般化したものです。実用的なユースケースに Object2Vec を適用する方法を示したブログ投稿については、「[Introduction to Amazon SageMaker AI Object2Vec](https://aws.amazon.com/blogs/machine-learning/introduction-to-amazon-sagemaker-object2vec/)」を参照してください。

**Topics**
+ [Object2Vec アルゴリズムの I/O インターフェイス](#object2vec-inputoutput)
+ [Object2Vec アルゴリズムの EC2 インスタンスに関する推奨事項](#object2vec--instances)
+ [Object2Vec サンプルノートブック](#object2vec-sample-notebooks)
+ [Object2Vec の仕組み](object2vec-howitworks.md)
+ [Object2Vec ハイパーパラメータ](object2vec-hyperparameters.md)
+ [Object2Vec モデルを調整する](object2vec-tuning.md)
+ [Object2Vec トレーニングのデータ形式](object2vec-training-formats.md)
+ [Object2Vec 推論のデータ形式](object2vec-inference-formats.md)
+ [Object2Vec のエンコーダー埋め込み](object2vec-encoder-embeddings.md)

## Object2Vec アルゴリズムの I/O インターフェイス
<a name="object2vec-inputoutput"></a>

Object2Vec は、多数の入力データタイプで使用できます。以下に例を示します。


| 入力データ型 | 例 | 
| --- | --- | 
| センテンスとセンテンスのペア | 「複数の男性がプレイしているサッカーの試合」。および「何人かの男性はスポーツをしている」。 | 
| ラベルとシーケンスのペア | 映画「タイタニック」のジャンルタグ (例: 「ラブロマンス」や「ドラマ」) とその簡単な説明「ジェームズキャメロンのタイタニックは豪華客船タイタニック号の悲劇的初航海を描いた壮大なアクション満載のラブロマンス映画です。上流階級の彼女が乗っていたこの豪華客船は、1912 年 4 月 15 日の早朝に北大西洋の氷山に接触して沈没し、最終的に 1,500 名を超える犠牲者がでました。」 | 
| 顧客と顧客のペア | Jane の顧客 ID と Jackie の顧客 ID。 | 
| 製品と製品のペア | フットボールの製品 ID とバスケットボールの製品 ID。 | 
| 商品レビューユーザーと商品のペア | ユーザーの ID とそのユーザーが購入した商品 (林檎、梨、オレンジなど)。 | 

入力データをサポートされている形式に変換するには、それを前処理する必要があります。現在、Object2Vec は基本的に次の 2 つの入力タイプをサポートしています。
+ 個別のトークン。単一の `integer-id` のリストとして表されます。例えば、`[10]`。
+ 離散トークンのシーケンス。`integer-ids` のリストとして表されます。例えば、`[0,12,10,13]`。

各ペアのオブジェクトは非対称にすることができます。たとえば、ペアには (トークン、シーケンス)、(トークン、トークン) ペア、(シーケンス、シーケンス) があります。トークン入力の場合、アルゴリズムは単純な埋め込みを互換性のあるエンコーダーとしてサポートします。トークンベクトルのシーケンスの場合、アルゴリズムはエンコーダーとして以下をサポートします。
+  平均プール埋め込み
+  階層型畳み込みニューラルネットワーク (CNN)
+  多層双方向長短期記憶 (BiLSTM) 

各ペアの入力ラベルは、次のいずれかになります。
+ ペアのオブジェクト間の関係を表すカテゴリ別ラベル 
+ 2 つのオブジェクト間の類似性の強度を表すスコア 

分類に使用されるカテゴリ別ラベルの場合、アルゴリズムは交差エントロピー損失関数をサポートします。回帰で使用される評価/スコアベースのラベルの場合、アルゴリズムは平均二乗誤差 (MSE) 損失関数をサポートします。モデルトレーニングジョブを作成するときに、ハイパーパラメータ `output_layer` を使用して、これらの損失関数を指定します。

## Object2Vec アルゴリズムの EC2 インスタンスに関する推奨事項
<a name="object2vec--instances"></a>

使用する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのタイプは、トレーニングまたは推論を実行しているかによって異なります。

Object2Vec アルゴリズムを使用して CPU 上でモデルをトレーニングする場合は、ml.m5.2xlarge インスタンスから始めます。GPU のトレーニングでは、ml.p2.xlarge インスタンスから始めます。このインスタンスでのトレーニングに時間がかかりすぎる場合は、より大きなインスタンスを使用できます。現在、Object2Vec アルゴリズムは単一のマシンでのみトレーニングできます。ただし、複数の GPU をサポートします。Object2Vec は、トレーニングと推論用の P2、P3、G4dn、G5 GPU インスタンスファミリーをサポートします。

ディープニューラルネットワークを持つ、トレーニングされた Object2Vec モデルでの推論には、ml.p3.2xlarge GPU インスタンスを使用することをお勧めします。GPU メモリ不足のため、`INFERENCE_PREFERRED_MODE` 環境変数を指定して [GPU 最適化: 分類または回帰](object2vec-inference-formats.md#object2vec-inference-gpu-optimize-classification) または [GPU 最適化: エンコーダー埋め込み](object2vec-encoder-embeddings.md#object2vec-inference-gpu-optimize-encoder-embeddings) 推論ネットワークが GPU にロードされるかどうかを最適化することができます。

## Object2Vec サンプルノートブック
<a name="object2vec-sample-notebooks"></a>
+ [Object2Vec を使用してセンテンスを固定長の埋め込みにエンコードする](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/object2vec_sentence_similarity/object2vec_sentence_similarity.html)