TECHNOLOGY
自然言語処理における分散表現とは?仕組みと活用事例を解説
目次
Word2VecやFastText、GloVeなどの登場により、自然言語処理における単語分散表現(単語ベクトル)の重要性は高まっています。最近では技術の向上により、文脈に依存する意味表現の研究が注目を集めています。この記事では、自然言語処理における単語分散表現について解説した上で、その仕組みや活用事例をご紹介していきます。
▼更に自然言語処理について詳しく知るには?
自然言語処理とは?仕組みや活用事例もあわせて解説
▼社内のデータをAI化するには?
ノーコードAIツールUMWELT紹介ページ(活用事例あり)
そもそも自然言語処理とは
そもそも自然言語処理とは、どのようなものでしょうか。ここでは、自然言語処理の概要について解説しましょう。
自然言語処理はどのような技術?
『自然言語処理入門:1. 現状と歴史を概観しよう』(岡田・中村.会誌「情報処理」.自然言語処理入門:1.現状と歴史を外概観しよう.1993,11,p1385-1386)によると、「自然言語処理(Natural Language Processing)とは、プログラミング言語のような人工の言語に対し、日本語とか英語、ロシア語といった、人が日常話したり書いたりする言語を計算機で処理すること」とあります。昨今のAIアシスタントや機械翻訳には、この自然言語処理の技術が活用されています。
自然言語と人工言語の違いは?
自然言語と似た言葉に、人工言語と呼ばれるものがあります。自然言語とは、人類が互いにコミュニケーションを取ることで形成された言語を指します。日本語や英語などは自然言語に該当します。一方で人工言語はプログラミング言語や数式などのことです。
自然言語の曖昧性とは?
自然言語は一つの言葉に対して複数の解釈があるため、どのようにコンピュータへ処理させるのかが課題とされています。こうした構造化されていないデータを非構造化データと呼び、人間が発する言葉が該当します。例えば、自動返答する機械に対して明日の予定を確認するとき、「明日の予定は?」「明日って会議ある?」など人によって違う問いかけをするでしょう。このような曖昧な情報は、プログラムされたコンピュータで扱うことが困難とされています。
自然言語処理における分散表現とは
自然言語処理には、分散表現と呼ばれる技術があります。ここでは、分散表現とその重要性について見ていきましょう。
分散表現はどのような技術?
分散表現とは、1つの単語の意味を低次元の実数値ベクトルで表現することです。自然言語処理では、単語の意味を扱うためにベクトルを利用します。分散表現として50次元から768次元までのベクトルが多く用いられます。多分散表現では、一つの単語が一つのベクトルと対応します。コンピュータが演算できるのは数値のみであるため、単語の意味という概念的な要素を数値に置換することで、意味概念を計算することが可能になります。
分散表現の重要性は高い
意味概念における計算とは、何でしょうか。その基本となるのは「近さ」という考え方です。似た意味を持つ単語同士は、ベクトル同士のユークリッド距離が小さくなるように配置されます。加えて、例えば、「東京」と「日本」の間のベクトルは、「北京」と「中国」の間のベクトルと近似できます。この性質によって、「東京」ー「日本」+「中国」=「北京」となるような意味の差や和といった興味深い等式を近似できるようになります。
one-hot表現と比較して考えよう
分散表現とは別に、one-hot表現と呼ばれるものも存在します。
例えば、10000個の単語をベクトル化したいとします。そのときに、10000次元のベクトルを用意し、i番目の単語に対するベクトルは、「i番目の要素が1、それ以外の要素が0である」ベクトルを利用すれば、10000次元を扱うことができるようになります。しかし、この手法では、単語の意味をベクトル化しているとは言えず(ただ単に単語に番号付けを行っているだけ)、意味的な演算は行うことができません。
分散表現とセットでWord2vecを覚えよう
Word2vecは単語の分散表現を獲得する技術の代表です。ここでは、Word2vecについて解説します。
Word2vecとは
Word2vecとは、分散表現を効率的に活用するための技術およびそのツールです。この技術はGoogleに在籍していたトマス・ミコロフ氏らにより提案され、king(王様)からman(男性)を引いてwomen(女性)を足しqueen(お姫様)を演算できることが世間を驚かせました。そもそも分散表現には、処理の難易度の高さが課題となっており、実用レベルまで落とし込むのが難しいのが現状でした。Word2vecは、たった2層のニューラルネットワークのみで構成されており、処理をよりシンプルにして難易度の高さを解消しました。さらに、構造がシンプルなことで大容量のデータ処理も可能としたのです。
Word2vecは、「単語の意味とは、その周辺に現れる単語によって形成される」という大胆な仮説を基にしています。それは「犬」という単語は、その周辺に現れやすい「人」や「ペット」「飼う」「散歩」という単語と関連付けられるものである、ということです。ありとあらゆる概念を、その周辺の単語の分布のみから決定するというこの考え方によって、word2vecが驚くほどの性能を発揮したことは、大変興味深いと言えます。
自然言語処理の活用事例
自然言語処理は、以下の技術で活用されています。
- かな漢字変換
- 機械翻訳
- 対話システム
- チャットボット
かな漢字変換
自然言語処理は、パソコンやスマートフォンの文字変換予測でも使われています。ひらがなの文字を入力すると、漢字や顔文字、または絵文字に変換する機能が活用されています。
機械翻訳
自然言語処理技術はGoogle翻訳やエキサイト翻訳といった、身近な翻訳サービスにも活用されています。翻訳サービスは、日本語から英語に翻訳してくれたり、英語から日本語に翻訳してくれたりするものです。最近は、音声を聞き取って翻訳してくれるサービスも登場しています。技術の進歩により、近年では翻訳の精度が向上しています。
チャットボット
チャットボットとは、iPhoneで実装されている「Siri」やAmazonが提供している「Alexa」などの音声認識を活用したサービスです。チャットボットは、人間が発した言葉を自然言語処理によって解析し、最も近い意味の回答を返答します。たとえば、iPhoneユーザーであれば「Hey Siri」と呼びかけて、「明日の予定は?」と問いかけると、スケジュールを元に明日の予定を回答してくれます。
自然言語処理の分散表現の注意点
自然言語処理の分散表現には、単語の曖昧な表現を考慮していないという注意点があります。
分散表現では、複数の意味合いを持つ単語の曖昧性を考慮しきれていません。例えば、”bank”という単語は、「銀行」の意味のほかに「土手」といった意味があります。こうした単語は、文脈によって異なる二つの意味をもつと考えられますが、1つのベクトルで表現するのに限界があるのです。近年では、文脈に応じた単語ベクトルを生成するための技術としてELMoやBERTが登場し、同じ単語であっても、文脈に応じて異なる単語ベクトルを生成できるようになり、さらなる性能の向上を見込めるようになりました。
ノーコードDXクラウド「UMWELT」でストレスなく業務を改善しよう
自然言語処理をはじめとするAIシステムは、今後のビジネスシーンでは必要不可欠な存在です。初めてAIシステムを導入する企業様におすすめのツールが、TRYETINGのノーコードAIクラウドUMWELTです。UMWELTには、業務効率化に役立つAIアルゴリズムが多数搭載されており、それらをダッシュボード上でレゴブロックのように自由に組み合わせることで、誰でもかんたんにAIシステムを構築可能です。さらに、クラウド型のため初期費用を抑えながらスムーズに導入できます。
まとめ
自然言語処理には分散処理と呼ばれている技術が活用されており、実数値ベクトルによって文章を解析しています。しかし、事前に評価データセットを構築する必要があり、AI人材がいない企業にとっては大きな手間がかかってしまうでしょう。UMWELTは、大手企業からスタートアップ企業まで幅広く導入実績があり、安心して利用できる信頼性の高いサービスを提供しています。即効性が高く低コストから始められるAIツールをお探しの方は、UMWELTの導入をぜひご検討ください。
参照文献
Efficient Estimation of Word Representations in Vector Space|Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean(2013)
https://arxiv.org/abs/1301.3781
UMWELTのサービスページをチェックする
TRYETING
公式
TRYETING公式アカウントです。
お知らせやIR情報などを発信します。