特許第6588449号(P6588449)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許6588449-文書のベクトル表現の生成 図000002
  • 特許6588449-文書のベクトル表現の生成 図000003
  • 特許6588449-文書のベクトル表現の生成 図000004
  • 特許6588449-文書のベクトル表現の生成 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6588449
(24)【登録日】2019年9月20日
(45)【発行日】2019年10月9日
(54)【発明の名称】文書のベクトル表現の生成
(51)【国際特許分類】
   G06F 16/383 20190101AFI20191001BHJP
   G06N 3/08 20060101ALI20191001BHJP
【FI】
   G06F16/383
   G06N3/08
【請求項の数】20
【全頁数】16
(21)【出願番号】特願2016-549301(P2016-549301)
(86)(22)【出願日】2015年1月30日
(65)【公表番号】特表2017-509963(P2017-509963A)
(43)【公表日】2017年4月6日
(86)【国際出願番号】US2015013717
(87)【国際公開番号】WO2015116909
(87)【国際公開日】20150806
【審査請求日】2018年1月30日
(31)【優先権主張番号】61/934,674
(32)【優先日】2014年1月31日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】クォク・ヴィー・レ
【審査官】 吉田 誠
(56)【参考文献】
【文献】 特開平08−221439(JP,A)
【文献】 特開2007−171944(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00−16/958
G06N 3/08
(57)【特許請求の範囲】
【請求項1】
1又は複数のコンピュータによって実施される方法であって、
新規文書を取得するステップであって、前記新規文書は、複数のワードのシーケンスと、ワードのシーケンスごとに、前記新規文書の前記ワードのシーケンスの最終ワードの次に続くワードとを含む、ステップと、
トレーニングされたニューラルネットワークシステムを使用して、前記新規文書のためのベクトル表現を決定するステップと
を含み、
前記トレーニングされたニューラルネットワークシステムは、入力文書と、前記入力文書からのワードのシーケンスとを受信し、かつ、あらかじめ定められたワードのセットのワードごとに、それぞれのワードスコアを生成するようにトレーニングされ、
前記それぞれのワードスコアの各々は、対応するワードが、前記入力文書の前記シーケンスの最終ワードの次に続くことの予測尤度を表し、
前記トレーニングされたニューラルネットワークシステムを使用して、前記新規文書のための前記ベクトル表現を決定するステップは、前記トレーニングされたニューラルネットワークシステムに前記複数のワードのシーケンスをそれぞれ反復して提供して、勾配降下法を使用して前記新規文書のための前記ベクトル表現を決定するステップを含む、方法。
【請求項2】
前記トレーニングされたニューラルネットワークシステムは、
前記入力文書と、前記入力文書からの前記ワードのシーケンスの各ワードとをそれぞれのベクトル表現にマッピングするように構成された埋め込み層と、
前記ベクトル表現を結合表現に結合するように構成された結合層と、
前記結合表現を使用して、前記ワードスコアを生成するように構成された分類層と
を含む、請求項1に記載の方法。
【請求項3】
前記埋め込み層は、第1のパラメータのセットにしたがって、前記ワードのシーケンスの前記ワードをベクトル表現にマッピングし、かつ、
前記分類層は、第2のパラメータのセットにしたがって、前記結合表現から前記ワードスコアを生成する、請求項2に記載の方法。
【請求項4】
前記第1のパラメータのセットの値と、前記第2のパラメータのセットの値とは、前記ワードスコアを生成するために、前記ニューラルネットワークシステムをトレーニングすることから定められる、請求項3に記載の方法。
【請求項5】
前記トレーニングされたニューラルネットワークシステムを使用して、前記新規文書のための前記ベクトル表現を決定するステップは、勾配降下法の以前の反復から前記新規文書の前記ベクトル表現を調整するように、前記複数のワードのシーケンスごとに勾配降下法のそれぞれの反復を実行するステップを含む、請求項2に記載の方法。
【請求項6】
前記複数のワードのシーケンスごとに勾配降下法の前記それぞれの反復を実行するステップは、
前記埋め込み層を使用して、前記シーケンスの前記ワードのそれぞれをベクトル表現にマッピングするステップと、
結合表現を生成するため、前記シーケンスの前記ワードのための前記ベクトル表現と、前記以前の反復からの前記新規文書のための前記ベクトル表現とを結合するステップと、
前記結合表現からワードスコアを生成するステップと、
前記ワードスコアと、前記新規文書の前記シーケンスの次に続く前記ワードとを使用して、勾配を計算するステップと、
前記勾配を使用して、前記以前の反復から前記新規文書のための前記ベクトル表現を調整するステップと
を含む、請求項5に記載の方法。
【請求項7】
前記結合層は、前記シーケンスの前記ワードの前記ベクトル表現と、前記入力文書の前記ベクトル表現とを連結するように構成された、請求項2に記載の方法。
【請求項8】
前記結合層は、前記シーケンスの前記ワードの前記ベクトル表現と、前記入力文書の前記ベクトル表現とを平均するように構成された、請求項2に記載の方法。
【請求項9】
前記複数のワードのシーケンスのそれぞれは固定された数のワードを含む、請求項1に記載の方法。
【請求項10】
1又は複数のコンピュータによって実施される方法であって、
複数のトレーニング文書を取得するステップであって、前記複数のトレーニング文書の各文書は、複数のワードのトレーニングシーケンスと、ワードのシーケンスごとに、前記トレーニング文書の前記ワードのトレーニングシーケンスの最終ワードの次に続くワードとを含む、ステップと、
勾配降下法と逆伝搬法とを使用して、前記トレーニング文書のそれぞれに対し、ニューラルネットワークシステムをトレーニングするステップであって、前記ニューラルネットワークシステムは、入力文書を識別するデータと、前記入力文書からのワードの入力シーケンスとを受信し、かつ、あらかじめ定められたワードのセットのワードごとに、それぞれのワードスコアを生成するように構成された、ステップと
を含み、
前記それぞれのワードスコアの各々は、対応するワードが、前記入力文書の前記ワードのシーケンスの最終ワードの次に続くことの予測尤度を表し、かつ、
前記トレーニング文書のそれぞれに対し前記ニューラルネットワークシステムをトレーニングするステップは、各トレーニング文書について、前記トレーニング文書のワードのシーケンスごとに勾配降下法のそれぞれの反復を実行するステップを含む、方法。
【請求項11】
前記ニューラルネットワークシステムは、
前記入力文書と、前記入力文書からの前記ワードのシーケンスの各ワードとをそれぞれのベクトル表現にマッピングするように構成された埋め込み層と、
前記ベクトル表現を結合表現に結合するように構成された結合層と、
前記結合表現を使用して、前記ワードスコアを生成するように構成された分類層と
を含む、請求項10に記載の方法。
【請求項12】
前記埋め込み層は、第1のパラメータのセットにしたがって、前記ワードのシーケンスの前記ワードをベクトル表現にマッピングし、かつ、
前記分類層は、第2のパラメータのセットにしたがって、前記結合表現から前記ワードスコアを生成する、請求項11に記載の方法。
【請求項13】
前記トレーニング文書の前記複数のシーケンスごとに勾配降下法の前記それぞれの反復を実行するステップは、
前記埋め込み層を使用して、前記シーケンスの前記ワードのそれぞれをベクトル表現にマッピングするステップと、
前記埋め込み層を使用して、前記トレーニング文書を識別する前記データをベクトル表現にマッピングするステップと、
結合表現を生成するために、前記シーケンスの前記ワードのための前記ベクトル表現と、以前の反復からの前記トレーニング文書のための前記ベクトル表現とを結合するステップと、
前記結合表現からワードスコアを生成するステップと、
前記ワードスコアと、新規文書の前記シーケンスの次に続く前記ワードとを使用して、勾配を計算するステップと、
前記勾配を使用して、前記第2のパラメータのセットの値を調整するステップと
を含む、請求項12に記載の方法。
【請求項14】
勾配降下法の前記それぞれの反復を実行するステップは、逆伝搬法を使用して、前記第1のパラメータのセットの値を調整するステップをさらに含む、請求項13に記載の方法。
【請求項15】
結合層は、前記シーケンスの前記ワードのベクトル表現と、前記入力文書のベクトル表現とを連結するように構成される、請求項10に記載の方法。
【請求項16】
結合層は、前記シーケンスの前記ワードのベクトル表現と、前記入力文書のベクトル表現とを平均するように構成される、請求項10に記載の方法。
【請求項17】
前記複数のワードのシーケンスのそれぞれは固定された数のワードを含む、請求項10に記載の方法。
【請求項18】
1又は複数のコンピュータと、命令を格納する1又は複数の記憶デバイスとを含むシステムであって、前記命令は、前記1又は複数のコンピュータによって実行されると、前記1又は複数のコンピュータに、
新規文書を取得するステップであって、前記新規文書は、複数のワードのシーケンスと、ワードのシーケンスごとに、前記新規文書の前記ワードのシーケンスの最終ワードの次に続くワードとを含む、ステップと、
トレーニングされたニューラルネットワークシステムを使用して、前記新規文書のためのベクトル表現を決定するステップと
を含む操作を実行させ、
前記トレーニングされたニューラルネットワークシステムは、入力文書と、前記入力文書からのワードのシーケンスとを受信し、かつ、あらかじめ定められたワードのセットのワードごとに、それぞれのワードスコアを生成するようにトレーニングされ、
前記それぞれのワードスコアの各々は、対応するワードが、前記入力文書の前記シーケンスの最終ワードの次に続くことの予測尤度を表し、
前記トレーニングされたニューラルネットワークシステムを使用して、前記新規文書のための前記ベクトル表現を決定するステップは、前記トレーニングされたニューラルネットワークシステムに前記複数のワードのシーケンスのそれぞれを反復して提供して、勾配降下法を使用して前記新規文書のための前記ベクトル表現を決定するステップを含む、システム。
【請求項19】
前記トレーニングされたニューラルネットワークシステムは、
前記入力文書と、前記入力文書からの前記ワードのシーケンスの各ワードとをそれぞれのベクトル表現にマッピングするように構成された埋め込み層と、
前記ベクトル表現を結合表現に結合するように構成された結合層と、
前記結合表現を使用して、前記ワードスコアを生成するように構成された分類層と
を含む、請求項18に記載のシステム。
【請求項20】
前記トレーニングされたニューラルネットワークシステムを使用して、前記新規文書のための前記ベクトル表現を決定するステップは、勾配降下法の以前の反復からの前記新規文書の前記ベクトル表現を調整するように、前記複数のワードのシーケンスごとに勾配降下法のそれぞれの反復を実行するステップを含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、データ処理システムを使用したテキスト分類に関する。
【背景技術】
【0002】
テキスト分類システムは、電子テキストのピース(例えば、電子文書)を分類することができる。例えば、テキスト分類システムは、一連のあらかじめ定められたテーマのうちの1又は複数のテーマに関係するものとして、テキストのピースを分類することができる。一部のテキスト分類システムは、テキストのピースの入力特徴を受信し、かつ、テキストのピースのための分類を生成するために、特徴を使用する。
【0003】
ニューラルネットワークは、受信した入力のための出力(例えば、分類)を生成するために、モデルの1又は複数の層を利用するマシーンラーニングモデルである。一部のニューラルネットワークは、出力層に加えて、1又は複数の中間層(hidden layer)を含む。各中間層の出力が、ネットワークの次の層(すなわち、次の中間層又はネットワークの出力層)への入力として使用される。ネットワークの各層は、パラメータのそれぞれのセットの現在の値にしたがって、受信された入力から出力を生成する。
【発明の概要】
【課題を解決するための手段】
【0004】
一般に、本明細書で説明される主題の1つの革新的な態様は、新規文書を取得するステップであって、新規文書は、複数のワードのシーケンスと、ワードのシーケンスごとに新規文書のワードのシーケンスの最終ワードの次に続くワードとを含む、ステップと、トレーニングされたニューラルネットワークシステムを使用して、新規文書のためのベクトル表現を決定するステップとを含む方法において実施され、トレーニングされたニューラルネットワークシステムは、入力文書と、入力文書からのワードのシーケンスとを受信し、かつ、あらかじめ定められたワードのセットのワードごとにそれぞれのワードスコアを生成するようにトレーニングされ、それぞれのワードスコアの各々は、対応するワードが、入力文書のシーケンスの最終ワードの次に続くことの予測尤度を表し、トレーニングされたニューラルネットワークシステムを使用して、新規文書のためのベクトル表現を決定するステップは、トレーニングされたニューラルネットワークシステムに複数のワードのシーケンスをそれぞれ反復して提供して、勾配降下法を使用して新規文書のためのベクトル表現を決定するステップを含む。
【0005】
この態様の他の実施例は、対応するコンピュータシステム、装置、および、1又は複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含み、各々が、方法の動作を実行するように構成される。
【0006】
1又は複数のコンピュータのシステムは、操作においてシステムに動作を実行させるシステムにインストールされるソフトウェア、ファームウェア、ハードウェア、又は、それらの組み合わせによって特定の操作又は動作を実行するように構成され得る。1又は複数のコンピュータプログラムは、データ処理装置によって実行されるとき、装置に動作を実行させる命令を含むことによって、特定の操作又は動作を実行するように構成され得る。
【0007】
これらの態様および他の態様が次の特徴のうちの1又は複数の特徴を選択的に含むことができる。トレーニングされたニューラルネットワークシステムは、入力文書と、入力文書からのワードのシーケンスの各ワードとをそれぞれのベクトル表現にマッピングするように構成された埋め込み層と、ベクトル表現を結合表現に結合するように構成された結合層と、結合表現を使用して、ワードスコアを生成するように構成された分類層とを含むことができる。埋め込み層は、第1のパラメータのセットにしたがって、ワードのシーケンスのワードをベクトル表現にマッピングすることができ、かつ、分類層は、第2のパラメータのセットにしたがって、結合表現からワードスコアを生成することができる。第1のパラメータのセットの値と、第2のパラメータのセットの値とは、ワードスコアを生成するために、ニューラルネットワークシステムをトレーニングすることから定められ得る。
【0008】
トレーニングされたニューラルネットワークシステムを使用して、新規文書のためのベクトル表現を決定するステップは、勾配降下法の以前の反復からの新規文書のベクトル表現を調整するように、複数のワードのシーケンスごとに勾配降下法のそれぞれの反復を実行するステップを含むことができる。複数のワードのシーケンスごとに勾配降下法のそれぞれの反復を実行するステップは、埋め込み層を使用して、シーケンスのワードのそれぞれをベクトル表現にマッピングするステップと、結合表現を生成するため、シーケンスのワードのためのベクトル表現と、以前の反復からの新規文書のためのベクトル表現とを結合するステップと、結合表現から、ワードスコアを生成するステップと、ワードスコアと、新規文書のシーケンスの次に続くワードとを使用して、勾配を計算するステップと、勾配を使用して、以前の反復からの新規文書のためのベクトル表現を調整するステップとを含むことができる。結合層は、シーケンスのワードのベクトル表現と、入力文書のベクトル表現とを連結するように構成され得る。結合層は、シーケンスのワードのベクトル表現と、入力文書のベクトル表現とを平均するように構成され得る。複数のワードのシーケンスの各々は、固定された数のワードを含むことができる。
【0009】
一般に、本明細書で説明される主題の別の革新的な態様は、複数のトレーニング文書を取得するステップであって、複数のトレーニング文書の各文書は、複数のワードのトレーニングシーケンスと、各ワードのシーケンスについて、トレーニング文書のワードのトレーニングシーケンスの最終ワードの次に続くワードとを含む、ステップと、勾配降下法と逆伝搬法とを使用して、トレーニング文書のそれぞれに対し、ニューラルネットワークシステムをトレーニングするステップであって、ニューラルネットワークシステムは、入力文書を識別するデータと、入力文書からのワードの入力シーケンスとを受信し、かつ、あらかじめ定められたワードのセットのワードごとにそれぞれのワードスコアを生成するように構成された、ステップとを含む方法において実施され、それぞれのワードスコアの各々は、対応するワードが、入力文書のワードのシーケンスの最終ワードの次に続くことの予測尤度を表し、かつ、トレーニング文書の各々に対しニューラルネットワークシステムをトレーニングするステップは、各トレーニング文書について、トレーニング文書のワードのシーケンスごとに勾配降下法のそれぞれの反復を実行するステップを含む。
【0010】
この態様の他の実施例は、対応するコンピュータシステム、装置、および、1又は複数のコンピュータ記憶デバイス上に記録されたコンピュータプログラムを含み、各々が、方法の動作を実行するように構成される。
【0011】
これらの態様および他の態様が次の特徴のうちの1又は複数の特徴を選択的に含むことができる。ニューラルネットワークシステムは、入力文書と、入力文書からのワードのシーケンスの各ワードとをそれぞれのベクトル表現にマッピングするように構成された埋め込み層と、ベクトル表現を結合表現に結合するように構成された結合層と、結合表現を使用して、ワードスコアを生成するように構成された分類層とを含むことができる。埋め込み層は、第1のパラメータのセットにしたがって、ワードのシーケンスのワードをベクトル表現にマッピングし、かつ、分類層は、第2のパラメータのセットにしたがって、結合表現からワードスコアを生成することができる。トレーニング文書の複数のシーケンスごとに勾配降下法のそれぞれの反復を実行するステップは、埋め込み層を使用して、シーケンスのワードのそれぞれをベクトル表現にマッピングするステップと、埋め込み層を使用して、トレーニング文書を識別するデータをベクトル表現にマッピングするステップと、結合表現を生成するために、シーケンスのワードのためのベクトル表現と、以前の反復からのトレーニング文書のためのベクトル表現とを結合するステップと、結合表現からワードスコアを生成するステップと、ワードスコアと、新規文書のシーケンスの次に続くワードとを使用して、勾配を計算するステップと、勾配を使用して、第2のパラメータのセットの値を調整するステップとを含むことができる。勾配降下法のそれぞれの反復を実行するステップは、逆伝搬法を使用して、第1のパラメータのセットの値を調整するステップをさらに含むことができる。結合層は、シーケンスのワードのベクトル表現と、入力文書のベクトル表現とを連結するように構成され得る。結合層は、シーケンスのワードのベクトル表現と、入力文書のベクトル表現とを平均するように構成され得る。複数のワードのシーケンスの各々は固定された数のワードを含むことができる。
【0012】
本明細書で説明される主題の特定の実施例は、次の利点のうちの1又は複数の利点を実現するように実施され得る。例えばテキスト分類システムによって、文書の特徴として使用され得る文書のベクトル表現が効果的に生成され得る。ニューラルネットワークシステムは、単にラベルなしのトレーニング文書を使用して文書表現を生成するために、トレーニングされ得る。トレーニングされたニューラルネットワークシステムによって生成されるベクトル表現は、いくつかの望ましい特性を有することができる。例えば、意味的に類似している文書が、意味的に類似のコンテンツを含まない2つの文書についての文書ベクトル表現より、より相互に近い文書ベクトル表現を有することができる。
【0013】
本明細書の主題の1又は複数の実施例の詳細は、添付図面および以下の記述において説明される。主題の他の特徴、態様、および、利点は、記述、図面、および、請求項から明らかとなる。
【図面の簡単な説明】
【0014】
図1】例のベクトル表現システムを示す。
図2】新規文書のための文書ベクトル表現を決定する例のプロセスのフローチャートである。
図3】トレーニング文書からのワードのシーケンスに対してニューラルネットワークシステムをトレーニングする例のプロセスのフローチャートである。
図4】新規文書のための文書ベクトル表現を調整する例のプロセスのフローチャートである。
【0015】
種々の図中の類似の参照符号および記号は類似の要素を示す。
【発明を実施するための形態】
【0016】
図1は、例のベクトル表現システム(vector representation system)100を示す。ベクトル表現システム100は、以下に説明されるシステム、コンポーネント、および方法を実装することができる、1又は複数のロケーションの1又は複数のコンピュータでコンピュータプログラムとして実装されるシステムの例である。
【0017】
ベクトル表現システム100は、入力文書からワードのシーケンスのためのワードスコアを生成する(例えば、入力文書102からのワードシーケンス106のためのワードスコア126)。ワードシーケンス106のためのワードスコア126は、あらかじめ定められたワードのセットのワードごとにそれぞれスコアを含み、所定のワードのためのワードスコアは、ワードが入力文書のワードシーケンス106の最終ワード(last word)の次に続くという予測尤度(predicted likelihood)を表す。
【0018】
所定の入力文書のワードのシーケンスのためのワードスコアを生成することの一部として、ベクトル表現システム100は、入力文書のための文書ベクトル表現(例えば、入力文書102のための文書ベクトル表現120)を生成する。ベクトル表現システム100によって生成される文書ベクトル表現は、文書のベクトル表現である。例えば、文書ベクトル表現は、浮動小数点値又は量子化された浮動小数点値のベクトルであってよい。
【0019】
特に、ベクトル表現システム100は、所定の入力文書の所定のワードシーケンスについて、入力文書を識別するデータと、ワードシーケンスとを受信し、かつ、入力文書を識別するデータと、ワードシーケンスとを処理して、ワードシーケンスのためのワードスコアを生成するニューラルネットワークシステム110を含む。例えば、ベクトル表現システム100は、入力文書102から、入力文書102についての文書識別子104と、ワードシーケンス106とを受信することができ、かつ、ワードシーケンス106のためのワードスコア126を生成することができる。文書識別子は、識別子が、一意に、入力文書102を識別するように、例えば、入力文書102にあらかじめ割り当てられるか、又は、ベクトル表現システム100によって生成され得る。
【0020】
ニューラルネットワークシステム110は、埋め込み層112と、結合層114と、分類層116とを含む。埋め込み層112は、文書パラメータのセットの現在の値にしたがって、文書を識別するデータを、文書ベクトル表現(例えば、入力文書102についての文書ベクトル表現120)にマッピングする。また、埋め込み層112は、ワードシーケンスの各ワードを、ワードパラメータのセットの現在の値にしたがって、それぞれのワードベクトル表現(例えば、ワードシーケンス106のワードについてのワードベクトル表現122)にマッピングする。各ワードベクトルが、対応するワードのベクトル表現(例えば、浮動小数点のベクトル又は量子化浮動小数点値)である。
【0021】
結合層114は、文書ベクトル表現とワードベクトル表現とを受信し、かつ、文書ベクトル表現とワードベクトル表現とから結合表現(例えば、ワードベクトル表現122と、文書ベクトル表現120とから結合表現124)を生成する。結合表現を生成することが、図3,4を参照して以下により詳細に説明される。
【0022】
分類層116は、結合表現を受信し、かつ、結合表現を処理して、分類パラメータのセットの現在の値にしたがって、入力文書からのワードシーケンスのためのワードスコアを生成する。例えば、分類層116は、結合表現124を処理して、ワードシーケンス106のためのワードスコア126を生成してもよい。
【0023】
ベクトル表現システム100は、ワードパラメータと分類パラメータとのトレーニングされた値を決定するために、トレーニング文書からの複数のワードシーケンスに対しニューラルネットワークシステム110をトレーニングする。ニューラルネットワークシステムをトレーニングすることは、図2,3を参照して以下により詳細に説明される。いったん、ワードパラメータと分類パラメータとのトレーニングされた値が決定されると、ベクトル表現システム100は、新規の入力文書を受信することができ、かつ、ニューラルネットワークシステム110を使用して新規の入力文書からのワードのシーケンスを処理して、新規文書のための文書ベクトル表現を決定することができる。新規文書のための文書ベクトル表現を生成することは、図2,4を参照して以下により詳細に説明される。
【0024】
いったん、所定の文書のための文書ベクトル表現が生成されると、ベクトル表現システム100が、リポジトリ内の文書と文書ベクトル表現を関連付けることができるか、又は、一部の当座の目的に使用するための別のシステムに文書表現を提供することができる。例えば、文書表現は、入力文書の特徴として使用され、かつ、(例えば、特定のテーマに関係して)入力文書を分類するように構成されている従来のマシーンラーニングシステム(例えば、ロジスティック回帰システム、サポートベクターマシーン(SVM)システム、又は、K平均システム)への入力として提供され得る。例えば、従来のマシーンラーニングシステムは、入力文書の文書表現と、選択的に、入力文書の他の特徴とを受信し、かつ、テーマのセットごとにそれぞれスコアを生成するように構成され得る(各スコアが、文書が対応するテーマについてのものであるか、又は関係することの推定された尤度を表す)。
【0025】
図2は、新規文書のための文書ベクトル表現を決定する例のプロセス200のフローチャートである。便宜上、プロセス200は、1又は複数のロケーションに配置された1又は複数のコンピュータのシステムによって実行されるものとして説明される。例えば、ベクトル表現システム(例えば、適切にプログラムされた図1のベクトル表現システム100)は、プロセス200を実行することができる。
【0026】
システムは、ワードスコアを生成するため、ニューラルネットワークシステム(例えば、図1のニューラルネットワークシステム110)をトレーニングする(ステップ202)。ニューラルネットワークシステムは、埋め込み層と、結合層と、分類層とを含むシステムである。埋め込み層は、文書から、文書を識別するデータと、ワードのシーケンスとを受信し、文書パラメータのセットの現在の値にしたがって、文書を識別するデータを文書ベクトル表現にマッピングし、かつ、ワードパラメータのセットの現在の値にしたがって、ワードのシーケンスの各ワードをそれぞれのワードベクトル表現にマッピングするように構成されている。結合層は、ワードベクトル表現と文書ベクトル表現とを結合して、結合表現を生成するように構成されている。分類層は、結合表現を処理して、分類パラメータのセットの現在の値にしたがって、ワードシーケンスのためのワードスコアのセットを生成するように構成されている。
【0027】
トレーニングの間、システムは、ワードパラメータと分類パラメータとの値を調整して、ワードパラメータと分類パラメータとのトレーニングされた値を決定する。特に、システムは、トレーニング文書のセットからのワードシーケンスのセットに対して、ニューラルネットワークシステムをトレーニングする。例えば、トレーニング文書は、文、段落、複数の段落の集まり、サーチクエリー、又は、複数の自然言語ワードの他の集まりのうちの1又は複数を含んでもよい。
【0028】
ニューラルネットワークシステムのパラメータの値を調整するために、システムは、トレーニングシーケンスごとに勾配降下トレーニング処理手順(gradient descent training procedure)のインスタンスを実行する。特に、システムは、ニューラルネットワークシステムを使用して、ワードのシーケンスを処理して、シーケンスのためのワードスコアを生成し、次いで、ワードスコアと、トレーニング文書のシーケンスの最終ワードの次に続くワードとを使用して(すなわち、勾配降下法および逆伝搬法を使用して)、パラメータの値を調整する。トレーニング文書からのワードシーケンスを使用して、ニューラルネットワークシステムのパラメータを調整することが、図3を参照して以下により詳細に説明される。
【0029】
システムは、ニューラルネットワークシステムのパラメータの値を調整するために、単に、ワードシーケンスのためのワードスコアと、トレーニング文書のワードシーケンスの最終ワードの次に続くワードとを使用するので、トレーニング文書は、ニューラルネットワークシステムをトレーニングするのに使用されるためにラベル化される必要がない。すなわち、システムは、単に、ラベルなしのトレーニング文書(すなわち、特定のテーマに関係して分類されていないか、又は、別の方法で、テキスト分類システムによって処理されていない文書)からのワードのシーケンスを使用してワードスコアを生成するために、ニューラルネットワークシステムをトレーニングすることができる。
【0030】
システムは新規文書を受信する(ステップ204)。例えば、新規文書は、文、段落、複数の段落の集まり、サーチクエリー、又は、複数の自然言語ワードの他の集まりであってよい。
【0031】
システムは、トレーニングされたニューラルネットワークシステムを使用して、新規文書のための文書ベクトル表現を決定する(ステップ206)。一般に、システムは、トレーニングされたニューラルネットワークシステムを使用して新規文書からの複数のワードシーケンスを処理して、新規文書のための文書ベクトル表現を決定する。特に、システムは、新規文書からワードの複数のシーケンスを識別する。一部の実施例では、シーケンスのそれぞれが固定長である(すなわち、同じ固定された数のワードを含む)。例えば、システムは、新規文書に移動窓法を適用して、新規文書からあらかじめ定めされた固定長のそれぞれの可能性のあるシーケンスを抽出することができる。
【0032】
次いで、システムは、新規文書のための文書ベクトル表現を反復して決定するために、トレーニングされたニューラルネットワークシステムを使用して、抽出されたシーケンスのそれぞれを処理することができる。すなわち、システムは、新規文書からのそれぞれのシーケンスがトレーニングされたニューラルネットワークシステムを介して処理された後、新規文書の現在の表現を調整して、シーケンスのためのワードスコアを生成する。新規文書からのシーケンスを使用して、新規文書のための文書ベクトル表現を調整することは、図4を参照して、以下により詳細に説明される。
【0033】
図3は、トレーニング文書からのワードのシーケンスに対して、ニューラルネットワークシステムをトレーニングするための例のプロセス300のフローチャートである。便宜上、プロセス300は、1又は複数のロケーションに配置された1又は複数のコンピュータのシステムによって実行されるものとして説明される。例えば、ベクトル表現システム(例えば、適切にプログラムされた図1のベクトル表現システム100)がプロセス300を実行することができる。
【0034】
システムは、埋め込み層を使用して、シーケンスのワードの各々をそれぞれのワードベクトル表現にマッピングする(ステップ302)。特に、システムは、ワードパラメータの現在の値にしたがって、シーケンスの各ワードを処理して、シーケンスのワードごとにそれぞれのワードベクトル表現を決定する。
【0035】
システムは、埋め込み層を使用して、トレーニング文書を文書ベクトル表現にマッピングする(ステップ304)。特に、システムは、文書パラメータの現在の値にしたがって、トレーニング文書を識別するデータを処理して、トレーニング文書のための文書ベクトル表現を決定する。
【0036】
システムは、結合層を使用して、ワードベクトル表現と文書ベクトル表現とから結合表現を生成する(ステップ306)。特に、システムは、結合層を使用して、ワードベクトル表現と現在文書ベクトル表現とを処理して、結合表現を生成する。例えば、結合層は、ワードベクトル表現と現在文書ベクトル表現とを連結して、結合表現を生成してもよい。他の例として、結合層は、ワードベクトル表現と現在文書ベクトル表現との代表値(measure of central tendency)(例えば、平均、中央値、又は他の平均値)を計算して、結合表現を生成してもよい。
【0037】
システムは、分類層を使用して、結合表現からワードスコアを生成する(ステップ308)。特に、システムは、分類層のパラメータの現在の値にしたがって、分類層を使用して結合表現を処理して、あらかじめ定められたワードのセットのワードごとにそれぞれワードスコアを生成する。
【0038】
システムは、ワードスコアを使用して、勾配(gradient)を計算する(ステップ310)。すなわち、システムは、ワードスコアとワードのシーケンスのための所望の出力との間の誤差を計算し(すなわち、新規文書のシーケンスの最終ワードの次に実際に続くワードが、シーケンスの次のワードであることを示すワードスコアのセット)、次いで、誤差の勾配を計算する。
【0039】
システムは、勾配を使用して、ニューラルネットワークシステムのパラメータの現在の値を調整する(ステップ312)。特に、システムは、誤差の勾配を使用して分類層のパラメータの現在の値を調整し、次いで、逆伝搬法を使用して埋め込み層のパラメータの現在の値(すなわち、文書パラメータとワードパラメータとの現在の値)を調整する。
【0040】
システムは、文書のパラメータのトレーニングされた値を反復して決定するために、複数のトレーニング文書からの複数のトレーニングシーケンスごとにプロセス300を実行することができる。例えば、プロセス300の反復ごとに、システムは、トレーニング文書と、トレーニング文書からの固定長のワードのシーケンスとをランダムに選択することができる。次いで、システムは、各可能性のあるシーケンスが処理されたか、又は、トレーニングのための他の終了基準が満たされるまで、トレーニング文書からのシーケンスに対してプロセス300の反復を実行することができる。
【0041】
図4は、新規文書のための文書ベクトル表現を調整するための例のプロセス400のフローチャートである。便宜上、プロセス400は、1又は複数のロケーションに配置された1又は複数のコンピュータのシステムによって実行されるものとして説明される。例えば、ベクトル表現システム(例えば、適切にプログラムされた図1のベクトル表現システム100)は、プロセス400を実行することができる。
【0042】
システムは、新規文書からワードのシーケンスを受信する(ステップ402)。例えば、ワードのシーケンスは、新規文書から抽出された固定長のワードのシーケンスであってよい。
【0043】
システムは、シーケンスのワードの各々をそれぞれのベクトル表現にマッピングする(ステップ404)。すなわち、システムは、埋め込み層を使用してシーケンスのワードのそれぞれを処理して、ワードパラメータのトレーニングされた値にしたがって、各ワードをワードベクトル表現にマッピングする。
【0044】
システムは、新規文書を文書ベクトル表現にマッピングする(ステップ406)。すなわち、システムは、埋め込み層を使用して新規文書を識別するデータを処理して、文書パラメータの現在の値にしたがって、新規文書を文書ベクトル表現にマッピングする。
【0045】
システムは、結合層を使用して、結合表現を生成する(ステップ406)。特に、システムは、埋め込み層を使用してワードベクトル表現と文書ベクトル表現とを処理して、結合表現を生成する。例えば、結合層は、ワードベクトル表現と現在文書ベクトル表現とを連結して、結合表現を生成してもよい。他の例として、結合層は、ワードベクトル表現と現在文書ベクトル表現との代表値(例えば、平均、中央値、又は他の平均値)を計算して、結合表現を生成してもよい。
【0046】
システムは、分類層を使用して、結合表現からワードスコアを生成する(ステップ408)。特に、システムは、分類層を使用して、かつ、分類層のパラメータのトレーニングされた値にしたがって、結合表現を処理して、あらかじめ定められたワードのセットのワードごとにそれぞれワードスコアを生成する。
【0047】
システムは、ワードスコアを使用して勾配を計算する(ステップ410)。すなわち、システムは、ワードスコアとワードのシーケンスのための所望の出力との間の誤差を計算し(すなわち、新規文書のシーケンスの最終ワードの次に実際に続くワードが、シーケンスの次のワードであることを示すワードスコアのセット)、次いで、誤差の勾配を計算する。
【0048】
システムは、勾配を使用して新規文書のためのベクトル表現を調整する(ステップ412)。すなわち、システムは、分類層のパラメータのトレーニングされた値と、定められたワードパラメータとを保持し、かつ、逆伝搬法を使用して文書パラメータの現在の値を更新する。
【0049】
次いで、システムは、新規文書からのワードの次のシーケンスのための文書ベクトル表現を計算するとき、文書パラメータの更新された値を使用する。代わりに、ワードの現在のシーケンスが新規文書から処理されることになる最後のシーケンスである場合、システムは、文書パラメータの更新された値を使用して、新規文書の調整された文書ベクトル表現を計算し、かつ、新規文書の文書表現として調整された文書ベクトル表現を使用する。
【0050】
本明細書で説明した主題の実施例とその機能的な動作を、本明細書で開示された構造およびそれらの構造的な均等物を含む、デジタル電子回路、有形的に具体化したコンピュータソフトウェアもしくはファームウェア、コンピュータハードウェア、またはそれらの一つもしくは複数から成る組合せで実装することができる。本明細書で説明した主題の実施例を、一つまたは複数のコンピュータプログラム、即ち、データ処理装置によって実行されるかまたはその操作を制御するための有形の非一時的プログラム搬送体で符号化されたコンピュータプログラム命令から成る一つまたは複数のモジュールとして実装することができる。代替または追加して、当該プログラム命令を人工的に生成した伝搬情報、例えば、適切な受信装置に送信してデータ処理装置で実行するための情報を符号化するように生成された機械的に生成した電気信号、光学信号、または電磁気信号で符号化することができる。コンピュータ記憶媒体は、機械可読記憶デバイス、機械可読記憶基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらの一つもしくは複数から成る組合せであってもよい。
【0051】
「データ処理装置」という用語は、例えばプログラム可能なプロセッサ、コンピュータ、またはマルチプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、および機械を包含する。上記装置は、例えば、FPGA(field programmable gate array)またはASIC(application-specific integrated circuit)などの特殊目的の論理回路を含んでもよい。上記装置は、ハードウェアに加えて、本件のコンピュータプログラムのための実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの一つもしくは複数から成る組合せを構成するコードを含んでもよい。
【0052】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、モジュール、ソフトウェアモジュール、スクリプト、またはコードと呼ばれるか説明されることもある)を、コンパイル言語もしくはインタープリタ式言語、または宣言型言語もしくは手続き型言語を含む任意の形式のプログラミング言語で記述してもよく、独立プログラムとして、またはモジュール、コンポーネント、サブルーチンもしくはコンピュータ環境での使用に適した他のユニットを含む任意の形式で展開してもよい。コンピュータプログラムが、ファイルシステム内のファイルに相当してもよいが、これは必須ではない。他のプログラムまたはデータ、例えば、マークアップ言語ドキュメントに格納された一つもしくは複数のスクリプトを保持するファイルの一部、本件のプログラムに特化した単一のファイル、または複数の連係ファイル、例えば、一つもしくは複数のモジュール、サブプログラム、もしくはコード部分を格納するファイル部分に、プログラムを格納してもよい。1つのサイトに配置するか、または、複数のサイトに分散させて通信ネットワークで相互接続した、一つまたは複数のコンピュータにコンピュータプログラムを展開して実行してもよい。
【0053】
本明細書で説明したプロセスとロジックフローを、入力データで動作し出力を生成することで機能を実行する一つまたは複数のコンピュータプログラムを実施する、一つまたは複数のプログラム可能なコンピュータによって実施することができる。上記プロセスとロジックフローを、例えばFPGA(field programmable gate array)またはASIC(application-specific integrated circuit)のような特殊目的の論理回路によって実行してもよく、または、装置を特殊目的の論理回路として実装してもよい。
【0054】
コンピュータプログラムの実行に適したコンピュータは、例えば、汎用目的のもしくは特殊目的のマイクロプロセッサまたはその両方、または他の任意の種類の中央演算装置に基づいたものであってもよい。一般に、中央演算装置は、読取専用メモリもしくはランダムアクセスメモリまたはその両方から命令とデータを受信する。コンピュータの必須要素は、命令を実施または実行するための中央演算装置と、命令とデータを記憶するための一つまたは複数のメモリデバイスである。一般に、コンピュータは、データを受信もしくは送信またはその両方を行うために、一つまたは複数の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光学ディスク等も含むか、または、それに動作可能に接続される。しかしながら、コンピュータがそのようなデバイスを有するのは必須ではない。さらに、コンピュータを、例えばいくつか例に挙げると、携帯電話、PDA(personal digital assistant)、携帯音楽またはビデオプレーヤ、ゲーム装置、GPS(Global Positioning System)受信機、または携帯記憶デバイス(例:USB(universal serial bus)フラッシュドライブ)などの他のデバイス中に組み込んでもよい。
【0055】
コンピュータプログラム命令とデータを記憶するのに適したコンピュータ可読媒体は、例えば、半導体メモリデバイス、例えばEPROM、EEPROM、およびフラッシュメモリと、磁気ディスク、例えば内部ハードディスクまたは取り外し可能ディスクと、光磁気ディスクと、CD−ROMおよびDVD−ROMディスクとを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサとメモリを、特殊目的論理回路で補完してもよく、または、それに組み込んでもよい。
【0056】
ユーザとの対話を提供するために、本明細書で説明した主題の実施例を、情報をユーザに表示するためのディスプレイ装置、例えばCRT(cathode ray tube)またはLCD(liquid crystal display)モニタと、ユーザがコンピュータに入力を提供できるキーボードおよびポインタデバイス、例えばマウスまたはトラックボールとを備えたコンピュータで実装することができる。他の種類のデバイスを使用して、ユーザとの対話を提供することもできる。例えば、ユーザに提供されるフィードバックが、視覚フィードバック、聴覚フィードバック、または触覚フィードバックのような任意の形の感覚フィードバックであってもよいし、ユーザからの入力を、音響、発話、触覚の入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザが使用するデバイスにドキュメントを送信し、当該デバイスからドキュメントを受信することによって、例えば、ウェブブラウザから要求を受信したことに応答して、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することで、ユーザと対話することができる。
【0057】
本明細書で説明した主題の実施例を、例えばデータサーバとしてのバックエンド要素を含むか、または例えばアプリケーションサーバのようなミドルウェア要素を含むか、または本明細書で説明した主題の実装によりユーザが対話できるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータのようなフロントエンド要素を含むか、またはかかるバックエンド要素、ミドルウェア要素、またはフロントエンド要素の一つもしくは複数から成る任意の組合せを含む、コンピュータシステムで実装することができる。当該システムの要素を、任意の形式または媒体のデジタルデータ通信、例えば通信ネットワークにより相互接続することができる。通信ネットワークの例には、ローカルエリアネットワーク(LAN)と広域ネットワーク(WAN)、例えばインターネットがある。
【0058】
上記コンピュータシステムが、クライアントとサーバを含んでもよい。クライアントとサーバは、一般に、互いから離れており、一般に通信ネットワークを介して対話する。クライアントとサーバの関係は、コンピュータプログラムが各コンピュータで実行され互いに対してクライアントサーバの関係を有するために生ずる。
【0059】
本明細書は具体的な実装の詳細を含むが、それらは発明または請求の範囲を制限するものとして解釈されるべきではなく、本発明の特定の実施例に固有な特徴の説明として解釈すべきである。個々の実施例の状況で本明細書で説明した特定の機能を、単独の実施例の組合せで実装することもできる。反対に、単一の実施例の状況で説明した様々な機能を、複数の実施例で別々に、または、任意の適切な副次的組合せで実装することもできる。さらに、上では機能を特定の組合せで動作するとして説明し、当初はそのように特許請求の範囲に記載したが、特許請求の範囲に記載した組合せからの一つまたは複数の機能をいくつかの場合では当該組合せから実行してもよいし、特許請求の範囲に記載した組合せが、副次的な組合せまたは副次的な組合せの変形に関するものであってもよい。
【0060】
同様に、動作を特定の順序で図面に示したが、これは、所望の結果を得るために、かかる動作を図示した特定の順序または逐次的な順序で実施すべきこと、または、全ての図示した動作を実施すべきことを要求するものとは理解すべきではない。特定の状況では、マルチタスクと並列処理が有利かもしれない。さらに、上述した実施例の様々なシステムモジュールと要素の分離は、全ての実施例でかかる分離が必要であるものとして理解されるべきではなく、説明したプログラム要素とシステムを一般に、単一のソフトウェアに統合するか、または、複数のソフトウェアにパッケージできると理解されるべきである。
【0061】
主題の特定の実施例を説明した。他の実施例は、添付の特許請求の範囲に含まれる。例えば、諸請求項に記載した動作を様々な順序で実行でき、所望の結果を達成することができる。一例として、添付図面に示したプロセスは、所望の結果を達成するために必ずしも図示した特定の順序、または逐次的な順序を必要としない。特定の実施例では、マルチタスクと並列処理が有利かもしれない。
【符号の説明】
【0062】
100 ベクトル表現システム
102 入力文書
104 文書ID
106 ワードシーケンス
110 ニューラルネットワークシステム
112 埋め込み層
114 結合層
116 分類層
120 文書表現
122 ワード表現
124 結合表現
126 ワードスコア
図1
図2
図3
図4