このセクションでは、エンベディングを取得するための 2 つの一般的な手法について説明します。
- 次元数の削減
- 大規模なニューラル ネットモデルからのエンベディングの抽出
次元数の削減手法
高次元空間の重要な構造を低次元空間で捉える数学的な手法は数多くあります。理論的には、これらの手法のいずれかを使用して、ML システムのエンベディングを作成できます。
たとえば、主成分分析(PCA)は、単語エンベディングの作成に使用されています。バッグ オブ ワード ベクトルなどの一連のインスタンスが指定されると、PCA は、単一のディメンションに集約できる相関性の高いディメンションを探します。
ニューラル ネットワークの一部としてエンベディングをトレーニングする
ターゲット タスクのニューラル ネットワークをトレーニングするときにエンベディングを作成できます。このアプローチでは、特定のシステムに合わせて適切にカスタマイズされたエンベディングが得られます。ただし、エンベディングを個別にトレーニングするよりも時間がかかる場合があります。
一般に、ニューラル ネットワークにサイズ d の隠れ層を作成して、エンベディング レイヤとして指定できます。ここで、d は、隠れ層内のノードの数とエンベディング空間内の次元数の両方を表します。このエンベディング レイヤは、他の特徴量や隠れ層と組み合わせることができます。他のディープ ニューラル ネットワークと同様に、ネットワークの出力レイヤのノードの損失を最小化するために、トレーニング中にパラメータが最適化されます。
食事のおすすめの例に戻ると、現在のお気に入りの食事に基づいて、ユーザーが気に入る可能性のある新しい食事を予測することが目標です。まず、ユーザーの好きな食べ物トップ 5 に関する追加データを収集できます。次に、このタスクを教師あり学習問題としてモデル化できます。上位 5 つの食品のうち 4 つを特徴データとして設定し、5 つ目の食品をモデルが予測する正のラベルとしてランダムに設定し、softmax 損失を使用してモデルの予測を最適化します。
トレーニング中に、ニューラル ネットワーク モデルは、エンベディング レイヤとして機能する最初の隠れ層のノードの最適な重みを学習します。たとえば、モデルの最初の隠れ層に 3 つのノードが含まれている場合、食品の最も関連性の高い 3 つのディメンションはサンドイッチ、デザート、流動性であると判断できます。図 12 は、「ホットドッグ」のワンホット エンコードされた入力値を 3 次元ベクトルに変換したものです。
トレーニングの過程で、エンベディング レイヤの重みが最適化され、類似したサンプルのエンベディング ベクトルが互いに近づきます。エンベディング レイヤの個々のディメンション(エンベディング レイヤ内の各ノードが表すもの)は、「デザート感」や「液体感」ほどわかりやすいものではありません。意味を推測できる場合もありますが、必ずしもそうとは限りません。
エンベディングは通常、タスクに固有のものであり、タスクが異なると異なります。たとえば、ベジタリアンと非ベジタリアンの分類モデルによって生成されたエンベディングには、肉と乳製品という 2 つの次元があります。一方、アメリカ料理の朝食と夕食の分類子によって生成されたエンベディングは、カロリー、穀物、肉の含有量というディメンションが若干異なる場合があります。「シリアル」と「卵とベーコンのサンドイッチ」は、朝食と夕食の分類器のエンベディング空間では近いが、ベジタリアンと非ベジタリアンの分類器のエンベディング空間では離れている場合があります。
単語エンベディングのトレーニング
前のセクションでは、word2vec エンベディング空間でセマンティック関係を可視化しました。
Word2vec は、単語エンベディングのトレーニングに使用される多くのアルゴリズムの 1 つです。分布仮説に基づいて、意味的に類似した単語を幾何学的に近いエンベディング ベクトルにマッピングします。分布仮説は、同じ近接する単語が頻繁に出現する単語は、意味的に類似する傾向があると述べています。「dog」と「cat」はどちらも「veterinarian」の近くに頻繁に表示され、この事実は意味的な類似性を反映しています。言語学者のジョン ファースは 1957 年に「単語は、その単語が属する集団によって知ることができる」と述べています。
次の動画では、よりシンプルなモデルを使用して、ニューラル ネットワークのトレーニング プロセスの一環として単語エンベディングを作成する別の方法について説明します。
静的エンベディングとコンテキスト エンベディング
上記の動画で説明した単語エンベディングの制限事項の一つは、静的であるということです。各単語は、文の中での使用方法に応じてさまざまな意味を持つ場合がありますが、ベクトル空間内の単一の点として表されます。前回の演習では、色または果物の種類のいずれかを表す「オレンジ」という単語の意味的類似性をマッピングすることは困難であることがわかりました。
これらの欠点に対処するために、コンテキスト エンベディングが開発されました。コンテキスト エンベディングでは、同じ単語を複数の表現で表すことができ、それぞれに単語が使用されるコンテキストに関する情報が組み込まれます。コンテキスト エンベディングでは、単語「orange」には 2 つの異なる表現があります。1 つは「色」の用途をキャプチャするもので、「My favorite sweater has orange stripes」などの文で使用されます。もう 1 つは「果物」の用途をキャプチャするもので、「The orange was plucked from the tree before it had fully ripened」などの文で使用されます。