埋め込み行列による単語の変換

語彙数が10,000語のモデルで、各単語を10,000次元のワンホットベクトル(1行×10,000列)で表す。これに10,000行×300列の埋め込み行列を掛けて、単語埋め込み(分散表現)を得る。この処理の説明として、最も適切なものを1つ選べ。

正解と解説を見る

解説

正解C

ポイント

ワンホットベクトルと埋め込み行列の積は、その単語に対応する行を取り出す操作と同じです。取り出した行が、その単語の分散表現になります。

選択肢ごとの解説

  1. A

    不適切

    1行×10,000列と10,000行×300列の積は1行×300列なので、結果は300次元です。多くの要素が0でない値をもつ密なベクトルで、語彙数よりずっと短くなります。

  2. B

    不適切

    埋め込み行列は、語彙の単語ごとに1行をもちます。パラメータ数は現在10,000×300=3,000,000個で、語彙を20,000語にすると20,000×300=6,000,000個に増えます。

  3. C

    適切 ◯ 正解

    ワンホットベクトルは1か所だけが1で残りが0なので、行列との積は、1の位置に対応する1行を選び出す操作と同じです。実装では通常、掛け算をせず、単語の番号で行を引く表引きとして処理します。

  4. D

    不適切

    埋め込み行列の値は、word2vecのように周辺の単語を予測する学習や、目的のタスクの学習を通じて、データから自動的に決まります。類義語辞書のように、人が語どうしの関係を書き込んで作るものではありません。

試験での狙われ方

ワンホットベクトルと分散表現は、次元数の大きさや、疎か密かの違いで比べて押さえておくと、選択肢を絞りやすくなります。

関連用語

ワンホットベクトル、単語埋め込み、分散表現、word2vec

参考

オリジナル問題(過去問ではありません) AIで作成 人による確認:未 誤りを報告

出典と作成について

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合。手順は編集方針)

公開日: 最終更新日: 最終確認日:

シラバス第1.4版 技術27「自然言語処理」の問題です。

改訂履歴

表示設定

テーマ
文字の大きさ
問題演習