IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌ・ティ・ティ・コムウェア株式会社の特許一覧

特開2022-92849検索装置、検索方法、およびプログラム
<>
  • 特開-検索装置、検索方法、およびプログラム 図1
  • 特開-検索装置、検索方法、およびプログラム 図2
  • 特開-検索装置、検索方法、およびプログラム 図3
  • 特開-検索装置、検索方法、およびプログラム 図4
  • 特開-検索装置、検索方法、およびプログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022092849
(43)【公開日】2022-06-23
(54)【発明の名称】検索装置、検索方法、およびプログラム
(51)【国際特許分類】
   G06F 16/33 20190101AFI20220616BHJP
【FI】
G06F16/33
【審査請求】有
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2020205794
(22)【出願日】2020-12-11
(11)【特許番号】
(45)【特許公報発行日】2022-01-28
(71)【出願人】
【識別番号】397065480
【氏名又は名称】エヌ・ティ・ティ・コムウェア株式会社
(74)【代理人】
【識別番号】100083806
【弁理士】
【氏名又は名称】三好 秀和
(74)【代理人】
【識別番号】100101247
【弁理士】
【氏名又は名称】高橋 俊一
(74)【代理人】
【識別番号】100095500
【弁理士】
【氏名又は名称】伊藤 正和
(72)【発明者】
【氏名】川前 徳章
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175HB03
(57)【要約】
【課題】質問に対する回答の検索効率を向上する。
【解決手段】検索システム1は、学習部10と検索部20を備える。学習部10は、処理対象のテキスト群を入力し、テキスト群の各テキストの単語および品詞の重要度を表す行列D,Sをトピックを基底としてNMFにより分解したトピックモデルとテキスト群の単語の共起に基づくスキップグラムモデルとを同時に学習して、文書または単語を入力すると分散ベクトルを出力するモデルを生成する。検索部20は、単語または文書をモデルに入力し、得られた分散ベクトルと近い分散ベクトルを持つ単語または文書を検索結果として出力する。
【選択図】図1
【特許請求の範囲】
【請求項1】
処理対象のテキスト群を入力し、前記テキスト群の各テキストの単語の重要度を表す行列をトピックを基底として非負値行列因子分解した第1モデルと前記テキスト群の単語の共起に基づく第2モデルとを同時に学習して、文書または単語を入力すると分散ベクトルを出力するモデルを生成する学習部と、
単語または文書を前記モデルに入力し、得られた分散ベクトルと近い分散ベクトルを持つ単語または文書を検索結果として出力する検索部を備える
検索装置。
【請求項2】
請求項1に記載の検索装置であって、
前記第1モデルは、各テキストの単語の重要度を表す行列を文書-トピック行列とトピック-単語行列に分解し、各テキストの品詞の重要度を表す行列を文書-トピック行列とトピック-品詞行列に分解したモデルであり、
前記第2モデルは、前記テキスト群の単語の共起を単語の共起行列、品詞の共起行列、および単語と品詞の共起行列で表現したモデルであって、
前記学習部は、前記処理対象のテキスト群を入力し、前記文書-トピック行列、前記トピック-単語行列、前記トピック-品詞行列、前記単語の共起行列を分解して導出した単語の埋め込み行列と文脈語の埋め込み行列、前記品詞の共起行列を分解して導出した品詞の埋め込み行列と文脈に沿った品詞の埋め込み行列、前記単語と品詞の共起行列を分解して導出した品詞の埋め込み行列と文脈語の埋め込み行列、前記トピック-単語行列を分解して導出したトピックの埋め込み行列と文脈語の埋め込み行列、前記トピック-品詞行列を分解して導出したトピックの埋め込み行列と文脈に沿った品詞の埋め込み行列を求めて前記モデルを生成する
検索装置。
【請求項3】
請求項2に記載の検索装置であって、
前記学習部は、単語の頻出頻度に基づいて前記各テキストの単語の重要度を表す行列を生成し、品詞の頻出頻度に基づいて前記各テキストの品詞の重要度を表す行列を生成し、
前記学習部は、単語間の自己相互情報量に基づいて前記単語の共起行列を生成し、品詞間の自己相互情報量に基づいて前記品詞の共起行列を生成し、単語と品詞間の自己相互情報量に基づいて前記単語と品詞の共起行列を生成する
検索装置。
【請求項4】
コンピュータが、
処理対象のテキスト群を入力し、
前記テキスト群の各テキストの単語の重要度を表す行列をトピックを基底として非負値行列因子分解した第1モデルと前記テキスト群の単語の共起に基づく第2モデルとを同時に学習して、文書または単語を入力すると分散ベクトルを出力するモデルを生成し、
単語または文書を前記モデルに入力し、得られた分散ベクトルと近い分散ベクトルを持つ単語または文書を検索結果として出力する
検索方法。
【請求項5】
請求項4に記載の検索方法であって、
前記第1モデルは、各テキストの単語の重要度を表す行列を文書-トピック行列とトピック-単語行列に分解し、各テキストの品詞の重要度を表す行列を文書-トピック行列とトピック-品詞行列に分解したモデルであり、
前記第2モデルは、前記テキスト群の単語の共起を単語の共起行列、品詞の共起行列、および単語と品詞の共起行列で表現したモデルであって、
前記コンピュータは、前記処理対象のテキスト群を入力し、前記文書-トピック行列、前記トピック-単語行列、前記トピック-品詞行列、前記処理対象のテキスト群を入力し、前記単語の共起行列を分解して導出した単語の埋め込み行列と文脈語の埋め込み行列、前記品詞の共起行列を分解して導出した品詞の埋め込み行列と文脈に沿った品詞の埋め込み行列、前記単語と品詞の共起行列を分解して導出した品詞の埋め込み行列と文脈語の埋め込み行列、前記トピック-単語行列を分解して導出したトピックの埋め込み行列と文脈語の埋め込み行列、前記トピック-品詞行列を分解して導出したトピックの埋め込み行列と文脈に沿った品詞の埋め込み行列を求めて前記モデルを生成する
検索方法。
【請求項6】
請求項5に記載の検索方法であって、
前記コンピュータは、
単語の頻出頻度に基づいて前記各テキストの単語の重要度を表す行列を生成し、
品詞の頻出頻度に基づいて前記各テキストの品詞の重要度を表す行列を生成し、
単語間の自己相互情報量に基づいて前記単語の共起行列を生成し、
品詞間の自己相互情報量に基づいて前記品詞の共起行列を生成し、
単語と品詞間の自己相互情報量に基づいて前記単語と品詞の共起行列を生成する
検索方法。
【請求項7】
請求項1ないし3のいずれかに記載の検索装置の各部としてコンピュータを動作させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、検索装置、検索方法、およびプログラムに関する。
【背景技術】
【0002】
既存の検索システムは、データベース検索の延長にあり、キーワード一致したものを検索する。例えば、分散埋め込み表現(分散ベクトル)を用いる検索手法では、単語あるいは文書をそれぞれ分散ベクトルで表現し、そのベクトルの近さが意味の近さになるように学習したベクトルを使って検索を実行する。これにより、単語あるいは文書に対して意味的に近い単語や文書をベクトル演算で検索できるようになる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2018/151125号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、既存の分散ベクトルは単語の前後情報のみを用いて学習するので、反意語でも類似した分散ベクトルを持つことがある。また、文書は単語より構成されるが、全ての単語が同様の重みをもつわけではないにもかかわらず、それらを考慮して文書の分散ベクトルを学習していないため、文書検索の精度が落ちるという課題がある。
【0005】
本発明は、上記に鑑みてなされたものであり、質問に対する回答の検索効率を向上することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様の検索装置は、処理対象のテキスト群を入力し、前記テキスト群の各テキストの単語の重要度を表す行列をトピックを基底として非負値行列因子分解した第1モデルと前記テキスト群の単語の共起に基づく第2モデルとを同時に学習して、文書または単語を入力すると分散ベクトルを出力するモデルを生成する学習部と、単語または文書を前記モデルに入力し、得られた分散ベクトルと近い分散ベクトルを持つ単語または文書を検索結果として出力する検索部を備える。
【発明の効果】
【0007】
本発明によれば、質問に対する回答の検索効率を向上することができる。
【図面の簡単な説明】
【0008】
図1図1は、本実施形態の検索システムの構成の一例を示す図である。
図2図2は、本実施形態のモデルを非負値行列因子分解により表現した図である。
図3図3は、本実施形態のモデルをskip-gramにより表現した図である。
図4図4は、本実施形態の検索システムの学習処理の流れの一例を示すフローチャートである。
図5図5は、本実施形態の検索システムの検索処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
[システム構成]
以下、本発明の実施の形態について図面を用いて説明する。
【0010】
図1は、本実施形態の検索システムの構成の一例を示す図である。同図に示す検索システム1は、学習部10、検索部20、データ保存部30、および計算結果記憶部40を備える。検索システム1が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは検索システム1が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
【0011】
学習部10は、処理対象のテキスト群を入力し、トピックモデル(Topic model)と埋め込みモデル(Embedding model)とを同時に学習して、文書集合を入力するとそれに含まれる文書及びその単語の分散ベクトルを生成する。トピックモデルとは、トピックに基づくテキスト単位のグローバルな単語の共起性を用いてテキストの生成過程をモデル化したものである。埋め込みモデルとは、各単語の周辺に出現する単語集合というローカルな情報を用いて単語の共起をモデル化したものである。トピックモデルと埋め込みモデルを結びつけることで、両モデルのメリットを享受したモデルを生成できる。
【0012】
より具体的には、学習部10は、事前処理部11と計算処理部12を備えて、単語の重要度を表す行列をトピックを基底として非負値行列因子分解を用いて行列表現するとともに、単語の共起をskip-gramを用いて行列表現したモデルを生成する。
【0013】
事前処理部11は、処理対象のテキスト群を形態素解析により単語に分割し、単語の頻出頻度に基づいて各テキストの単語および品詞の重要度を表す行列D,Sを生成するとともに、単語間、品詞間、および単語と品詞間の自己相互情報量(Pointwise Mutual Information:PMI)に基づいて単語の共起行列W、品詞の共起行列E、および単語と品詞の共起行列Rを生成する。
【0014】
計算処理部12は、行列Dを文書-トピック行列Θとトピック-単語行列Tに分解し、行列Sを文書-トピック行列Θとトピック-品詞行列Gに分解して、行列Θ、行列T、および行列Gを求めるとともに、単語の共起行列Wを分解して導出した単語の埋め込み行列Bと文脈語の埋め込み行列C、品詞の共起行列Eを分解して導出した品詞の埋め込み行列Qと文脈に沿った品詞の埋め込み行列H、単語と品詞の共起行列Rを分解して導出した品詞の埋め込み行列Qと文脈語の埋め込み行列Cを求め、トピック-単語行列Tを分解して導出したトピックの埋め込み行列Aと文脈語の埋め込み行列C、トピック-品詞行列Gを分解して導出したトピックの埋め込み行列Aと文脈に沿った品詞の埋め込み行列Hを求める。提案モデルの詳細については後述する。
【0015】
検索部20は、ユーザ端末5から受信した単語または文書をキーとして、モデルから得られた分散ベクトルと近い分散ベクトルを計算結果記憶部40から検索し、検索で得られた分散ベクトルを持つ単語または文書をデータ保存部30から取得して検索結果としてユーザ端末5へ返却する。
【0016】
検索部20は、例えば、ユーザ端末5から話し言葉で検索内容を入力されたときに、話し言葉をキーとして意味的に近い単語を検索し、検索で得られた単語を検索キーワードとしてモデルに入力して検索結果を得てもよい。
【0017】
データ保存部30は、検索対象の文書と単語を保持する。データ保存部30の保持する文書は処理対象のテキスト群として学習部10のモデルの学習にも用いられる。
【0018】
計算結果記憶部40は、文書および単語の分散ベクトルを保持する。文書および単語の分散ベクトルは、文書および単語を学習部10の生成したモデルに入力することで得られる。計算結果記憶部40は、文書および単語の意味空間のインデックスであり、空間内での距離の近さは意味の近さになっている。
【0019】
[提案モデル]
ここで、本実施形態で提案するモデルについて説明する。
【0020】
図2は、各テキストのグラフィカルモデルを非負値行列因子分解(Non-negative Matrix Factorization:NMF)を用いて行列表現した様子を示す図である。
【0021】
図2の左側は、各テキストのグラフィカルモデルである。グラフィカルモデルはノードとエッジから構成され、ノードは変数、エッジの方向はノード間の因果関係を示す。図2のグラフィカルモデルでは、文書djのトークンiにおけるトピックzjiから品詞ljiが確率的にサンプリングされ、トピックzjiと品詞ljiから単語wjiがサンプリングされる様子を示している。
【0022】
図2の右側は、テキスト集合(文書集合)をNMFを用いて行列表現したものである。文書×単語の行列Dは、文書×トピックの行列Θ、トピック×単語の行列Tに分解される。文書×品詞の行列Sは、文書×トピックの行列Θ、トピック×品詞の行列Gに分解される。行列D,Sで行列Θを共有している。
【0023】
図3は、各テキストをグラフィカルモデルに出現するノード(変数)をskip-gram(window size=2)を用いて行列表現したものである。
【0024】
図3の左側に各テキストのグラフィカルモデルを示し、右側に3つのskip-gramを示している。左のskip-gramは、位置tにある単語wtから前後2番目以内の位置にある単語wt-2,wt-1,wt+1,wt+2を予測する。真ん中のskip-gramは、位置tにある品詞ltから前後2番目以内の位置にある品詞lt-2,lt-1,lt+1,lt+2を予測する。右のskip-gramは、位置tにある品詞ltから前後2番目以内の位置にある単語wt-2,wt-1,wt+1,wt+2を予測する。
【0025】
skip-gramの学習はPMI行列の分解に等価である。モデルの学習では、共起行列W、共起行列E、および共起行列Rのshifted positive PMI(SPPMI)を用いて、共起行列Wを単語の埋め込み行列Bと文脈語の埋め込み行列Cに分解し、共起行列Eを品詞の埋め込み行列Qと文脈に沿った品詞の埋め込み行列Hに分解し、共起行列Rを品詞の埋め込み行列Qと文脈語の埋め込み行列Cに分解する。
【0026】
本実施形態では、さらに、図2で得られた行列T,GについてもSPPMIを用いて、トピック×単語の行列Tをトピックの埋め込み行列Aと文脈語の埋め込み行列Cに分解し、トピック×品詞の行列Gをトピックの埋め込み行列Aと文脈に沿った品詞の埋め込み行列Hに分解する。
【0027】
学習部10は、前記文書-トピック行列Θ、前記トピック-単語行列T、前記トピック-品詞行列G、トピックの埋め込み行列A、単語の埋め込み行列B、文脈語の埋め込み行列C、文脈に沿った品詞の埋め込み行列H、および品詞の埋め込み行列Qを求めることで、トピックモデルとskip-gramを結びつけてテキスト群に含まれる文書及び単語の分散ベクトルを学習する。
【0028】
[動作]
次に、図4のフローチャートを参照し、学習処理について説明する。説明で利用する記号とその説明を次表1に記載する。
【0029】
【表1】
【0030】
ステップS11にて、学習部10は、データ保存部30から処理対象のテキスト群を読み出して、形態素解析によりテキスト群を単語に分割する。学習部10は、単語の品詞も取得しておく。
【0031】
ステップS12にて、学習部10は、文書×単語の行列Dと文書×品詞の行列Sを作成する。行列DはV(単語の異なり数)×N(文書の数)からなる行列であり、行列の要素djiは、文書iにおける単語jのtf*idf値を用いる。行列SはO(品詞の異なり数)×N(文書の数)からなる行列であり、行列の要素sjiは、文書iにおける品詞jのtf*idf値を用いる。
【0032】
ステップS13にて、学習部10は、単語の共起行列W,品詞の共起行列E,および単語と品詞の共起行列Rを作成する。
【0033】
単語の共起行列Wの(i,j)成分は、SPPMIを用いて次式で求められる。
【0034】
【数1】
【0035】
共起行列E、Rも共起行列Wと同様に作成できる。
【0036】
ステップS14にて、学習部10は、モデルのパラメタを更新する。以下、パラメタの導出について説明する。
【0037】
図2で説明したように、本実施形態では、行列D,SをNMFを用いたトピックモデルとして解釈し、D=Θ×T、S=Θ×Gとする。行列T、G、Θは、次式の目的関数LD、LSを用いて導出できる。目的関数LD、LSが最小となるような行列T、G、Θを求めることで行列D,Sを分解できる。
【0038】
【数2】
【0039】
なお、右辺の第2項は、オーバーフィッティングを防止するための正規化項であり、λd、λsは正規化項を調整するパラメタである。以降の数式も同様である。
【0040】
図3で説明したように、skip-gramの学習はステップS13で作成した共起行列W,E,Rの分解に相当し、行列B、C、Q、Hは、次式の目的関数LW、LE、LRを用いて導出できる。
【0041】
【数3】
【0042】
また、行列T=A×C、行列G=A×Hと分解すると、行列A、C、Hは、次式の目的関数LT,Gを用いて導出できる。
【0043】
【数4】
【0044】
上記の目的関数をまとめると、モデルの目的関数は次式となる。
【0045】
【数5】
【0046】
モデルの目的関数を展開すると次式となる。
【0047】
【数6】
【0048】
学習部10の更新するパラメタは、モデルの目的関数から導出した次式となる。
【0049】
【数7】
【0050】
続いて、図5のフローチャートを参照し、検索処理について説明する。
【0051】
ステップS21にて、検索部20は、ユーザ端末5から検索内容(クエリ)を受信する。クエリは、単語でもよいし、文書でもよい。
【0052】
ステップS22にて、検索部20は、受信したクエリをキーとして計算結果記憶部40に問い合わせ、該当する分散ベクトルを得る。
【0053】
ステップS23にて、検索部20は、計算結果記憶部40からステップS22で得た分散ベクトルに近い分散ベクトルを検索し、検索された近い分散ベクトルに対応する文書または単語をデータ保存部30から取得する。分散ベクトル間の距離はコサイン類似度を使って測定できる。
【0054】
ステップS24にて、検索部20は、ステップS23で取得した単語または文書を検索結果としてユーザ端末5へ返却する。
【0055】
[検証]
QAシステムの適合率向上に対する本実施形態の検索システムの有効性を評価するために、現行のヘルプデスクシステムと本実施形態の検索システムの検索機能を検証した。
【0056】
検索データとして、QAデータを700件程度用意し、検索内容として、質問と質問に対する正解を150件程度用意した。現行システムに、検索データを一括登録で登録し、質問を随時検索して、アウトプットの5番目までを取得した。本実施形態の検索システムに、検索データを学習させて、質問を随時検索して、アウトプットの5番目までを取得した。1番目から5番目までのアウトプットの中で質問に対する正解の位置に応じて5点、4点、3点、2点、1点を付与した。例えば、アウトプットの1番目が質問に対する正解であったときは5点を付与する。アウトプットの中に正解が含まれないときは0点とする。次表2に検証結果を示す。
【0057】
【表2】
【0058】
本実施形態の検索システムは、現行システムより正解合計点数が多く、適合率が高いといえる。また、本実施形態の検索システムは、現行システムより0点の数が少なく、再現率が高いといえる。適合率とは、正解データとの一致度合いを表す、正確性に関する指標である。再現率とは、正解データを網羅する度合いを表す、網羅性に関する指標である。
【0059】
以上説明したように、本実施形態の検索システム1は、学習部10と検索部20を備える。学習部10は、処理対象のテキスト群を入力し、テキスト群の各テキストの単語および品詞の重要度を表す行列D,Sをトピックを基底としてNMFにより分解したトピックモデルとテキスト群の単語の共起に基づくスキップグラムモデルとを同時に学習して、文書または単語を入力すると分散ベクトルを出力するモデルを生成する。検索部20は、単語または文書をモデルに入力し、得られた分散ベクトルと近い分散ベクトルを持つ単語または文書を検索結果として出力する。このように、検索システム1が文書および単語の分散ベクトルを同時に学習することで、文書と単語を同じ意味空間で表現できる。その結果、キーワードが一致するだけでなく、意味が近いものまで検索でき、検索効率の向上が期待できる。また、適切なキーワードが想起できないときに、そのキーワードを表す文書(話し言葉)を入力しても適切な検索結果が得られる。
【0060】
本実施形態の検索システム1は、単語および品詞のtf*idf値を用いて、各テキストの単語および品詞の重要度を表す行列を生成することにより、文書を構成する単語の重みが考慮されるので、文書検索の精度の向上が期待できる。
【0061】
本実施形態の検索システム1は、トピックおよび品詞を組み合わせてモデルを学習するので、反意語が類似した分散ベクトルを持つことを抑制できる。
【符号の説明】
【0062】
1…検索システム
10…学習部
11…事前処理部
12…計算処理部
20…検索部
30…データ保存部
40…計算結果記憶部
図1
図2
図3
図4
図5