(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-06-20
(54)【発明の名称】高速スクリーニングのためのドメイン固有言語インタープリタ及び対話型視覚インターフェース
(51)【国際特許分類】
G06F 9/455 20180101AFI20230613BHJP
G06F 16/903 20190101ALI20230613BHJP
G06Q 10/063 20230101ALI20230613BHJP
【FI】
G06F9/455 100
G06F16/903
G06Q10/063
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2022571757
(86)(22)【出願日】2021-05-25
(85)【翻訳文提出日】2023-01-18
(86)【国際出願番号】 IB2021054548
(87)【国際公開番号】W WO2021240370
(87)【国際公開日】2021-12-02
(32)【優先日】2020-05-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】522454116
【氏名又は名称】クイクソティック ラボ インコーポレイテッド
【氏名又は名称原語表記】QUIXOTIC LABS INC.
【住所又は居所原語表記】819 Virginia Street #2210, Seattle, Washington 98101-4428, United States of America
(74)【代理人】
【識別番号】110002295
【氏名又は名称】弁理士法人M&Partners
(72)【発明者】
【氏名】イタニ サラ
【テーマコード(参考)】
5B081
5B175
5L049
【Fターム(参考)】
5B081DD01
5B175GA01
5B175GC02
5B175JA02
5L049AA01
(57)【要約】
【課題】
本出願は、ドメインのために特別に構成されたコンピューティングシステムのユーザーが、選り分け戦略をテストし、特定の関心対象の標的を発見するために、属性リッチデータ集合におけるデータを探索及びフィルタリングすることを可能にする、改善されたシステム及び方法を開示する。
【解決手段】
本技術は、ユーザーが、入力されたシンボル及び演算子を、任意の時に入力、修正、追加、挿入、減算、変更、及び他の方法で自由に編集することを可能にする複数行エディタなどの入力インターフェースを含む。ドメイン固有言語インタープリタは、入力されたシンボル及び演算子を、それらが更新されたら継続的に処理する。対話型視覚インターフェースはまた、入力インターフェースの現在の内容に従って更新するライブ結果を表示するグリッドビューを含む。
【選択図】
図29
【特許請求の範囲】
【請求項1】
動的データ集合の対話型探索、フィルタリング、及び分析のためにドメイン固有言語を解釈するためのコンピューティング装置であって、前記装置が、プロセッサと、命令を記憶するメモリとを備え、前記命令は、前記プロセッサによって実行されるときに、前記装置を、
ユーザーが任意の時に任意の行で入力を入力及び編集することを可能にする複数行エディタユーザー入力インターフェースを提供することと、
グリッドビュー表示インターフェースを提供することと、
継続的に、前記ユーザーが前記複数行エディタ入力インターフェースに第1の表現式を含む入力を入力したら、
前記ドメイン固有言語に関して前記第1の表現式を解析することであって、前記ドメイン固有言語が、複数のデータタグ及び複数の演算を含み、各データタグが、前記データ集合の複数の識別子の各々の少なくとも1つの値に関連付けられ、各演算が、データタグに関連付けられた値に適用されることができ、
前記解析することが、前記第1の表現式において、前記ドメイン固有言語のデータタグ及び前記ドメイン固有言語において提供される演算を認識することを含む、解析することと、
解析された前記表現式を実行することであって、前記実行することが、
前記複数の識別子から、解析された前記表現式が適用される識別子の第1の部分集合を判定することと、
認識された前記データタグに関連付けられた1つ以上のデータソースを識別することと、
識別された前記データソースのうちの少なくとも1つから、認識された前記データタグに関連付けられた値をロードすることと、
識別子の第2の部分集合の結果値を生成するために、ロードされた前記値に前記演算を適用することであって、各結果値が、識別子の前記第2の部分集合における識別子に関連付けられる、適用することと、を含む、実行することと、
識別子の前記第2の部分集合の前記結果値のライブ表示で前記グリッドビュー表示インターフェースを更新することであって、前記更新することが、表示された識別子ごとに、前記結果値の関連付けられた値を前記グリッドビュー表示インターフェースに追加することを含み、
それにより、前記グリッドビュー表示インターフェースが、前記複数行エディタユーザー入力インターフェースの現在の内容に従って直ちに更新される、更新することと、を行うように構成する、コンピューティング装置。
【請求項2】
前記複数行エディタ入力インターフェースを介して、識別子の母集団を指定するユーザー入力を、解析された前記表現式が適用される識別子の前記第1の部分集合が識別子の前記指定された母集団であると判定されるように、受信すること、を更に含む、請求項1に記載のコンピューティング装置。
【請求項3】
先行する表現式を含む前記複数行エディタ入力インターフェースにおける複数行上の表現式を、解析された前記表現式が適用される識別子の前記第1の部分集合が、前記先行する表現式から生じる識別子の部分集合であると判定されるように、受信すること、を更に含む、請求項1に記載のコンピューティング装置。
【請求項4】
前記第1の表現式が、既存の画面からの出力を参照するデータタグを含み、それにより、識別子の前記第2の部分集合の前記結果値が、前記既存の画面からの前記出力に基づく、請求項1に記載のコンピューティング装置。
【請求項5】
認識された前記データタグに関連付けられた1つ以上のデータソースを前記識別することが、前記ユーザーがデータソースを明示的に指定することを必要とせずに自動的に実行される、請求項1に記載のコンピューティング装置。
【請求項6】
識別子の前記第2の部分集合の前記結果値を新しい自動的に命名されたデータタグに割り当てることを更に含む、請求項1に記載のコンピューティング装置。
【請求項7】
前記演算が、識別子の前記第2の部分集合の前記結果値をユーザーが命名した新しいデータタグに割り当てることを含む、請求項1に記載のコンピューティング装置。
【請求項8】
前記ユーザーが命名した新しいデータタグを包含する別の表現式を、前記ユーザーが命名した新しいデータタグが前記ドメイン固有言語における前記複数のデータタグのうちの1つとして機能するように、解析することを更に含む、請求項7に記載のコンピューティング装置。
【請求項9】
前記演算が、前記第2の部分集合が前記第1の部分集合と同じ識別子を包含するように、前記第1の部分集合における各識別子について結果値を生成する、請求項1に記載のコンピューティング装置。
【請求項10】
前記演算が、データタグ関連値を特徴付けるメタデータを含む結果値を生成する変換であり、前記変換が、平均値若しくは中央値による平均化、ランク付け、五分位数若しくは十分位数へのバケット化、正規化、又は傾向若しくは傾向安定性の指示のうちの1つである、請求項9に記載のコンピューティング装置。
【請求項11】
前記演算が、識別子の前記第2の部分集合が前記第1の部分集合よりも少ない識別子を含有する前記第1の部分集合の適切な部分集合であるように、前記表現式が適用される識別子の前記第1の部分集合をフィルタリングし、前記グリッドビュー表示インターフェースを更新することが、識別子の前記第1の部分集合の代わりに識別子の前記第2の部分集合を表示すること、又は識別子の前記第2の部分集合に含有されない識別子を前記グリッドビュー表示インターフェースから除去することを更に含む、請求項1に記載のコンピューティング装置。
【請求項12】
前記複数行エディタ入力インターフェースに入力された各表現式又はデータタグが、前記グリッドビュー表示インターフェースに表示される情報の列に対応する、請求項1に記載のコンピューティング装置。
【請求項13】
前記グリッドビュー表示インターフェースを前記更新することが、前記グリッドビュー表示インターフェースに前記結果値の列を挿入することを含み、前記ユーザーが前記複数行エディタ入力インターフェースから行又はデータタグを削除すると、前記グリッドビュー表示インターフェースから前記対応する列を除去することを更に含む、請求項12に記載のコンピューティング装置。
【請求項14】
前記グリッドビュー表示インターフェースを更新することが、変換又はデータタグ名に基づいて、前記グリッドビュー表示インターフェースに値のヒートマップを表示することを含む、請求項1に記載のコンピューティング装置。
【請求項15】
データタグが、各識別子の構造化データまたは値の配列と関連付けられ、前記グリッドビュー表示インターフェースを更新することが、前記構造化データ又は値の配列のタイプを判定することと、連続する値のグラフ又はソース文書へのリンクを前記グリッドビュー表示インターフェースに自動的に表示することとを含む、請求項1に記載のコンピューティング装置。
【請求項16】
継続的に前記解析すること、実行すること、及び更新することが、前記ユーザーが前記複数行エディタ入力インターフェースにおいて前記第1の表現式を編集したら、前記ユーザーの編集を反映するために、表示された前記結果値を変更することを含む、請求項1に記載のコンピューティング装置。
【請求項17】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されるときに、前記プロセッサを、
ユーザーが任意の時に任意の行で入力を入力及び編集することを可能にする複数行エディタユーザー入力インターフェースを提供することと、
グリッドビュー表示インターフェースを提供することと、
継続的に、前記ユーザーが前記複数行エディタ入力インターフェースに第1の表現式を含む入力を入力したら、
前記ドメイン固有言語に関して前記第1の表現式を解析することであって、前記ドメイン固有言語が、複数のデータタグ及び複数の演算を含み、各データタグが、前記データ集合の複数の識別子の各々の少なくとも1つの値に関連付けられ、各演算が、データタグに関連付けられた値に適用されることができ、
前記解析することが、前記第1の表現式において、前記ドメイン固有言語のデータタグ及び前記ドメイン固有言語において提供される演算を認識することを含む、解析することと、
解析された前記表現式を実行することであって、前記実行することが、
前記複数の識別子から、解析された前記表現式が適用される識別子の第1の部分集合を判定することと、
認識された前記データタグに関連付けられた1つ以上のデータソースを識別することと、
識別された前記データソースのうちの少なくとも1つから、認識された前記データタグに関連付けられた値をロードすることと、
識別子の第2の部分集合の結果値を生成するために、ロードされた前記値に前記演算を適用することであって、各結果値が、識別子の前記第2の部分集合における識別子に関連付けられる、適用することと、を含む、実行することと、
識別子の前記第2の部分集合の前記結果値のライブ表示で前記グリッドビュー表示インターフェースを更新することであって、前記更新することが、表示された識別子ごとに、前記結果値の関連付けられた値を前記グリッドビュー表示インターフェースに追加することを含み、
それにより、前記グリッドビュー表示インターフェースが、前記複数行エディタユーザー入力インターフェースの現在の内容に従って直ちに更新される、更新することと、を行うように構成する、コンピュータ可読記憶媒体。
【請求項18】
自然言語入力から、前記ドメイン固有言語において前記第1の表現式を生成し、前記第1の表現式を前記複数行エディタユーザー入力インターフェースに挿入するように構成された自然言語ユーザーインターフェースを更に備える、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
バックテストを実行するためにユーザー選択可能なオプションを提供することと、前記オプションのユーザー選択に応答して、
履歴データにわたる解析された前記表現式に基づいて証券を選択する前記バックテストを実行することと、を更に含み、
前記複数行エディタユーザー入力インターフェースが、前記ユーザーが任意の時に任意の行で入力を入力及び編集することを可能にし続け、
前記バックテストを実行することが、継続的に前記解析すること、実行すること、及び更新することに影響を及ぼさない、請求項17に記載のコンピュータ可読記憶媒体。
【請求項20】
前記第1の表現式における誤字又は不完全な入力に応答して、前記複数行エディタユーザー入力インターフェースが、意味的に正しいエラー取り扱い提案を表示する、請求項17に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年5月24日に出願された「Domain-Specific Language Interpreter and Interactive Visual Interface for Rapid Screening」と題され、発明者としてSara Itaniが挙げられた米国特許仮出願第63/029,556号の利益を主張する。上記で参照された出願及び本出願とともに出願された出願データシートにおいて参照される全ての優先権書類の全内容は、全ての目的のために、それらの全体が参照により本明細書に組み込まれる。
【0002】
(発明の分野)
本開示は、コンピューティングシステムのユーザーがドメイン固有属性が豊富なデータ集合におけるデータを探索及びフィルタリングして、選り分け戦略をテストし、特定の関心対象の標的を発見することを可能にする、改善されたシステム及び方法を対象とする。
【背景技術】
【0003】
何か価値のあるものを見出すために大量のデータをふるいにかけることは、しばしば困難な作業である。「干し草の山の中にある1本の針を探す(looking for a needle in a haystack)」及び「あらゆるところを検索する(searching high and low)」のような比喩は、例えば、採用担当者が仕事のために面接する候補者を見出すこと、住宅購入者が購入前に見学を検討する少数の住宅を特定すること、投資家が投資対象として検討する価値のある株の群を選択するために証券をスクリーニングすること、といった課題を表現する。
【0004】
例えば、株式市場は、膨大な量の情報が膨大な数のソースから各証券について入手可能である、投資家に膨大な数の証券を提示する。関心のある証券を選び取るプロセスをより管理しやすくするために、投資家は、リストを絞り込むために、いくつかの基準に対して証券をスクリーニングし得る。結果は、より小さいリストであり、残っている証券がより有望であるか否かは、投資家の基準の選択並びにそれらを選択及び検証することにおける精巧度に依存する。リストを絞り込むための利用可能な膨大な数の基準に基づいて、有用なもの、価値のないもの、誤解を招くことになるものなど、証券を効果的にスクリーニングすることさえ、困難な場合がある。
【0005】
スクリーニングのための戦略は、投資家の投資哲学を反映しようと試み得、又は、それらは、概して、形式的なものとして扱われ、若しくは、直感を裏付けるために散発的に使用され得る。
【図面の簡単な説明】
【0006】
【
図1】一実施形態による、株式スクリーニングのために構成された複数行エディタ及びグリッドビュー表示を示す高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図2】一実施形態による高速スクリーニングシステムの演算ルーチンを示す。
【
図3A】一実施形態による複数行エディタ内の改訂を示す、株式スクリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図3B】一実施形態による複数行エディタ内の改訂を示す、株式スクリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図4】一実施形態による株のカスタム母集団を作成するためのダイアログを示す、株式スクリーニングのために構成された高速スクリーニングシステムの例示的なユーザーインターフェースを示す。
【
図5A】一実施形態によるドメイン固有の柔軟なテキストマッチング及び補完提案を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図5B】一実施形態によるデータタグ探索を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図6A】一実施形態による基準に対するフィルタリングを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図6B】一実施形態による基準に対するフィルタリングを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図7】一実施形態によるカスタム変数名に割り当てられた表現式を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図8A】一実施形態によるカスタム変数名に対する複数の参照の同時リネームを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図8B】一実施形態によるカスタム変数名に対する複数の参照の同時リネームを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図8C】一実施形態によるカスタム変数名に対する複数の参照の同時リネームを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図9】一実施形態によるドメイン固有の構文エラー取り扱いを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図10】一実施形態による変換関数を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図11】一実施形態による配列データの自動グラフ表示を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図12】一実施形態による10-K提出書類へのリンクの自動表示を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図13】一実施形態による特許を保有する会社の選択的表示を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図14】一実施形態による10-K提出書類において見出されたテキストに対するフィルタリングを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図15】一実施形態による結果のグループ化を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図16A】一実施形態による改善された使いやすさを示す、先行技術システムについての例示的な定式、及び株式スクリーニングのために構成された高速スクリーニングシステムについての対応する例示的な表現式を示す図である。
【
図16B】一実施形態による改善された使いやすさを示す、先行技術システムについての例示的な定式、及び株式スクリーニングのために構成された高速スクリーニングシステムについての対応する例示的な表現式を示す図である。
【
図17A】一実施形態によるバックテストを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図17B】一実施形態によるバックテストを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図18】一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムの例示的な変更アラートグラフを示す。
【
図19A】一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおけるイントロスペクションのための例示的AI機能を示す。
【
図19B】一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおける予想のための例示的なAI機能を示す。
【
図20】一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおけるレジーム変更検出のための例示的なAI機能を示す。
【
図21】一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおけるブレンディングを最適化するための例示的なAI機能を示す。
【
図22】一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおける機能提案のための例示的なAI機能を示す。
【
図23】一実施形態による演算子の創造的使用を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図24】一実施形態による自動フォーマッティングを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図25】一実施形態による予測のポイントインタイム状況報告を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図26】一実施形態による状況報告履歴予測グラフを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。
【
図27】本技術が実装されることができるコンピューティングシステム及び他のデバイスに典型的に組み込まれるコンポーネントのうちのいくつかを示すブロック図である。
【
図28】一実施形態によるバックテストのための例示的な同時サーバ対話の様々なコンポーネントを示す概略図及びデータフロー図である。
【
図29】一実施形態による高速スクリーニングシステムを実装するための例示的なサーバシステムの様々なコンポーネントを示す概略図である。
【発明を実施するための形態】
【0007】
本出願は、ドメインのために特別に構成されたコンピューティングシステムのユーザーが、選り分け戦略をテストし、特定の関心対象の標的を発見するために、属性が豊富なデータ集合におけるデータを探索及びフィルタリングすることを可能にする、改善されたシステム及び方法を開示する。
【0008】
開示される技術は、ドメイン固有言語インタープリタと、ドメイン固有言語で入力されたシンボル及び演算子に共に即座に応答する対話型視覚インターフェースとを含む、新規の直観的なアプローチを利用する。本技術は、ユーザーが、入力されたシンボル及び演算子を、任意の時に自由に入力、修正、追加、挿入、減算、変更、及び他の方法で編集することを可能にする複数行エディタなどの入力インターフェースを含む。ドメイン固有言語インタープリタは、入力されたシンボル及び演算子を、それらが更新されたら継続的に処理する。対話型視覚インターフェースはまた、入力インターフェースの現在の内容に従って更新するライブ結果を表示するグリッドビューを含む。
【0009】
本技術は更に、履歴データ及びベンチマークに対する選択された標的の高速同時評価を提供し、戦略を数秒でバックテストされることを可能にする。本技術はまた、例えば、戦略又はそれらを駆動する因子を識別すること、類似標的を見出すこと、及び異なる評価基準を考慮することにおいて、ユーザーを支援するための人工知能(AI)機械学習機能を含む。
【0010】
例えば、証券情報に適用されるように、本明細書に開示されるシステム及び方法は、証券をスクリーニングするための改善されたアプローチを提供する。
【0011】
併せて、開示された技術の様々な態様は、短い学習曲線で高い使いやすさを提供し、構造化及び/又は非構造化データを探索、視覚化、及びフィルタリングするための反復検索戦略の急速な洗練を可能にする即時フィードバックを提供する。ドメイン固有言語及び関連付けられたインタープリタ並びに対話型視覚インターフェースは、データ探索、クエリ、視覚化、及び目前の目標を1つの中央ワークフローにまとめる。ドメイン固有言語の構造、及び高速スクリーニングシステムによって提供される即時のユーザーフレンドリなフィードバックは、反復的な発見及び探索を促進するために組み合わされ、ユーザーがスクリーニング基準の効果を視覚化することを可能にし、ビジネススプレッドシート経験しかないユーザーが、複雑なスクリーニング演算を急速に実行することを十分に容易にする。したがって、解答を見出すことを望む技術的専門知識を有さない者は、そのような専門知識を有する別の人又はチームに頼ることなく、今回開示された技術を通してそれらを得ることができる。更なる結果として、ユーザーは、本技術によって提供される機能に基づいて、リアルタイムでオプションを探索し、思考を洗練することができる。
【0012】
加えて、本開示の技術は、戦略(例えば、投資戦略)のアイデア生成、選り分け、調査、テスト、実行、及び監視のためのプロセスにおける基本的なシフトを可能にする。過去においては、これらのプロセスの各々は、別々に取り扱われていた。開示された技術は、それらの全てを一意に総合する。本技術は、限定的で分離されたフィードバックループを持つ異なる人々によって実行されるバラバラのプロセスを置き換え、統合された即時フィードバックループを持つ1つの言語、ツール、インターフェースに全てをまとめる。
【0013】
開示された高速スクリーニングシステムの基礎を提供する本開示に記載の技術は、コンパイラ、人間とコンピュータのインターフェース又は相互作用(HCI)、プログラミング言語設計、データベース工学、分散コンピューティング、機械学習、定量分析、及び金融における、進歩並びに洞察を含む。結果として、本開示の改善は、全体として、いくつかの異なる技術における改善を組み合わせたものであり、概して、いずれか1つの技術における当業者には明らかではなかった。
【0014】
ここで、図に示すような実施形態の説明を詳細に参照する。実施形態は図面及び関連する説明に関連して説明されているが、本明細書に開示される実施形態に範囲を限定する意図はない。逆に、その意図は、全ての代替物、修正、及び等価物を網羅することである。代替実施形態では、異なる又は追加の入力インターフェース(例えば、ドロップダウンメニューセレクタ又は自然言語処理)は、本明細書に開示される実施形態の範囲を限定することなく、示されるものに追加又は組み合わせられ得る。例えば、以下に記載される実施形態は、主に、株式スクリーニングのコンテキストにおいて記載される。しかしながら、本明細書で記載される実施形態は、例示的な実施例であり、開示された技術を任意の特定のアプリケーション、ドメイン、知識体系、探索のタイプ、又はコンピューティングプラットフォームに限定するものではない。
【0015】
「一実施形態では」、「様々な実施形態では」、「いくつかの実施形態では」などの語句は繰り返し使用される。このような語句は、必ずしも同じ実施形態を指すものではない。用語「備える(comprising)」、「有する(having)」、及び「含む(including)」という用語は同義である。本明細書及び添付の特許請求の範囲で使用される場合、単数形「a」、「an」、及び「the」は、内容がそうでない旨を明確に指示しない限り、複数の指示対象を含む。用語「又は」は、内容がそうでないことを明確に指示しない限り、「及び/又は」を含む意味で使用されることにも留意されたい。
【0016】
開示された高速スクリーニングシステム及び方法は、様々な形状因子をとることができる。
図1~
図29は、いくつかの異なる配置及び設計(デザイン)を示す。示された高速スクリーニングシステムは、網羅的なリストではなく、他の実施形態では、構文は、再配置されることができ(例えば、「フィルタをかける」又は「~」の代わりに「のみ」又は「制限」)、又は入力エディタ若しくは結果表示は、異なる配置で形成されることができる。しかしながら、例示的な実施形態を記載するために、そのような任意選択の実施態様の詳細を網羅的に示す必要はない。
【0017】
図1は、一実施形態による、株式クリーニングのために構成された複数行エディタ101及びグリッドビュー表示102を示す高速スクリーニングシステムの例示的なユーザーインターフェース100を示す。ユーザーインターフェース100は、
図27、
図28、及び
図29を参照して以下でより詳細に記載される、ローカル又は遠隔サーバのような1つ以上の高速スクリーニングシステムコンピューティングデバイスによって提供され得る。示されたユーザーインターフェース100では、高速スクリーニングシステムは、ユーザーが入力されたシンボル110、120、130、140、150、160を1~6と番号付けされた一連の行に有する、複数行エディタ101をユーザーに提供する。
【0018】
1~6行目の各々は、ドメイン固有言語(この場合、証券のドメインに固有の言語)の一部であるシンボル110~160を包含する。シンボル110~160は、各識別子が母集団のメンバを表す、開始するための識別子の母集団、各データ値が識別子に関連付けられる、データ値についてのデータタグ、データ値に作用する演算子、及び/又は考慮される識別子の母集団を制限又は狭めるためのフィルタ基準、のうちの1つ以上を表す。
【0019】
仕様は、ドメイン固有言語を定義する。ドメイン固有言語は、ドメインに焦点を当てており、したがって、汎用プログラミングツール又は言語に対する制約を含み得る。Python又は構造化照会言語(Structured Query Language:SQL)のような汎用言語は、対照的に、クロスドメインプログラミング言語であり、ドメイン固有言語ではない。ドメイン固有言語における構文の大部分は、ドメイン固有の用語であり、そのドメインの当業者であれば、ドメイン固有言語における構文の大部分を認識するであろう。これは、ドメイン固有言語がプログラミング固有の構文をほとんど含まず、汎用プログラミングに適していないことを意味する。それはまた、ユーザーがいかなる「プログラミング」もなしに結果を得ることができることを意味し、高速スクリーニングシステムは、ユーザーがただ1つのデータタグを入力した場合であっても、それが意味論的に意味があり、したがって人間が読むこともできるので、結果を表示する。
【0020】
様々な実施形態において、ドメイン固有言語は、識別子に関連付けられたデータ(データに対する演算の結果を含む)、又は識別子の中から選択するためのフィルタリング演算のいずれかを表すシンボルを含む。
【0021】
いくつかの実施形態では、ドメイン固有言語は、非ドメイン固有キーワードを含まない。その場合、演算子は、全てシンボル(「+」又は括弧「[」...「]」など)である。その結果、ユーザーが複数行エディタ101に入力する全てのアルファベットテキストは、意味のあるもの、例えば、データタグであると理解されることができる。いくつかの実施形態では、ドメイン固有言語は、変換関数以外の非ドメイン固有キーワードを含まない。
【0022】
データタグは各々、表現式の結果などの他の値から計算される値を含む識別子(例えば、一意の証券ID及び/又は認識可能な株式ティッカーシンボルによって識別され得る証券)に関連付けられたデータ値を表す。多くの実施形態では、データ値はまた、日付、日付範囲、又は一連の日付に関連付けられる。データ値のタイプは、例えば、数値(例えば、証券の最新価格又は株主資本利益率(return on equity:「ROE」))、文字列値(例えば、国又はセクタ)、複数の値の配列(例えば、過去4つの四半期ごとのROE又は最近のニュースヘッドライン)、JSON(JavaScript Object Notation)又はXML(eXtensible Markup Language)又はHTML(HyperText Markup Language)又はCSV(comma-separated values)データ(例えば、日付及びハイパーリンクを含む10-K提出書類についての情報など)のデータ構造/コレクション/シリアル化などを含み得る。
【0023】
表現式は、ドメイン固有言語におけるデータタグ及び演算の有限の適切に形成された組合せであり、ユーザー入力の行は、1つの表現式又は複数の表現式として解釈され得る。ユーザーによって入力された表現式は各々、各識別子について上記のタイプのデータ値のうちの1つを生成するために評価される(例えば、新しい文字列を生成するために文字列を連結するか又は他の形で組み合わせるか、又は新しい数値を生成するためにROEと総資産収益率(return on assets:「ROA」)の正規化され重み付けされた混合を計算する)。表現式は、例えば、「+」又は「*」のような標準的な数学演算子を使用し得る。したがって、表現式は、他の表現式から含む、他のデータ値から計算されるデータ値をもたらす。
【0024】
変換は、経時的に、標準分布に対して、又は他の証券(例えば、平均、ランク、五分位数、正規化、傾向安定性など)と比較するなど、基準に対して識別子のデータ値を特徴付けるメタデータを生成する表現式である。
【0025】
変数名は、ユーザーが任意のユーザー選択変数名に割り当てるデータ値の任意の集合(例えば、ユーザーが計算したい任意の表現式の値)を表し、この変数名は、後の参照を容易にするために、そのデータ値を表すカスタムデータタグになる。このようにして、ユーザーは、ドメイン固有言語を拡張することができる。
【0026】
考慮及びスクリーニングするための識別子の母集団(例えば、証券)は、事前定義された集合(全ての株、S&P 500(登録商標)の全てのメンバ、全ての外国証券、全ての米国大資本株、社債又は国債など)、及び/又はユーザー定義されたカスタム集合若しくはテンプレートを含み得る。
【0027】
マッチング演算子は、例えば、数値比較演算子(例えば、<、<=、==、>=>、!=/<>)(例えば、収益>10M)[様々な実施形態では、略記単位は、例えば、Mが万若しくは千がkのように処理及び/又は表示されることができる]、又は「含有する(contains)」若しくは「である(is)」若しくは「?」のようなテキスト比較演算子(TickerSymbolが「AAPL」?、又はLatest10Kが「中国関税(china tariffs)」を含有する)を提供する。いくつかの実施形態では、「含有する」のような演算子は、アルファベットテキストなしで実装される。例えば、「含む(include)」、「有する(has)」又は「含有する」関係を示すために括弧表記を使用すると、構文は、「Filings10k[「china tariffs」]」であり得る。これは、別のもの(会社10-K提出書類の集合)内の1つのもの(語句「中国関税(china tariffs)」)の直観的な表現を提供し、そうでなければ、ドメイン固有の言語におけるドメイン固有でないキーワードを回避する。
【0028】
フィルタリング演算子は、1つ以上のマッチング演算子(例えば、~RoE>0又はPrice<100)に従って、いくつかのデータ値又は表現式基準にマッチする識別子を選択する。様々な実施形態では、フィルタリングは、縮小サイズの母集団又は最初に選択された母集団のより小さい部分を表示する結果となり、フィルタリングに使用される基準に対応するデータ値を表示する。
【0029】
様々な実施形態では、ドメイン固有言語は、ユーザー入力(例えば、キーボード、音声認識又は自然言語処理、オンスクリーンボタン、ドロップダウンメニュー、及び/又は様々な入力オプションの中からのコンテキストメニュー項目選択からであり、それらのいくつかはエディタの代わりに表示され得る)を受け入れるように構成された対話型複数行エディタと、ドメイン固有言語を定義する仕様に従って入力を解釈するように構成されたパーサ(解析プログラム)及びインタープリタと、入力に従って、ドメインに関連する構造化データ及び/又は非構造化データを得るように構成されたサーバエンジンと、ユーザーが対話型エディタに入力を入力すると、ライブ更新結果表示又はグリッドビューを提供するように構成された視覚化ツールと、を含む、
図1に示される高速スクリーニングシステムなどの環境又はツールを通して処理される。様々な実施形態では、エディタに入力された各表現式及び/又はデータタグは、グリッドビューに表示された情報の列に対応する。
【0030】
結果データは、既存のシステムとは異なり、ユーザーによって有意義に解釈され、容易に視覚化されることができる様式で提示される。これは、ユーザーが正しいデータをプルダウンし、潜在的にそれをクレンジングすることを保証するために費やさなければならない時間を短縮する。これはまた、パターン及び関係を見きわめることをより容易にする。したがって、高速スクリーニングシステムは、ユーザーのための投資戦略を示すのに役立ち、従来のスクリーナと異なり、本開示のシステム及び方法は、データの高速発見及び探索と、それらのアイデアを検証又は無効にするために、異なるアイデアをテストすることと、カスタムインジケータ及び指標の柔軟な生成と、反復可能なプロセスと、傾向、共通性、及び特性の識別と、戦略に直接適用することができる実用的な洞察とを可能にする。
【0031】
図1に戻ると、第1の行110に、ユーザーは、「$UnitedStatesAll」を入力している。この実施例(証券のドメイン内)では、「$」は、識別子の母集団を示す署名者であり、母集団は、全て米国株である。本明細書で使用されるように、識別子は、示された実施例における母集団のメンバ、特定の証券を表す。したがって、ユーザーは、全ての米国株を考慮することによって開始することを選択している。証券ドメイン内で、ユーザーは、代替的に、例えば、法人又は政府(例えば、自治体)の債券、オプション、投資信託会社など、他の国からの株、特定の取引所で取引される株式、産業特有の証券、確定所得金融商品、不良債権、デリバティブ証券などの他のタイプの証券を考慮することを選択することができる。本開示は、概して、便利な省略表現として「株式」、「株」、又は「会社」という用語を使用するが、本開示の意図は、それらの用語を有する全ての証券を包含することである。
【0032】
複数行エディタ101の下に、グリッドビュー表示102が示されている。他の実施形態では、複数行エディタ101及びグリッドビュー表示102の配置は、例えば、エディタを下に、又は横に並べて、又は完全に異なるウィンドウ又は画面内に置くなど、異なり得る。グリッドビュー表示102は、一連の列115、123、125、133、135、145、155を含む。列の各々は、複数行エディタ101におけるシンボル又は表現式に直接対応する。例えば、示された「ティッカー(Ticker)」列115は、全ての米国株の「$UnitedStatesAll」母集団に対応する。「ティッカー」列115は、一連の行を表示し、1つの行は、全ての米国株の母集団に関連付けられた各識別子に対応する。したがって、各米国株式は、そのティッカーシンボルによって「ティッカー」列115で識別される。ティッカーは、単なる表示名であり、様々な実装形態では、本技術は、各証券を明確に識別するために一意の識別子を使用する。例えば、選択された母集団のメンバの各々は、そのフルネーム及び取引所によって、又は、例えば、証券IDなどのいくつかの他の一意の識別子によって識別され得る。これは、国際株式をサポートするのに特に有用である。本技術の他の実施形態では、グリッドビュー表示102は、各列が証券(又は他のスクリーニング標的)を表し、各行が証券の属性を表す、ネストされた表、又は本開示の範囲内である他の同等の配列など、異なって配列され得る。
【0033】
示される列及び行フォーマットの様々な実装では、各列におけるデータ値は、列見出しとのユーザー相互作用(例えば、ソート順序、又はコンテキストメニューをソート、反転、若しくは復元するためのマウスクリック)などによってソート可能である。様々な実装形態では、列自体は、並べ替え可能である。例えば、グリッドビュー表示102は、列が別の列に対して左又は右にシフトされる、列の間の異なる位置にドラッグされる(例えば、マウスクリックアンドドラッグ操作によって)、隠される若しくは閉じられる(又は再表示される)、又は最小化される(例えば、再展開され得るデータの集合又はグルーピングを示すアイコンとして)ための制御を提供し得る。いくつかの実施形態では、情報の列がグリッドビュー内で移動又は除去されるときに、インターフェースは、列が再び示されることを可能にするための制御、又は列が元の順序から外れて表示されることを示す表記法などの、対応する表現式及び/又はデータタグを伴うインジケーションをエディタ内に表示する。いくつかの実施形態では、情報の列がグリッドビュー内で移動又は除去されるときに、システムは、エディタにおけるコードも更新する。
【0034】
複数行エディタ101を続けると、第2の行120上で、ユーザーは、「ReturnOnEquityPct|Standardize=>zScoreROE」を入力している。示された実施例の特定の構文が以下でより詳細に記載されるが、本技術は、様々な等価な代替形態を包含し、示された厳密なドメイン固有言語に限定されない。この実施例では、ユーザーは、最初にデータタグ「ReturnOnEquityPct」を選択又は入力している。本明細書で使用される場合、データタグは、所与の母集団のメンバの各々の属性を表し、データタグは、各識別子に関連付けられた特定のデータ値をラベル付け又は参照する。例えば、全ての米国株式の母集団において、ReturnOnEquityPctは、その母集団に株式を有する各会社について、パーセンテージ株主資本利益率を指す。同様に、複数行エディタ101の第3の行130上のこの実施例に示されるように、ReturnOnAssetsは、そのような会社ごとに、総資産収益率を参照する。
【0035】
したがって、グリッドビュー表示102において、列123は、列の上部の見出し行に「Return On Equity Pct」データタグを示し、対応する行に示される各ティッカーシンボルに対するパーセント株主資本利益率を列挙するデータ値を表示する。示された実施例では、画面は、現在の日付で実行される。様々な実施形態において、システムは、画面が以前の「日付」でも実行されることを可能にする。
【0036】
行120及び130は、ReturnOnEquityPct及びReturnOnAssetsデータタグで始まり、それらの各々を正規分布に正規化することによってそれらの各々を変換する表現式に進み、zスコアを生成する。いくつかの実施形態では、正規化関数は、最初に、外れ値の影響を低減するために値を選り分けし、ヌル値を中央値で置き換えるなどを行う。次いで、示された表現式は、それらのzスコアをカスタム名称の変数又はデータタグ「zScoreROE」及び「zScoreROA」にそれぞれ割り当てる。したがって、列125は、見出し「zスコアROE」の下に、(列115におけるそのティッカーシンボルによって表される)各株の株主資本利益率パーセンテージに関する正規化されたzスコアを表示する。見出し「zスコアROA」の下の列135は、同様に、各株の総資産収益率の正規化zスコアを表示する。
【0037】
複数行エディタ101における行140は、zScoreROE及びzScoreROAデータタグを追加し、それらを新しい変数又はデータタグ「zScoresAdded」に割り当てる表現式である。したがって、グリッドビュー102における列145は、見出し「z Scores Added」を有し、列115内にティッカーシンボルを有する各株式識別子の新しいデータ値を表示する。列145のデータ値は、列125及び135のデータ値の合計である。
【0038】
この例では、明らかな丸めを観察することができ、表示された値は、スクリーニングプロセスにおける可読性を高めるために小数点以下2桁に自動的に制限され、一方、システムは、表示されたデータ値の基礎となる正確な数に対して演算することができる。他の実施形態では、使いやすさを提供するために、有効数字の使用又は他のアプローチは、採用され得る。いくつかの実施形態では、データ値の上にカーソルを置く(hovering over)、右クリックする、コピーペーストする、長押しするなどのユーザーアクションは、その値に関する追加の詳細が明らかにし得る。
【0039】
複数行エディタ101を続けると、第5の行150上で、ユーザーは、表現式「zScoresAdded|SplitQuintiles=>bucket」を入力している。関数提案ペイン及び説明テキスト151に示されるように、この実施例におけるSplitQuintiles関数は、現在の識別子の集合(例えば、認識可能なティッカーシンボルが表示される場合であっても、証券ID)にわたってzScoresAddedのデータ値を五分位数にソートし、例えば、最も低い五分位数に値「1」が割り当てられ、最も高い五分位数に値「5」が割り当てられる(いくつかのシステムでは、逆も同様)。したがって、全ての米国株式の中で、株主資本利益率パーセンテージ(正規化)+総資産収益率(正規化)が下位20%にある会社は、列155に「1」の値を有し、上位20%にある会社は、列155に「5」の値を有し、他の会社は、列155に「2」、「3」、又は「4」を有する。グリッドビュー102において、列155の見出しは、複数行エディタ101において、行150の表現式が五分位数データタグをカスタム変数「bucket」に割り当てるので、「bucket」である。
【0040】
6行目160において、ユーザーは、表現式「~bucket==5」を入力している。この表現式中のチルダは、この例示的な実施例の構文において、フィルタリング演算を表す。この演算は、ユーザーが、マッチング基準に従って、以前に表示された識別子の集合をフィルタリング、制限、縮小、又は狭めることを可能にする。この場合、高速スクリーニングシステムが複数行エディタ101における行160におけるフィルタリング表現式を処理すると、グリッドビュー102は、全ての米国株式の全領域における全ての識別子(又は便宜上、株式ティッカーシンボル)をもはや表示しない。代わりに、カスタム変数「bucket」が「5」のデータ値165、すなわち、正規化された株主資本利益率パーセンテージと総資産収益率との組み合わせの資産の最高五分位数を有する株式ティッカーのみが、更新されたグリッドビュー102に含まれる。
【0041】
したがって、開示された高速スクリーニングシステムは、ユーザーが大量の多属性データの高度なスクリーニングを実行することを可能にし、最小限の構文で、前例のない継続的で効果的な即時フィードバック及び結果を用いて、以前のシステムが可能にしたよりもはるかに容易に実行することを可能にする。
【0042】
図2は、一実施形態による高速スクリーニングシステムの演算ルーチン200を示す。様々な実施形態では、演算ルーチン200は、
図27、
図28、及び
図29を参照して以下でより詳細に記載される、ローカル又は遠隔サーバのような1つ以上の高速スクリーニングシステムコンピューティングデバイスによって実行される。演算ルーチン200は、開始ブロック201で始まる。
【0043】
図2並びにそれに続くフロー図及び概略図は、代表的なものであり、全ての機能、ステップ、又はデータ交換を示すわけではなく、代わりに、それらは、システムがどのように実装され得るかの理解を提供する。当業者は、いくつかの機能が繰り返され、変更され、省略され、又は補足され得、示されていない他の(あまり重要でない)態様は、容易に実装され得ることを認識するであろう。当業者であれば、
図2及び以下に説明される各概略図に示すブロックは、様々な方法で変更され得ることを理解するであろう。例えば、プロセス又はブロックが所与の順序で提示されているが、代替実装形態は、異なる順序でルーチンを実行することができ、いくつかのプロセス又はブロックは、代替又は部分組合せを提供するために、並べ替えられ、削除され、移動され、追加され、細分され、組み合わされ、及び/又は修正され得る。これらのプロセス又はブロックの各々は、様々な異なる方法で実装され得る。また、プロセス又はブロックは、時には、連続して実行されるものとして示されているが、これらのプロセス又はブロックは、代わりに、並行して実行若しくは実装され得、又は異なる時に実行され得る。
図2及び他の概略図に示されるいくつかのブロックは、当技術分野でよく知られているタイプのものであり、それら自体が、本明細書で記載される必要のない一連の演算を含むことができる。当業者は、ソースコード、マイクロコード、プログラム論理配列などを作成することができ、又は本明細書で提供される図及び詳細な記載に基づいて開示された技術を実装することができる。
【0044】
ブロック215では、演算ルーチン200は、ユーザー入力及び/又は迅速にスクリーニングされる結果の表示のためのインターフェースを生成する。例えば、以下で記載される様々な演算を示すための実施例として使用される一実施形態では、演算ルーチン200は、対話型エディタ(
図1の複数行エディタ101など)及び結果グリッドビュー(
図1のグリッドビュー102など)を提供する。様々な実施形態では、高速スクリーニングシステムは、ユーザー入力及び/又は結果の表示のためのインターフェースを、高速スクリーニングシステムサーバから遠隔のクライアントデバイス上に提示させる。
【0045】
ブロック225では、演算ルーチン200は、例えば、ブロック215で提供された対話型エディタを介して入力を得て、ドメイン固有言語仕様又は文法に関して入力を解析する。ドメイン固有言語仕様又は文法は、例えば、ドメインの知識を有するユーザーがドメイン固有言語の用語を発見するためにその知識を使用することができるように、特定のドメインからのデータタグを表す用語を包含し得る。例えば、証券、特に株式の分野では、「ROE」は「株主資本利益率」の一般的な省略表現であり、これは、例えば、手取り年収を株主の株式(資産マイナス負債)で割ることによって計算される収益性又は金融実績の尺度である。したがって、高速スクリーニングシステムがそのようなドメインのために構成され、ユーザーから「roe」の入力を受信する場合、演算ルーチン200は、テキストパターンマッチングを使用して「ROE」又は「ReturnOnEquity」と名付けられたデータタグに対する要求として入力を解析することができる。
【0046】
様々な実装形態では、ブロック225において入力を解析することは、入力におけるドメイン固有言語仕様又は文法からシンボル又はトークンを識別するために入力の字句解析を実行することと、入力シンボルを抽象構文木(AST)に変えるために構文分析を実行することとを含む。
【0047】
ブロック235では、演算ルーチン200は、解析エラーを取り扱う。例えば、ユーザーは、ドメイン固有言語が「roe」又は「ROE」という名前のデータタグを含有しないときに、「roe」とタイプし得る。いくつかの実施形態では、演算ルーチン200は、エラーを有する行に関する演算ルーチン200を通じた更なる進行を妨げる任意のエラー(例えば、データ引き出しなどの他の段階におけるエラーを含む)を記録し、ブロック225にループバックして、訂正などの追加のユーザー入力を処理する。様々な実施形態において、演算ルーチン200は、エラーにもかかわらず可能な限り処理し、エラーに遭遇する前に存在していた結果を保存する。
【0048】
いくつかの実施形態では、演算ルーチン200は、ユーザーに対する認識されていない入力を、それを強調表示することなどによって識別する。いくつかの実施形態では、演算ルーチン200は、ドメイン固有言語における最も近いマッチングを推測し、例えば、認識されていない入力を最も近い有効なマッチングで置き換えるか、又は認識されていない入力の潜在的な置き換え若しくは補完の集合を提案しようと試み得る。様々な実施形態では、演算ルーチン200は、ユーザーの入力を解析し、パーサ認識されたシンボルを処理し続ける。
【0049】
ブロック245では、演算ルーチン200は、ブロック225において解析されたデータタグに対して演算を実行するために必要な任意のデータを得る。例えば、解析された表現式が、メモリにまだロードされていないデータ値の集合を必要とする場合、演算ルーチン200は、必要なデータ値に関連付けられた1つ以上のデータソースを識別し、1つ以上のデータソースのうちの少なくとも1つから必要な情報をロードする。いくつかの実施形態では、演算ルーチン200は、別の段階で又はオンザフライでデータを得る。
【0050】
いくつかの実施形態では、演算ルーチン200は、ユーザーの入力がそのようなデータ値を必要とするときの処理を高速化するために、識別子及び/又はデータタグの集合又は部分集合について、(変更の振幅及び/又は頻度の揮発性又は安定性に関して)ゆっくり変更する、最近表示された、及び/又は頻繁に要求されたデータ値のスナップショットをロード又はプリロード及びキャッシュする。いくつかの実施形態では、演算ルーチン200は、関連データタグを識別し(例えば、ユーザー履歴、ユーザーにわたる人気、可用性などに基づいて)、それらをプリフェッチし(例えば、並行して)、データをローカルにキャッシュし、結果をユーザーに迅速に提供する。
【0051】
ブロック255では、演算ルーチン200は、解析された入力を解釈する。例えば、ユーザーが表現式を入力する場合、演算ルーチン200は、解析されたシンボルが参照するデータ値を識別し、どの演算を実行すべきかを判定し、必要な演算を実行する。例えば、演算ルーチン200は、ASTを解釈し、解析された各表現式を評価することができる。いくつかの実施形態では、演算ルーチン200は、行ごとに演算する。いくつかの実施形態では、演算ルーチン200は、各入力行を順番に評価する。
【0052】
いくつかの実施形態では、演算ルーチン200は、入力が入力されて結果が得られるとすぐにインターフェースが更新され、完了した入力の実行を判定する前にユーザーが入力の入力を終了する必要がないように、入力が解析されるとすぐに、継続的に(例えば、ユーザーがタイピングを停止するのを待たずに)入力を解釈して実行する。結果は、ユーザー入力が変更するときはいつでも(及び任意選択で、基礎となるデータが変更するときはいつでも)、直ちに又は短い遅延の後に更新される場合、「ライブ」と見なされ得る。ライブ結果を提供することは、データ集合自体の学習可能性及び探索を容易にすることに加えて、インターフェースの学習可能性を増加させる。いくつかの実施形態では、演算ルーチン200は、高速スクリーニングシステムが入力を処理し終える前にユーザーが入力を確定又は修正又は改訂することを可能にする、短い遅延(例えば、約10分の1秒から約1~5秒までの「デバウンス」期間、又はユーザーがタイピング中に一時停止するとすぐに)の後に入力を解釈及び/又は実行する。いくつかの実施形態では、演算ルーチン200は、以下で更に記載されるように、そのような「デバウンス」期間を結果の表示に適用する。そのような遅延は、ユーザーが準備ができているときに演算ルーチン200が結果を提示するのを助けることができ、即時の応答結果を受信するユーザーの知覚を改善する。
【0053】
様々な実施形態では、演算ルーチン200は、増分解釈を提供し、ユーザー入力によって影響を受ける文、表現式、又は行のみを解釈及び実行する。例えば、演算ルーチン200が第5の行の表現式を受け取り、解析し、解釈する場合、演算ルーチン200は、処理時間を最小限に抑えるために、最初の4行の内容を変更せずに維持することができる。増分的に解釈することによって、及び可能であれば新しい要素又は変更された要素を以前の結果と組み合わせることによって、高速スクリーニングシステムは、インターフェースの応答性を最大化する。
【0054】
様々な実施形態では、ドメイン固有言語は、インタープリタが、同時処理及びデータシャーディング(例えば、時間、データ項目、及びユーザー固有パターンにわたる)のためにその設計を利用することができることと、言語が、ドメイン固有であり、したがって、汎用コンピューティングに適しているのではなく、タスクに高度に特化され最適化されていることと、ユーザーに見える必要がある結果のみがクライアントに送信されることと、インクリメンタルな解釈のために設計されていること、言語自体がユーザーアクションの意味理解を可能にし、クエリプランナを最適化することを可能にすることの、いくつかの理由の組み合わせのために、演算ルーチン200が解釈する(255)のに高速である。更に、バックエンドシステムは、
図27~29を参照して以下で更に説明するように、ドメイン固有言語に対する制約に部分的に基づいて高速な結果を提供するように構成される。
【0055】
ブロック265では、入力が解析され、解釈された後、演算ルーチン200は、ユーザー入力のためのインターフェースからの解釈された入力に対応する結果の表示のために、インターフェースにカテゴリを更新、削除、及び/又は追加する。例えば、グリッドビューの実施形態の例では、高速スクリーニングシステムが、データタグを新たに呼び出す表現式を解釈するときに、演算ルーチン200は、グリッドビューにおけるそのデータタグに関連付けられた見出しを有する列を追加する。いくつかの実施形態では、演算ルーチン200は、ユーザーによって明示的に命名されていない表現式に対して新しい列見出し名を生成する。
【0056】
いくつかの実施形態では、演算ルーチン200がブロック245に記載されるようにデータを得ているときに、演算ルーチン200は、データタグの列を表示し、データ値が受信されたときにデータ値を記入し得る。いくつかの実施形態では、演算ルーチン200は、各文又は表現式(例えば、複数行エディタにおける各行)における各計算又は新たに導入されたデータタグの列を表示し、中間ステップの全てが可視であるため、透明性及び理解を提供する(及びデバッグを支援する)。いくつかの実施形態では、演算ルーチン200は、各文又は表現式について1つの列を表示し、デフォルトで中間計算を隠す。ユーザーが表現式を編集又は削除するときに、演算ルーチン200は、それに対応して、もはや入力に含まれていないデータタグ及びデータ値を変更又は除去する。様々な実施形態では、演算ルーチン200は、処理及びレンダリング時間を最小限にし、したがって、インターフェースの応答性を最大限にするために、新しい又は変更された要素を以前の結果と組み合わせることによって、結果表示を増分的に更新する。いくつかの実施形態では、演算ルーチン200は、ブロック245に記載されるようにデータを得て、ユーザーに表示するのに十分なデータが受信されたときにのみ結果を表示する。例えば、結果が得られている間にグリッドビュー表示におけるほとんど空の列の上に見出しを表示するのではなく、演算ルーチン200は、表示を更新する前に結果(例えば、結果値の大部分若しくは全部、又はユーザーが最初に見ることができる結果値)をアセンブルすることができる。値がロードされるときに、ばらばらではなく準備ができているときに、完全な結果又はほぼ競合した結果をディスプレイに一度に追加することは、演算ルーチン200が、即時結果を受信するユーザーの感覚を改善する方法で結果を提示するのを助けることができる。一般に、ユーザーが入力の表現式又は行を完了する数秒以内に提示される結果は、「即時」として知覚される。ユーザーは、インターフェースがその後結果を提示する際に即時応答性を提供するかどうかを判断するときに、例えば、複雑なデータ集合の初期ローディングのために、スタートアップ遅延を割り引き得る。
【0057】
ブロック275では、入力が解析され、解釈された後、演算ルーチン200は、選択された識別子の母集団及びアクティブなフィルタ基準に対応する表示された識別子をフィルタリングする。例えば、グリッドビューの実施形態の実施例では、高速スクリーニングシステムがデータタグに関連付けられた表現式フィルタリングデータ値を解釈するときに、演算ルーチン200は、どの識別子がフィルタリング基準にマッチングするかを判定し、マッチングする識別子及びマッチングする識別子に関連付けられたデータ値のみを表示する。いくつかの実施形態では、演算ルーチン200は、各入力行又は表現式のエントリを用いて結果集合を継続的に構築する。いくつかの実施形態では、結果データが得られると、演算ルーチン200は、結果を表示するために結果集合をデータベースに挿入する(例えば、クライアントが最初にユーザーに見えるデータの部分集合を要求して、クライアントが結果集合全体のその部分集合を実際に表示できるようにするために)。いくつかの実施形態では、演算ルーチン200は、ユーザーとの既存のセッションからの結果を使用することができる。
【0058】
ブロック285では、演算ルーチン200は、例えば、ユーザー入力のためのインターフェースを介して、追加の入力が受信されたかどうかを判定する。いくつかの実施形態では、演算ルーチン200は、非同期的に、かつ他のブロック(例えば、データを得ること(245))が完了するのを待つことなく、追加の入力(前の入力における任意の場所における、前の入力の修正又は削除を含む)を処理し得、又は最近要求されたデータの高速表示を確実にするために、新しい又は変更された入力に応答するように、前の入力の処理をキャンセルし得る。言い換えれば、演算ルーチンは、追加の入力が任意の時間に受信されたかどうかを判定し得る。追加の入力が受信された場合、演算ルーチン200は、入力解析ブロック225にループバックして、次の入力シンボルがあればそれを処理する。
【0059】
演算ルーチン200は、終了ブロック299で終了する。
【0060】
図3A~
図3Bは、一実施形態による複数行エディタ内の改訂を示す、株式スクリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース300を示す。
【0061】
図3Aでは、複数行エディタ301における1行目310は、「$UnitedStatesSmallAndMidCap」識別子、すなわち、中小資本として分類された米国株の母集団を指定し、2行目320は、「CompanyName」のデータタグである。したがって、グリッドビュー302では、第1の列315は、指定された母集団における株式に関する株式ティッカーシンボル(又は、例えば、適切な識別子としての一意の証券ID)を表示し、第2の列325は、各識別子に関する関連する会社名を表示する。示された実施例は米国株に焦点を当てているが、国際証券は、代わりに選択されることもできる。
【0062】
図3Bでは、1行目312は、異なっており、ここでは、「$UnitedStatesLargeCap」識別子、すなわち、大資本として分類された米国株の母集団を指定する。2行目320は、変更されず、「CompanyName」についてのデータタグである。グリッドビュー302では、改訂された第1の列317は、指定された母集団における株式に関する株式ティッカーシンボルの新しい集合(識別子の代わりに)を表示し、第2の列327は、各識別子に関する関連する会社名を表示する。この実施例では、高速スクリーニングシステムは、2行目320上で入力が入力され処理された後であっても、1行目310~312上の入力の修正を受け入れる。高速スクリーニングシステムは、そのような変更をシームレスに処理して、ユーザーが入力の終わりから削除して変更に戻すこと、又は他の方法で開始し直すことを必要とせずに、検討中の識別子の領域を完全に置き換える。いくつかの実施形態では、高速スクリーニングシステムは、ユーザーが、(例えば、アンドゥスタックを通して、又はControl-zなどのキーボードストロークを用いて)変更をアンドゥすることを可能にし、結果をキャッシュすることによって、ユーザーが、動的結果間を急速に行ったり来たりすることを可能にする。柔軟で自由に編集可能な複数行入力を提供することによって、及び変更するユーザー入力に応答して更新を継続的にリフレッシュすることによって、開示された高速スクリーニングシステムは、ユーザーが、以前には可能でなかった方法で、所望の戦略を識別するために、代替案を強力かつ急速に探索することを可能にする。
【0063】
図4は、一実施形態による株のカスタム母集団を作成するためのダイアログ400を示す、株式スクリーニングのために構成された高速スクリーニングシステムの例示的なユーザーインターフェースを示す。ユーザーは、検討中の識別子の開始母集団のためのカスタム基準を作成することを望み得る。例えば、不動産業者は、住宅のタイプ若しくは立地(例えば、都心のマンション群若しくは郊外の一戸建て)に特化し得、又は投資家は、業界カテゴリ若しくは会社規模に焦点を当て得る。様々な実施形態において、高速スクリーニングシステムは、頻繁な使用に基づいて最適化することができる様々な基準を使用して新しい又はカスタム母集団を定義するための便利なインターフェースを提供する。
【0064】
示された実施例では、ダイアログ400は、ユーザーに、例えば、指定された国、時価総額範囲、流動性最小値、又はGlobal Industry Classification Standard(GICS(登録商標))業界カテゴリなどの選択されたアスペクト420を有する株のカスタム母集団に名前を与える(410)ように促す。いくつかの実施形態では、利用可能なアスペクト420は、因子の組合せ、例えば、国の集合を含み得る。いくつかの実施形態では、カスタム母集団は、選択された会社から構成されることができる。そのような母集団は、名前を探す(looking up)、又は識別子のリスト、例えば、ポートフォリオにおける名前をロードすることによって作成されることができる。この実施例では、ダイアログ400はまた、ユーザーが、S&P 500などのベンチマークに対する指標を選択することを可能にする。識別子の母集団を定義する選択を受け取った後、ダイアログ400は、ユーザーが「Create Universe」430を選択し、次いで、選択された名前によってカスタム母集団を参照することを可能にする。
【0065】
いくつかの実施形態では、高速スクリーニングシステムは、作成された母集団が、ユーザー間の共同作業のために、例えば、共有オフィス環境において、他者と共有されることを可能にする。同様に、いくつかの実施形態では、高速スクリーニングシステムは、カスタムデータタグ、表現式、及びスクリーニングセッション全体が協調的に共有されることを可能にする。いくつかの実施形態では、識別子のカスタム母集団は、作成後に編集又は削除されることができる。いくつかの実施形態では、新しい母集団の作成における高速スクリーニングシステムの性能を向上させるために、母集団作成基準(例えば、株式についての、国、時価総額、産業など)に関するデータは、証券情報のデータベースから引き出される必要なく情報がクライアントに急速に利用可能であるように、定期的に(例えば、メモリデータ内で)更新される別個のデータベーススナップショット内に記憶される。いくつかの実施形態では、ドメイン固有言語自体は母集団を定義するために使用されることができる。
【0066】
図5Aは、一実施形態によるドメイン固有の柔軟なテキストマッチング及び補完提案を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース500を示す。
図2を参照して上述されたように、高速スクリーニングシステムは、入力がエラーを含むか、又はそうでなければ正確なマッチでない場合であっても、正確なオンザフライタームマッチングを提供するために、ドメイン固有の用語に対して入力を柔軟にマッチし得る。例えば、複数行エディタ501では、2行目入力520は、「returonequit」である。その入力は、「n」を「return」の終わりから離し(又は、別の解釈によって、「return」に余分な「o」を含み、単語「on」を完全に除外し)、「y」を「equity」の終わりから離す。それにもかかわらず、開示された高速スクリーニングシステムは、データタグ提案ペイン及び説明テキストウィンドウ521をカーソルに表示し、意図されている可能性が高い入力データタグのマッチングする文字を強調表示する。複数行エディタ501は、ユーザーが、不完全かつスペルミスされた入力を直ちに置き換えるために、提供されたオプションのうちの1つを選択することを可能にする。対照的に、スプレッドシート定式などの従来のシステムは、文字-完全なテキストと、タイプミスが台無しになる非直観的なセル番号の相互参照とを必要とし、Excel(登録商標)スプレッドシートなどの汎用ツールは、意味論的エラー取り扱い及びドメイン固有の用語の補完を提供することができない。柔軟なテキストマッチング及びドメイン固有の完了提案を提供することによって、高速スクリーニングシステムは、ユーザーが以前に可能であったよりも容易かつ急速にスクリーニングすることを可能にする。
【0067】
図5Bは、一実施形態によるデータタグ探索を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース550を示す。データエクスプローラダイアログ551は、ユーザーが、即時使用のために意図された入力データタグを発見することを可能にする。様々なドメインでは、利用可能なデータタグの数は、ユーザーにとって圧倒的なものであり得、無制限のデータソースにわたって、数万又は数十万の証券にわたって、数千又は数万に達する。例示的なデータエクスプローラダイアログ551は、会社名555、検索テキスト560、及びデータパッケージ又はデータプロバイダ565のためのフィールドを提供する。示された実施例では、ユーザーは、S&P Global-基礎データというタイトルのデータパッケージから入手可能な、Microsoft Corporationについての用語「EBIT」(利払前・税引前収益(earnings before interest and taxes))に関連するデータタグを検索する。いくつかの実施形態では、ユーザーが入力したテキストは、高速発見を支援するために、自動入力機能で支援される。マッチングするデータタグは、結果ボックス570に列挙され、各データタグについての名前、説明、及び値(現在の四半期及び後続の12ヶ月について)を示す。他の実施形態は、他のプロパティ又は完全な例示的スニペットを含む。いくつかの実施形態では、検索テキストは、値(例えば、特定の年間成長率)を含む、データタグに関する情報のいずれかとマッチングすることができる。便利なユーザーインターフェース要素は、ユーザーが、結果ボックス570におけるセルをダブルクリック575してピン留めし、ボタン580を使用して選択された1つ以上のデータタグをコピーすることによって、所望のデータタグを選択することを可能にする。例えば、8.163900セル571をダブルクリックすると、データタグ「Ebit10YrCagrPct」が固定され、8.566600セル572をダブルクリックすると、示した実施例では、データタグ「Ebit10YrCagrPctTtm」は、固定され、一方又は両方のデータタグをクリップボードに容易にコピーして表現式にペーストされることができる。そのようなドメイン固有のデータ探索ツールを提供することによって、高速スクリーニングシステムは、ユーザーが、関連するデータタグを発見し、利用可能なデータタグを探索し、以前に可能であったよりも容易に、急速に、かつ効果的にデータをスクリーニングすることを可能にする。
【0068】
図6A~
図6Bは、一実施形態による基準に対するフィルタリングを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース600A~600Bを示す。
図1及び
図2の両方を参照して上述されたように、高速スクリーニングシステムは、ユーザーが、表現的マッチング基準に従って識別子の集合をフィルタリング、制限、縮小、又は狭めることを可能にする。示された実施例では、ユーザーインターフェース600Aは、グリッドビュー602の列615に米国大資本株式を表示する。2行目の複数行エディタ601の入力620は、「ReturnOnEquityPctTtm」であり、これは、後続の12ヶ月間の各会社の株主資本利益率パーセンテージのデータタグである。「Return On Equity Pct Ttm」についての値は、グリッドビュー602における列625に表示される。
【0069】
ユーザーインターフェース600Bを参照すると、2行目上の複数行エディタ601入力622は、ここでは「~ReturnOnEquityPctTtm>40」であり、行の始めにチルダ(「~」)フィルタリング演算子を追加し、データタグの後に比較条件「>40」を追加する。したがって、グリッドビュー602は、全ての米国大資本株式の指定された母集団における全ての識別子(又はそれらの株式ティッカーシンボル)をもはや表示しない。代わりに、後続の12ヶ月間の会社の株主資本利益率パーセンテージが40より大きい会社の列617における株式ティッカーのみは、列627における更新されたグリッドビュー602に含まれる。列615に表示された全ての識別子についてのReturnOnEquityPctTtmのデータは、システムによって既にロードされている(及び列625に表示されている)ので、そのような制限演算は、非常に高速で達成することができる。
【0070】
いくつかの実施形態では、(例えば、ユーザー可読性を向上させるために)「~」(又は「フィルタ」、「制限」、「のみ」など)のような表現演算子は、必要とされる。いくつかの実施形態では、表現演算子が許可され得るが、フィルタ演算は、比較演算子の存在から推測され得る。フィルタリングが推論される場合、又は全てのフィルタリング演算について、高速スクリーニングシステムは、行又は文を区別することができる(例えば、文を装飾すること、又はテキストフォーマッティング、背景色などを適用することによって、及び/又はユーザーによって省略され、システムによって推測される明示的な演算子を挿入することによって)。
【0071】
いくつかの実施形態では、高速スクリーニングシステムは、追加のフィルタリング関連演算子、例えば、「OR」演算子、「NOT」演算子、及び/又は列挙(Y内にある全てのX)などを提供する。
【0072】
図7は、一実施形態によるカスタム変数名に割り当てられた表現式を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース700を示す。
図1を参照して上述したように、高速スクリーニングシステムは、ユーザーが新しいカスタム変数名又はデータタグを作成することを可能にする。例えば、高速スクリーニングシステムは、任意のデータタグに新しい別名を与えられることを可能にし、任意の表現式(例えば、データタグに関連付けられたデータ値を修正すること、又は複数のデータ値を組み合わせること)が命名されることを可能にし、その結果、それは、有用にラベル付けされ、再び便利に参照され得る。名前は、例えば、コードスニペット又は実際の変数に適用されることができる(したがって、再計算する必要がない)。したがって、
図4を参照して上述されたようなカスタム母集団を定義する能力と併せて、ユーザーは、例えば、母集団、データタグ、データソース、及び/又は変換を定義するなど、ユーザー自身のニーズを満たすために、ドメイン固有言語を拡張することができる。
【0073】
複数行エディタ701において示された文740は、2つのデータタグ「ReturnOnEquityPct」及び「ReturnOnAssets」の総和を、カスタム名の変数又はデータタグ「MyCustomIndex」に割り当てる。したがって、「私のカスタム指標」という見出しの下にある列745は、グリッドビュー702に表示された各株式ティッカーシンボルに対する会社の2つのデータ値、株主資本利益率パーセンテージ及び総資産収益率の合計を表示する。いくつかの実施形態では、高速スクリーニングシステムは、ユーザー可読性のためにデータタグを命名するための規約としてPascalCase(化合物名の全ての単語が大文字で書かれている)を使用し、結果表示インターフェース(例えば、グリッドビュー702における見出し線)は、可読性を高めるために、データタグにおける適切な位置(例えば、小文字とそれに続く大文字との間)にスペースを自動的に追加する。スペースのないデータタグにおける化合物名に関する他の同等の規則は、camelCase(最初の後の全ての単語が大文字化される)、kebab-case(ダッシュが単語を分離する)、及びsnake_case(下線が単語を分離する)を含む。いくつかの実施形態において、高速スクリーニングシステムは、変数を命名するためにドット表記、例えば、「ReturnOnEquity.TTM」を使用するか、又は括弧を採用する。いくつかの実施形態では、曖昧でないマッチングデータタグを識別する(又は入力がドメイン固有言語及び演算子のコンテキストにおいて曖昧である場合に可能性の高いオプションを提案する)ために、スペースは、データタグ内に許容されるか、又は、システムは、スペースを有する入力を解析する。変数名を表示出力とリンクすることによって、本技術は、非プログラマが、出力における見出しが正しく見えるかどうかを認識することができるので、非プログラマが、維持可能な「コード」を自然に書くことを促進する。
【0074】
いくつかの実施形態では、システムは、書かれたテキスト又は音声認識インターフェースなどの自然言語ユーザーインターフェースを含む。人間の言語は、一貫して信頼できる結果を得るのに十分に制約されていないので、自然言語処理(NLP)は失敗することが多い。開示された技術は、中間層としてドメイン固有言語を提供するので、結果が大幅に改善されることができる。例えば、「10K提出書類において中国関税に言及している全ての会社を見出してください」という自然言語要求は、ドメイン固有言語で表現式を生成するために、言語モデル(例えば、GPT-3)によって処理されることができる。ドメイン固有言語は意味論的に意味があるので、人間は、出力を理解し、自然言語文が要求したことを表現式が行っていることを検証し、必要に応じてそれを編集することができる。ドメイン固有言語での表現式は、短い空間内で非常に表現力があるので、それらは、ユーザーによって容易に検証可能であり、より意味のある、容易に信頼できる対話モードを提供する。
【0075】
変数を宣言し、次いで、それに値を割り当てるほとんどのプログラミング言語とは対照的に、示された実施形態では、ドメイン固有言語は、結果の後に演算する代入演算子を含み、ユーザーに様々な表現式を探索させ(ユーザーがそれらをタイプ又は修正又は置換すると直ちに解釈される)、次いで、結果(直ちに表示される)をユーザーが命名した変数に割り当てるように心理的に促す。これはまた、表現式がより速く「完了」されることを確実にし、例えば、定式又は文「A=awesome(param)」は、文の最後まで完了しないが、表現式「param|awesome=>A」はその構造全体を通して完了する。
【0076】
図8A~
図8Cは、一実施形態によるカスタム変数名に対する複数の参照の同時リネームを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース800A、800B、800Cを示す。示された実施例では、複数行エディタ801の3行目の入力830において、ユーザーは、「StandrRoa」という名前のカスタム変数又はデータタグを定義している。更に、複数行エディタ801の4行目の入力840において、ユーザーは、カスタム「StandrRoa」変数又はデータタグを参照する表現式を入力している。
図8Aでは、高速スクリーニングシステムは、4行目のカーソルにデータタグ提案ペイン及び説明テキストウィンドウ841を表示し、認識されたユーザー定義変数として「StandrRoa」を強調表示する。
図8Bでは、複数行エディタ801におけるコンテキストメニュー842における強調表示された選択は、ユーザーに、カスタム変数名の「全ての発生を変更する」を行う能力を提供する。
図8Cでは、複数行エディタ801は、ユーザーが複数の場所で同時に「StandrRoa」を「StandardRoa」に変更することを可能にしている。したがって、高速スクリーニングシステムは、変数参照のいずれも破壊することなく、変数名に対する一貫したグローバル変更を可能にする。対照的に、従来のドメイン内検索システムは、テキスト入力を再編成する能力を提供しない。
【0077】
図9は、一実施形態によるドメイン固有の構文エラー取り扱いを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース900を示す。
図2及び
図5の両方を参照して上述されたように、高速スクリーニングシステムは、入力を解析するときに、エラー耐性がある。例えば、入力が不完全である場合、高速スクリーニングシステムは、ドメイン固有言語における意図されたマッチングを推測し、例えば、認識されていない入力を最も近い有効なマッチングで置き換えるか、又は認識されていない入力の潜在的な置き換え若しくは補完の集合を提案しようと試み得る。加えて、不正な形式の入力(例えば、ドメイン固有言語におけるいずれの演算子又はデータタグにもマッチングしないシンボルなどの構文エラー)は、高速スクリーニングシステムをクラッシュさせず、又は処理を停止させない。様々な実施形態では、高速スクリーニングシステムは、入力の残り(エラーの前後の両方)を解析し続け、パーサ認識されたシンボルを処理し、以前に成功した結果を表示し続けることができる。
【0078】
示された実施例900では、ユーザーは、例えば、有効なデータタグ「ReturnOnEquityPct」を以前に入力した後に、複数行エディタ901の2行目に誤字又は不完全な入力920「Returone」を入力している。高速スクリーニングシステムは、データタグ提案ペイン及び説明テキストウィンドウ921をカーソルに表示し、意図されている可能性が高い入力データタグのマッチングする文字を強調表示する。同時に、複数行エディタ901は、「エラー:2行目に無効な構文」(又は、例えば、「エラー:2行目にデータタグが存在しない」)を示すテキスト警告922と、マージンテキスト装飾923、及び認識されず処理されない入力920の場所を強調する赤いジグザグの下線を表示する。いくつかの実施形態では、エラー取り扱いは、エラーメッセージがドメイン固有であるように、ドメインに固有の情報を適用することを含む。
【0079】
一方、グリッドビュー902の残りは、影響を受けない。米国大資本株915の母集団は、複数行エディタ901の残りの部分のデータタグ及び表示された識別子の対応するデータ値とともに表示されたままである。いくつかの実施形態では、以前に表示されたデータ(例えば、「ROE Pct」列925)は、高速スクリーニングシステムが処理することができる入力がその場所に入力されるまで、示されたままである。いくつかの実施形態では、データは、高速スクリーニングシステムが処理することができないシンボルについて表示されない。
【0080】
図10は、一実施形態による変換関数を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース1000を示す。示された実施例では、複数行エディタ1001の2行目の入力1020におけるパイプシンボル(「|」)は、変換関数又は変換演算を示す。この例では、5つの変換関数は、演算子提案ペイン及び説明テキストウィンドウ1021に、
平均(数の配列に適用されるとき、例えば、算術平均を生成する)、
ランク(各識別子のデータ値を比較し、それらを高から低又は低から高のいずれかにランク付けする)、
五分位数(各識別子のデータ値を比較して、それらをそれぞれ20%ずつ5つのバケットに分類し、五分位数番号を生成する)、
正規化(各識別子のデータ値を正規化正規分布と比較し、zスコアを生成する)、及び
傾向安定性(数字の配列に適用されると、傾向が正であるか、負であるか、どちらでもないかを示す数字を生成する)が、リストされている。
【0081】
様々な実施形態では、高速スクリーニングシステムは、追加の、又は異なる変換関数(例えば、中央値関数、十分位数関数など)を提供し得る。例えば、一組の自然言語処理変換関数は、ユーザーが、訴訟に携わっている会社に関するニュース報道の方針を評価するために、「NewsRecent[「lawsuit」]|Sentiment=>LawsuitNewsSentiment」などの表現式を入力することができる。
【0082】
図11は、一実施形態による配列データの自動グラフ表示を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース1100を示す。示された実施例では、複数行エディタ1101の2行目の入力1120は、「ReturnOnEquityPct[-11q:0q]」であり、これは、過去12四半期(すなわち、11四半期前から現在まで)の各々に対する各会社の株主資本利益率パーセンテージを表すデータタグである。いくつかの実施形態では、値の配列に関連付けられたデータタグに関する表現式は、配列データの選択された部分集合を表示することを除いて、明示的な配列表記を必要としない。例えば、配列値を表す2つのデータタグは、一緒に追加され得るか、又は他の方法で表現式において操作されることができる。いくつかの実施形態では、「ReturnOnEquityPct[12q]」などの代替又は簡略表記は、現在までの期間(例えば、年、四半期、月、週、又は日)の数を簡潔に示すことができる。いくつかの実施形態では、システムは、配列データを自動的に整列させる。例えば、時系列Aを参照するデータタグが時系列Bを参照するデータタグによって分割される場合、システムは、順方向充填によって現在値を自動的に整列させることができる。
【0083】
この実施例では、開示された高速スクリーニングシステムは、配列データをユーザーフレンドリなコンパクトグラフ1125として、識別子ごとに1つずつ表示する(株式ティッカーシンボルが実際に表示される)。高速スクリーニングシステムによって生成されるコンパクトなグラフは、結果配列における各データ値に対する水平軸の上又は下に陰影を含む。したがって、高速スクリーニングシステムは、正及び負の値を視覚的に明らかにし、ユーザーが経時的な傾向を識別することを容易にする。加えて、グラフ又はグラフ上のデータポイントの上にカーソルを置く、右クリック、又は長押しなどのコンパクトグラフ1125のうちの1つにおけるユーザーアクションは、識別子に対する結果配列における基礎となるデータ値1127のうちの1つ以上を明らかにし得る。いくつかの実施形態では、コンパクトグラフ1125は、境界又はx軸ラベル(例えば、日付)などの主要情報を含むか、又は表示する。
【0084】
いくつかの実施形態では、高速スクリーニングシステムは、ユーザー定義の機能及びデータタグについても同様の機能性又は拡張性を提供する。例えば、データタグ又は関数は、プログラマが、(例えば、複雑なデータのカスタム視覚化のために)データタグ又は関数の基礎となるカスタムコードを書くことができ、そのデータタグ又は関数を使用する非プログラマがそれを利用できるように、拡張可能である。例えば、いくつかの実施形態では、「Score」で終わるカスタム変数又はデータタグを命名することは、四分位数、十分位数、ランクなどに従って、関連するデータ値を自動的にフォーマットし、色分けすることができる。同様に、いくつかの実施形態では、カスタム変数又はデータタグを「Trend」で終わるように命名することは、システムに、任意の関連する配列データをグラフで表示するように自動的に促すことができ、及び/又は、カスタム変数又はデータタグは、「Pie」で終わるように命名することは、システムに、任意の関連する配列データを円ブラフで表示するように自動的に促すことができる。いくつかの実施形態では、システムは、任意の配列データをグラフ化するように構成されることができる。様々な実施形態では、結果のフォーマッティング及び/又はカラーコーディングは、任意のインターフェースを介して、更には対話式に達成されることができる。例えば、いくつかの実施形態では、列は、小見出しの集合の上にグループ見出しを示すように、表示においてグループ化され得る。
【0085】
図12は、一実施形態による10-K提出書類へのリンクの自動表示を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース1200を示す。
【0086】
図11と同様に、高速スクリーニングシステムインターフェースグリッドビュー1202は、複数行エディタ1201の2行目における入力1220におけるデータタグに対応するデータ値の配列を表すコンパクトグラフを表示する列1225を含む。この場合、入力1220は、「ReturnOnEquityPct[-3q:0q]」であり、これは、過去4四半期(すなわち、3四半期前から現在まで)の各々に対する各会社の株主資本利益率パーセンテージを表すデータタグである。同じ入力1220は、配列データ値の「傾向安定性」変換を生成し、各場合における傾向の数値指標1245を与える。示されるように、4行目の入力1240は、表示される識別子を、過去4四半期にわたる株主資本利益率傾向が強い正(0.8より大きい)である識別子に限定するので、傾向は、全て上向きである。3行目は、空白であり、示された実施形態における複数行エディタ1201が不連続入力をシームレスに解析する能力を示す。
【0087】
正の安定性傾向を識別するために開示された技術を適用する別の方法は、2つの期間にわたる安定性傾向を比較することである。例えば、以下の表現式は、1年前から4ヶ月前までの株主資本利益率パーセンテージに対する傾向安定性を表す「RoeStabilityPrevious」という名称のカスタムデータタグと、4ヶ月前から本日までの株主資本利益率パーセンテージに対する傾向安定性を表す「RoeStabilityRecent」という名称のカスタムデータタグとを確立する。
(ReturnOnEquityPct[-11q:-4q])|TrendStability=>RoeStabilityPrevious
(ReturnOnEquityPct[-3q:0q])|TrendStability=>RoeStabilityRecent
【0088】
一方の傾向を他方の傾向から減算することによって、差は、判定され、フィルタリングされることができる。
(RoeStabilityRecent-RoeStabilityPrevious)=>RoeTrendDifference
~RoeTrendDifference>1
【0089】
又は、代替案では、例えば、ROEが最近急上昇した会社を識別するために、以前の傾向及び現在の傾向の絶対値をフィルタリングすることができる。
~RoeStabilityRecent>0.6
~RoeStabilityPrevious<0.6
【0090】
複数行エディタ1201の5行目の入力1250は、データタグ「Filings10k」をグリッドビュー1202に追加し、米国有価証券報告書(Securities and Exchange Commission:SEC)で各会社の最新のフォーム10-K提出書類に関する情報を表示する。示された実施形態では、10-K提出書類情報は、最近の利用可能な提出書類の日付、及びSECにおけるオンラインの提出書類のコピーへのハイパーリンクを含み、したがって、スクリーナは、文書を直接読み取るか又はダウンロードすることができる。したがって、高速スクリーニングシステムは、複雑なデータタイプ、例えば、JSONフォーマットのデータ及びメタデータを処理するように構成することができ、それにより、以前に可能であったよりも多くの量の有用な情報をスクリーナに提示するために、結果をユーザーアクセス可能なフォーマットで表示することができる。
【0091】
複数行エディタ1201の6行目の入力1260は、グリッドビュー1202にデータタグ「GicsSector」を追加し、表示された識別子(株ティッカーシンボル)の各々についてGICSセクタを表示する。
【0092】
図13は、一実施形態による特許を保有する会社の選択的表示を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース1300を示す。複数行エディタ1301では、行3の入力1330及び行4の入力1340は、1つ以上の特許が授与された会社を識別するために、データタグ「PatentsIssued」を使用する。高速スクリーニングシステムは、例えば、発行された特許のデータベースを検索し、所有者又は譲受人が会社の名前にマッチングする特許を識別することができる(いくつかの実装形態では、厳密でないマッチング及び/又は関連するエンティティに対応する)。示された実施例では、入力1330において、表現式「PatentsIssued[「autonomous vehicle」,「autonomous driving」]」は、語句「自律運転車(autonomous vehicle)」又は語句「自律運転(autonomous driving)」のいずれかを含む(データタグAutonomousDrivingPatentsが割り当てられる)1つ以上の特許が与えられた会社を識別するように解釈される。同様に、入力1340における表現式「PatentsIssued[「electric vehicle」]」は、高速スクリーニングシステムによって解釈されて、語句「電気車両(electric vehicle)」(データタグElectricVehiclePatentsが割り当てられている)を含む1つ以上の特許を与えられた会社を識別する。
【0093】
グリッドビュー1302では、列1335は、自律運転特許を表示し、列1345は、電気車両特許を表示し、特許タイトル及び発行日を示し、特許文書へのリンクを提供する。いくつかの実施形態では、スクリーニングシステムは、検索によって見出された特許(又は現在有効な特許)の総数を提供する。例えば、電気車両のピュアプレイパテントスコアは、「PatentsIssuedCount[「Electric Vehicles」]/PatentsIssuedCount」又は類似の表現式として表現されることができる。示された実施例では、複数行エディタ1301の7行目の入力1370は、表現式「~AutonomousDrivingPatents>0」を用いたフィルタリングを示し、8行目の入力1380は、表現式「~ElectricVehiclePatents>0」を用いてフィルタリングを行い、グリッドビュー1302に含まれる会社(会社ティッカー列1315に列挙されている)のみが、各カテゴリに少なくとも1つの特許を有する会社であるようにする。言い換えれば、表示された会社は、自律運転特許1375及び電気車両特許1385の両方を有する(必ずしも自律電気車両特許ではないが)。
【0094】
様々な実施形態では、高速スクリーニングシステムは、広範囲のデータソースのコンテンツを得て、リンクし、フィルタリングするように構成されることができる。例えば、「NewsRecent」データタグは、グリッドビュー1202に、様々なニュースソースからの各会社に関する最近のニュースヘッドラインを表示させることができる。
図12のフォーム10-Kリンク及び
図13の特許タイトルと同様に、所与の識別子についての各ニュースヘッドラインは、記事全体にリンクされ、一方、検索結果に直接要約情報を有効に提供する。いくつかの実施形態では、システムは、ユーザーが、関心のある用語を含む最近のニュース記事をフィルタリングすることを可能にする。例えば、「NewsRecent[「autonomous driving」]」などの表現式は、ユーザーが、その分野におけるメディアエンゲージメントと比較して、その分野において公開された特許がほとんどない会社を識別すること、又はその逆を可能にすることができる。このようにして、高速スクリーニングシステムは、スクリーニング者が、会社の技術開発の活動領域を直接観察すること、又は関心のある標的についてのニュースを読むこと、及び数値データ分析を補足するためにそのような標的に関するカバレッジの主観的な印象を得ること、又はいくつかの証券に関連する市場を移動させ得るブレイキングニュースを識別することを可能にする。
【0095】
図14は、一実施形態による10-K提出書類において見出されたテキストに対するフィルタリングを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース1400を示す。
図12と同様に、
図14の高速スクリーニングシステムは、コンパクトな傾向グラフ及びデータタグ「Filings10k」を含む。しかしながら、フォーム10-K提出書類へのリンクを提供するのではなく、
図14は、そのデータタグを使用して、それらの10-K提出書類のコンテンツに基づいて識別子をフィルタリングする。特に、示された実施例における複数行エディタ1401の5行目の入力1450は、表現式「~Filings10k contains「china tariffs」」によるフィルタリングを示す。したがって、結果グリッドビュー1402における会社のリスト1415は、米国大資本会社1410が、過去4四半期のROE1420、1425が著しく成長し1440、1445、最新のフォーム10-K提出書類が中国1450及び関税1455に言及された、複数の基準に基づいて制限される。
【0096】
グリッドビュー1402において、「提出書類10k」列1455は、フォーム10-K文書全体へのリンクを単に提供するのではなく、10-Kからの関連するマッチングテキストを表示し、マッチング探索語が強調表示される。いくつかの実施形態では、強調表示されたテキストは、ソース文書へのリンク、より具体的にはソース文書の引用部分へのリンクを提供する。
【0097】
上述したように、いくつかの実施形態では、「含有する」のような演算子は、アルファベットテキストなしで実装される。例えば、括弧表記を使用すると、構文は、
図13における「PatentsIssued[「electric vehicle」]」の実施例と同様に、等価な実施例として「Filings10k[「china tariffs」]」とすることができる。いくつかの実施形態では、「含有する」演算子は、変換、例えば、「Filings10k|contains「china tariffs」」として機能し、そのステップを明示的にし、結果に対するフィルタリングを可能にし、フィルタリング自体は、暗黙的であり得る。フォーム10-K提出書類又は特許などの文書の内容に基づいて識別子をフィルタリングする能力を提供することによって、開示された高速スクリーニングシステムは、スクリーニングに対する強力な新しいアプローチを可能にし、異種のデータ集合にわたって合成する能力を提供する。
【0098】
図15は、一実施形態による結果のグループ化を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース1500を示す。
図12と同様に、
図15の高速スクリーニングシステムは、複数行エディタ1501の6行目の入力1560にデータタグ「GicsSector」を含む。したがって、結果グリッドビュー1502は、表示された識別子(株式ティッカーシンボル)の各々についてGICSセクタを表示する。しかしながら、
図15では、「Gics Sector」列1565見出しは、識別子をそれらのカテゴリデータ値に従ってグループ化するために使用される。
【0099】
示された実施形態では、「Gics Sector」見出しも、グリッドビュー1502の上部に設定行グループとして表示される(1506)。したがって、グリッドビュー1502の左側は、一連のGICSセクタカテゴリ1566を列挙する。各カテゴリは、そのセクタにおける会社の識別子を示すように拡張されることができ、又はアクティブ母集団フィルタリング基準を満たすそのセクタにおける会社の数を示すように縮小されることができる。この実施例では、米国大資本会社の間の最近の強いROE成長の基準は、主に情報技術株のリストが作成されている。開示された高速スクリーニングシステムのこれらのインターフェース機能は、スクリーニング者が、傾向を同定し、関心のある標的を同定するためのストラテジーを探索し、代替ストラテジーを試みることの影響を容易に見ることを可能にする。
【0100】
上記の説明の各々において実証されるように、開示された高速スクリーニングシステムの柔軟なカスタマイズ可能性、使いやすさ、高速フィードバック、及び能力は、例えば、複雑で表現的なスクリーニング(「過去3年にわたって増加し、安定した株主資本利益率(RoE)を有する全ての会社」)、一意の視点(「最新の10-Kにおける中国関税に言及する全ての会社」)、データにおける不連続性又は不協和音の識別(「銘柄所感が増加しているが、株価が一定である全ての会社」)、集約傾向の発見(「収益における感情の増加を伴うセクタはQ&Aと呼ぶ」)、及びベンチマーキング(「我々が構築した全ての画面に対してMSFTがどのように機能するか?」)を可能にする。特に、画面は、構成可能であるので、ユーザーは、別の画面から1つの画面を参照することができ、又は複数の画面にわたって会社を「単体テスト」することができる。これは、視点のモザイクを構築することを容易にする。本開示のシステム及び方法は、以前には利用可能でなかった柔軟な構造化された視点を提供する。
【0101】
図16A~16Bは、一実施形態による改善された使いやすさを示す、先行技術システムについての例示的な定式1600A、及び株式スクリーニングのために構成された高速スクリーニングシステムについての対応する例示的な表現式1600Bを示す図である。
【0102】
図17A~17Bは、一実施形態によるバックテストを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース1700A~1700Bを示す。
図17Aでは、複数行エディタ1701におけるコンテキストメニュー1772における強調表示された選択は、ユーザーに、過去のマーケット結果に対する1組の基準の性能を「バックテスト(Backtest)」を行う機能を提供する。
【0103】
バックテストとは、任意の所与の時間に購入する価値のある株を識別するためのスクリーニング基準の集合などのモデルを履歴データに対してテストすることを指す。過去のデータに同じ基準を適用することによって、スクリーナは、異なる株式ティッカー識別子がテストされているデータタグ基準を満たしている可能性がある別の時間に戦略が機能したかどうかを判定することができる。バックテストは、ユーザーが、過去の期間中に一貫して使用された場合に、基準の集合がどの程度良好に機能したかを判定することを可能にする。バックテスターは、ユーザーが選択した基準に従って仮想ポジションを作成し、ユーザーの戦略を経時的に実行し、結果を記録する。本開示の前には、バックテストは、典型的には高価であり、数時間又は数週間かかり、狭いデータ集合に限定されていた。開示された高速スクリーニングシステム技術は、バックテスト結果1700Bを生成するのに約数分の1秒から5秒~10秒かかり、別個のツールの著しい構成又は使用を必要とせずに、ドメイン固有言語の完全な語彙を使用して表現された戦略をバックテストすることができる。バックテストのための例示的な同時サーバ対話は、
図28を参照して以下でより詳細に記載される。いくつかの実施形態では、バックテストは、システムがスクリーニングのために使用するのと同じコードの部分集合を使用して実施され、これは、ドメイン固有コンテキストによって可能になる。
【0104】
図17Bは、
図17Aの複数行エディタ1701に示された基準に対するバックテスト結果1700Bの集合を示す。示されたバックテストは、均等に重み付けされている。いくつかの実施形態では、高速スクリーニングシステムは、重み付けする因子を選択し(例えば、右クリックし)、次いで、バックテストを選択することなどによって、因子重み付けバックテスト(単に等しい重み付けではなく)を任意選択で実行するように構成される。様々な実施形態では、バックテスト結果1700Bは、バックテストの結果を図表化して列挙する様々なアプローチを含むレポート生成を含む。例えば、バックテストは、選択されたスクリーニング基準に従って選択された投資が、1つ以上のベンチマークと比較して、選択された期間、及び/又は経時的なリターンを考慮して、どのように実行されたであろうかという統計を提供することができる。開示された技術は、ユーザーが単に従来の技術を利用することができなかった、同時プログラミングの実行への前例のないアクセス可能性を提供する。
【0105】
図18は、一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムの例示的な変更アラートグラフ1800を示す。いくつかの実施形態では、高速スクリーニングシステムは、自動化された毎日のスクリーニングを実行し、例えば、電子メールを介して結果をユーザーに送信するように構成され得る。例えば、任意の重要な変更(例えば、リストに追加又はリストから削除された会社、新しいリスクのソース、関連するニュース記事など)がある場合、高速スクリーニングシステムは、ユーザーの時間を節約し、可用性バイアスを低減するために、それを自動的に強調表示することができる。示されたグラフ1800では、株スクリーニングの結果の集合が、垂直にリストされた識別子及び数値水平軸とともに示されている。変更アラートグラフ1800は、昨日(青い円)と今日(オレンジ色の円)の値の間の変更の視覚化を提供し、閲覧者が、何がどれだけ変更したかを即座に見ることを可能にする。
【0106】
いくつかの実施形態では、本技術は、ユーザーが任意の2つのスクリーニング結果集合を比較する類似グラフを生成する能力を提供する。
【0107】
図19Aは、一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおけるイントロスペクションのための例示的AI機能1900を示す。示された実施例では、開示された技術は、人工知能(AI)機械学習(ML)を使用して、既存のスクリーニング実践をイントロスペクトし、改善する。
【0108】
最初に、既存のスクリーニングモデルにおいて現在使用されている(例えば、潜在的な投資をランク付けするために)因子は、識別される。例えば、開示された高速スクリーニングシステムのドメイン固有言語で表現された仮想的なスクリーニングは、(0.4*ReturnOnEquity+0.4*ReturnOnAssets+0.2*DebtToEquity)=>CustomFactorである可能性があり、既存のスクリーナは、潜在的な投資をCustomFactorによって高から低にソートして、それらのクエリをそれらにとって何が最も重要であるかによって優先順位付けする)。
【0109】
ブラックボックスAIモデルを訓練して既存の実践を複製するために、我々は、「入力がROE、ROA、及びDTEであり、対応する入力データ、及び結果であることを知ると、我々は、それらのスクリーニングの結果を複製するモデルを構築することができるか?」という質問を行う。次いで、多くのMLモデルを訓練し、サンプル入力は、既存のモデルが使用するのと同じ入力であり、既存のランキング、及び予想されたランキングの出力を用いて、モデルが現在の実践を反映することを検証する。モデルを訓練した後、我々は、そのモデルに対する相対的な機能の重要度を判定するために、そのモデルをイントロスペクトする、すなわち、ブラックボックスの中を見ることができる。イントロスペクションは、例えば、因子が余分であるか、又は予期せず重く重み付けされていることを判定し得る。例えば、ユーザーは、ROE及びROAがスクリーニングプロセスにおいて等しく重み付けされたと考えている可能性があるが、主にROAを使用することによって、ユーザーの意図されたモデルの出力を予想されたモデルを構築することが可能であった場合、AI機能1900は、ユーザーが、そのスクリーニングプロセスが実際にどのように働いているかを理解し、それを改善するか、又は同じ結果に達する代替方法を提供するのを助けることができる。
【0110】
MLモデルの訓練における最も困難な部分の1つは、機能選択のプロセスである。典型的には、機能を選択するエキスパートユーザーは、モデルを実装しているデータ科学者又は定量的研究者とは異なる。開示された技術は、既存の画面を構築する際のドメイン固有言語のユーザーの使用から、スクリーナの機能選択パラメータの推論を可能にする。そのようなドメイン固有言語の使用を分析することは、同様にアクセス可能な他のスクリーナが、ユーザーが探しているものを言うのに十分な表現力を有していないので、既存のスクリーナでは不可能であり、ユーザーのツールの使用からセマンティックな意味を推論することができるほど十分に構造化又は制約されていない既存の言語では不可能である。
【0111】
別の課題は、特に、金融データを扱うときに、過剰適合である。イントロスペクションユースケースでは、生成されたMLモデルが過剰適合されることは重要ではなく、なぜなら、我々は実際に将来のイベントを予想しようとするのではなく、既存のイベントを分析するだけだからである。オーバーフィットされたモデルの特性を活用することによって、開示される技術は、従来の実践及び教示に反する。過剰適合は、通常、望ましくないと考えられ、当業者にとって極めて非直感的である。
【0112】
図19Bは、一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおける予想のための例示的なAI機能1950を示す。これは、
図19Aに関して上述したイントロスペクションMLモデルとは異なる、AIによるスクリーニングを改善するためのアプローチである。この場合におけるアプローチは、機械学習を使用して、ある時点における会社の母集団と、例示的な会社の選択された部分集合とを入力として取る分類指標の集合を訓練することである。例示的な会社は、個々に選択された個々の識別子のリストであり得、又はいくつかのフィルタリング基準(例えば、閾値を上回るROE、又は「ホテル」を含む会社名)を満たすものであリ得る。部分集合における例示的な会社は、「好ましい」標的、スクリーナが回避したい特性を有する会社、又はいくつかの他のカテゴリであリ得る。MLモデルを開発するアプローチは、ブートストラッピング、ランダムフォレスト、AutoML、又は他のMLモデル、好ましくはトレーナーが相対的機能重みを推論することができるモデルを含み得る。トレーナーは、例えば、より多くのモデルを訓練して平均化することによって、結果として得られるスクリーニングモデルに対していくつかの制御を行うことができる。分類指標は、例示的な会社を生成するために訓練されており、それらは全て、同じ解決を達成するが、異なる方法である。したがって、それらは、例示的な会社が見出されたであろうフィルタを予想することができる。これは、どのようなデータタグ及び重みが相関又は非相関であるかを示すことによって、ユーザーの選好を明らかにすることができる。いくつかの実装形態では、結果は、確率分布及び機能重みの生成である。
【0113】
類似物の所定の集合の1つの部分集合に対して訓練され、別の推定される類似部分集合に対して演算する典型的な推奨エンジンとは異なり、この訓練モデルは、抽象化の層を作成し、ユーザーが周知であると信じ得るポケット(例えば、選択された業界における選択された会社)を記述する。モデルは、それを定量化するのに役立つことに加えて、ユーザーが、そのポケットの理解を、他の業界、国、及び/又は時間などの他のポケット又は母集団に適用することを可能にする。
【0114】
これらの分類指標は、個別に、又はアンサンブルの一部として利用されることができる。アンサンブルは、予想コンテキストに対する過剰適合を低減することを可能にする。そして、いくつかのモデルは、我々が特定の重みに更にイントロスペクトされることを可能にする。他の実装形態は、この同じアルゴリズムの異なる「実行」から生成された分類指標を組み合わせることを含む。結果として生じる予想モジュール(分類指標の組み合わせ)は、いくつかの異なる方法で適用されることが可能であり、又はユーザーが、例えば、機能重みに対して機械を用いて調整又は反復することを可能にすることができる。
【0115】
図20は、一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおけるレジーム変更検出のための例示的なAI機能2000を示す。金融では、レジーム変更は、拡大と縮小との間で変更する経済活動のサイクルに関連付けられ得るような金融市場の挙動の急激な変更に関連付けられる。レジーム変更を理解することは、投資マネージャが系統的な市場変更に反応することを可能にするので、重要である。
【0116】
レジーム変更モデルは、典型的には、パラメータがいくつかの固定数の「レジーム」の各々において異なる値をとることが可能な時系列モデルとして定義される。典型的には、レジーム変更モデルは、それらが探す事前定義された因子のいくつかの集合と、レジームのいくつかの固定定義とを含む。通常、重要な考えは、「レジームが何であるか」及び「レジームに影響を及ぼす機能が何であるか」を定義することにある。しかしながら、現在のアプローチに伴う2つの問題は、以下の通りである。
【0117】
1.モデルは、我々の履歴の、及び予め定義されたレジームの理解を前提として、可能性のあるレジーム変更についてあなたに伝えることができるが、投資家が回答する重要な質問は、「世界が変更しているのか?」ではなく、「世界がこの投資戦略に重要な方法で変更しているのか?」である。
【0118】
2.それらは、前もって入力変数を定義することを必要とし、市場に影響を与える力の変更に適応しない。
【0119】
カスタムレジーム変更検出に対処するために、
図19Aを参照しながら上記で記載されたAI/MLアプローチを引き続き構築することができる。
図19AのAIに基づいて、投資マネージャによる明示的な命令なしでカスタムレジーム変更モデルを推論し、構築する。同じ手順を実行するが、今回は、1つのスナップショット時間ウィンドウを見るのではなく、多くのウィンドウを順番に観察することができる。したがって、我々は、各期間(例えば、四半期)についてMLモデルの集合を構築する。
【0120】
ここでも、我々が構築するMLモデルが過剰適合されることは重要ではない。出力は、定義された因子/機能の経時的な影響である。あなたの投資プロセスにとって重要である機能の影響に変更がある場合、それは、あなたが依存する因子がシフトした可能性がある早期警告信号であり、したがって、あなたは、あなたのアプローチを適応させることを検討したい可能性がある。
【0121】
このわずかな情報からレジーム変更モデルを推論する能力は、現在存在しない。言語の表現可能性及び意味構造/制限の組み合わせ、並びにMLの適用も、その能力をより強力にするのに役立つ。開示された技術は、ドメインエキスパート意思判定者がそれを彼ら自身の判断と組み合わせ、結果を改善するためにAIとともに反復することを可能にする。
【0122】
図19Bに戻って参照すると、予想AIモデルは、過去の既知のレジームについての直感を使用して、現在のレジームで行う類似の選択を推論するために、適用されることができる。例えば、今日のレジームが、会社が1990年に経験していたレジームに類似しているとユーザーが信じる場合、モデルは、1990年から選択された会社の部分集合に類似する会社(そのレジームで成長した会社など)を強調表示するために、使用されることができる。すなわち、1990年において関心のある標的を予想するように訓練されたモデルは、ここでは、今日に適用されることができる。したがって、名前及び日付の集合の入力により、出力は、現在及びスクリーニングの集合においてそれらに関連付けられたスコアを有する類似の名前の集合となる。
【0123】
別の実施例として、世界の現在の状態は、一般に、「価値」、「成長」、「品質」、「運動量」などの因子株が、現在、より性能が優れていることが好まれているどうかに関して評価される。しかし、ユーザーは、例えば、品質カテゴリが実際にそのユーザーの世界の「ポケット」(例えば、証券の限定された部分集合)に適用されるかどうかを確信しない場合がある。例えば、2007年及び/又は2003年においてうまく行った会社を見出すためには、頭の中に保持するにはあまりにも多くのデータを必要とする。したがって、従来の投資家は、直感に頼らなければならない。AIモデルは、本質的に、その直感を体系化することができ、「これは過去の時間のように感じる」という考えが具体的ではない場合、モデルは、「今はそのときのように感じる」ことを具体的かつ定量化可能にする。
【0124】
加えて、このAIモデルアプローチは、産業にわたって、又は国にわたって、並びに日付又は資産クラス(例えば、2003年の米国市場対現在の中国)にわたって適用されることができ、移転学習を可能にし、そうでなければ発見されないままであり得る交差接続に関する洞察を生成する。
【0125】
開示されたAIモデル訓練は、調整不可能なブラックボックスを介して将来を予想するために過去を使用するだけではなく、これは、過去についての経験ベースの直感のユーザーの入力を追加し、レジームを定量化し(オンザフライで定義され、事前に分類されない)、それに基づいて予想モデルを定義し、そのとき良好に機能した特性を識別するための理論的根拠を提供し、ユーザーの直感が正しい場合、現在同様に良好に機能することができる。実行可能な洞察(例えば、気候が類似していることを前提として、どの会社を購入すると考え得るか)を提供せずに、今日どの事前定義されたレジームにあるかを伝えることを試みるのではなく、このモデルは、過去の気候において過去に関心があったであろう会社に類似する今日の会社の推奨を提供する(例えば、それらの実績/収益又は他の品質に基づいて)。
【0126】
いくつかの実施形態では、モデルを訓練するための関連「機能」は、(例えば、ユーザー定義データタグ及び表現式を含むデータタグを分析することによって)エディタ内で指定されたコードから推測されることができる。通常、データサイエンス又は機械学習エキスパートは、この機能エンジニアリングを実行する。開示された技術は、機械学習について知らない非技術的ユーザーが機械学習AIスクリーニングモデルと効果的に協働することを可能にする。
【0127】
これは、ユーザーとAIスクリーニングモデルとの間の継続的なフィードバックループを容易にし、ユーザーは、複数行エディタ内のテキストを変更することによってAIスクリーニングモデルを改善するためにフィーチャエンジニアリングを効果的に実行することができる。このようにして、ユーザーは、モデルに供給される指定された機能に対して効果的に反復し、関心のある標的をより良く見出すことができる。
【0128】
図21は、一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおけるブレンディングを最適化するための例示的なAI機能2100を示す。
【0129】
図19A及び
図20に関連して上で開示されたアプローチに基づいて、我々は、今後のスクリーニングモデルを最適化するために、これらのイントロスペクション及び/又はレジーム変更洞察を使用する。ROEがより性能が優れている場合、すなわち、ROE及びROAが同等に重要であるとスクリーナが信じるが、MLモデルが、ROEが関心のあるより多くの会社を識別する可能性が高いと推論する場合、我々は、生成されたリストにおいて、より焦点を当てたい可能性がある会社を強調表示することができる。
【0130】
同様に、
図19B及び
図20に関連して上で開示されたアプローチに基づいて、ポートフォリオにおける高性能証券をモデル化する画面は、それらの証券の名前を生成するためのスクリーニングの集合を見出すことによって、追加のスクリーニング基準及び/又は重み付けを識別するために、適用されることができる。
【0131】
上記のアプローチの変形例では、予想AIモデルはまた、画面における名前についてのハーディング及び/又は最小コンセンサスリスク評価を得るために、適用されることができる。画面及び日付の入力が与えられると、出力は、識別子の2つのリスト、すなわち、他の画面のうちの最も少ない画面にヒットする名前、及び他の画面のうちの最も多い画面にヒットする名前である。第1は、最小コンセンサスリスクを表す。第2は、ハーディングリスクを表す。
【0132】
したがって、例えば、その会社の集合を見出すのを助ける100個の画面を生成する場合(すなわち、同じ解決に到達する100個の方法がある場合)、それらの画面のうちの75個が、MSFTが良いピックであることに同意する場合、収穫(takeaway)は、MSFTが購入したい会社の種類であるというあなたの信頼度に依存する。それは、あなたが大切にしていることの代表か?又は、あなたは、あなたの視点がどのように独立しているかを反映して疑問に思うか?すなわち、画面が、あなたが行うことの大部分が従来の成長投資家が行うことであり、小部分があなたの「秘密のソース」であることを明らかにする場合、あなたは、あなたのバイアス、あなたの視点、及び/又はあなたのアクションを調整するためにイントロスペクトし、それに基づいて行動する能力を得る。
【0133】
別の変形例では、予想AIモデルは、ニアミス、例えば、ユーザーの元の画面又はポートフォリオにおける名前にヒットしなかったが、AI学習画面の多くにヒットしたティッカー名を識別するために、使用されることができる。そのような会社は、調査するための行動を保証するかもしれない。
【0134】
図22は、一実施形態による、株式クリーニングのために構成された高速スクリーニングシステムにおける機能提案のための例示的なAI機能2200を示す。
【0135】
図19A、
図20、及び
図21に関連して上記で開示されたアプローチに基づいて、我々は、スクリーニング基準の集合に追加する機能(例えば、データタグ)、及び除去する機能を提案することができる。例えば、我々は、単にランダムノイズであるもう1つの機能を追加し、それを既存のスクリーニング基準における他の因子の影響と比較するためのベースラインとして設定し、その閾値未満の機能を除去することを推奨する。例えば、DTEがシャドーモデルにおいてランダムノイズよりも影響が少ない場合、あなたは、信号が組み込まれていると考えるかもしれないが、実際にはそうではない。我々は、ユーザーが達成しようとしている目標の強力な意味論的理解を有するので、我々は、それらの戦略性能を改善する提案を行うために静的及び/又は動的に分析することができる。
【0136】
開示されたAIモデル及びインターフェースは、ユーザー入力がドメイン固有であり、ユーザーが解決しようとしている問題の種類に関してより多くのコンテキストを有するので、単純であるが強力なレベルの抽象化を提供する。ユーザー入力は、ドメイン内のユーザー選好の推論を可能にする。このインターフェースは、非技術的かつ対話的であり、ユーザーがその結果に基づいて反復することを促し、「機能」エンジニアリングを容易に行う。
【0137】
加えて、これらのAIモデルは、目標が典型的に非常に厳密に定義される通常の定量的モデリングとは対照的である。開示されたモデルは、我々が定性的及び/又は記述困難な目標を標的とすることを可能にし、それは、より経験に頼る自由裁量の投資家にとってそれを実行可能及び有用にする。
【0138】
図23は、一実施形態による演算子の創造的使用を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェースを示す。複数行エディタ2301では、3行目の入力2330は、現在の総資産収益率に基づいて変換「RankHighToLow」を米国大資本会社2310に適用し、ランキングメタデータを変数「RoaRank」2335に割り当てる。6行目の表現式2360は、読みやすいRoa Indicator列2365を生成するために、3進演算子、絵文字、及び文字列連結を組み込む。三元演算子は、「(X?Y:Z)」という形式の短いif-then文のような機能であり、ここで、表現式Xが真である場合、三元演算子の出力は、Yであり、そうでない場合、出力は、Zである。したがって、RoAランクが75以上である任意の会社について、結果は、緑色のチェックボックス絵文字キャラクタであり、RoAランクが76以下である任意の会社について、結果は、赤色のXマーク絵文字キャラクタである。出力された絵文字キャラクタは、スペースキャラクタ及び総資産収益率値と連結され、米国大資本株式の中で最も高いROAを有する株式を強調表示するRoa Indicator列2365を表示する。
【0139】
図24は、一実施形態による自動フォーマッティングを示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース2400を示す。示された実施例では、米国大資本株2410の母集団に適用されて、3つの計算は、「価値」因子2450/2455、「成長」因子2460/2465、及び「品質」因子2470/2475を判定する。10、11、及び12行目では、3つの因子は各々、「SplitQuintiles」変換が適用され(2451、2461、2471)、1~5の五分位数尺度を各識別子の因子スコアに割り当てるメタデータを生成する。
【0140】
各因子の五分位スコアは、「Score」で終わる名前の変数又はカスタムデータタグに割り当てられる。その結果、高速スクリーニングシステムは、これらの変数に関連付けられた値を、「ヒートマップ」カラーコーディングを用いてグリッドビュー2402内に表示することによって特に処理する。示されるように、「1」五分位数スコアは、暗赤色に着色されたセルにおいて示され、「2」五分位数スコアは、濃いオレンジ色に着色されたセルにおいて示され、「3」五分位数スコアは、黄色に着色されたセルにおいて示され、「4」五分位数スコアは、淡緑色に着色されたセルにおいて示され、「5」五分位数スコアは、暗緑色に着色されたセルにおいて示される。
【0141】
表示される値のこの及び他の自動化されたフォーマッティングは、従来のスクリーニングシステムとの対比を提供し、より大きな柔軟性及び表現力を提供しながら、訓練されていないユーザーが表示される結果を理解することを容易にする。
【0142】
図25は、一実施形態による予測のポイントインタイム状況報告を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース2500を示す。時系列状況報告モデルは、調査及びスクリーニング能力だけでなく、経時的な分析者の予測を活用し、それらを会社の実際の性能と比較する洞察及び強力な分析を提供する。
【0143】
示された実施例では、複数行エディタインターフェース2501における、1行目2510において、表記「#/Model/SituationRepor」は、状況報告モード又はモデルを呼び出す(ボタン、ドロップダウンメニュー、音声コマンドなどの多くの他の同等のアプローチも使用することができる)。会社のリスト又は母集団識別子(この場合、「会社名」列2515に示される5つの会社)を入力するための入力フィールド、及びカレンダードロップダウンを伴う日付フィールドを含む、いくつかの制御は、示されていない。複数行エディタインターフェース2501は、「EbitConsensusMean」2530などのいくつかのエリアにおける分析者の期待を表すデータタグの集合を含む。そのデータタグは、利益及び税金の前の会社の収益の分析者の予想のコンセンサス平均を反映する。
【0144】
状況報告モデルにおける各セルの内容は、単純な値ではなく、各々が複雑なデータ集合の要約である。概要状況レポートを生成するために、高速スクリーニングシステムは、基礎となる情報をダウンロードして処理するために、グリッド表示2502における各セルに対してコンピューティングプロセスを生み出す。データは、補間され、平滑化され、次いで表示される。表示される値は、選択された会社の選択された指標の現在の(選択された暦日付の)予測変更率を表す。例えば、示された実施例では、Bed Bath&Beyond Inc.2531の場合、Ebitコンセンサス平均2535の値は、53(2545)である。これは、コンセンサス平均についてのわずかな正の傾きを示し、予測がEBITについて平坦なままであるか、又は非常にわずかに増加することを暗示する。
【0145】
示される例では、セルは、平滑化された予測の曲線勾配に基づいて、赤-黄-緑スペクトルに沿って(人間の目/予想にマッチングさせるために、標準偏差に基づいて)色相が付けられる。したがって、0と10との間の値は、最も速い減少に対応し、90から100までの値は、最大絶対勾配に対する最も速い増加に対応する。Microsoft Corporation 2532のEBITコンセンサス平均2535は、非常に高い95(2546)であり、したがって、鮮明な緑色に陰影が付けられており、コンセンサス予測が、MicrosoftのEBITがほぼ同じくらい急激に増加することを示す。本開示の日付では、示された分析の計算の複雑さは、それらをパーソナルコンピュータ上で実行することを不可能にする。
【0146】
現在の傾向を表示することに加えて、状況報告は、以前は利用できなかった分析者の予測のナビゲーション、合成、及びコンテキスト認識を可能にする制御を提供する。例えば、暦日を調整することによって、ユーザーは、以前の時間に予測を容易に実行し、コンセンサス予想の状態がどのように変更したか、又は変更しつつあるかを比較することができる。更に、緑色の矢印2580又は赤色の矢印2585は、会社の実際の予測が予想されたコンセンサス予測を上回っているか、又は満たさないことを示し、これは変更の前兆となり得る。更に、各セルは、
図26を参照して以下で更に記載されるように、経時的により完全な情報を表示するより大きなグラフへのリンクである。
【0147】
図26は、一実施形態による状況報告履歴予測グラフ2601を示す、株式クリーニングのために構成された高速スクリーニングシステムの例示的ユーザーインターフェース2600を示す。このグラフ2601は、ユーザーが
図25からセル2545を選択したときに示され、初期状況報告テーブルに表示された番号の後ろに詳細を示す。グラフ2601は、表示された時間枠にわたるBed,Bath,&BeyondのEBITの実際のコンセンサス予測を表す階段状の線2610を含む。加えて、平滑化された線2620が示されており、これはまた、
図25を参照して上述された勾配計算のソースでもある。実際の予測及び平滑化された予測の周囲又は近くには、分析者の予測の予想区間を表す影付き領域2640がある。実際の予測2610が予測区間2640の外に出るときに、状況報告テーブル(
図25に示される)は、以前に判定された予想からの変更を示し得るので、エクスカーションをマークする。凡例2650は、所与の日付の正確な値を表示する。
【0148】
状況報告グラフは、推定値だけでなく、任意の時系列データに適用される。示された実施例における推定値に適用されると、予測を超える分析者の予想の大きな変更、及び一貫した動きも強調される。例えば、dy(平滑化された)グラフは、予測の変更率を示す、チャートの下半分に沿って走る。したがって、示された実施例では、分析者のEBIT期待は、2018年10月頃に上昇2630し、2019年11月頃に下降2635した。これは、ユーザーから要求されるコーディング又は他の特別な技術的専門知識なしに、分析者の期待における変曲点を識別することをより容易にする。このコンセンサス予測の視覚化は、学習曲線を減少させ、リストに会社を追加することによって洞察までの時間を減少させ、ユーザーは、即時の結果を得ることができる。したがって、開示される技術は、潜在的に市場が反応する前であっても、ユーザーが警告を見ることを容易にすることができる。他の実施形態は、ユーザーが、示され、上述されたのと同じ方法において、この情報をスクリーニングすることを可能にする。
【0149】
図27は、本技術が実装されることができるコンピューティングシステム及び他のデバイスに典型的に組み込まれるコンポーネントのうちのいくつかを示すブロック図である。示された実施形態では、コンピュータシステム2700は、メモリ2740に記憶されたコンピュータ可読命令に従ってコンピュータシステム2700の演算を制御する処理コンポーネント2730を含む。処理コンポーネント2730は、例えば、1つ以上の中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)などの、任意のロジック処理ユニットであり得る。処理コンポーネント2730は、電子デバイスにおける単一の処理ユニット若しくは複数の処理ユニットであり得、又は複数のデバイスに分散され得る。本技術の態様は、本明細書で詳細に記載されるコンピュータ実行可能命令のうちの1つ以上を実行するように具体的にプログラム、構成、又は構築された特別目的のコンピューティングデバイス又はデータプロセッサ内に具現化することができる。
【0150】
本技術の態様はまた、ローカルエリアネットワーク(local area network、LAN)、広域ネットワーク(wide area network、WAN)、又はインターネットなどの通信ネットワークを通じてリンクされる遠隔処理デバイスによって機能又はモジュールが実行される分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、モジュールは、ローカル及び遠隔メモリ記憶デバイスの両方に位置してもよい。様々な実施形態では、コンピュータシステム2700は、本明細書で記載される機能を集合的に提供する1つ以上の物理的及び/又は論理的デバイスを備え得る。いくつかの実施形態では、コンピュータシステム2700は、1つ以上の複製及び/又は分散された物理又は論理デバイスを備え得る。いくつかの実施形態では、コンピュータシステム2700は、「クラウドコンピューティング」プロバイダから提供される1つ以上のコンピューティングリソース、例えば、ワシントン州シアトルのAmazon.com,Inc.によって提供されるAmazon(登録商標)Elastic Compute Cloud(「Amazon EC2(登録商標)」)、Amazon Web Services(登録商標)(「AWS(登録商標)」)、及び/又はAmazon Simple Storage Service(商標)(「Amazon S3(商標)」)、カリフォルニア州マウンテンビューのGoogle Inc.によって提供されるGoogle Cloud Platform(商標)及び/又はGoogle Cloud Storage(商標)、Microsoft Corporation of Redmond,Washingtonによって提供されるWindows Azure(登録商標)、などを備え得る。
【0151】
処理コンポーネント2730は、一時的及び/又は永続的ストレージの組合せ、並びに読取り専用メモリ(ROM)及び書込み可能メモリ(例えば、ランダムアクセスメモリ又はRAM、CPUレジスタ、及びオンチップキャッシュメモリ)の両方、フラッシュメモリ又は他の個体メモリなどの書込み可能不揮発性メモリ、ハードドライブ、取外し可能媒体、磁気的又は光学的読取り可能ディスク及び/又はテープ、ナノテクノロジーメモリ、合成生物学的メモリなどを含むことができる、メモリ2740に接続されている。メモリは、基盤となるハードウェアから分離された伝搬信号ではなく、したがって、メモリ及びコンピュータ可読記憶媒体は、一時的伝搬信号それ自体を指すものではない。メモリ2740は、オペレーティングシステム2742、アプリケーションプログラム2744、及びデータ2746などのプログラム、ソフトウェア、及び情報を包含するデータストレージを含む。コンピュータシステム2700のオペレーティングシステム2742は、例えば、Windows(登録商標)、Linux(登録商標)、Android、iOS(登録商標)、及び/又は組み込みリアルタイムオペレーティングシステムを含むことができる。アプリケーションプログラム2744及びデータ2746は、コンピュータシステム2700コンポーネントを制御し、情報を処理し(例えば、プログラムコードデータを最適化するために)、リモートコンピュータ及び他のデバイスとデータとのデータ及び情報を通信及び交換するように構成された、データ構造、データベースレコード、他のデータテーブルなどを含むソフトウェア及びデータベースを含むことができる。
【0152】
コンピュータシステム2700は、ユーザー対話から入力を受信し、プロセッサ2730に入力を提供する入力コンポーネント2710を含むことができ、典型的には、入力デバイスから受信した生信号を解釈し、既知の通信プロトコルを使用してプロセッサ2730に情報を通信するハードウェアコントローラによって仲介される。入力コンポーネント2710の実施例は、キーボード2712(物理キー又は仮想キーを有する)、ポインティングデバイス(マウス2714、ジョイスティック、ダイヤル、又はアイトラッキングデバイスなど)、ユーザーによってタッチされたときに接触イベントを検出するタッチ画面2715、オーディオ入力を受信するマイクロフォン2716、並びに静止写真及び/又はビデオキャプチャのためのカメラ2718を含む。コンピュータシステム2700はまた、GPS又は他の位置判定センサ、モーションセンサ、加速度計を有するウェアラブル入力デバイス(例えば、ウェアラブルグローブ型入力デバイス)、バイオメトリックセンサ(例えば、指紋センサ)、光センサ(例えば、赤外線センサ)、カードリーダ(例えば、磁気ストライプリーダ又はメモリカードリーダ)などの様々な他の入力コンポーネント2710を含むことができる。
【0153】
プロセッサ2730はまた、例えば、直接又はハードウェアコントローラを介して、1つ以上の様々な出力コンポーネント2720に接続されることができる。出力デバイスは、テキスト及びグラフィックスが表示されるディスプレイ2722を含むことができる。ディスプレイ2722は、例えば、LCD、LED、又はOLEDディスプレイ画面(デスクトップコンピュータ画面、ハンドヘルドデバイス画面、又はテレビ画面など)、電子インクディスプレイ、投影ディスプレイ(ヘッドアップディスプレイデバイスなど)、及び/又は入力デバイス並びにグラフィカル及びテキスト視覚フィードバックをユーザーに提供する出力デバイスとしての役割を果たす、タッチ画面2715と統合されたディスプレイであることができる。出力デバイスはまた、オーディオ信号を再生するためのスピーカ2724、振動などの触知出力のための触覚フィードバックデバイスなどを含むことができる。いくつかの実装形態では、スピーカ2724及びマイクロフォン2716は、複合オーディオ入出力デバイスによって実装される。
【0154】
示された実施形態では、コンピュータシステム2700は、1つ以上の通信コンポーネント2750を更に含む。通信コンポーネントは、例えば、有線ネットワーク接続2752(例えば、イーサネットポート、ケーブルモデム、Thunderboltケーブル、FireWireケーブル、Lightningコネクタ、ユニバーサルシリアルバス(USB)ポートなどのうちの1つ以上)、及び/又は無線トランシーバ2754(例えば、Wi-Fiトランシーバ、Bluetoothトランシーバ、近距離通信(NFC)デバイス、GSM、CDMA、3G、4G、及び/又は5G技術を利用する無線モデム又はセルラー無線、などのうちの1つ以上)を含むことができる。通信コンポーネント2750は、有線又は無線ピアツーピア接続を介して直接的に、及び/又はスイッチ、ルータ、リピータ、電気ケーブル及び光ファイバ、発光器及び受光器、無線送信機及び受信機などの通信リンク及びネットワーキングハードウェアを介して間接的に、コンピュータシステム2700と他のローカル及び/又はリモートコンピューティングデバイスとの間の通信に適している(インターネット、パブリック又はプライベートイントラネット、ローカル又は拡張Wi-Fiネットワーク、セルタワー、旧来の電話システム(plain old telephone system:POTS)などを含むことができる)。コンピュータシステム2700は、コンピュータシステム2700に関連付けられた様々な電気コンポーネントの演算のためのバッテリ電力及び/又は設備電力を含むことができる電力2760を更に含む。
【0155】
本技術と共に使用するのに適し得る周知のコンピューティングシステム、環境、及び/又は構成の実施例は、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、携帯電話、ウェアラブル電子機器、タブレットデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境などを含むが、これらに限定されない。上で記載されたように構成されたコンピュータシステムは、典型的には、本技術の演算をサポートするために使用されるが、当業者は、本技術が、様々なタイプ及び構成のデバイスを使用し、様々なコンポーネントを有して実装され得ることを理解するであろう。例示的な実施形態を記載するために、そのようなインフラストラクチャ及び実施態様を示す必要はない。
【0156】
図28は、一実施形態によるバックテストのための例示的な同時サーバ対話の様々なコンポーネントを示す概略図及びデータフロー
図2800である。ユーザーは、ウェブアプリケーション又は他のクライアントデバイス2810(例えば、ローカルソフトウェアを実行する、又はサービスとしてのソフトウェア(software-as-a-service:SaaS)にアクセスする)などを介して、高速スクリーニングシステムと相互作用する。ユーザーは、例えば、
図17を参照して上記で詳述されるように、バックテスト2805を要求する。高速スクリーニングシステムは、スクリーニング基準及び他のポートフォリオ分析を修正するなど、あまり複雑でない結果に対しても同様に演算し得る。クライアントウェブアプリケーション又はデバイス2810は、セッションサーバ2820、例えば、リモートサーバ上のユーザーデータベースを管理するホストデバイスに要求2815を送信する。要求2815は、例えば、加入者認証又はセッション情報を含み、加入者が認証される(例えば、バックテストサービスに対して課金される)ことを確実にし、及び/又は日付及びコードを含み、日付及びコードは、テストする基準及びテストするベンチマークなどのバックテストのパラメータを指定する。様々な実施形態では、パラメータは、既にユーザーのセッションに関連付けられており、サーバ上で利用可能であり、したがって、現在のセッション及びバックテスト要求の識別は、最小限のデータ送信で達成されることができる。いくつかの実施形態では、クライアントインターフェースデバイス又はウェブアプリケーション2810は、新しい画面、バックテスト、又は他のポートフォリオ分析要求が発生したときのための1つ以上のトリガをセッションサーバ2820に送信し、分析が完了したときに受信される更新を加入する。
【0157】
ユーザーがセッションサーバ2820によって検証されるときに、セッションサーバ2820は、例えば、1つ以上のクラウドコンピューティングインスタンスなどのサーバ上で演算するメイン機能2830に要求2825を送信する。メイン関数2830は、バックテスト計算を効率的に並列化するために同時コンピューティングリソースを使用して要求を実行すること(例えば、ラムダ関数2840をトリガすること)を含めて、バックテスト要求の処理及びアセンブリを全体として管理する。ラムダは、単純であるが、システムが多数を並列に発生させて短時間で大きなタスクを同時に実行することができるので、多くを生み出すことができる。例えば、バックテストでは、高速スクリーニングシステムは、計算を、バックテストにおける各年、及び各年における個々の月などの離散的な期間に分解することができる。これは、バックテスト速度を大幅に改善することを可能にする。様々な実施形態において、ドメイン固有言語は、同時処理及びデータシャーディング(例えば、時間、データ項目、及びユーザー固有パターンにわたる)のために設計される。
【0158】
示された実施形態では、ラムダ関数2840は、データ及び時間にわたるスナップショットを含有するためにマテリアライズドビュー2845で、1つ以上の金融データデータベース2850からデータを得る。いくつかの実施形態では、マテリアライズドビュー2845のスナップショットは、履歴値の最近の集合も含み、ある程度の繰り返しを引き起こすが、例えば、過去数年のカスタム傾向に非常に急速に、比較可能な方法でアクセスすることを可能にする。マテリアライズドビューの実施例データ2848は、日付、識別子、1対の値(後続の12カ月の値、及び現在の四半期の値)、及び1対の履歴値集合(後続の12カ月の値、及び現在の四半期の値)を含む。様々な実施形態では、マテリアライズドビュー2848は、同じ又は別のバックテストが実行されるときにアクセスを高速化するために保存され、これは、ユーザーが、再計算を必要とせずに、異なるバックテストの結果の間で前後に切り替えることを可能にする。様々な実施形態では、スクリーニング及び/又はバックテスト機能は、多くのタイプのデータストアにプラグインすることができ、データベース2850に限定されず、例えば、アプリケーションプログラミングインターフェース(API)はまた、効果的に使用され得る。
【0159】
ラムダ関数2840は、メイン関数2830に戻り、メイン関数2830は、バックテスト又は他の分析の完全な結果2855をセッションサーバ2820に送達する。様々な実施形態では、クエリが実行された後、完全な結果2855がサーバ側に記憶される。これは、高速スクリーニングシステムが、データ自体が変化しないのであれば(例えば、ソート、グループ分けなど)、クエリを常に再実行する必要はなく、増分クエリの可能性も開くことを意味する。
【0160】
いくつかの実施形態では、ラムダ関数2840は、クライアントインターフェースデバイス又はウェブアプリケーション2810が加入された結果で更新する。いくつかの実施形態では、セッションサーバ2820は、結果識別子2857をクライアントインターフェースデバイス又はウェブアプリケーション2810に提供する。クライアントインターフェースデバイス又はウェブアプリケーション2810は、次いで、部分的結果2865(例えば、結果をユーザーのディスプレイ上で可視にレンダリングするために必要なもののみ)を要求し得る。次いで、セッションサーバ2820は、結果2875の要求された部分をクライアントインターフェースデバイス又はウェブアプリケーション2810に送達する。
【0161】
図29は、一実施形態による高速スクリーニングシステムを実装するための例示的なサーバシステムの様々なコンポーネントを示す概略
図2900である。ユーザーは、ウェブアプリケーション又は他のクライアントデバイス2910などを介して、高速スクリーニングシステムと相互作用する。ウェブアプリケーション2910は、スクリーニング、バックテスト、又は時系列予測分析の実行などの要求のために、例えば、サーバエンドポイント2905、2908を介してセッションサーバ2920と通信する。サーバエンドポイント2905への要求は、1:1の対応ベースでサーバによって取り扱われ、その際、セッションサーバ2920は、例えば、要求ごとに1行をセッションデータベースに挿入する。例えば、表現式を入力するユーザーのスクリーニングセッションを処理するときに、ウェブアプリケーション2910は、表現式のためのプロセスを開始することができるセッションサーバ2920に入力された表現式を提供する。例えば、エディタにおいて行が更新、追加、又は削除されるときはいつでも、ウェブアプリケーション2910は、バックエンドデータベース2940又はコンパイラ/インタープリタ2930への要求を開始するセッションサーバ2920に通知する。いくつかの実施形態では、ウェブアプリケーション2910からセッションサーバ2920へのバックテスト要求はまた、1:1ベースで取り扱われる。
【0162】
サーバエンドポイント2908への要求は、1:多の対応基準でサーバによって取り扱われ、その際、セッションサーバ2920は、例えば、要求ごとに複数行をセッションデータベースに挿入する。例えば、時系列分析要求に応答して、セッションサーバ2920は、要求全体に対する1つのプロセスではなく、会社と予測との各組み合わせ(すなわち、結果テーブルにおける各セル)に対する別個のプロセスを開始することができる。いくつかの実施形態では、ウェブアプリケーション2910クライアントは、一連の別個の要求を開始し、いくつかの実施形態では、セッションサーバ2920は、分析要求を受信し、必要なサブタスクを生み出す。いずれの場合でも、別々のタスクは、例えば、単一のJSONブロブではなく、セルごとに結果の集合を生成することができ、結果を非同期的にアセンブルすることを可能にする。
【0163】
セッションサーバ2920の他のコンポーネントは、要求者が許可され、データが安全であることを保証する認証サービス2921を含み、認証サービス2921は、ユーザーデータ2922とリンクされ得る。ユーザーデータベース2922は、追加的に、ユーザーのコード(例えば、スクリーニング表現式が自動的に保存され、セッションにわたって利用可能であることを確実にする)、選好、及び/又は認証証明書を記憶することができ、キャッシング層を提供し得る。セッションデータサービス2923は、キャッシングスクリーニング結果2934を含むユーザーのセッションデータを管理する。例えば、画面を実行しているユーザーの場合、ユーザーがドメイン固有言語でコードを書くときに、セッションデータサービス2923は、セッションデータベースにおけるコードの行を挿入することができる。いくつかの実施形態では、セッションデータサービスは、更新をポーリングする。要求されたデータが(例えば、コンパイラ/インタープリタ2930から)ロードされるときに、セッションデータサービス2923は、データをキャッシュし、その結果でウェブアプリケーション2910を更新する。
【0164】
更に、セッションサーバ2920は、コンテキストデータ2924を記憶することができる。コンテキストデータ2924は、例えば、カスタム母集団(各々が、例えば、母集団の名前、母集団を定義するパラメータ(例えば、最小時価総額、国、特定の会社名など)を含む)及び/又はカスタム指標(各々が、例えば、指標の名前、及び(ユーザーがアップロードすることができる)リターンの時系列を含む)を含み得る。コンテキストデータ2924は、より容易なコラボレーションを可能にし、重複又は同期問題を最小限に抑えるために、ユーザー間で共有されることができる。
【0165】
示された実施形態では、セッションサーバ2920は、コンパイラ/インタープリタ2930とは別個である。セッションデータを別々に記憶することは、利点を提供することができる。例えば、それは、ユーザー分析及び/又は遠隔測定のために、データをより容易に監査可能にすることができる。加えて、それは、パッケージだけでなく、どの人によってどのデータが最も使用されているか、のフィールドマッピングなどのきめ細かいデータも報告することを可能にすることができ、コストを削減するのに役立つことができる。したがって、開示される技術の構造は、従来のバックエンドデータベースクエリを実行するときに行うことが、概して可能ではないイントロスペクション及び分析を可能にする。
【0166】
加えて、コンパイラ/インタープリタ2930が別個のサーバであり、ドメイン固有言語が、ユーザーが達成しようとしているものに関するコンテキストを提供し、予想される結果が検証可能かつ複製可能であるので、開示されるシステムは、システム管理者が、プログラミング言語の従来の制約なしに言語機能更新を行うことを可能にする。これは、ドメイン固有言語の構造及びそのコンテキスト理解が、(従来の言語の新しいバージョンで典型的であるように)それらが決して壊れないことを管理者が保証することを可能にすることができるので、新しい機能がユーザーにより速く送達されることを可能にする。
【0167】
コンパイラ/インタープリタ2930は、スクリーニング検索、バックテスト、及び/又は分析モデリングのための実際の要求を実行する責任があるワークホースである。概略図は、簡略化された論理表現式であり、当業者であれば、コンパイラ/インタープリタ2930コンパイラ/インタープリタが、実施例として、必要なデータ処理、負荷バランシング/キュー管理などを実行するための分散コンピューティングリソースを備えることができることを理解するであろう。コンパイラ/インタープリタ2930からのセッションサーバ2920の示された分離は、ユーザーを理解する必要はないが、データソースを理解する必要があるコンパイラ/インタープリタ2930にとっても有利である。
【0168】
示された実施形態では、スクリーニングモデル2935は、文法2931を含むか又は参照し、それを使用して、ユーザーのコード(例えば、全体として)を抽象構文木(abstract syntax tree:AST)2932に解析する。スクリーニングモデル2935は、各行における表現式を含む各行2933を(例えば、順番に)評価する。行ごとに、それは、ASTを解釈する。スクリーニングモデル2935は、1つ以上のデータベース(利用可能であればキャッシュを含む)に接続してデータを得て、行ごとに結果集合2934を継続的に構築する。スクリーニングモデル2935は、結果集合2934をセッションデータサービス2923結果データベースに挿入する。
【0169】
示された実施形態では、バックテストモデル2936は、バックテスト固有のロジック2937を通じて実行され、スクリーニングモデル2935のコンポーネントを共有する。バックテストモデル2936は、スクリーニングモデル2935、並びに様々なデータベース最適化(スナップショット、並びにデータストアにより近くなるようにいくつかの計算をオフロードすることを含む)を活用する。バックテストが実行されるときに、それは、買い/売り基準の集合に従って時間とともに再バランスされることが多い。これらの基準は、スクリーニング基準として表現されることができる。したがって、ユーザーが画面を構成する場合、それらは、追加の構成なしに、わずか1クリックで、そのスクリーニングコードに基づいてバックテストを直ちに実行することができる。
【0170】
次いで、コンパイラ/インタープリタ2930は、バックテストモデル2936におけるリバランシングステップの一部としてコードを実行する前にコードを最適化するために、(バックテストを実行したいという)ユーザーの意図のそのセマンティック理解を活用する。例えば、データタグ又は表現式が、バックテスト、おそらく探索的スクリーニングセッションからの残りの列のコンテキスト内で使用されないと判定されるか、又はエンドユーザーのみへの表示目的のために計算される場合、バックテストモデル2936は、バックテストを実行する前にそのコードを取り除くか、又はさもなければ除外することができ、それは、バックテストのフィルタリング基準又は因子重みに有意に影響を与えないからである。対照的に、一般化されたプログラム言語を使用して実行されるバックテストは、この意味的理解(プルダウンされたデータの一部、又は実行された分析の一部が、ユーザーが実行しようとしている現在のアクションにおいて意味のある影響を有さないこと)を欠いており、したがって、この種の最適化は、従来の手段を使用して自動的に実行することができない。
【0171】
様々な実施形態では(例えば、複数年にわたってバックテストを実行するために)、バックテストモデル2936は、バックテストをサブコンポーネントに分解し、それらを(例えば、月ごとに、又は収益を計算するために、など)並列化する(2938)。
【0172】
追加のモデル2939(例えば、時系列分析処理モデル)は、コンパイラ/インタープリタ2930によって同様に実行され、セッションサーバ2920に送信される結果の集合を生成する。必要な最小限のコンテキストで、同じドメイン固有言語は、コンパイラ/インタープリタ2930によって提供される全てのモデルに適用可能である。
【0173】
いくつかの実施形態では、キャッシングを促進するために、要求は、コンパイラ/インタープリタ2930を通して2回、すなわち、データタグを収集及びプリフェッチするための1回目と、要求を実際に評価するための2回目とに実行されることができる。これは、データストアが第1のランスルーで結果を効果的にキャッシュすることを可能にすることができる。
【0174】
バックエンドデータは、非最適化データストア2945及び最適化データベース2940の両方を含むことができる。例えば、一般にアクセスされるデータは、特に最も一般的なクエリに関して、迅速な引き出しのために最適化されることができる。最適化データベース2940コンポーネントは、例えば、異なるデータ集合のためのライトウェイトリードアクセステーブル2941と、クエリ時間を短縮するためのポイントインタイムスナップショット2942(例えば、特定の年数遡る「今日」及び「月末」のための)とを含むことができる。非構造化データ(例えば、10-K提出書類)は、より最適化されるように処理することができる。しかしながら、最適化は、バイナリではなく、例えば、特許情報は、大量の構造化されていないテキストを含むが、提出書類はまた、(静的データにリンクするだけでなく)名前の類似性などを介して、それらを会社にリンクするために、処理されることができる。したがって、そのようなデータベースは、証券名又は識別子と厳密にマッチングする必要はなく、それにもかかわらず、他の方法で「結合」されることができる。
【0175】
最適化は、改善された性能を提供するための単なるツールではなく、開示されるシステムの構造によって提供される利点である。従来、データ集合に対してクエリを実行する(例えば、バックテスト要求を実行する)人は、異なる目的を有するユーザーからのクエリを満足させ、データベースにアクセスする一般化されたプログラミング言語を取り扱わなければならない大きなデータストアである基礎となるデータベースに対する制御を有さない。開示された技術は、対照的に、高い表現力を維持しながら、ユースケース及びアクセスパターンに対して著しい制約を課し、これは、高性能の結果及びよりユーザーフレンドリなインターフェースを生成する最適化を可能にする。
【0176】
いくつかの実施形態では、データストア及びシステムの他の要素は、完全に拡張可能であり、統合に対してオープンである。例えば、リモートアクセスは、APIアドヒアランスを有する任意のデータベースに対して可能であり、任意のプロバイダがインターフェースを実装することができる。データ自体は、言語が固有であるドメインに固有であるが、データサーバは、指定されたインターフェースに準拠する場合に「機能する」。同様に、拡張性は、データタグの集合(ドメイン固有言語で定義されているか、カスタムであるか、派生であるか、又は自己参照であるかにかかわらず、正規化されたフォーマットにおける)、追加的変換、カスタム報告テンプレート(例えば、バックテスト又はスクリーニングの結果)、結果(例えば、正規化されたJSONフォーマットで返される)、ビュー(例えば、文字列の配列を箇条書きのHTMLリストとして表示するため)、及びビュー(例えば、各モデルに対して別個のセッションデータベースエンドポイントを提供する)に適用することができる。例えば、ビューは、HTMLとして、又はデータ構造でウェブアプリケーション2910に戻すことができ、これにより、データをそのコンテンツ又はコンテキストに基づいて特別にレンダリングすることができる。したがって、例えば、URLをリンクとして表示することができ、値の配列をグラフとして扱うことができ、名前が「スコア」又は「ランキング」で終わる変数の値をヒートマップの色勾配で表示することができる。本質的に、任意のデータタグ、任意の関数、任意のモデル、及び任意のレポートは、開示された完全に拡張可能なシステムに統合されることができる。ドメイン固有言語の基本演算子は、同じままであり得るが、新しいデータタイプ、処理、及び変換は、異なるドメイン又はクライアントに対してカスタマイズされることができる。
【0177】
本明細書に具体的な実施形態が例示及び説明されてきたが、当業者は、本開示の範囲から逸脱することなく、図示及び記載された特定の実施形態の代わりに置換されてもよいことが当業者には理解されるであろう。
【0178】
例えば、様々な実施形態が、1つ以上のサーバによって遠隔クライアントに提供される高速スクリーニングシステム及び/又はサービスに関して上で記載されるが、他の実施形態では、本明細書に記載されるものと同様のスクリーニング方法は、ローカル又は遠隔コーパス内で結果を見出し、表示するために、クライアントコンピュータ上でローカルに採用され得る。
【0179】
同様に、様々な実施形態が、株式又は他の証券(例えば、債務証書、暗号通貨など)のスクリーニングを可能にするスクリーニングシステム又はサービスに関して上で記載されているが、他の実施形態は、不動産、広告、ヘルスケア診断、薬物研究、雇用、ファンタジースポーツ、映画、科学データ、写真などの別の専門知識領域におけるデータのスクリーニング又は選り分けを可能にするために、同様の技法を使用し得る。いくつかの例として、バックテストは、所与の条件の集合において異なる薬物のシミュレーションを実行することができ、地質学的データの領域に適用されるスクリーニングシステムは、石油掘削現場の検索を改善することができ、不動産に適用されるシステムは、過小評価された家の購入機会を見つけることができ、がんのスクリーニングに適用されるシステムは、サンプルにおける複雑な分析を即座に実行し、調査のための傾向及び有望な手段を識別する改善された能力を提供することができる。他の実施形態では、様々な他の用途は、開示された技術から作られ得る。本出願は、本明細書で論じられる実施形態の任意の適応又は変形を網羅することを意図する。
【国際調査報告】