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

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

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

特表2024-535731ポインタトランスフォーマネットワークによる読み順
<>
  • 特表-ポインタトランスフォーマネットワークによる読み順 図1
  • 特表-ポインタトランスフォーマネットワークによる読み順 図2A
  • 特表-ポインタトランスフォーマネットワークによる読み順 図2B
  • 特表-ポインタトランスフォーマネットワークによる読み順 図3
  • 特表-ポインタトランスフォーマネットワークによる読み順 図4
  • 特表-ポインタトランスフォーマネットワークによる読み順 図5
  • 特表-ポインタトランスフォーマネットワークによる読み順 図6
  • 特表-ポインタトランスフォーマネットワークによる読み順 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-02
(54)【発明の名称】ポインタトランスフォーマネットワークによる読み順
(51)【国際特許分類】
   G06F 40/279 20200101AFI20240925BHJP
【FI】
G06F40/279
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024513770
(86)(22)【出願日】2022-08-25
(85)【翻訳文提出日】2024-04-05
(86)【国際出願番号】 US2022075454
(87)【国際公開番号】W WO2023034715
(87)【国際公開日】2023-03-09
(31)【優先権主張番号】63/260,831
(32)【優先日】2021-09-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ETHERNET
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】レベック,アンリ
(72)【発明者】
【氏名】トンバーリ,フェデリコ
(72)【発明者】
【氏名】アロヨ,ディエゴ・マルティン
(57)【要約】
複数のレイアウトコンポーネントを含む文書を表す画像を受け取ることと、複数のレイアウトコンポーネントに関連付けられたテキスト情報を特定することと、複数のレイアウトコンポーネントに関連付けられた視覚情報を特定することと、テキスト情報を視覚情報と組み合わせることと、セルフアテンションエンコーダ/デコーダを使用して、組み合わされたテキスト情報および視覚情報に基づいて、複数のレイアウトコンポーネントの読み順を予測することとを含む方法。
【特許請求の範囲】
【請求項1】
複数のレイアウトコンポーネントを含む文書を表す画像を受け取ることと、
前記複数のレイアウトコンポーネントに関連付けられたテキスト情報を特定することと、
前記複数のレイアウトコンポーネントに関連付けられた視覚情報を特定することと、
前記テキスト情報を前記視覚情報と組み合わせることと、
セルフアテンションエンコーダ/デコーダを使用して、前記組み合わされた前記テキスト情報および前記視覚情報に基づいて、前記複数のレイアウトコンポーネントの読み順を予測することと、
を含む方法。
【請求項2】
前記テキスト情報の前記特定は、前記画像からテキストベースのデータを抽出することを含む、請求項1に記載の方法。
【請求項3】
前記テキストベースのデータの前記抽出は、前記テキスト情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含む、請求項2に記載の方法。
【請求項4】
前記ニューラルネットワークは、テキストデータを埋め込みにマッピングする事前トレーニングされたニューラルネットワークであり、
配列が、前記複数のレイアウトコンポーネントの各レイアウトコンポーネントに関連付けられた前記テキストベースのデータを含む要素を含む、
請求項3に記載の方法。
【請求項5】
前記視覚情報の前記特定は、前記画像から視覚ベースのデータを抽出することを含む、請求項1~請求項4のいずれかに記載の方法。
【請求項6】
前記視覚ベースのデータの前記抽出は、前記視覚情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含む、請求項5に記載の方法。
【請求項7】
前記ニューラルネットワークは、2次元畳み込み演算であり、
前記埋め込みは配列を含み、
前記配列は、前記複数のレイアウトコンポーネントの各々に関連付けられた前記視覚ベースのデータを含む要素を含む、
請求項6に記載の方法。
【請求項8】
前記ニューラルネットワークは、複数の2次元畳み込み演算を含み、
前記埋め込みは、関連するレイアウトコンポーネントに関連付けられた前記視覚ベースのデータと、少なくとも1つの追加のレイアウトコンポーネントに関連付けられた前記視覚ベースのデータとを含む要素を含む配列を含む、
請求項6に記載の方法。
【請求項9】
前記テキスト情報は、第1の埋め込みに関連付けられ、
前記視覚情報は、第2の埋め込みに関連付けられ、
前記テキスト情報の前記視覚情報との前記組み合わせは、前記第1の埋め込みを前記第2の埋め込みと連結することを含む、
請求項1~請求項8のいずれかに記載の方法。
【請求項10】
前記セルフアテンションエンコーダ/デコーダは、
前記複数のレイアウトコンポーネントに関連付けられた第1のシーケンスに基づいて埋め込みを生成するように構成されたセルフアテンションエンコーダを含み、前記第1のシーケンスは第1の順序を有し、
前記埋め込みに基づいて第2のシーケンスを生成するように構成されたセルフアテンションデコーダを含み、前記第2のシーケンスは第2の順序を有する、
請求項1~請求項9のいずれかに記載の方法。
【請求項11】
前記セルフアテンションエンコーダ/デコーダは、
セット内の要素の対の間の関係を重み付けし、
前記要素に対する埋め込みを生成する
ように構成されたセルフアテンションエンコーダを含む、請求項1~請求項10のいずれかに記載の方法。
【請求項12】
前記セルフアテンションエンコーダ/デコーダは、前記組み合わされた前記テキスト情報および前記視覚情報に基づいて、埋め込み内の各要素の影響を決定するように構成されたセルフアテンションエンコーダを含む、請求項1~請求項11のいずれかに記載の方法。
【請求項13】
前記セルフアテンションエンコーダ/デコーダは、自己回帰推論として動作するように構成されたセルフアテンションデコーダを含む、請求項1~請求項12のいずれかに記載の方法。
【請求項14】
前記セルフアテンションエンコーダ/デコーダは、前記複数のレイアウトコンポーネントに関連付けられた前記読み順で次のレイアウトコンポーネントを自己回帰的に予測するように構成されたセルフアテンションデコーダを含む、請求項1~請求項13のいずれかに記載の方法。
【請求項15】
前記セルフアテンションエンコーダ/デコーダは、セルフアテンションエンコーダおよびセルフアテンションデコーダを含み、
前記セルフアテンションデコーダは、前記セルフアテンションエンコーダの要素と前記セルフアテンションデコーダへの入力との間でQKV外積を実行するように構成されている、請求項1~請求項14のいずれかに記載の方法。
【請求項16】
少なくとも1つのプロセッサによって実行されると、コンピューティングシステムに請求項1~請求項15のいずれかに記載の方法を実行させるように構成されている命令が格納されている、非一時的コンピュータ可読記憶媒体。
【請求項17】
請求項1~請求項15のいずれかに記載の方法を実行する手段を備えた装置。
【請求項18】
装置であって、
少なくとも1つのプロセッサと、
コンピュータプログラムコードを含む少なくとも1つのメモリと、
を備え、
前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサにより、前記装置に少なくとも請求項1~15のいずれかに記載の方法を実行させるように構成されている、装置。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年9月1日に出願された「DEEP READING ORDER WITH POINTER TRANSFORMER NETWORKS」と題する米国仮特許出願第63/260,831号に対する優先権を主張するものであり、その開示内容は参照によりその全体が本明細書に組み込まれる。
【0002】
分野
実施態様は、文書、画像などの読み順を検出することに関する。
【背景技術】
【0003】
背景
読み順検出は、あらゆるテキスト認識(text perception)システムの一構成要素である。読み順検出は、レイアウトコンポーネント(例えば、段落、要約、画像など)の間の首尾一貫した順序付けられた関係を特定することを目的とする文書画像理解タスクである。読み順検出アルゴリズムは、多くの場合、手作業で作成された読み順ルールのセットを使用する。しかしながら、これらのルールは、多くの例(例えば、表および受領書)で満足のいく結果を提供できず、異なる言語(例えば、日本語またはアラビア語など、右から左への言語)をサポートするためには、注意深く調整するかまたは手作業で適合させる必要がある。読み順検出は、多くのテキスト関連アプリケーション(例えば、テキストのコピー/貼り付け、テキスト音声変換における読み上げ、文書翻訳など)の一要素となり得る一構成要素である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
概要
一実施態様例では、エンコーダ/デコーダ構造を使用して、文書読み順を予測することができる。エンコーダは、第1のランダムな順序のレイアウトコンポーネントのシーケンスに基づいて埋め込み(embedding)を生成するように構成することができ、デコーダは、その埋め込みに基づいて第2の読み順のレイアウトコンポーネントのシーケンスを生成するように構成することができる。
【0005】
全体的な態様では、デバイス、システム、(コンピュータシステム上で実行することができるコンピュータ実行可能プログラムコードが格納されている)非一時的コンピュータ可読媒体、および/または方法は、複数のレイアウトコンポーネントを含む文書を表す画像を受け取ることと、複数のレイアウトコンポーネントに関連付けられたテキスト情報を特定することと、複数のレイアウトコンポーネントに関連付けられた視覚情報を特定することと、テキスト情報を視覚情報と組み合わせることと、セルフアテンション(self-attention)エンコーダ/デコーダを使用して、組み合わされたテキスト情報および視覚情報に基づいて、複数のレイアウトコンポーネントの読み順を予測することとを含む方法を含むプロセスを実行することができる。
【0006】
実施態様は、以下の特徴の1つまたは複数、またはそれらの任意の組み合わせを含むことができる。
【0007】
例えば、テキスト情報の特定は、画像からテキストベースのデータを抽出することを含む。テキストベースのデータの抽出は、テキスト情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含むことができる。ニューラルネットワークは、テキストデータを埋め込みにマッピングする事前トレーニングされたニューラルネットワークであってもよく、配列が、複数のレイアウトコンポーネントの各レイアウトコンポーネントに関連付けられたテキストベースのデータを含む要素を含むことができる。視覚情報の特定は、画像から視覚ベースのデータを抽出することを含むことができる。視覚ベースのデータの抽出は、視覚情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含むことができる。ニューラルネットワークは、2次元畳み込み演算であってもよく、埋め込みは配列を含むことができ、配列は、複数のレイアウトコンポーネントの各々に関連付けられた視覚ベースのデータを含む要素を含むことができる。ニューラルネットワークは、複数の2次元畳み込み演算を含んでもよく、埋め込みは、関連するレイアウトコンポーネントに関連付けられた視覚ベースのデータと、少なくとも1つの追加のレイアウトコンポーネントに関連付けられた視覚ベースのデータとを含む要素を含む配列を含んでもよい。また、テキスト情報を、第1の埋め込みに関連付けてもよく、視覚情報を、第2の埋め込みに関連付けてもよく、テキスト情報の視覚情報との組み合わせは、第1の埋め込みを第2の埋め込みと連結することを含んでもよい。セルフアテンションエンコーダ/デコーダは、複数のレイアウトコンポーネントに関連付けられた第1のシーケンスに基づいて埋め込みを生成するように構成されたセルフアテンションエンコーダを含んでもよく、第1のシーケンスは第1の順序を有し、埋め込みに基づいて第2のシーケンスを生成するように構成されたセルフアテンションデコーダを含んでもよく、第2のシーケンスは第2の順序を有する。セルフアテンションエンコーダ/デコーダは、セット内の要素の対の間の関係を重み付けし、要素に対する埋め込みを生成するように構成されたセルフアテンションエンコーダを含んでもよい。セルフアテンションエンコーダ/デコーダは、組み合わされたテキスト情報および視覚情報に基づいて、埋め込み内の各要素の影響を決定するように構成されたセルフアテンションエンコーダを含んでもよい。セルフアテンションエンコーダ/デコーダは、自己回帰推論として動作するように構成されたセルフアテンションデコーダを含んでもよい。セルフアテンションエンコーダ/デコーダは、複数のレイアウトコンポーネントに関連付けられた読み順で次のレイアウトコンポーネントを自己回帰的に予測するように構成されたセルフアテンションデコーダを含んでもよい。セルフアテンションエンコーダ/デコーダは、セルフアテンションエンコーダおよびセルフアテンションデコーダを含んでもよく、セルフアテンションデコーダは、セルフアテンションエンコーダの要素とセルフアテンションデコーダへの入力との間でQKV外積を実行するように構成してもよい。
【0008】
実施態様例は、本明細書で後に記載する詳細な説明および添付の図面からより完全に理解されよう。図面において、同様の要素は同様の参照番号で表されており、図面は、単に例示のためにのみ与えられ、したがって実施態様例を限定するものではない。
【図面の簡単な説明】
【0009】
図1】一実施態様例によるデータフローブロック図である。
図2A】一実施態様例によるデータフローブロック図である。
図2B】一実施態様例によるシーケンスループのブロック図である。
図3】一実施態様例によるデータフローブロック図である。
図4】一実施態様例による読み順を生成する方法のブロック図である。
図5】一実施態様例によるシステムのブロック図である。
図6】少なくとも1つの実施態様例によるコンピュータデバイスおよびモバイルコンピュータデバイスの一例を示す図である。
図7】一実施態様例による読み順を絵で示す図である。
【発明を実施するための形態】
【0010】
これらの図は、いくつかの実施態様例において利用される方法、構造、および/または材料の全体的な特徴を例示し、以下に提供する書面による説明を補足するように意図されていることが留意されるべきである。しかしながら、これらの図面は、縮尺通りではなく、任意の所与の実施態様の正確な構造上のまたは性能の特性を正確に反映しない可能性があり、実施態様例によって包含される値または特性の範囲を定義または限定するものとして解釈されるべきではない。例えば、層、領域、および/または構造要素の相対的な厚さおよび位置決めは、明確にするために縮小または誇張している場合がある。さまざまな図面における同様のまたは同一の参照番号の使用は、同様のまたは同一の要素または特徴の存在を示すことが意図されている。
【0011】
詳細な説明
読み順検出の大部分の手法は、読み順検出のために、手作業で開発されたルールベースのアルゴリズム、ヒューリスティック、または学習済みモデルを使用する。レイアウトコンポーネント(段落など)のセットから読み順を抽出する学習済みの手法の1つは、2段階の様式を使用する。最初に、単純ベイズ分類器を使用して、手作業で設計された記述子のセットに基づいて(例えば、2つの段落の位置、形状、タイプ、およびトポロジカルな関係に基づいて)、任意の2つの段落が連続する確率を学習することができる。次いで、これらの確率は、最初に最も可能性の高い最初の段落を見つけ、最も高い確率を持つエッジに沿って徐々にチェーンを成長させることによって、読み順チェーンに変換される。これらの手法は、理論的には適応的な読み順ルールを学習することができるが、対ごとの確率を読み順に変換するために、手作業による特徴量エンジニアリングおよびハードコーディングされたグラフヒューリスティックを必要とする。加えて、学習済みモデルは、多くの場合、1つの文書構造、または科学論文などのよく知られた構造を有する文書に対して有効である。
【0012】
これらの読み順検出の問題を解決することは、機械学習済み(ML)モデルを使用して、ラベル付けされたデータからレイアウトコンポーネント(例えば、段落、タイトル、要約、画像など)のセットの読み順を予測するように学習することを含むことができる。読み順検出は、不特定の順序でのN個の入力レイアウトコンポーネントのセット{P1,P2,…,PN}を首尾一貫した読み順{PC(i)}i=1…Nに並べ替えることを含むことができ、ここで、C(i)ε[1,N]であり、Pはレイアウトコンポーネントを表し、Cは位置(例えば、インデックス)iでの順序を表す。実施態様は、出力シーケンスの要素(並べ替えられたレイアウトコンポーネント)が入力シーケンスからサンプリングされるべきであるシーケンス対シーケンス問題として読み順をモデル化することができる。実施態様例は、修正されたポインタネットワークを使用して、出力として入力シーケンスのメンバを選択することができる。ポインタネットワークは、入力シーケンスのメンバを出力として選択するためのポインタとしてアテンションを使用することができる。実施態様例は、長・短期記憶(LSTM:Long Short-Term Memory)バックボーンまたはエンコーダ-デコーダ変換モジュールを使用することができる。
【0013】
この手法は、可変サイズの出力セットに一般化することができ、それにより、入力シーケンスにおける段落数が事前に不明である場合に、読み順を検出または予測することを可能にすることができる。この技術により、手作業で設計されたルールに基づく既存の手法、および読み順ルールを学習する手法と比較して、読み順精度を向上させることができる。
【0014】
実施態様例では、読み順は、エンコーダ/デコーダ構造を使用して決定することができる。エンコーダは、第1の順序のレイアウトコンポーネントのシーケンス(例えば、入力シーケンス)に基づいて埋め込みを生成するように構成することができ、デコーダは、埋め込みに基づいて第2の順序のレイアウトコンポーネントのシーケンス(例えば、出力シーケンスまたは読み順シーケンス)を生成するように構成することができる。図1を使用して、エンコーダ/デコーダ構造におけるデータフロー(または情報フロー)を説明することができる。
【0015】
図1は、実施態様例によるデータフロー図のブロック図を示す。図1に示すように、データフローは、文書105ブロックと、エンコーダ110ブロックと、デコーダ115ブロックと、シーケンサ120ブロックと、アテンション関数125ブロックとを含むことができる。文書105は、画像として処理することができる任意の文書を含むことができる。文書105は、少なくとも1つのレイアウトコンポーネント(例えば、段落、要約、テキスト、画像など)を含むことができる。実施態様例では、文書および/または画像は、テキストおよび/またはテキストデータを含む。文書105に対する読み順を望むことができる。したがって、文書105は、文書105に対する読み順を生成するように構成されたシステム(例えば、コンピューティングシステム、少なくともメモリおよびプロセッサを含むシステムなど)に対する入力と称することができる。文書105を表す画像例705-1-1、705-1-2を図7に示す。
【0016】
エンコーダ110は、画像の一部をレイアウトコンポーネントとして受け取るように構成することができる。例えば、画像705-1、705-1-2は、特定された複数のレイアウトコンポーネントを示し、各レイアウトコンポーネントの周囲にボックスがある。レイアウトコンポーネント715は、画像705-1、705-1-2に示すレイアウトコンポーネントの1つの例である。エンコーダ110によって受け取られたレイアウトコンポーネントは、最初はランダムな順序で配列することができる。言い換えれば、レイアウトコンポーネントに関連する情報をデータ構造に格納し、レイアウトコンポーネントが最初はランダムな順序で格納(配列)されるようにラベル付けすることができる。情報および/またはデータ構造は、埋め込みとして符号化することができる。したがって、エンコーダ110は、レイアウトコンポーネントを表す(ランダム順序シーケンスを含む)情報を含む埋め込みを生成するように構成することができる。埋め込みを使用して、離散変数を連続ベクトルとして表現することができる。言い換えれば、埋め込みは、離散(例えば、カテゴリ)変数の連続数値のベクトルへのマッピングであり得る。
【0017】
エンコーダ110は、各レイアウトコンポーネントを離散変数として分類し、それらを連続数値のベクトルにマッピングするように構成することができる(例えば、埋め込み)。エンコーダ110は、レイアウトコンポーネントを特定し、特定されたレイアウトコンポーネントを分類し、分類された、特定されたレイアウトコンポーネントに基づいて埋め込みを生成するようにトレーニングされる(例えば、事前トレーニングされる)ことを含む、埋め込みを生成するようにトレーニングされた(例えば、事前トレーニングされた)ニューラルネットワーク(例えば、ディープラーニング、2次元(2D)畳み込みニューラルネットワーク(CNN)、LSTM、トランスフォーマ(Transformer)など)であり得る。(エンコーダ110の)ニューラルネットワークをトレーニングすることは、ラベル付けされた(したがって、特定された)レイアウトコンポーネントを有する画像を使用することを含むことができる。したがって、トレーニングは、教師あり学習技術を使用することを含むことができる。
【0018】
デコーダ115は、連続数値のベクトル(例えば、エンコーダ110によって生成されたベクトルまたは埋め込み)を離散変数のシーケンスにマッピングするように構成することができる。離散変数は、カウントすることによって値が得られる変数とすることができる。文書105に関連付けられた一定数のレイアウトコンポーネントがあり、各コンポーネントは、離散変数に関連付ける(または離散変数によって特定する)ことができる。したがって、離散変数のシーケンスは、レイアウトコンポーネントの初期シーケンスを表すことができる。離散変数のシーケンスは、(例えば、文書の)レイアウトを表す情報と、レイアウトコンポーネントのインデックスとを含むことができる。言い換えれば、離散変数はレイアウトコンポーネントを表すことができ、シーケンスはレイアウトコンポーネントの順序に関する情報を表す。最初は、シーケンスの順序はランダムな順序であり得る。離散変数のシーケンスはデコーダ115の出力である。任意の特定のレイアウトコンポーネントのインデックスは、読み順におけるそのコンポーネントの位置を表す。デコーダの出力は、予測された読み順と称することができる。
【0019】
シーケンサ120は、ベクトルに基づいて、順序付けられたシーケンスを読み順130として生成するように構成することができる。例えば、(埋め込みの)各ベクトルは、レイアウトコンポーネントに関連する複数の特徴を表すことができる。ベクトルの要素は、レイアウトコンポーネントが読み順の次のレイアウトコンポーネントである確率を表すことができる。最も大きいすなわち最大値を有するベクトルの要素は、順序付けられたシーケンスにおける次のレイアウトコンポーネントを表すことができる。
【0020】
シーケンサ120は、順序付けられたシーケンス、例えば出力シーケンスを特定するために、レイアウトコンポーネント(例えば、埋め込み)の反復解析を実行することができる。ベクトルの最初の解析は、読み順での第1のレイアウトコンポーネントを特定することができ、残りのベクトルの第2の解析は、第2のレイアウトコンポーネントを特定することができ、埋め込みにおけるすべてのベクトルが解析されるまで同様に続く。順序付けられたシーケンスに対してレイアウトコンポーネントが選択された後、アテンション関数125はセルフアテンション関数であり得る。アテンション関数125は、シーケンスにおける位置がそのシーケンスにおける後続の位置に注意を向けないように構成することができる。このマスキングは、位置iに対する予測がi未満の位置における既知の出力にのみ依存することができることを確実にすることができる。アテンション関数125は、対応するベクトルの合計された特徴量または各特徴量を減衰させることができる。例えば、アテンション関数125は、対応するベクトルの合計された特徴量または各特徴量を予め決められた値(例えば、-1、0、1)に設定することができる。したがって、選択されたレイアウトコンポーネントを表す合計された特徴量は、最も大きい値すなわち最大値を有する合計された特徴量であってはならない。解析を終了するために停止トークンベクトルを使用することができる。例えば、埋め込み内のベクトルに停止トークン値を追加することができ、解析中のベクトルが停止トークン値に等しい値を有する場合、シーケンサ120は解析を終了させることができる。上述したループは、アテンション関数125ブロックからデコーダ115ブロックへの線および矢印によって表されている。アテンション関数125ブロックは、成分または合計成分を減衰させるための基礎として、埋め込みにおけるベクトルを使用することができる。この停止トークンベクトルは、エンコーダ110ブロックからアテンション関数125への線および矢印によって表されている。
【0021】
いくつかの実施態様では、デコーダ115、シーケンサ120、およびアテンション関数125は、ともに動作する単一のプロセスとして実装することができる。したがって、デコーダ115に言及することは、シーケンサ120およびアテンション関数125が含まれることを暗示することができる。
【0022】
実施態様例では、ニューラルネットワークは、エンコーダ(例えば、エンコーダ110)および/またはデコーダ(例えば、デコーダ115)として(またはその要素として)使用することができる。ニューラルネットワークは、回帰型ニューラルネットワーク(RNN)とすることができる。ニューラルネットワークは、入力シーケンスを、RNNの第1の層に供給されるコードに変換する符号化RNNとすることができる(生成ネットワークと呼ばれる場合もある)。各ステップにおいて、RNNは、入力に対するコンテンツベースのアテンション機構を調節するベクトルを生成することができる。コンテンツベースのアテンション機構は、入力の特徴(例えば、レイアウトコンポーネントのうちの1つ)とメモリに格納された特徴(例えば、以前に処理されたレイアウトコンポーネントに関連付けられた特徴)との間の類似性に基づいてベクトルを作成するように構成することができる。
【0023】
実施態様例は、ソフトマックス関数(または正規化指数関数)を使用することができる。ソフトマックス関数を使用して、予測された出力クラスまたはカテゴリに対する確率分布にネットワークの出力を正規化することができる。ソフトマックス関数の出力を使用して、クラスまたはカテゴリ分布を表すことができる。コンテンツベースのアテンション機構の出力(例えば、ベクトルの特徴)は、入力の長さに等しい辞書サイズを有するソフトマックス分布とすることができる。ソフトマックス分布は、ベクトルの特徴に(例えば、分散された方法で)関連付けられた値に対する重みを生成するように構成された関数に基づくことができる。コンテンツベースのアテンション機構は、エンコーダとデコーダとを接続するインターフェースとすることができる。このインターフェースは、エンコーダの隠れ状態からの情報をデコーダに提供するように構成することができる。隠れ状態または出力は、入力シーケンス(例えば、読み順でないシーケンス)における各レイアウトコンポーネントに対して生成することができる。隠れ状態は、先行する時間ステップからのデータを使用して生成された入力(例えば、入力シーケンスにおける先行するレイアウトコンポーネントの処理への入力)とすることができる。
【0024】
このフレームワークにより、モデルは、入力シーケンスの有用な部分に選択的に焦点を当てることができる。言い換えれば、コンテンツベースのアテンション機構は、関連する特徴(例えば、レイアウトコンポーネントの特徴)を選択的に処理し、他の特徴を無視することができる。コンテンツベースのアテンション機構は、コサイン類似度に基づくアテンション機構とすることができる。機械学習において、コサイン類似度は、2つ以上のベクトル(上述したように、ベクトルはレイアウトコンポーネントを表すことができる)の間の類似度を定量化する測定値とすることができる。コサイン類似度は、ベクトル間の角度のコサインとすることができる。数学的には、コサイン類似度は、ベクトルのドット積と各ベクトルのユークリッドノルムまたは大きさの積との境界として記述することができる。
【0025】
数学的には、ソフトマックス関数(例えば、上述したように、重みを生成するように構成された関数)は、K個の実数のベクトルzを入力として取り込み、そのベクトルを、入力数値の指数に比例するK個の確率からなる確率分布に正規化することができる。図2Aに記載するエンコーダ/デコーダは、アテンションエンコーダ(例えば、エンコーダ110)および/またはアテンションデコーダ(例えば、デコーダ115)の一例であり得る。
【0026】
図2Aは、実施態様例によるデータフローブロック図を示す。図2Aに示すように、データフローは、文書105ブロックと、エンコーダ110ブロックと、デコーダ115ブロックと、シーケンサ120ブロックと、出力220ブロックとを含む。文書105は、レイアウトコンポーネント225-1、225-2、225-3、225-4、および225-5を含む。文書105は、エンコーダ110に(例えば、画像として)入力される。レイアウトコンポーネント225-1、225-2、225-3、225-4、および225-5はまた、停止トークン230とともに、括弧245内にランダムな順序で示す。
【0027】
エンコーダ110は、セルフアテンションエンコーダ205ブロックを含む。セルフアテンションエンコーダ205は、括弧245に含まれるレイアウトコンポーネント225-1、225-2、225-3、225-4、225-5、および停止トークン230のランダムな順序を含む埋め込みを生成するように構成することができる。したがって、埋め込み250における各ベクトルは、括弧245に含まれるレイアウトコンポーネント225-1、225-2、225-3、225-4、225-5、および停止トークン230のうちの1つを表す。
【0028】
セルフアテンションエンコーダ205は、シーケンス内の要素のすべての対の間の関係に重み付けを行い、入力、例えば、括弧245内の順序付けられていないレイアウトコンポーネントにおけるすべての要素に対する高次元埋め込みを生成する、セルフアテンションモジュールとすることができる。各埋め込みは、デコーダ115に含まれるエンコーダ-デコーダアテンション210へのクエリ(Query)入力およびキー(Key)入力として使用することができる。セルフアテンションエンコーダ205は、入力における各要素が他の要素に与える影響を発見するように、自動的に学習することができる。これは、セルフアテンションエンコーダ205を使用することにより、シーケンス間学習に使用される他のエンコーダ/デコーダアルゴリズム(例えば、長・短期記憶(LSTM))を使用するよりも豊富な表現を作成することができるため、有利である。
【0029】
デコーダ115は、セルフアテンションデコーダ215ブロックを含む。セルフアテンションデコーダ215は、ループ内で動作して、出力の各要素を逐次生成することができる。時刻Tにおける出力は、時刻T-1における入力に基づくことができる。例えば、セルフアテンションデコーダ215は、入力へのポインタ(例えば、入力シーケンスにおける要素のインデックス)を自己回帰的に予測することができる。いくつかの実施態様では、出力要素は、エンコーダ110の出力に対するアテンションのみを使用して読み順を生成するのではなく、入力シーケンスにおける位置(例えば、インデックス)に対応することができる。セルフアテンションデコーダ215は、各デコーダステップ(または反復)において、出力として1つを選択するために、入力要素に対して(例えば、ポインタネットワークを使用して)アテンションを適用するように構成することができる。各デコーダステップで選択される要素は、予測された(例えば、自己回帰的に予測された)ポインタとすることができる。自己回帰的に予測されたポインタは、ロジット分布としてモデル化することができる。線および矢印240は、停止トークン230に対応するベクトルが到達するまで、デコーダが埋め込み(例えば、ベクトル)に対して動作するループとして動作することができることを表す。言い換えれば、停止トークン230は、(括弧245に示すように)埋め込み250に追加することができ、ループの間に、停止トークンが処理されるかまたは操作されると、ループは終了し、デコーダ115は処理を完了したことになる。ループの間、停止トークン230が最大値を有するベクトルである場合、すべてのベクトル(例えば、レイアウトコンポーネント)が処理されたことになり、ループは終了することができる。
【0030】
デコーダ215の1つまたは複数(または各)の層は、エンコーダ入力と、Q・K、既存のデコーダのVの要素としての既存のデコーダ要素との間のクエリ(または行列)、キー、バリュー(Value)、(またはトークン)(QKV)外積であって、サイズ|デコーダ入力|×|エンコーダ入力|の行列を生成することができ、その行はエンコーダの入力識別子(ID)に対するロジットと考えることができ、したがって分類に使用される任意の損失で正則化することができる。シーケンサ120は、例えば、関数argmax()を使用して、次の要素へのインデックス(例えば、ポインタ)を決定することができる。シーケンサ120は、補助的なシーケンス開始トークンからなる単一要素シーケンスで開始することができ、別の追加のトークン(例えば、停止トークン230またはシーケンス停止)へのポインタが生成されるまで、先行する要素が与えられると各新たなポインタを自己回帰的に予測する。
【0031】
シーケンサ120の出力は、線および矢印240によって表される各ループの間に出力シーケンス255の各要素を生成することができる。出力シーケンス255は、ループが完了したときの読み順を表すことができる。ループの反復については、図2Bに関して後述する。出力220は、各レイアウトコンポーネント235-1、235-2、235-3、235-4、および235-5を有する文書105を読み順で示す。言い換えれば、読み取られると予測される最初のレイアウトコンポーネントは、レイアウトコンポーネント235-1とすることができ、読み取られると予測される最後のレイアウトコンポーネントは、レイアウトコンポーネント235-5とすることができる。再び図7を参照すると、画像705-1-2における点線720は、関連する出力シーケンスに基づいて、開始Sから終了Eまでの読み順を絵で表すことができる。
【0032】
図2Bは、一実施態様例によるシーケンスループおよびその出力のブロック図を示す。シーケンスループは、図2Aのデータフローを実行する機能部分、例えば、線および矢印240によって表されているループとすることができる。上述したように、シーケンサ120は、例えば、関数argmax()を使用して、例えば、レイアウトコンポーネントを表す特徴量のベクトル和に基づいて、次の要素へのインデックス(例えば、ポインタ)を決定することができる。関数argmax()を使用すると、最大値を有するベクトルが次の要素となることができ、これが出力シーケンス255に出力される。例えば、各ベクトルは、特定の時間ステップにおいて、各レイアウトコンポーネントが次である尤度を表す。ベクトルの各要素は、対応するレイアウトが出力順において次になる尤度を表す数値とすることができる。最も大きい値を有する(例えば、レイアウトコンポーネントを表す)ベクトルの要素は、読み順において次のレイアウトコンポーネントとすることができる(例えば、そうであるものと予測することができる)。
【0033】
反復260-1において、シーケンサ120の関数(例えば、argmax())は、最大値を有するベクトルがレイアウトコンポーネント225-4に関連付けられたベクトルである状態で実行される。したがって、シーケンサ120は、出力シーケンス255に追加されるレイアウトコンポーネント225-4として次の要素を出力する(反復260-1では、出力シーケンスはコンポーネント225-4のみを含む)。反復260-2において、シーケンサ120の関数は、最大値を有するベクトルがレイアウトコンポーネント225-1に関連付けられたベクトルである状態で実行される。したがって、シーケンサ120は、次の要素であるレイアウトコンポーネント225-1を出力し、それを出力シーケンス255に、例えばコンポーネント225-4の後に追加する。反復260-3において、シーケンサ120の関数は、最大値を有するベクトルがレイアウトコンポーネント225-2に関連付けられたベクトルである状態で実行される。したがって、シーケンサ120は、次の要素としてレイアウトコンポーネント225-2を出力し、それをコンポーネント225-1の後に出力シーケンス255に追加する。
【0034】
反復260-4において、シーケンサ120の関数は、最大値を有するベクトルがレイアウトコンポーネント225-3に関連付けられたベクトルである状態で実行される。したがって、シーケンサ120は、出力シーケンス255における次の要素としてレイアウトコンポーネント225-3を出力する。反復260-5において、シーケンサ120の関数は、最大値を有するベクトルがレイアウトコンポーネント225-5に関連付けられたベクトルである状態で実行される。したがって、シーケンサ120は、出力シーケンス255における次の要素としてレイアウトコンポーネント225-5を出力する。反復260-6において、シーケンサ120の関数は、最大値を有するベクトルが停止トークン230に関連付けられたベクトルである状態で実行される。したがって、シーケンサ120は、出力シーケンス255における次の要素として停止トークン230を出力する。上述したように、埋め込みの各ベクトルは、それぞれのレイアウトコンポーネントを表すことができる。これらのベクトルを生成することについて、図3に関して説明することができる。
【0035】
図3は、一実施態様例によるデータフローブロック図を示す。図3に示すように、データフローは、(入力としての)文書105と、レイアウトコンポーネント305と、順序付けられたレイアウトコンポーネント310と、コンポーネントモデル315ブロックと、読み順320モデルブロックとを含む。コンポーネントモデル315は、文書105を入力として取り込んで、少なくとも1つのレイアウトコンポーネント(例えば、段落、要約、テキスト、画像など)をレイアウトコンポーネント305として特定するように構成することができる。レイアウトコンポーネント305は、レイアウトコンバイナ335ブロックを使用して、埋め込み330(例えば、最初のまたは第1の埋め込み)と合わせて連結またはリンクすることができ、その後、レイアウトコンバイナ335ブロックは、順序付けられたレイアウトコンポーネント310を予測(または生成)するために、読み順モデル320に入力される。
【0036】
コンポーネントモデル315は、入力画像(例えば、文書105)に基づいて、少なくとも1つのコンポーネント(例えば、段落、要約、テキスト、画像など)を特定するように構成することができる。コンポーネントモデル315は、ニューラルネットワーク、例えば、少なくとも1つの畳み込み325ブロック、または畳み込み演算を含むことができる。畳み込み325は、2次元(2D)畳み込み演算とすることができ、その理由は、2D畳み込み(例えば、CNN)は、複数のスケールにまたがる画像情報を捕捉するのに有効であり得るためである。畳み込み325は、複数のベクトル350を含む埋め込み330を生成するように構成することができる。ベクトル350の数は、文書105に関連付けられた(例えば、文書105において特定された)レイアウトコンポーネントの数に基づくことができる。したがって、各ベクトルは、それぞれのレイアウトコンポーネントに対応することができる。各ベクトル350は、それぞれのレイアウトコンポーネントに対応するが、少なくとも1つの他のレイアウトコンポーネントに関連付けられた情報(例えば、特徴)も同様に含むことができる。言い換えれば、各連続畳み込み325は、ベクトル内の成分間の情報影響を生成することができる。例えば、各ベクトル350は、各連続畳み込み325の後に、そのそれぞれの成分および隣接する成分に関する情報を含むことができる。この情報影響は、読み順の予測に役立つことができる。
【0037】
畳み込み325は、文書105を表す画像から特徴を抽出するように構成することができる。特徴は、レイアウトコンポーネント(例えば、段落、タイトル、要約、画像など)、コンポーネントの位置、コンポーネントのサイズ、色、空白(コンポーネントなし)、他のコンポーネントに対するコンポーネントの位置などに基づくことができる。特徴は、数値を使用して表すことができる。畳み込みは、フィルタ(カーネルと呼ばれることもある)とストライドを有することができる。例えば、フィルタは、M×Mグリッドの位置における各チャネルのセルの特徴の組み合わせ(例えば、加算、減算、乗算など)に基づいて生成されたセルの出力をもたらす、ストライドが1の1×1フィルタ(または、n個の出力チャネルへの変換の場合は1×1×n、1×1フィルタは点単位(pointwise)畳み込みと呼ばれることもある)とすることができる。言い換えれば、2つ以上の深さまたはチャネルを有する特徴マップが、単一の深さまたはチャネルを有する特徴マップに結合される。フィルタは、M×Mグリッドまたは特徴マップの各チャネルにおける/各チャネルのためのセルの数がより少ない出力をもたらす、ストライドが1の3×3フィルタとすることができる。出力は、同じ深さまたはチャネルの数(例えば、3×3×nフィルタ、ここで、n=深さまたはチャネルの数、深さ単位(depthwise)フィルタと呼ばれることもある)、または低減した深さまたはチャネルの数(例えば、3×3×kフィルタ、ここで、k<深さまたはチャネルの数)を有することができる。各チャネル、深さ、または特徴マップは、関連するフィルタを有することができる。各関連するフィルタは、チャネルの異なる態様を強調するように構成することができる。言い換えれば、フィルタに基づいて各チャネルから異なる特徴を抽出することができる(これは、深さ単位分離可能(depthwise separable)フィルタと呼ばれることもある)。フィルタ(カーネルまたはマスクと呼ばれることもある)は、1つの重みまたは複数の重みを有することができる。重みは、トレーニング動作中、例えば、コンポーネントモデル315のトレーニング中に、変更または学習することができる。言い換えれば、MLモデル(例えば、CNN、RNNなど)において、フィルタ(カーネルまたはマスク)に関連付けられた重みは、トレーニング動作中に修正することができる。他のフィルタも本開示の範囲内にある。
【0038】
別のタイプの畳み込みは、混合(blended)畳み込みと呼ばれることもある、2つ以上の畳み込みの組み合わせとすることができる。例えば、畳み込みは、深さ単位および点単位分離可能畳み込みとすることができる。これは、例えば、2段階の畳み込みを含むことができる。第1の段階は、深さ単位畳み込み(例えば、3×3畳み込み)とすることができる。第2の段階は、点単位畳み込み(例えば、1×1畳み込み)とすることができる。深さ単位および点単位畳み込みは、特徴マップの各チャネルまたは各深さに対して異なるフィルタ(例えば、異なる特徴を抽出するためのフィルタ)を使用することができるという点で、分離可能畳み込みとすることができる。いくつかの実施態様では、第1のタイプの畳み込みを使用してテキストを抽出することができ、一方で、第2のタイプの畳み込みを使用して絵図を抽出することができる。畳み込みは、回帰型ニューラルネットワークと再帰型ニューラルネットワークとの組み合わせ(またはその要素)とすることができる。回帰型ニューラルネットワークは、画像の領域を処理することによって画像から情報を抽出するように構成することができる。再帰型ニューラルネットワークは、シーン内のオブジェクト(例えば、レイアウトコンポーネント)の関係を処理するように構成することができる(例えば、文書105は、シーンとすることができ、シーンを含むことができ、またはシーンとみなすことができる)。
【0039】
畳み込みは線形とすることができる。線形畳み込みは、入力に関して、出力を線形時不変(LTI:linear time-invariant)として記述する。畳み込みは、正規化線形ユニット(ReLU:rectified linear unit)も含むことができる。ReLUは、畳み込みのLTI出力を正規化し(rectify)、正規化された出力を最大値に制限する、活性化関数である。ReLUを使用して、収束を加速させる(例えば、モデルのトレーニングがより効率的になるようにする)ことができる。
【0040】
コンポーネントモデル315のトレーニングは、畳み込み325に関連する重みを修正すること(例えば、フィルタを構成すること)を含むことができる。コンポーネントモデル315は、レイアウトコンポーネントを識別し、レイアウトコンポーネント間の関係を特定するためにトレーニングする(例えば、事前トレーニングする)ことができる。3つの畳み込み325を示すが、実施態様例は、4つまたは5つ以上の追加の畳み込み325を使用することを含むことができる。
【0041】
コンポーネントモデル315における各畳み込み325は、関連する重みを有することができる。関連する重みは、ランダムに初期化し、その後、各トレーニング反復(例えば、エポック)において修正することができる。トレーニングは、レイアウトコンポーネント間の識別およびレイアウトコンポーネント間の関係の特定を実装する(または実装するのに役立つ)ことに関連することができる。実施態様例では、ラベル付き入力画像(例えば、好ましい読み順を示すラベルを有する文書105)と予測された読み順とを比較することができる。ラベル付き読み順と予測された読み順との差に基づいて、損失を生成することができる。トレーニング反復は、損失が最小化されるまで、および/または、損失が反復ごとに著しく変化しなくなるまで、継続することができる。実施態様例では、損失が小さいほど、予測される読み順がより適切になる。
【0042】
コンポーネントモデル315は、レイアウトコンポーネント305の埋め込みを生成するように構成することができる。レイアウトコンポーネント305の埋め込みは、埋め込み330と同じ構造を有することができる。レイアウトコンバイナ335は、埋め込み330の少なくとも1つとレイアウトコンポーネント305とを連結するように構成することができる。例えば、埋め込み330のうちの第1のものは、レイアウトコンバイナ335によって、レイアウトコンポーネント305と連結されるように示されている。埋め込み330をレイアウトコンポーネント305と連結することにより、埋め込み330に関連付けられた(例えば、埋め込み330の各ベクトルに関連付けられた)情報の強調をもたらすことができる。
【0043】
レイアウトコンバイナ335の出力は、読み順モデル320、および読み順モデル320の一要素としてのセルフアテンションエンコーダ340への入力である。セルフアテンションエンコーダ340は、コンテキスト埋め込み345を生成するように構成することができ、このコンテキスト埋め込み345は、読み順モデル320の一要素としてセルフアテンションデコーダ355に入力される。セルフアテンションデコーダ355は、コンテキスト埋め込み345に基づいて、順序付けられたレイアウトコンポーネント310として読み順を生成するように構成することができる。コンテキスト埋め込み345は、複数のベクトル360を含むことができる。ベクトル360の数は、文書105に関連付けられた(例えば、文書105において特定された)レイアウトコンポーネントの数に基づくことができる。各ベクトル360は、各レイアウトコンポーネントに関連付けられた情報を含むことができる。各ベクトル360は、例えば合計することができる、複数の値(例えば整数値)を含むことができる。
【0044】
セルフアテンションエンコーダ340は、例えば、N=6個の同一の層のスタックから構成することができる。各層は2つのサブレイヤを有することができる。第1のサブレイヤは、マルチヘッドセルフアテンション機構とすることができる。第2のサブレイヤは、位置単位全結合フィードフォワード(position-wise fully connected feed-forward)ネットワークとすることができる。2つのサブレイヤの各々の周囲に残差接続を適用し、その後、レイヤ正規化を適用することができる。言い換えれば、各サブレイヤの出力はLayerNorm(x+Sublayer(x))とすることができる。ここでは、Sublayer(x)はサブレイヤによって実装される関数である。これらの残差接続を容易にするために、埋め込み層と同様にモデル内のすべてのサブレイヤは、例えばdmodel=512の次元の出力を生成する。例えば交差検証を通して、ハイパーパラメータを得ることができる。
【0045】
セルフアテンションデコーダ355は、例えば、N=6個の同一の層のスタックで構成することもできる。各エンコーダ層の2つのサブレイヤに加えて、デコーダは第3のサブレイヤを挿入することができる。第3のサブレイヤは、エンコーダスタックの出力に対してマルチヘッドアテンションを実行するように構成することができる。エンコーダと同様に、サブレイヤの各々の周囲に残差接続を適用し、その後、レイヤ正規化を適用することができる。位置が後続する位置に注意を向けるのを防止するために、デコーダスタック内のサブレイヤでセルフアテンションを変更することができる。このマスキングは、出力埋め込みが1つの位置だけオフセットされることと組み合わされて、位置iに対する予測がi未満の位置における既知の出力にのみ依存することができることを確実にすることができる。言い換えれば、コンテキスト埋め込み345(例えば、複数のベクトル360)に基づいて順序付けられたレイアウトコンポーネント310を予測することは、(例えば、レイアウトコンポーネントに対応する)先行して予測されたベクトル360に基づくことができる。例えば、図2Bを参照すると、反復260-3は、反復260-1および260-2の結果(例えば、レイアウトコンポーネント225-4、225-1)の影響を受けることができる。さらに、反復260-3の結果は、残りのレイアウトコンポーネント、または出力シーケンス255に追加されていないレイアウトコンポーネント(例えば、レイアウトコンポーネント225-3、225-5)によって影響される可能性はない。
【0046】
アテンション関数は、クエリとキーおよびバリューの対のセットとを出力にマッピングするものとして記述することができ、そこでは、クエリ、キー、バリュー、および出力はすべてベクトルとすることができる。エンコーダ-デコーダアテンション層では、クエリは先行するデコーダレイヤから来ることができ、メモリのキーおよびバリューはエンコーダの出力から来ることができる。これにより、デコーダのすべての位置が入力シーケンスの全位置に注意を向けるのを可能にすることができる。出力は、バリューの重み付き和として計算することができ、そこでは、各バリューに割り当てられる重みは、クエリの対応するキーとの適合度関数によって計算される。イントラアテンション(intra-attention)と呼ばれる場合もあるセルフアテンションは、単一シーケンスの異なる位置を、そのシーケンスの表現を計算するために関連付けるアテンション機構である。
【0047】
エンコーダはセルフアテンション層を含むことができる。セルフアテンション層では、キー、バリュー、およびクエリのすべてが、同じ場所、この場合はエンコーダにおける先行する層の出力から来ることができる。エンコーダにおける各位置は、エンコーダの先行する層におけるすべての位置に注意を向けることができる。同様に、デコーダのセルフアテンション層は、デコーダにおける各位置が、その位置までおよびその位置を含むデコーダにおけるすべての位置に注意を向けることができるようにすることができる。
【0048】
図4は、実施形態例による読み順を生成する方法のブロック図を示す。図4に示すように、ステップS405において、レイアウトコンポーネントを含む文書を表す画像が受け取られる(例えば走査ユニット、カメラ、または記憶媒体から、エンコーダ110によって受け取られる)。例えば、文書(例えば、文書105)は、画像の形態の任意の可読文書を含むことができる。文書は、少なくとも1つのレイアウトコンポーネント(例えば、段落、要約、テキスト、画像など)を含むことができる。文書の読み順を望むことができる。文書を表す画像例は、図7に示す画像705-1、705-1-2とすることができる。
【0049】
任意選択的なステップであるステップS410において、画像に対して光学文字認識(OCR)が(例えば、テキスト情報と視覚情報とを識別および/または分離するために)実行される。例えば、OCRは、スキャンされた文書または画像ファイルからデータを抽出し、次いで、テキストを、後に追加のデータ処理に使用することができる機械可読形式に変換する(例えば、コンピューティングデバイスによって実行される)プロセスとすることができる。実施態様例では、OCRを使用して画像からテキストベースのデータを抽出することができる。テキストベースのデータは、畳み込みを使用して抽出することができる。言い換えれば、OCRは、機械学習を使用して実行することができる。いくつかの実施態様では、機械学習は、ニューラルネットワークおよび/または畳み込み演算(例えば、2D畳み込み演算)を含んでもよい。したがって、OCRは、(例えば、文書を表す)入力画像のレイアウトコンポーネントに関連付けられたテキストベースのデータを含む少なくとも1つの配列を含む、埋め込みまたはテキスト埋め込みを生成することができる。ベクトルのテキストベースのデータは、単語の類似度、関連する単語のグループ化、テキストの分類または特徴、文書のクラスタリング(例えば、文書内の位置)、自然言語などを表すデータ(例えば、数値)を含むことができる。例えば、図3を参照すると、コンポーネントモデル315は、少なくとも文書105に対するOCRプロセスを実行するために、畳み込み325を使用するように構成することができる。上述したように、コンポーネントモデル315は、少なくとも1つのレイアウトコンポーネント(例えば、段落、要約、テキスト、画像など)を特定するように構成することができる。加えて、少なくとも1つのレイアウトコンポーネントがテキストを含む画像を含む場合、コンポーネントモデル315は、テキストに対してOCR動作を実行するように構成することができる。例えば、埋め込み330の複数のベクトル350のうちの1つまたは複数は、OCRされたテキストを含むことができる。
【0050】
ステップS415において、画像に基づいて視覚的埋め込みが生成される。例えば、視覚的埋め込みは、(例えば、文書を表す)入力画像のレイアウトコンポーネントに関連付けられたデータまたは視覚データ(例えば、画像に関連付けられた情報および/または特徴)を含む少なくとも1つの配列を含むことができる。視覚データは、文書内の位置、およびテキスト(例えば、画像に関連付けられたヘッダ)との関係を含むことができる。視覚データは、色、画像のタイプ(例えば、サムネイル、見出しなど)、画像の内容(例えば、人間、車、グラフなど)などを含むことができる。実施態様例では、画像に関連付けられた(例えば、ランダムな順序で配列されている)レイアウトコンポーネントを特定し、視覚的埋め込みとして符号化することができる。言い換えれば、レイアウトコンポーネントに関連付けられた情報をデータ構造に格納し、レイアウトコンポーネントがランダムな順序で配列されるようにラベル付けすることができる。情報および/またはデータ構造は、埋め込みとして符号化することができる。したがって、エンコーダ110は、レイアウトコンポーネントを表す(ランダム順シーケンスを含む)情報を含む埋め込みを生成するように構成することができる。例えば、図3を参照すると、コンポーネントモデル315は、畳み込み325を使用して、文書105に関連付けられた画像に基づいて生成される視覚的埋め込みを生成するように構成することができる。
【0051】
埋め込みを使用して、離散変数を連続ベクトルとして表現することができる。言い換えれば、埋め込みは、離散(例えば、カテゴリ)変数の連続数値のベクトルへのマッピングとすることができる。視覚的埋め込みは、レイアウトコンポーネントを特定し、特定されたレイアウトコンポーネントを分類し、分類された、特定されたレイアウトコンポーネントに基づいて埋め込みを生成するようにトレーニングされる(例えば、事前トレーニングされる)ことを含む、埋め込みを生成するようにトレーニングされた(例えば、事前トレーニングされた)ニューラルネットワーク(例えば、ディープラーニング、2次元(2D)畳み込みニューラルネットワーク(CNN))を使用して生成することができる。ニューラルネットワークのトレーニングは、ラベル付けされた(したがって、特定された)レイアウトコンポーネントを有する画像を使用することを含むことができる。トレーニングは、教師あり学習技術を使用することを含むことができる。
【0052】
ステップS420において、OCR出力は、実行された場合、視覚的埋め込みと組み合わされる。例えば、上述したように、OCRは、(例えば、文書を表す)入力画像のレイアウトコンポーネントに関連付けられたテキストベースのデータを含む少なくとも1つの配列を含む埋め込みを生成することができる。OCRによって生成された埋め込みは、視覚的埋め込みと同じ構造を有することができる。したがって、OCR出力を視覚的埋め込みと組み合わせることにより、レイアウトコンポーネントに関連付けられたテキスト情報および視覚情報を含む埋め込みを生成することができる。組み合わせは、テキスト情報(例えば、配列要素)を視覚情報(例えば、配列要素)と連結することを含むことができる。例えば、図3を参照すると、レイアウトコンバイナ335は、テキスト埋め込みと視覚的埋め込みとを結合することができる。
【0053】
ステップS425において、組み合わされたOCR出力および視覚的埋め込みを復号することによって、画像内のレイアウトコンポーネントに対する読み順が生成される(すなわち、予測される)。例えば、組み合わされたOCR出力および視覚的埋め込みは、セルフアテンションエンコーダによって処理することができる。セルフアテンションエンコーダ(例えば、セルフアテンションエンコーダ205、340)は、コンテキスト埋め込み(例えば、コンテキスト埋め込み345)を生成するように構成することができる。生成されたコンテキスト埋め込みは、セルフアテンションデコーダ(例えば、セルフアテンションデコーダ215、355)によって処理することができる。セルフアテンションデコーダは、図3に関して本明細書で説明したようにコンテキスト埋め込みに基づいて、順序付けられたレイアウトコンポーネントとして、読み順を生成するように構成することができる。したがって、セルフアテンションエンコーダはセルフアテンションエンコーダ340とすることができ、セルフアテンションデコーダはセルフアテンションデコーダ355とすることができ、埋め込みはコンテキスト埋め込み345とすることができる。
【0054】
図5は、実施態様例によるシステムのブロック図を示す。図5の例では、システム(例えば、拡張現実システム、仮想現実システム、および/または文書を読み取る(例えば、テキスト音声変換する、翻訳する)ように構成された任意のシステム)は、コンピューティングシステムまたは少なくとも1つのコンピューティングデバイスを含むことができ、本明細書で説明する技術を実行するように構成された実質的に任意のコンピューティングデバイスを表すと理解されるべきである。このように、デバイスは、本明細書で説明する技術、またはその異なるバージョンもしくは将来のバージョンを実装するために利用することができる、さまざまな構成要素を含むように理解してもよい。一例として、システムは、プロセッサ505およびメモリ510(例えば、非一時的コンピュータ可読メモリ)を含むことができる。プロセッサ505とメモリ510とは、バス515によって結合する(例えば、通信可能に結合する)ことができる。
【0055】
プロセッサ505を利用して、少なくとも1つのメモリ510に格納された命令を実行することができる。したがって、プロセッサ505は、本明細書で説明したさまざまな特徴および機能、または追加のもしくは代替的な特徴および機能を実行することができる。プロセッサ505および少なくとも1つのメモリ510は、他のさまざまな目的に利用してもよい。例えば、少なくとも1つのメモリ510は、本明細書で説明したモジュールのうちの任意の1つを実行するために使用することができるさまざまなタイプのメモリならびに関連するハードウェアおよびソフトウェアの一例を表すことができる。
【0056】
少なくとも1つのメモリ510は、デバイスに関連付けられたデータおよび/または情報を格納するように構成することができる。少なくとも1つのメモリ510は、共有リソースであってもよい。したがって、少なくとも1つのメモリ510は、より大きいシステム内の他の要素(例えば、画像/ビデオ処理または有線/無線通信)に関連付けられたデータおよび/または情報を格納するように構成してもよい。プロセッサ505および少なくとも1つのメモリ510をともに利用して、本明細書で説明した技術を実行することができる。このように、本明細書で説明した技術は、メモリ510に格納され、プロセッサ505によって実行されるコードセグメント(例えば、ソフトウェア)として実行することができる。したがって、メモリ510は、コンポーネントモデル315、読み順モデル320、およびレイアウトコンバイナ335を含むことができる。
【0057】
上記で考察したように、コンポーネントモデル315は、文書を入力として使用して、少なくとも1つのコンポーネント(例えば、段落、要約、テキスト、画像など)をレイアウトコンポーネントとして特定するように構成することができる。コンポーネントモデル315は、レイアウトコンポーネントに関連付けられたテキスト情報に対応する埋め込みと、レイアウトコンポーネントに関連付けられた視覚情報に対応する埋め込みとを生成するように構成することができる。レイアウトコンバイナ335は、レイアウトコンポーネントに関連付けられたテキスト情報に対応する埋め込みを、レイアウトコンポーネントに関連付けられた視覚情報に対応する埋め込みと連結するように構成することができる。読み順モデル320は、セルフアテンションエンコーダ/デコーダを使用して、結合された埋め込みに基づいて、順序付けられたレイアウトコンポーネントを予測する(または生成する)ように構成することができる。
【0058】
実施態様は、以下の例の1つまたは複数、および/またはそれらの組み合わせを含むことができる。
【0059】
例1.複数のレイアウトコンポーネントを含む文書を表す画像を受け取ることと、複数のレイアウトコンポーネントに関連付けられたテキスト情報を特定することと、複数のレイアウトコンポーネントに関連付けられた視覚情報を特定することと、テキスト情報を視覚情報と組み合わせることと、セルフアテンションエンコーダ/デコーダを使用して、組み合わされたテキスト情報および視覚情報に基づいて、複数のレイアウトコンポーネントの読み順を予測することとを含む方法。
【0060】
例2.例1に記載された方法であって、テキスト情報の特定は、画像からテキストベースのデータを抽出することを含むことができる。
【0061】
例3.例2に記載された方法であって、テキストベースのデータの抽出は、テキスト情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含むことができる。
【0062】
例4.例3に記載された方法であって、ニューラルネットワークは、テキストデータを埋め込みにマッピングする事前トレーニングされたニューラルネットワークとすることができ、配列が、複数のレイアウトコンポーネントの各レイアウトコンポーネントに関連付けられたテキストベースのデータを含む要素を含むことができる。
【0063】
例5.例1~例4のいずれかに記載された方法であって、視覚情報の特定は、画像から視覚ベースのデータを抽出することを含むことができる。
【0064】
例6.例5に記載された方法であって、視覚ベースのデータの抽出は、視覚情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含むことができる。
【0065】
例7.例6に記載された方法であって、ニューラルネットワークは、2次元畳み込み演算とすることができ、埋め込みは配列を含むことができ、配列は、複数のレイアウトコンポーネントの各々に関連付けられた視覚ベースのデータを含む要素を含むことができる。
【0066】
例8.例6に記載された方法であって、ニューラルネットワークは、複数の2次元畳み込み演算を含むことができ、埋め込みは、関連するレイアウトコンポーネントに関連付けられた視覚ベースのデータと、少なくとも1つの追加のレイアウトコンポーネントに関連付けられた視覚ベースのデータとを含む要素を含む配列を含むことができる。
【0067】
例9.例1~例8のいずれかに記載された方法であって、テキスト情報を、第1の埋め込みに関連付けることができ、視覚情報を、第2の埋め込みに関連付けることができ、テキスト情報の視覚情報との組み合わせは、第1の埋め込みを第2の埋め込みと連結することを含むことができる。
【0068】
例10.例1~例9のいずれかに記載された方法であって、セルフアテンションエンコーダ/デコーダは、複数のレイアウトコンポーネントに関連付けられた第1のシーケンスに基づいて埋め込みを生成するように構成されたセルフアテンションエンコーダを含むことができる。第1のシーケンスは第1の順序を有する。セルフアテンションエンコーダ/デコーダは、埋め込みに基づいて第2のシーケンスを生成するように構成されたセルフアテンションデコーダをさらに含むことができる。第2のシーケンスは第2の順序を有する。
【0069】
例11.例1~例10のいずれかに記載された方法であって、セルフアテンションエンコーダ/デコーダは、セット内の要素の対の間の関係を重み付けし、要素に対する埋め込みを生成するように構成されたセルフアテンションエンコーダを含むことができる。
【0070】
例12.例1~例11のいずれかに記載された方法であって、セルフアテンションエンコーダ/デコーダは、組み合わされたテキスト情報および視覚情報に基づいて、埋め込み内の各要素の影響を決定するように構成されたセルフアテンションエンコーダを含むことができる。
【0071】
例13.例1~例12のいずれかに記載された方法であって、セルフアテンションエンコーダ/デコーダは、自己回帰推論として動作するように構成されたセルフアテンションデコーダを含むことができる。
【0072】
例14.例1~例13のいずれかに記載された方法であって、セルフアテンションエンコーダ/デコーダは、複数のレイアウトコンポーネントに関連付けられた読み順で次のレイアウトコンポーネントを自己回帰的に予測するように構成されたセルフアテンションデコーダを含むことができる。
【0073】
例15.例1~例14のいずれかに記載された方法であって、セルフアテンションエンコーダ/デコーダは、セルフアテンションエンコーダおよびセルフアテンションデコーダを含むことができ、セルフアテンションデコーダは、セルフアテンションエンコーダの要素とセルフアテンションデコーダへの入力との間でQKV外積を実行するように構成することができる。
【0074】
例16.少なくとも1つのプロセッサによって実行されると、コンピューティングシステムに例1~例15のいずれかに記載された方法を実行させるように構成されている命令が格納されている、非一時的コンピュータ可読記憶媒体。
【0075】
例17.例1~例15のいずれかに記載の方法を実行する手段を備えた装置。
例18.少なくとも1つのプロセッサと、コンピュータプログラムコードを含む少なくとも1つのメモリとを備える装置であって、少なくとも1つのメモリおよびコンピュータプログラムコードは、少なくとも1つのプロセッサにより、装置に少なくとも例1~例15のいずれかに記載された方法を実行させるように構成されている。
【0076】
図6は、説明した技術で使用することができる、コンピュータデバイス600およびモバイルコンピュータデバイス650の一例を示す。コンピューティングデバイス600は、プロセッサ602と、メモリ604と、記憶デバイス606と、メモリ604および高速拡張ポート610に接続する高速インターフェース608と、低速バス614およびストレージデバイス606に接続する低速インターフェース612とを含む。構成要素602、604、606、608、610、および612の各々は、さまざまなバスを使用して相互接続されており、共通のマザーボード上に、または必要に応じて他の方法で、搭載することができる。プロセッサ602は、コンピューティングデバイス600内で実行される命令を処理することができ、これらの命令は、高速インターフェース608に結合されたディスプレイ616などの外部入出力デバイス上にGUIのためのグラフィカル情報を表示するために、メモリ604または記憶デバイス606に格納された命令を含む。他の実施態様では、複数のメモリおよび複数のタイプのメモリとともに、必要に応じて、複数のプロセッサおよび/または複数のバスを使用してもよい。また、複数のコンピューティングデバイス600を接続して、(例えば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとして)各デバイスが必要な動作の一部を提供してもよい。
【0077】
メモリ604は、コンピューティングデバイス600内の情報を格納する。1つの実施態様では、メモリ604は、1つの揮発性メモリユニットまたは複数の揮発性メモリユニットである。別の実施態様では、メモリ604は、1つの不揮発性メモリユニットまたは複数の不揮発性メモリユニットである。メモリ604は、磁気ディスクまたは光ディスクなどの別の形態のコンピュータ可読媒体であってもよい。
【0078】
記憶デバイス606は、コンピューティングデバイス600に大容量記憶領域を提供することが可能である。1つの実施態様では、記憶デバイス606は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、またはテープデバイス、フラッシュメモリもしくは他の同様のソリッドステートメモリデバイス、またはストレージエリアネットワークもしくは他の構成のデバイスを含むデバイスの配列などのコンピュータ可読媒体であるか、またはそのようなコンピュータ可読媒体を含むことができる。コンピュータプログラム製品は、情報担体において有形に具現化することができる。コンピュータプログラム製品は、実行されると上述したような1つまたは複数の方法を実行する命令も含むことができる。情報担体は、メモリ604、記憶デバイス606、またはプロセッサ602上のメモリなどのコンピュータ可読媒体または機械可読媒体である。
【0079】
高速コントローラ608は、コンピューティングデバイス600の帯域幅を大量に使用する動作を管理し、一方、低速コントローラ612は、帯域幅をそれほど大量に使用しない動作を管理する。こうした機能の割り当ては、単に例示的なものである。1つの実施態様では、高速コントローラ608は、メモリ604、(例えば、グラフィックプロセッサまたはアクセラレータを介して)ディスプレイ616に、かつ、さまざまな拡張カード(図示せず)を受け入れることができる高速拡張ポート610に結合されている。実施態様では、低速コントローラ612は、記憶デバイス606および低速拡張ポート614に結合されている。さまざまな通信ポート(例えば、USB、Bluetooth、Ethernet、無線Ethernet)を含むことができる低速拡張ポートは、キーボード、ポインティングデバイス、スキャナなどの1つまたは複数の入出力デバイス、または、例えばネットワークアダプタを介して、スイッチまたはルータなどのネットワーキングデバイスに結合することができる。
【0080】
コンピューティングデバイス600は、図に示すように、多数の異なる形態で実装することができる。例えば、標準サーバ620として、またはそのようなサーバのグループで複数回、実装してもよい。コンピューティングデバイス600はまた、ラックサーバシステム624の一部として実装してもよい。加えて、ラップトップコンピュータ622などのパーソナルコンピュータに実装してもよい。代替的に、コンピューティングデバイス600からのコンポーネントは、デバイス650などのモバイルデバイス(図示せず)内の他のコンポーネントと組み合わせてもよい。このようなデバイスの各々は、1つまたは複数のコンピューティングデバイス600、650を含むことができ、システム全体は、互いに通信する複数のコンピューティングデバイス600、650で構成することができる。
【0081】
コンピューティングデバイス650は、他のコンポーネントもあるがとりわけ、プロセッサ652と、メモリ664と、ディスプレイ654などの入出力デバイスと、通信インターフェース666と、トランシーバ668とを含む。デバイス650には、追加の記憶領域を提供するために、マイクロドライブまたは他のデバイスなどの記憶デバイスを設けてもよい。コンポーネント650、652、664、654、666、および668の各々は、さまざまなバスを使用して相互接続されており、コンポーネントのうちのいくつかは、共通のマザーボード上に、または必要に応じて他の方法で搭載することができる。
【0082】
プロセッサ652は、メモリ664に格納された命令を含む、コンピューティングデバイス650内の命令を実行することができる。プロセッサは、別個のかつ複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実装してもよい。プロセッサは、例えば、ユーザインターフェース、デバイス650によって実行されるアプリケーション、およびデバイス650による無線通信の制御など、デバイス650の他のコンポーネントの調整を可能にすることができる。
【0083】
プロセッサ652は、ディスプレイ654に結合された制御インターフェース658およびディスプレイインターフェース656を介してユーザと通信することができる。ディスプレイ654は、例えば、TFT LCD(薄膜トランジスタ液晶ディスプレイ)、およびLED(発光ダイオード)もしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってもよい。ディスプレイインターフェース656は、ディスプレイ654を駆動してグラフィカルな情報および他の情報をユーザに提示するための適切な回路を含むことができる。制御インターフェース658は、ユーザからコマンドを受け取り、それらをプロセッサ652に送出するために変換することができる。加えて、デバイス650の他のデバイスとの近距離通信を可能にするように、プロセッサ652と通信するように外部インターフェース662を設けてもよい。外部インターフェース662は、例えば、いくつかの実施態様では有線通信を、または他の実施態様では無線通信を提供することができ、複数のインターフェースを使用してもよい。
【0084】
メモリ664は、コンピューティングデバイス650内の情報を格納する。メモリ664は、1つのコンピュータ可読媒体もしくは複数のコンピュータ可読媒体、1つの揮発性メモリユニットもしくは複数の揮発性メモリユニット、または1つの不揮発性メモリユニットもしくは複数の不揮発性ユニットのうちの1つまたは複数として実装することができる。拡張メモリ674を設け、拡張インターフェース672を介してデバイス650に接続してもよく、それは、例えばSIMM(シングルインラインメモリモジュール(Single In-Line Memory Module))カードインターフェースを含んでもよい。このような拡張メモリ674は、デバイス650のための追加の記憶空間を提供することができ、または、デバイス650のためのアプリケーションまたは他の情報を記憶することもできる。具体的には、拡張メモリ674は、上記に説明したプロセスを実行または補足する命令を含んでもよく、セキュアな情報もまた含んでもよい。したがって、例えば、拡張メモリ674は、デバイス650のセキュリティモジュールとして設けてもよく、デバイス650のセキュアな使用を可能にする命令でプログラムしてもよい。加えて、SIMMカードに識別情報をハッキング不可能な方法で置くなど、SIMMカードを介して、セキュアアプリケーションを追加情報とともに提供してもよい。
【0085】
メモリは、後に考察するように、例えば、フラッシュメモリおよび/またはNVRAMメモリを含むことができる。1つの実施態様では、コンピュータプログラム製品は、情報担体において有形に具現化される。コンピュータプログラム製品は、実行されると上記に説明したような1つまたは複数の方法を実行する命令を含む。情報担体は、例えば、トランシーバ668または外部インターフェース662を介して受けることができる、メモリ664、拡張メモリ674、またはプロセッサ652上のメモリ(memory on processor 652, that may be received,)などの、コンピュータ可読媒体または機械可読媒体である。
【0086】
デバイス650は、必要な場合はデジタル信号処理回路を含むことができる通信インターフェース666を介して、無線通信することができる。通信インターフェース666は、とりわけ、GSM音声通話、SMS、EMS、もしくはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどのさまざまなモードまたはプロトコルでの通信を可能にすることができる。このような通信は、例えば、無線周波数トランシーバ668を介して行うことができる。加えて、Bluetooth、Wi-Fi、または他のそのようなトランシーバ(図示せず)を使用するなどして、近距離通信を行ってもよい。加えて、GPS(全地球測位システム)受信機モジュール670が、追加のナビゲーションおよび位置関連の無線データをデバイス650に提供することができ、そうしたデータは、デバイス650上で実行しているアプリケーションが必要に応じて使用することができる。
【0087】
デバイス650はまた、音声コーデック660を使用して可聴的に通信することもでき、音声コーデック660は、ユーザから発話情報を受け取り、それを使用可能なデジタル情報に変換することができる。音声コーデック660は、同様に、例えば、デバイス650のハンドセット内のスピーカなどを通じて、ユーザのために可聴音を生成してもよい。このような音は、音声通話からの音を含んでもよく、録音された音(音声メッセージ、音楽ファイルなど)を含んでもよく、デバイス650上で動作するアプリケーションによって生成された音もまた含んでもよい。
【0088】
コンピューティングデバイス650は、図に示すように、多くの異なる形態で実装することができる。例えば、コンピューティングデバイス650は、携帯電話680として実装してもよい。コンピューティングデバイス650はまた、スマートフォン682、携帯情報端末、または他の同様のモバイルデバイスの一部として実施態様してもよい。
【0089】
本明細書で説明したシステムおよび技術のさまざまな実施態様は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現することができる。これらのさまざまな実施態様は、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラムでの実施態様を含むことができ、プログラマブルプロセッサは、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受け取り、それらにデータおよび命令を送出するように結合された、専用または汎用のプロセッサであってもよい。
【0090】
(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られる)これらのコンピュータプログラムは、プログラマブルプロセッサ用の機械命令を含み、高水準手続き型および/またはオブジェクト指向プログラミング言語で、かつ/またはアセンブリ/機械言語で実装することができる。本明細書で用いる場合の「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械命令を機械可読信号として受け取る機械可読媒体を含む、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される、任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を指す。「機械可読信号」という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0091】
ユーザとのインタラクションを提供するために、本明細書で説明したシステムおよび技術は、ユーザに情報を表示する表示デバイス(LED(発光ダイオード)、またはOLED(有機LED)、またはLCD(液晶ディスプレイ)モニタ/スクリーン)と、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス(例えばマウスまたはトラックボール)とを有するコンピュータ上で実装することができる。他の種類のデバイスを使用して、ユーザとのインタラクションを同様に提供することができ、例えば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)とすることができ、ユーザからの入力は、音響入力、音声入力、または触覚入力を含む任意の形式で受け取ることができる。
【0092】
本明細書で説明したシステムおよび技術は、(例えば、データサーバとして)バックエンドコンポーネントを含むコンピューティングシステム、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むコンピューティングシステム、またはフロントエンドコンポーネント(例えば、ユーザが本明細書で説明したシステムおよび技術の実施態様とインタラクトすることができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステム、またはそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの任意の組み合わせで実装することができる。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体(例えば、通信ネットワーク)によって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットなどが挙げられる。
【0093】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに遠隔であり、通常、通信ネットワークを介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行しており、互いにクライアントとサーバの関係を有する、コンピュータプログラムによって生じる。
【0094】
いくつかの実施態様では、図に示すコンピューティングデバイスは、ARヘッドセット/HMDデバイス690とインターフェースして、挿入されたコンテンツを物理空間内で見るための拡張環境を生成するセンサを含むことができる。例えば、コンピューティングデバイス650または図に示す他のコンピューティングデバイスに含まれる1つまたは複数のセンサは、ARヘッドセット/HMDデバイス690に入力を提供することができ、または、概して、AR空間に入力を提供することができる。センサは、限定されないが、タッチスクリーン、加速度計、ジャイロスコープ、圧力センサ、生体認証センサ、温度センサ、湿度センサ、および周囲光センサを含むことができる。コンピューティングデバイス650は、センサを使用して、AR空間におけるコンピューティングデバイスの絶対位置および/または検出された回転を決定することができ、こうした位置および/または回転は、その後、AR空間への入力として使用することができる。例えば、コンピューティングデバイス650は、コントローラ、レーザーポインタ、キーボード、武器などの仮想オブジェクトとしてAR空間に組み込むことができる。AR空間に組み込まれると、ユーザによるコンピューティングデバイス/仮想オブジェクトの位置決めにより、ユーザは、AR空間においていくつかの態様で仮想オブジェクトを見るようにコンピューティングデバイスを位置決めすることができる。例えば、仮想オブジェクトがレーザーポインタを表している場合、ユーザはそれが実際のレーザーポインタであるかのようにコンピューティングデバイスを操作することができる。ユーザは、コンピューティングデバイスを左右に、上下に、円形などに動かし、レーザーポインタを使用するのと同様の方法でデバイスを使用することができる。いくつかの実施態様では、ユーザは、仮想レーザーポインタを使用して目標位置にねらいを定めることができる。
【0095】
いくつかの実施態様では、コンピューティングデバイス650に含まれるかまたはコンピューティングデバイス650に接続される、1つまたは複数の入力デバイスを、AR空間への入力として使用することができる。入力デバイスとしては、限定されないが、タッチスクリーン、キーボード、1つまたは複数のボタン、トラックパッド、タッチパッド、ポインティングデバイス、マウス、トラックボール、ジョイスティック、カメラ、マイクロフォン、入力機能を有するイヤホンまたはバッド(bud)、ゲームコントローラ、または他の接続可能な入力デバイスを挙げることができる。コンピューティングデバイスがAR空間に組み込まれたときに、コンピューティングデバイス650に含まれる入力デバイスとインタラクトするユーザが、AR空間で特定の行為を生じさせることができる。
【0096】
いくつかの実施態様では、コンピューティングデバイス650のタッチスクリーンは、AR空間においてタッチパッドとしてレンダリングすることができる。ユーザは、コンピューティングデバイス650のタッチスクリーンとインタラクトすることができる。インタラクションは、例えばARヘッドセット/HMDデバイス690において、AR空間内のレンダリングされたタッチパッド上の動きとしてレンダリングされる。レンダリングされた動きは、AR空間内の仮想オブジェクトを制御することができる。
【0097】
いくつかの実施態様では、コンピューティングデバイス650に含まれる1つまたは複数の出力デバイスは、AR空間においてARヘッドセット/HMDデバイス690のユーザに出力および/またはフィードバックを提供することができる。出力およびフィードバックは、視覚的、触覚的、または聴覚的であり得る。出力および/またはフィードバックは、限定されないが、振動、1つまたは複数の照明またはストロボのオン/オフまたは点滅および/または閃光、アラームの鳴動、チャイムの再生、曲の再生、およびオーディオファイルの再生を含むことができる。出力デバイスとしては、限定されないが、振動モータ、振動コイル、圧電デバイス、静電デバイス、発光ダイオード(LED)、ストロボ、およびスピーカを挙げることができる。
【0098】
いくつかの実施態様では、コンピューティングデバイス650は、コンピュータが生成した3D環境内の別のオブジェクトとして現れることができる。ユーザによるコンピューティングデバイス650とのインタラクション(例えば、回転させること、振ること、タッチスクリーンに触れること、タッチスクリーンを横切って指をスワイプすること)は、AR空間内のオブジェクトとのインタラクションとして解釈することができる。AR空間内のレーザーポインタの例では、コンピューティングデバイス650は、コンピュータが生成した3D環境内の仮想レーザーポインタとして現れる。ユーザがコンピューティングデバイス650を操作すると、AR空間内のユーザはレーザーポインタの動きを見る。ユーザは、コンピューティングデバイス650においてまたはARヘッドセット/HMDデバイス690において、AR環境におけるコンピューティングデバイス650とのインタラクションからのフィードバックを受け取る。ユーザのコンピューティングデバイスとのインタラクションは、制御可能なデバイスのAR環境において生成されるユーザインターフェースとのインタラクションに変換してもよい。
【0099】
いくつかの実施態様では、コンピューティングデバイス650は、タッチスクリーンを含むことができる。例えば、ユーザは、タッチスクリーンとインタラクトして、制御可能なデバイスのユーザインターフェースとインタラクトすることができる。例えば、タッチスクリーンは、制御可能なデバイスの特性を制御することができるスライダなどのユーザインターフェース要素を含むことができる。
【0100】
コンピューティングデバイス600は、限定されないが、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータを含む、さまざまな形態のデジタルコンピュータおよびデバイスを表すように意図されている。コンピューティングデバイス650は、携帯情報端末、携帯電話、スマートフォン、および他の同様のコンピューティングデバイスなど、さまざまな形態のモバイルデバイスを表すように意図されている。ここに示す構成要素、それらの接続および関係、ならびにそれらの機能は、単に例示であるように意図されており、本文書で説明および/または特許請求する本発明の実施態様を制限するようには意図されていない。
【0101】
多くの実施態様について説明してきた。それにもかかわらず、本明細書の趣旨および範囲から逸脱することなく、さまざまな変更が行うことができることが理解されよう。
【0102】
加えて、図に示す論理フローは、望ましい結果を達成するために、図示した特定の順序、または連続した順序を必要としない。加えて、他のステップを提供してもよく、または、説明したフローからステップを削除してもよく、説明したシステムに他の構成要素を追加してもよく、または説明したシステムから構成要素を除去してもよい。したがって、他の実施態様も以下の特許請求の範囲内にある。
【0103】
上記の説明に加えて、ユーザに、本明細書で説明したシステム、プログラム、または特徴が、ユーザ情報(例えば、ユーザの社会的ネットワーク、社会的行為もしくは活動、職業、ユーザの嗜好、またはユーザの現在位置に関する情報)の収集を可能にしてもよいか否か、およびいつ可能にしてよいか、ならびにユーザにサーバからコンテンツまたは通信が送られるか否かの両方に関して、ユーザが選択を行うことを可能にする制御手段を提供してもよい。加えて、あるデータを、それが格納または使用される前に、個人を特定できる情報が削除されるように、1つまたは複数の方法で処理してもよい。例えば、ユーザの身元を、そのユーザについて個人を特定できる情報を決定することができないように処理してもよく、または、位置情報が取得されるユーザの地理的位置(都市、郵便番号、または州レベルまでなど)を一般化して、ユーザの特定の位置を決定することができないようにしてもよい。このように、ユーザは、ユーザに関するいかなる情報が収集されるか、その情報がどのように使用されるか、およびいかなる情報がユーザに提供されるかを制御することができる。
【0104】
説明した実施態様のいくつかの特徴について本明細書で説明したように例示したが、当業者には、多くの改変、置換、変更、および均等物が想到されよう。したがって、添付の特許請求の範囲は、実施態様の範囲内に入るようなすべてのそのような改変および変更を包含するように意図されていることが理解されよう。実施態様は、限定ではなく、単に例示として提示されており、形態および詳細におけるさまざまな変更を行ってもよいことが理解されるべきである。本明細書で説明した装置および/または方法の任意の部分を、相互に排他的な組み合わせを除き、任意の組み合わせで組み合わせることができる。本明細書で説明した実施態様は、説明した異なる実施態様の機能、構成要素、および/または特徴のさまざまな組み合わせおよび/またはサブコンビネーションを含むことができる。
【0105】
実施態様例はさまざまな変更および代替形態を含むことができるが、その実施態様を図面に例として示しており、それらについて本明細書で詳細に説明する(will herein be described)。しかしながら、実施態様例を開示した特定の形態に限定する意図はなく、対照的に、実施態様例は、特許請求の範囲にあるすべての変更形態、均等物、および代替形態を包含するものであることが理解されるべきである。図の説明全体を通して、同様の番号は同様の要素を指す。
【0106】
上記の実施態様例のうちのいくつかは、フローチャートとして示したプロセスまたは方法として説明している。フローチャートは、動作を逐次的なプロセスとして説明しているが、動作の多くは並行して、併せて、または同時に実行してもよい。加えて、動作の順序を並べ替えてもよい。プロセスは、それらの動作が完了した時点で終了してもよいが、図に含まれていない追加のステップを有していてもよい。プロセスは、方法、関数、手続き、サブルーチン、サブプログラムなどに対応することができる。
【0107】
一部をフローチャートによって例示している、上記で考察した方法は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実装することができる。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実装する場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、記憶媒体などの機械可読媒体またはコンピュータ可読媒体に格納することができる。プロセッサは、必要なタスクを実行することができる。
【0108】
本明細書に開示した具体的な構造的および機能的詳細は、実施態様例を説明する目的のために単に代表的なものである。しかしながら、実施態様例は、多くの代替形態で具現化することができ、本明細書に記載した実施態様のみに限定されると解釈されるべきではない。
【0109】
本明細書において、さまざまな要素を説明するために「第1の」、「第2の」などの用語を使用する場合があるが、これらの要素はこれらの用語によって限定されるべきではないことが理解されよう。これらの用語は、1つの要素を別の要素から区別するためにのみ使用されている。例えば、実施態様例の範囲から逸脱することなく、第1の要素を第2の要素と称することができ、同様に、第2の要素を第1の要素と称することができる。本明細書で使用する場合の「および/または」という用語は、関連する列挙した項目のうちの1つまたは複数のありとあらゆる組み合わせを含む。
【0110】
ある要素が別の要素に「接続または結合される」と言及されている場合、その要素は他の要素に直接接続または結合することができ、または介在要素が存在してもよいことが理解されよう。対照的に、ある要素が別の要素に「直接接続または直接結合される」と言及されている場合、介在要素は存在しない。要素間の関係を説明するために使用する他の言い回しも同様に解釈されるべきである(例えば、「間に」に対して「直接間に」、「隣接して」に対して「直接隣接して」など)。
【0111】
本明細書で使用する用語は、単に特定の実施態様を説明することを目的とするものであり、実施態様例を限定するようには意図されていない。本明細書で使用する場合の単数形の「1つの(a、an)」および「その(the)」は、文脈上明確な別段の指示がない限り、複数形も同様に含むように意図されている。「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、本明細書で使用する場合、述べられている特徴、完全体、ステップ、動作、要素、および/または構成要素の存在を指定するが、1つまたは複数の他の特徴、完全体、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されよう。
【0112】
また、いくつかの代替実施態様において、言及した機能/行為は、図に示した順序とは異なる順序で発生する可能性があることも留意されるべきである。例えば、連続して示す2つの図は、関係する機能/行為に応じて、実際には同時に実行してもよく、または、場合により逆の順序で実行してもよい。
【0113】
別段の定義がない限り、本明細書で使用する(技術用語および科学用語を含む)すべての用語は、実施態様例が属する技術分野における当業者によって一般的に理解されるものと同じ意味を有する。用語、例えば、一般的に使用される辞書において定義される用語は、関連技術の背景におけるそれらの意味と一致する意味を有するものとして解釈されるべきであり、本明細書において明示的な定義のない限り、理想化された意味または過度に形式的な意味で解釈されないことがさらに理解されよう。
【0114】
上記の実施態様例の一部、および対応する詳細な説明は、ソフトウェア、またはコンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび記号表現に関して提示している。これらの記述および表現は、当業者が自身の研究内容を他の当業者に効果的に伝えるためのものである。アルゴリズムとは、その用語を本明細書で使用する場合、かつ一般的に使用されているように、所望の結果に至る自己矛盾のない一連のステップであると考えられる。ステップは、物理量の物理的操作を必要とするものである。通常、必ずしもではないが、これらの量は、格納し、転送し、結合し、比較し、他の方法で操作することができる光学、電気、または磁気信号の形式をとる。これらの信号をビット、値、要素、シンボル、文字、項、数などと呼ぶことは、主に一般的な使用の理由から、時に好都合であることが実証されている。
【0115】
上記の例示的な実施態様において、プログラムモジュールまたは機能プロセスとして実装することができる(例えば、フローチャートの形態での)動作の行為および記号表現への言及は、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、既存の構造要素において既存のハードウェアを使用して記述および/または実装することができる。このような既存のハードウェアとしては、1つまたは複数の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路、フィールドプログラマブルゲートアレイ(FPGA)コンピュータなどを挙げることができる。
【0116】
しかしながら、これらのおよび同様の用語はすべて、適切な物理量と関連付けられるべきであり、これらの量に適用される好都合なラベルに過ぎないことが留意されるべきである。特に別段の定めのない限り、または考察から明らかであるように、「処理」または「演算」または「計算」または「決定」または「表示」などの用語は、コンピュータシステムまたは同様の電子コンピューティングデバイスの動作およびプロセスを指し、コンピュータシステムまたは同様の電子コンピューティングデバイスは、コンピュータシステムのレジスタおよびメモリ内の物理的な電子量として表されるデータを操作して、コンピュータシステムのメモリまたはレジスタまたは他のそのような情報記憶デバイス、伝送デバイスもしくは表示デバイス内の物理量として同様に表される他のデータに変換する。
【0117】
実施態様例のソフトウェアが実行する態様は、典型的には、何らかの形態の非一時的プログラム記憶媒体上で符号化されるか、または何らかのタイプの伝送媒体を介して実装されることも留意されたい。プログラム記憶媒体は、磁気記憶媒体(例えば、フロッピーディスクまたはハードドライブ)であっても、または光学記憶媒体(例えば、コンパクトディスクリードオンリメモリ、すなわちCD ROM)であっても、読み取り専用またはランダムアクセス記憶媒体であってもよい。同様に、伝送媒体は、撚り線対、同軸ケーブル、光ファイバ、または本技術分野で既知である他の好適な伝送媒体であってもよい。実施態様例は、任意の所与の実施態様のこれらの態様によって限定されない。
【0118】
最後に、添付の特許請求の範囲は、本明細書で説明した特徴の特定の組み合わせを記載しているが、本開示の範囲は、以下に特許請求する特定の組み合わせに限定されるものではなく、その代わりに、その特定の組み合わせが現時点で添付の特許請求の範囲に具体的に列挙されているか否かにかかわらず、本明細書で開示した特徴または実施態様の任意の組み合わせを包含するように広がることも留意されるべきである。
図1
図2A
図2B
図3
図4
図5
図6
図7
【手続補正書】
【提出日】2024-05-15
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
複数のレイアウトコンポーネントを含む文書を表す画像を受け取ることと、
前記複数のレイアウトコンポーネントに関連付けられたテキスト情報を特定することと、
前記複数のレイアウトコンポーネントに関連付けられた視覚情報を特定することと、
前記テキスト情報を前記視覚情報と組み合わせることと、
セルフアテンションエンコーダ/デコーダを使用して、前記組み合わされた前記テキスト情報および前記視覚情報に基づいて、前記複数のレイアウトコンポーネントの読み順を予測することと、を含む方法。
【請求項2】
前記テキスト情報の前記特定は、前記画像からテキストベースのデータを抽出することを含む、請求項1に記載の方法。
【請求項3】
前記テキストベースのデータの前記抽出は、前記テキスト情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含む、請求項2に記載の方法。
【請求項4】
前記ニューラルネットワークは、テキストデータを埋め込みにマッピングする事前トレーニングされたニューラルネットワークであり、
配列が、前記複数のレイアウトコンポーネントの各レイアウトコンポーネントに関連付けられた前記テキストベースのデータを含む要素を含む、請求項3に記載の方法。
【請求項5】
前記視覚情報の前記特定は、前記画像から視覚ベースのデータを抽出することを含む、請求項1~請求項4のいずれかに記載の方法。
【請求項6】
前記視覚ベースのデータの前記抽出は、前記視覚情報を含む埋め込みを生成するように構成されたニューラルネットワークを使用することを含む、請求項5に記載の方法。
【請求項7】
前記ニューラルネットワークは、2次元畳み込み演算であり、
前記埋め込みは配列を含み、
前記配列は、前記複数のレイアウトコンポーネントの各々に関連付けられた前記視覚ベースのデータを含む要素を含む、請求項6に記載の方法。
【請求項8】
前記ニューラルネットワークは、複数の2次元畳み込み演算を含み、
前記埋め込みは、関連するレイアウトコンポーネントに関連付けられた前記視覚ベースのデータと、少なくとも1つの追加のレイアウトコンポーネントに関連付けられた前記視覚ベースのデータとを含む要素を含む配列を含む、請求項6に記載の方法。
【請求項9】
前記テキスト情報は、第1の埋め込みに関連付けられ、
前記視覚情報は、第2の埋め込みに関連付けられ、
前記テキスト情報の前記視覚情報との前記組み合わせは、前記第1の埋め込みを前記第2の埋め込みと連結することを含む、請求項1~請求項8のいずれかに記載の方法。
【請求項10】
前記セルフアテンションエンコーダ/デコーダは、
前記複数のレイアウトコンポーネントに関連付けられた第1のシーケンスに基づいて埋め込みを生成するように構成されたセルフアテンションエンコーダを含み、前記第1のシーケンスは第1の順序を有し、
前記埋め込みに基づいて第2のシーケンスを生成するように構成されたセルフアテンションデコーダを含み、前記第2のシーケンスは第2の順序を有する、請求項1~請求項9のいずれかに記載の方法。
【請求項11】
前記セルフアテンションエンコーダ/デコーダは、
セット内の要素の対の間の関係を重み付けし、
前記要素に対する埋め込みを生成するように構成されたセルフアテンションエンコーダを含む、請求項1~請求項10のいずれかに記載の方法。
【請求項12】
前記セルフアテンションエンコーダ/デコーダは、前記組み合わされた前記テキスト情報および前記視覚情報に基づいて、埋め込み内の各要素の影響を決定するように構成されたセルフアテンションエンコーダを含む、請求項1~請求項11のいずれかに記載の方法。
【請求項13】
前記セルフアテンションエンコーダ/デコーダは、自己回帰推論として動作するように構成されたセルフアテンションデコーダを含む、請求項1~請求項12のいずれかに記載の方法。
【請求項14】
前記セルフアテンションエンコーダ/デコーダは、前記複数のレイアウトコンポーネントに関連付けられた前記読み順で次のレイアウトコンポーネントを自己回帰的に予測するように構成されたセルフアテンションデコーダを含む、請求項1~請求項13のいずれかに記載の方法。
【請求項15】
前記セルフアテンションエンコーダ/デコーダは、セルフアテンションエンコーダおよびセルフアテンションデコーダを含み、
前記セルフアテンションデコーダは、前記セルフアテンションエンコーダの要素と前記セルフアテンションデコーダへの入力との間でQKV外積を実行するように構成されている、請求項1~請求項14のいずれかに記載の方法。
【請求項16】
少なくとも1つのプロセッサによって実行されると、コンピューティングシステムに請求項1~請求項15のいずれかに記載の方法を実行させるように構成されている命令が格納されている、プログラム
【請求項17】
請求項1~請求項15のいずれかに記載の方法を実行する手段を備えた装置。
【請求項18】
装置であって、
少なくとも1つのプロセッサと、
コンピュータプログラムコードを含む少なくとも1つのメモリと、を備え、
前記少なくとも1つのメモリおよび前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサにより、前記装置に少なくとも請求項1~15のいずれかに記載の方法を実行させるように構成されている、装置。
【国際調査報告】