(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022058399
(43)【公開日】2022-04-12
(54)【発明の名称】機械学習に基づくウェブインタフェース生成及びテストシステム
(51)【国際特許分類】
H04L 67/02 20220101AFI20220405BHJP
【FI】
H04L67/02
【審査請求】有
【請求項の数】24
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2021209661
(22)【出願日】2021-12-23
(62)【分割の表示】P 2018553336の分割
【原出願日】2017-01-05
(31)【優先権主張番号】62/275,058
(32)【優先日】2016-01-05
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/275,074
(32)【優先日】2016-01-05
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】521390291
【氏名又は名称】エボルブ テクノロジー ソリューションズ インク.
【氏名又は名称原語表記】EVOLV TECHNOLOGY SOLUTIONS INC.
【住所又は居所原語表記】611 Mission Street, 6th Floor, San Francisco, CA 94105 United States of America
(74)【代理人】
【識別番号】100114476
【弁理士】
【氏名又は名称】政木 良文
(72)【発明者】
【氏名】イスコー, ニール
(72)【発明者】
【氏名】ミクライネン, リスト
(57)【要約】 (修正有)
【課題】探索空間において全ての可能なウェブページ設計をテストすることなく、探索空間において最も成功したウェブページ設計を効率的に識別するために進化的計算を使用する、機械学習変換最適化(MLCO)システムを提供する。
【解決手段】探索空間は、マーケティング担当者によってウェブページ設計に基づいて定義される。単一のウェブページまたは複数のウェブページを有するウェブサイトファネルは、ゲノムとして表される。ゲノムは、ファネルの異なる次元及び次元値を識別する。ゲノムは、良好なパフォーマンスを示す親ゲノム、及び良好なパフォーマンスを示す見込みがある孫ゲノムを識別するために、初期化、テスト、競争、及び生殖のような進化的操作を受ける。各々のウェブページは、それが見込みがあるか、すなわち、それが次の世代についての親としての役割を果たすべきか、または破棄されるべきかを決定することが可能な程度までテストされる。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータにより実施されるウェブインタフェース作成及び配置システムであって、
候補個体の個体数を有する候補データベースを記憶するメモリであって、前記候補個体の各々は、1つ以上のウェブインタフェースのファネルを識別し、各々のファネルは、それに従って値を指定することができる複数の次元を有し、各々の候補個体は、前記次元ごとの値を更に識別する、前記メモリと、
前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するプレゼンテーションデータベースと、
前記候補個体のうちの選択された1つを前記プレゼンテーションデータベースに適用して、前記選択された候補個体によって識別される次元値に対応するフロントエンド要素値を判定し、ユーザに対し、前記判定されたフロントエンド要素値を有するファネルを提示するプレゼンテーションモジュールと、
を含む、システム。
【請求項2】
前記次元ごとの前記利用可能な値のうちの1つは、デフォルトの値であり、
前記ファネルは、前記次元の各々の前記デフォルトの次元値についてのデフォルトのフロントエンド要素値を有し、
前記プレゼンテーションモジュールは、前記次元ごとの前記デフォルトの次元値以外の、前記選択された候補個体によって識別される全ての次元値に対応するフロントエンド要素値を判定するために、前記選択された候補個体を前記プレゼンテーションデータベースに適用する、
請求項1に記載のシステム。
【請求項3】
カスタム化可能なウェブインタフェースファネルのためのコンピュータにより実施される配置システムであって、前記ファネルは、複数の次元に沿ってカスタム化可能であり、
前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するプレゼンテーションデータベースと、
前記ウェブインタフェースファネルの特定の変動について、前記ファネルの前記次元ごとの値を記憶するファネルカスタム化仕様メモリと、
ユーザに対し、前記ファネルカスタム化仕様メモリに記憶された前記次元値に対応するとして、前記プレゼンテーションデータベースによって示されるフロントエンド要素値を有するファネルを提示するプレゼンテーションモジュールと、
を含む、システム。
【請求項4】
前記次元ごとの前記利用可能な値のうちの1つは、デフォルトの値であり、
前記ファネルは、前記次元の各々の前記デフォルトの次元値についてのデフォルトのフロントエンド要素値を有し、
前記プレゼンテーションモジュールによって前記ユーザに対して提示される前記ファネルは、前記次元ごとの前記デフォルトの次元値以外の、前記ファネルカスタム化仕様メモリにおいて識別される前記次元値の全てに対応するとして、前記プレゼンテーションデータベースによって示されるフロントエンド要素値を有する、
請求項3に記載のシステム。
【請求項5】
前記ファネルの前記次元ごとの値の新たなセットで前記ファネルカスタム化仕様メモリを更新するように更に構成される、請求項3に記載のシステム。
【請求項6】
前記システムは、前記ファネルを入力するためのユーザの行動に応じて前記ファネルカスタム化仕様メモリについての前記値を取り出す、請求項3に記載のシステム。
【請求項7】
前記システムはまた、ユーザの行動に応じて、前記プレゼンテーションデータベースを検索する、請求項6に記載のシステム。
【請求項8】
コンピュータにより実施されるウェブインタフェース作成及び配置システムであって、
候補個体の個体数を有するデータベースを記憶するメモリであって、前記候補個体の各々は、1つ以上のウェブインタフェースのファネルを識別し、各々のファネルは、それに従って値を指定することができる複数の次元を有し、各々の候補個体は、前記次元ごとの値を更に識別する、前記メモリと、
ネットワークを通じて受信された1つ以上の第1の要求に応じて、第1のクライアントコンピュータシステムに対し、
前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するプレゼンテーションデータベースと、
前記個体数における前記候補個体のうちの第1の選択された1つによって識別される次元値のセットと、
次元値の前記受信されたセットに従って、ユーザに対し、次元値の前記受信されたセットによって示されるフロントエンド要素値を有するファネルを提示するプレゼンテーションモジュールと、
を返す、ネットワークサーバインフラストラクチャと、
を含む、システム。
【請求項9】
前記次元ごとの前記利用可能な値のうちの1つは、デフォルトの値であり、
前記ファネルは、前記次元の各々の前記デフォルトの値についてのデフォルトのフロントエンド要素値を有し、
前記プレゼンテーションモジュールは、前記次元ごとの前記デフォルトの次元値以外の、前記第1の選択された候補個体によって識別される全ての次元値に対応するフロントエンド要素値を判定するために、前記第1の選択された候補個体を前記プレゼンテーションデータベースに適用する、
請求項8に記載のシステム。
【請求項10】
前記ネットワークサーバインフラストラクチャは、ネットワークを通じて受信された1つ以上の第2の要求に応じて、第2のクライアントコンピュータシステムに対し、
前記プレゼンテーションデータベースと、
前記プレゼンテーションモジュールと、
前記個体数における前記候補個体の第2の選択された1つによって識別される次元値の前記セットと、
を返す、請求項8に記載のシステム。
【請求項11】
前記ファネルの前記ウェブインタフェースのうちの1つは、ウェブページ、モバイルアプリケーション、電子メール、ソーシャルメディアメッセージ、ソーシャルメディアフィード、またはチャットメッセージを表す、請求項8に記載のシステム。
【請求項12】
前記データベースにおける候補個体の前記個体数は、予め定められた標的のユーザの行動を促進する際のそれらの成功についてテストされる候補個体を含み、前記システムは、
候補個体の予備プールを前記候補個体数に書き込む個体数初期化モジュールと、
ライブのオンライン評価によって前記候補個体数における前記候補個体の各々をテストする候補テストモジュールであって、前記候補テストモジュールは、ライブのオンライン評価を受ける前記候補個体ごとのパフォーマンス測定値を発展させ、前記パフォーマンス測定値は、前記標的のユーザの行動を達成する際の前記ファネルの成功のインジケータである、前記候補テストモジュールと、
前記候補個体数に、前記候補個体数及び親のパフォーマンス測定値からの1つ以上の前記親の候補個体のそれぞれのセットに従って形成された新たな候補個体を追加する生殖モジュールと、
前記候補テストモジュール及び前記生殖モジュールを反復する制御モジュールと、
を含み、
前記候補テストモジュールは、前記ネットワークサーバインフラストラクチャに含まれ、前記候補個体数から、その次元値が前記要求に応じてクライアントコンピュータシステムに対して返されることになる前記選択された候補個体を選択する、
請求項8に記載のシステム。
【請求項13】
前記標的のユーザの行動はユーザによる変換である、請求項12に記載のシステム。
【請求項14】
前記候補テストモジュールによって発展する前記パフォーマンス測定値は、前記ライブのオンライン評価を受ける前記候補個体の変換率に基づいている、請求項12に記載のシステム。
【請求項15】
前記候補テストモジュールによって発展する前記パフォーマンス測定値は、前記ライブのオンライン評価を受ける前記候補個体から受け取られる収益に基づいている、請求項12に記載のシステム。
【請求項16】
前記ネットワークサーバインフラストラクチャは、
前記クライアントコンピュータシステムからの要求に応じて、前記プレゼンテーションデータベース及び前記プレゼンテーションモジュールを前記クライアントコンピュータシステムに対して返すコンテンツ配信ネットワーク(CDN)と、
前記第1の選択された候補個体を前記データベースから取り出し、前記クライアントコンピュータシステムからの要求に応じて、前記クライアントコンピュータシステムに対し、前記第1の選択された候補個体によって識別される次元値の前記セットを返す変換システムと、
を含む、請求項8に記載のシステム。
【請求項17】
コンピュータにより実施されるウェブインタフェース作成及び配置システムであって、
候補個体の個体数を有するデータベースを記憶するメモリであって、前記候補個体の各々は、1つ以上のウェブインタフェースのファネルを識別し、各々のファネルは、それに従って値を指定することができる複数の次元を有し、各々の候補個体は、前記次元ごとの値を更に識別する、前記メモリと、
前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別する、それにアクセス可能なプレゼンテーションデータベースを有する機械学習コンテンツ配信ネットワークであって、前記機械学習コンテンツ配信ネットワークは、クライアントコンピュータシステムから要求に応じて、
前記データベースから、前記個体数における前記候補個体の選択された1つを取り出し
前記クライアントコンピュータシステムに対し、前記選択された候補個体の前記次元値によって示されるフロントエンド要素値を有するファネルを配信する、システム。
【請求項18】
前記機械学習コンテンツ配信ネットワークは、クライアントコンピュータシステムからの前記要求に応じて、前記ファネルを作成する、請求項17に記載のシステム。
【請求項19】
前記データベースへのアクセスを有する変換システムを更に含み、
前記機械学習コンテンツ配信ネットワークは、前記選択された候補個体を取り出す際に、前記変換システムからの候補個体を要求するように更に構成され、
前記変換システムは、前記機械学習コンテンツ配信ネットワークからの要求に応じて、前記選択された候補個体を選択し、前記選択された候補個体を前記機械学習コンテンツ配信ネットワークに対して返すように構成される、
請求項17に記載のシステム。
【請求項20】
前記データベースにおける候補個体の前記個体数は、予め定められた標的のユーザの行動を促進する際のそれらの成功についてテストされる候補個体を含み、前記変換システムは、
候補個体の予備プールを前記候補個体数に書き込む個体数初期化モジュールと、
ライブのオンライン評価によって前記候補個体数における前記候補個体の各々をテストする候補テストモジュールであって、前記候補テストモジュールは、ライブのオンライン評価を受ける前記候補個体ごとのパフォーマンス測定値を発展させ、前記パフォーマンス測定値は、前記標的のユーザの行動を達成する際の前記ファネルの成功のインジケータである、前記候補テストモジュールと、
前記候補個体数に、前記候補個体数及び親のパフォーマンス測定値からの1つ以上の前記親の候補個体のそれぞれのセットに従って形成された新たな候補個体を追加する生殖モジュールと、
前記候補テストモジュール及び前記生殖モジュールを反復する制御モジュールであって、前記選択された候補個体を選択する際に、前記候補テストモジュールは、前記選択された候補個体を前記候補個体数から選択する、前記制御モジュールと、
を含む、請求項19に記載のシステム。
【請求項21】
コンピュータにより実施されるウェブインタフェース作成及び配置方法であって、
複数の候補個体の個体数を有する候補データベースを記憶するメモリを提供することであって、前記候補個体の各々は、1つ以上のウェブインタフェースのファネルを識別し、各々のファネルは、それに従って値を指定することができる複数の次元を有し、各々の候補個体は、前記次元ごとの値を更に識別する、前記メモリを提供することと、
前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するプレゼンテーションデータベースを提供することと、
前記選択された候補個体によって識別される次元値に対応するフロントエンド要素値を判定するために、前記候補個体の選択された1つを前記プレゼンテーションデータベースに適用することと、
ユーザに対し、前記判定されたフロントエンド要素値を有するファネルを提示することと、
を含む、方法。
【請求項22】
カスタム化可能なウェブインタフェースファネルのためのコンピュータにより実施される配置方法であって、前記ファネルは、複数の次元に沿ってカスタム化可能であり、
前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するプレゼンテーションデータベースを提供することと、
前記ウェブインタフェースファネルの特定の変動について、前記ファネルの前記次元ごとの値をファネルカスタム化仕様メモリに記憶することと、
ユーザに対し、前記ファネルカスタム化仕様メモリに記憶された前記次元値に対応するとして、前記プレゼンテーションデータベースによって示されるフロントエンド要素値を有するファネルを提示することと、
を含む、方法。
【請求項23】
コンピュータにより実施されるウェブインタフェース作成及び配置方法であって、
候補個体の個体数を有するデータベースを記憶するメモリを提供することであって、前記候補個体の各々は、1つ以上のウェブインタフェースのファネルを識別し、各々のファネルは、それに従って値を指定することができる複数の次元を有し、各々の候補個体は、前記次元ごとの値を更に識別する、前記メモリを提供することと、
ネットワークを通じて受信された1つ以上の第1の要求に応じて、第1のクライアントコンピュータシステムに対し、
前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するプレゼンテーションデータベースと、
前記個体数における前記候補個体のうちの第1の選択された1つによって識別される次元値のセットと、
次元値の前記受信されたセットに従って、ユーザに対し、次元値の前記受信されたセットによって示されるフロントエンド要素値を有するファネルを提示するプレゼンテーションモジュールと、
を返す、ネットワークサーバインフラストラクチャを提供することと、
含む、方法。
【請求項24】
コンピュータにより実施されるウェブインタフェース作成及び配置方法であって、
候補個体の個体数を有するデータベースを記憶するメモリを提供することであって、前記候補個体の各々は、1つ以上のウェブインタフェースのファネルを識別し、各々のファネルは、それに従って値を指定することができる複数の次元を有し、各々の候補個体は、前記次元ごとの値を更に識別する、前記メモリを提供することと、
機械学習コンテンツ配信ネットワークにアクセス可能に、前記ファネルの前記次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するプレゼンテーションデータベースを提供することと、
を含み、
前記機械学習コンテンツ配信ネットワークは、クライアントコンピュータシステムからの要求に応じて、前記データベースから、前記個体数における前記候補個体の選択された1つを取り出し、
前記機械学習コンテンツ配信ネットワークは、前記クライアントコンピュータに対し、前記選択された候補個体の前記次元値によって示されるフロントエンド要素値を有するファネルを配信する、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2016年1月5日に出願された米国仮特許出願第62/275,058号、「AUTOMATED CONVERSION OPTIMIZATION SYSTEM AND METHOD USING MACHINE LEARNING」(代理人整理番号:GNFN3301-1)の利益を主張する。優先権の仮特許出願は、参照により以下に組み込まれる。
【0002】
本出願は、2016年1月5日に出願された米国仮特許出願第62/275,074号、「AUTOMATED SEGMENTATION/PERSONALIZATION
CONVERSION OPTIMIZATION USING MACHINE LEARNING」(代理人整理番号:GNFN3302-1)の利益を主張する。優先権の仮特許出願は、参照により以下に組み込まれる。
【0003】
本出願は、同時に出願された「MACHINE LEARNING BASED WEBINTERFACE PRODUCTION AND DEPLOYMENT SYSTEM」(代理人整理番号:GNFN3301-3)と題する米国特許出願を参照により組み込む。
【0004】
本出願は、同時に出願された「WEBINTERFACE GENERATION AND TESTING USING ARTIFICIAL NEURALNETWORK」(代理人整理番号:GNFN3302-2)と題する米国特許出願を参照により組み込む。
【0005】
本出願は、同時に出願された「WEBINTERFACE PRODUCTION AND DEPLOYMENT USING ARTIFICIAL NEURALNETWORK」(代理人整理番号:GNFN3302-3)と題する米国特許出願を参照により組み込む。
【0006】
開示される技術は、概して、人工知能を使用してウェブインタフェースを生成及びテストすることに関し、特に、進化的計算を使用していわゆる機械学習変換最適化(MLCO)解法を提供することに関する。
【発明の概要】
【0007】
本章で議論される主題は、この章におけるその言及の結果として従来技術にすぎないものと想定されるべきではない。同様に、この章で言及され、または背景技術として提供される主題と関連付けられた課題は、従来技術において前に認識されていたものと想定されるべきではない。この章における主題は、それらのアプローチが特許請求される技術の実装態様にも対応することができる異なるアプローチを表しているにすぎない。
【0008】
開示される技術は、探索空間において全ての可能なウェブページ設計をテストすることなく、探索空間において最も成功したウェブページ設計を効率的に識別するために進化的計算を使用する、いわゆる機械学習変換最適化(MLCO)システムを提供する。探索空間は、マーケティング担当者によって提供されるウェブページ設計に基づいて定義される。単一のウェブページまたは複数のウェブページを有するウェブサイトファネルは、ゲノムとして表される。ゲノムは、ファネルの異なる次元及び次元値を識別する。ゲノムは、良好なパフォーマンスを示す親ゲノム及び良好なパフォーマンスを示す見込みがある孫ゲ
ノムを識別するために、初期化、テスト、競争、及び生殖のような進化的操作を受ける。各々のウェブページは、それが見込みがあるか、すなわち、それが次の世代についての親としての役割を果たすべきか、または破棄されるべきかを決定することが可能な程度までのみテストされる。
【0009】
ウェブサイト上で制御された実験を実行するための一般的な方法は、洗練された変換最適化解法を含む。変換最適化は、同時にウェブページ及びページ要素の複数の組み合わせ及び変動をテストすることを含む。例えば、27個の可能な組み合わせ(元の制御バージョンを含む)の合計についての、2つの代替的なイメージと、2つの代替的なヘッドラインを加えたものと、2つのコピーテキストの代替物を加えたものが提供されてもよい。よって、変換最適化は、本当にユーザを従事させるページ要素の最も効果的な組み合わせを判定するために分析される必要がある順列及び組み合わせの更なる複合的なセットを導入する。
【0010】
ビッグデータがウェブの個人化においてより重要な役割を果たすにつれて、データ信号の数、ルールの複雑性、及び成果の真の数は指数関数的に増加している。それが起こるにつれて、おそらくは成果に影響を与える機会がほとんどないか全くない事実の後を除き、人間の最適化を単純に行うことはできない。アルゴリズム的最適化が必要とされるが、そうであっても、パフォーマンスを予測するために処理される必要がある膨大な数のデータ入力及び結果として生じる測定値を考えると、線形的な関係及び相互関係を扱うことができる単純な線形回帰アルゴリズムは、改善された成果を十分にもたらすことができないことがある。
【0011】
それらの間の非常に複雑な関係を有する多くの変数が成果を判定する際に伴うテストを実行するために機械学習システムが利用される。機械学習システムは典型的に、変数の間の関係がアルゴリズムを事前に判定するために非常に複雑である場合があると考えると、始める公式を理解することを試みるのではなく、公式を理解するためにデータから学習することを試みる。従って、変換最適化を行う上で多くの変数があるので、入力の大規模なデータセットから学習することに基づいて、成果に関する予測を行うために機械学習、人工知能、及び他の非線形アルゴリズムを利用する非常に洗練されたアルゴリズムが望ましい。
【0012】
図面では、同様の参照符号は全体的に、異なる図面全体を通じて同様の部分を指す。また、図面は必ずしも寸法通りではなく、代わりに開示される技術の原理を全体的に示すことを強調する。以下の説明では、開示される技術の様々な実装態様が以下の図面を参照して説明される。
【図面の簡単な説明】
【0013】
【
図1】候補探索空間における良好なパフォーマンスを示す候補個体を識別するために進化的計算を実装する変換システムを記す。
【
図2】
図1における変換システムの進化的計算を実装するために使用することができるモジュールを示す。
【
図3】開示される機械学習変換最適化(MLCO)のワークフローを示す。
【
図4】複数のウェブインタフェースを有するファネルを示す。
【
図5】ファネルのウェブインタフェースレイアウトを記す。
【
図6】その次元及び次元値を有するファネルのウェブインタフェースを示す。
【
図7】スタータファネルのエディタ設計表現をランタイム設計表現に転換する1つの実装態様の符号図である。
【
図8】スタータファネルのスタータ次元及びスタータ次元値を符号化する1つの実装態様の符号図を記す。
【
図9】スタータファネルのスタータ次元及びスタータ次元値をスタータ候補個体/スタータゲノムに符号化する1つの実装態様の符号図を示す。
【
図10】スタータファネルに基づいて第1の世代を初期化する1つの実装態様を記す。
【
図11】クロスオーバー技術を使用して新たな候補個体を生殖させる1つの実装態様の符号図を示す。
【
図12】変異技術を使用して候補個体を生殖させる1つの実装態様の符号図である。
【
図13】エンドユーザへのフロントエンド提示のための対応する候補個体に従って1つ以上のウェブインタフェースのファネルを生成する1つの実装態様を示す。
【
図14】エンドユーザへのフロントエンド提示のための対応する候補個体に従って1つ以上のウェブインタフェースのファネルを生成する1つの実装態様を示す。
【
図15】機械学習ユーザデバイス(MLUD)の1つの実装態様である。
【
図16】機械学習コンテンツ配信ネットワーク(MLCDN)の1つの実装態様を示す。
【
図17】対照個体及び獲得個体、並びに構成する次元及び次元値をグラフィカルに示す。
【
図18】開示される進化的計算の1つの実装態様の例示的な結果をグラフィカルに示すグラフである。
【
図19】開示される進化的計算についてのリスク許容度を実装するリスク許容度モジュール及び候補個体数を区分化する割当モジュールの1つの実装態様を示す。
【
図20】開示される技術を実装するために使用することができるコンピュータシステムの簡易ブロック図である。
【発明を実施するための形態】
【0014】
以下の議論は、いずれかの当業者が開示される技術を行い、使用することを可能にするために提示され、特定の適用例及びその要件のコンテキストで提供される。開示される実装態様への様々な修正が当業者にとって直ちに明らかであり、本明細書で定義される一般的な原理は、開示される技術の精神及び範囲を逸脱することなく、他の実装態様及び適用例に適用されてもよい。よって、開示される技術は、示される実装態様に限定することを意図していないが、本明細書で開示される原理及び特徴に一貫した最も広い範囲に一致することになる。
【0015】
開示される実装態様に係るシステム、装置、及び方法の実施例が変換最適化のコンテキストで説明される。他の例では、開示される技術は、多変数テスト、A/Bテスト、ランディングページ最適化、変換率最適化、ウェブサイトテスト、ウェブサイト最適化、探索エンジン最適化、情報技術、電気通信システム、財務システム、セキュリティ取引、銀行取引、ビジネスインテリジェンス、マーケティング、医療及び健康科学、マイニング、エネルギーなどに適用されてもよい。他のサービスが可能であり、その結果、以下の実施例が範囲、コンテキスト、または設定において決定的または限定的なもののいずれかとして見なされるべきではない。
【0016】
開示される技術は、データベースシステム、マルチテナント環境、Oracle(商標)互換データベースの実装態様、IBM DB2 Enterprise Server(商標)互換関係データベースの実装態様、MySQL(商標)若しくはまたはPostgreSQL(商標)互換関係データベースの実装態様、またはMicrosoft SQL Server(商標)互換関係データベースの実装態様のような関係データベースの実装態様、或いはVampire(商標)互換非関係データベースの実装態様、Apache Cassandra(商標)互換非関係データベースの実装態様、BigTable(商標)互換非関係データベースの実装態様、またはHBase(商標)若しくはD
ynamoDB(商標)互換非関係データベースの実装態様などのNoSQL(商標)非関係データベースの実装態様を含む、いずれかのコンピュータにより実施されるシステムのコンテキストにおいて実装されてもよい。加えて、開示される技術は、MapReduce(商標)、バルク同期プログラミング、MPIプリミティブなどのような異なるプログラミングモデル、またはAmazon Elasticsearch Service(商標)及びAmazon Kinesis(商標)を含むAmazon Web Service(AWS)(商標)、Apache Storm(商標)、Apache Spark(商標)、Apache Kafka(商標)、Apache Flink(商標)、Truviso(商標)、IBM Info-Sphere(商標)、Borealis(商標)、及び Yahoo! S4(商標)のような異なるスケーラブルバッチ及びストリーム管理システムを使用して実装されてもよい。
【0017】
本明細書で使用されるように、情報の項目の「識別」は、情報のその項目の直接の仕様を必ずしも必要としない。情報は、間接参照の1つ以上の層を通じて実際の情報を単純に参照することによって、または情報の実際の項目を判定するために共に十分である異なる情報の1つ以上の項目を識別することによって、フィールドにおいて「識別され」てもよい。加えて、用語「指定する」は、「識別する」と同一の意味であるとして本明細書で使用される。
【0018】
本明細書で使用されるように、所与の信号、イベント、または値は、所与の信号、イベント、または値によって影響される先行する信号、イベント、または値の先行する信号、イベント、または値「に従う」。間に入る処理要素が存在する場合、ステップ若しくは期間、所与の信号、イベント、または値はなお、先行する信号、イベント、または値「に従う」。間に入る処理要素またはステップが1つよりも多い信号、イベント、または値を組み合わせる場合、処理要素またはステップの信号出力は、信号、イベント、または値の入力の各々「に従う」と考えられる。所与の信号、イベント、または値が先行する信号、イベント、または値と同一である場合、これは、所与の信号、イベント、または値がなお、信号、イベント、または値「に従い」若しくはそれら「に依存し」、またはそれら「に基づいている」と考えられる退化したケースにすぎない。所与の信号、イベント、または値の別の信号、イベント、または値に対する「反応性」が同様に定義される。
【0019】
本明細書で使用されるように、「同時に」または「並列して」は、正確に同時である必要はない。個体の1つの評価が個体のもう一つの評価が完了する前に始まる場合に十分である。
【0020】
本明細書で使用されるように、用語「ファネル」は、エンドユーザによって知覚可能、動作可能、及び理解可能である、候補個体のフロントエンドを指す。実装態様では、ファネルは、ユーザ対話を引き起こし、それに応答する。ファネルは、1つ以上のウェブインタフェースを含む。ウェブインタフェースのいくつかの例は、ウェブページ、ウェブサイト、電子メール、モバイルアプリケーション、デスクトップアプリケーション、デジタル広告、ソーシャルメディアメッセージ(例えば、Tweet(商標)、Facebook
post(商標))、ソーシャルメディアフィードアイテム、ソーシャルメディアプロファイル、ソーシャルメディアアカウント、ソーシャルメディアチャットメッセージ、汎用チャットメッセージ、フォーム、及び自動記入フォームなどの、制御バージョン及びその変形の両方を含む。
【0021】
開示される技術の実装態様では、ファネルは、ウェブサイト(ファネルのセット)などの1つ以上のインターネットアクセス可能データセンタにおいてまたはそれにわたって、ウェブサイトの背後で実行する関連付けられたアプリケーションと共に実装される。エンドユーザは、ファネルにアクセス可能であり、ファネルと対話可能であるインターネット
アクセス可能クライアントデバイスまたはクライアント(例えば、デスクトップコンピュータ、ノートブックコンピュータ、タブレット、モバイルデバイス、電話、またはレンダリングエンジンを有する他のデバイスなど)を操作する。1つの実装態様では、エンドユーザは、ウェブブラウザまたはモバイルアプリケーションを開くことによってファネルにアクセスする。いくつかの実装態様では、エンドユーザは、ファネル(または、その一部)に認証してもよい。
【0022】
開示される技術の実装態様では、ウェブインタフェースは、その構造が基本的なフォーマットに従う構造化ドキュメントである。例えば、1つの実装態様では、ウェブインタフェースは、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、または他のウェブサポート構造化ドキュメントに基づいているウェブサポートフォーマットを有する。ウェブインタフェースは、1つ以上のリソース(例えば、JavaScript(登録商標)リソース、Cascading Style Sheet(CSS)リソース、Asynchronous and JavaScript XML(AJAX)リソース、イメージリソース、ビデオリソースなど)、またはより典型的に、ウェブインタフェース内に組み込まれる、そのようなリソースへの参照を含んでもよい。例として、ウェブインタフェースに組み込まれるリソースは、概して、リソースのタイプに応じて、とりわけ、スクリプト要素、スタイル要素、イメージ要素、またはオブジェクト要素の中に含まれてもよく、またはそれらの中で指定されてもよい。典型的には、エンドユーザのクライアントデバイスにおいて実行するウェブブラウザまたは他のクライアントアプリケーションは、受信されるウェブインタフェースのドキュメントオブジェクトモデル(DOM)の表現を構築する。
【0023】
別の実装態様では、ウェブインタフェースは、プレーンテキスト、リッチテキスト、またはHTML(CSSなどのスタイル定義フォーマット若しくはJavaScriptなどのフォーマットにあるスクリプト命令、例えば、Microsoft Outlook(商標)、Google Gmail(商標)、Apple Mail(商標)、iOS
Mail(商標)、Thunderbird(商標)、AOL Mail(商標)、Yahoo Mail(商標)、Windows Live(商標)を有し、若しくはそれらを有さない)に基づいている電子メールフォーマット、及びハイブリッドフォーマットを有する。
【0024】
いずれかの他の従来のまたは後に開発される構造化ドキュメントまたはそのフォーマット若しくはそれに使用されるフォーマットは、ウェブインタフェースであるものと考えられる。そのような実装態様は、開示される技術(ウェブインタフェースの音声または触覚の提示など)の精神及び範囲から逸脱することなく当業者にとって直ちに明らかである。
【0025】
ウェブインタフェース(例えば、ウェブページ、ウェブサイト、電子メール、モバイルアプリケーション、デスクトップアプリケーション、デジタル広告)は、ページ要素を含む。ページ要素のいくつかの例は、イメージ、ビデオ、アニメーション、ヘッドライン、ヘディング、コールトゥアクション、テキストコピー、フォーム長、及びその他を含む。1つの例では、コールトゥアクションは、ユーザがウェブインタフェースのいずれか一部をクリックまたはタップするときに何が発生するかを定義する。ウェブインタフェースのページ要素は、いわゆるウェブインタフェースレイアウトに配置される。ウェブインタフェースレイアウトは、相互のウェブインタフェースのページ要素の位置決めを定義する。例えば、イメージはウェブインタフェースレイアウトの下右にあってもよく、ビデオはウェブインタフェースレイアウトの中心にあってもよい。ウェブインタフェースでは、全ての相互変更可能なページ要素は、ウェブインタフェースレイアウトを使用して記述され、ウェブインタフェースレイアウトは、ページ要素がどのように相互に現れることになるか、及びそれらがどのように相互に対話することになるかを記述する。各々のページ要素は
、いくつかの特性を有する。例えば、イメージページ要素は、タイプ、配置、及びサイズに関連する特性を有し、コールトゥアクションは、色、テキスト、及びサイズに関連する特性を有し、テキストコピーは、コンテンツ、長さ、及びサイズに関連する特性を有する。
【0026】
本明細書で使用されるように、用語「ファネル(複数可)」、「候補個体(複数可)」、「個体(複数可)」、「ゲノム(複数可)」、及び「染色体(複数可)」は、交換可能に使用される。また、「個体(複数可)」、「ゲノム(複数可)」、及び「染色体(複数可)」は、遺伝子(複数可)及び/または「遺伝子値(複数可)」から構成される。本明細書で使用されるように、用語「遺伝子(複数可)」及び/または「遺伝子値(複数可)」は、クラスタ(複数可)若しくはページ要素(複数可)若しくは要素(複数可)若しくは次元(複数可)若しくはスタータ次元(複数可)、ページ要素値(複数可)若しくは要素値(複数可)若しくは次元値(複数可)若しくはスタータ次元値(複数可)若しくは値(複数可)、部分列(複数可)、サブ要素(複数可)若しくは制御サブ要素(複数可)若しくはテストサブ要素(複数可)、サブ要素値(複数可)若しくは制御サブ要素値(複数可)若しくはテストサブ要素値、またはそれらのいずれかの組み合わせなど、異なる「エンティティ」及び/または「エンティティ(複数可)」を指すことができる。従って、本明細書で使用されるように、遺伝子ごとの選択、遺伝子ごとのクロスオーバー、または遺伝子ごとの変異など、「遺伝子ごとの」操作または「遺伝子レベル」において行われ、若しくは実施される操作は、単一のエンティティを、選択し、クロスオーバーし、及び/若しくは変異させる単一の単位として取り扱うことができ、またはエンティティの組み合わせを、選択し、クロスオーバーし、及び/若しくは変異させる単一の単位として取り扱うことができる。
【0027】
導入
開示される技術は、探索空間において全ての可能なウェブページ設計をテストすることなく、探索空間において最も成功したウェブページ設計を効率的に識別するために進化的計算を使用する、いわゆる機械学習変換最適化(MLCO)システムを提供する。探索空間は、マーケティング担当者によって提供されるウェブページ設計に基づいて定義される。単一のウェブページまたは複数のウェブページを有するウェブサイトファネルは、ゲノムとして表される。ゲノムは、ファネルの異なる次元及び次元値を識別する。ゲノムは、良好なパフォーマンスを示す親ゲノム及び良好なパフォーマンスを示す見込みがある孫ゲノムを識別するために、初期化、テスト、競争、及び生殖のような進化的操作を受ける。各々のウェブページは、それが見込みがあるか、すなわち、それが次の世代についての親としての役割を果たすべきか、または破棄されるべきかを決定することが可能な程度までのみテストされる。
【0028】
電子商取引では、ユーザ経験、すなわち、できるだけ多くのエンドユーザを、何気なく閲覧する閲覧者から支払い顧客に変換する、ウェブページ及び対話を設計することが重要な目標である。単純さ及び一貫性を含む、いくつかの公知の設計の原理が存在するが、どの程度それが変換するかを判定するページの要素の間の予期しない対話も存在することが多い。同一の要素は、1つのコンテキストでは良好に作用することがあるが、その他ではそうではなく、結果を予測することが困難であることが多く、どのように所与のページを改善するかを決定することが更に困難である。
【0029】
それらの課題に全体的に取り組む産業が現れており、変換率最適化、または変換科学と呼ばれる。実践者のほとんどが使用する標準的な方法、A/Bテスト、すなわち、同一のページの2つの異なるバージョンを設計し、異なるユーザにそれらを示し、どの程度それらの各々が変換するかについての統計を収集することである。この処理によって、領域及び変換最適化に関する人類の知識を設計に組み込み、次いで、それらの効果をテストする
ことが可能になる。結果を観察した後、新たな設計が比較されてもよく、徐々に改善することができる。A/Bテスト処理は、困難かつ時間を要するものであり、ページ設計の非常にわずかな部分のみがこのようにしてテストされることがあり、設計における僅かな対話は単純に、完全に失敗することがある。
【0030】
開示される技術は、マーケティング担当者自体が作成する変数及び変数値からテストされることになるウェブページ候補を自動生成する。変数及び変数値は、ボタンの色及びフォントの重みのような小さな変更から全体規模のメッセージング及び設計仕様までの、ウェブサイトに関するいずれかであってもよい。それらの変数は全て、ファネルにおける単一のページ上にあってもよく、または複数のページにわたってもよい。開示される技術は、値の可能な組み合わせの膨大な空間において最も成功した変数及び変数値を探索する。
【0031】
開示される技術で、数千のページ設計が短時間にテストされることがあり、これは、A/Bテストを通じてでは不可能である。一方で、進化的探索を通じて、開示される技術は、最良の1つを見出すために、ページ設計の更なる大きなセット(例えば、数100万の)中からページ設計の小さなサブセット(例えば、数千の)のみをテストする。開示される技術は、要素のどの組み合わせが効果的であるかを経時的に学習し、最も見込みのある設計を探し回ることに徐々に集中する。
【0032】
開示される技術は、短縮化された時間フレームにおいてより多くの項目を膨大にテストすることが可能な、変換最適化のために自動化システムである。それは、変換が増大することにつながる変数の僅かな組み合わせを見出す。開示される技術は、人類によって設計されるものよりも良好に変換する設計を発見することができ、なぜならば、それは、要素の間の予期しない対話を見出すことが多いからである。例えば、開示される技術は、ボタンが緑である必要があるが、それが透明であり、ヘッダが小さいフォントであり、ヘッダテキストが整列されているときのみ、その必要があることを見出すことができる。そのような対話が存在することが多く、それらは、見出すことが非常に困難である場合がある。開示される技術は、高価な人類の努力の代わりに、人工知能に基づいてこの発見処理を自動にする。開示される技術で、よって、変換を以前よりも良好に、かつ以前よりもさらに大きな規模で最適化することが可能であり、電子商取引条件が変わるにつれてそれらを最適化し続けることが可能である。
【0033】
機械学習変換最適化(MLCO)システム
図1は、候補探索空間における良好なパフォーマンスを示す候補個体を識別するために進化的計算を実装する変換システム104を記す。変換システム104は、候補個体数102における候補個体についてのパフォーマンス測定値106を永続的に収集及び発展させることによってそれを行う。変換システム104はまた、候補個体を1つ以上のウェブインタフェースのファネルに転換するためにプレゼンテーションジェネレータを使用する。ファネルは、エンドユーザによって提供される評価データ(例えば、ユーザのクリック)に基づいて対応する候補個体についてのパフォーマンス測定値106を発展させることができるように、ライブのオンライン評価108の間にエンドユーザに提示される。
【0034】
各々のファネルは、それによって標的のユーザの行動の達成を検出することができるメカニズムを有する。1つの実装態様では、標的のユーザの行動は、エンドユーザによる変換である。ファネルごとに、設計者、マーケティング担当者、広告担当者、またはコンテンツ作成者によって定義される変換目標に基づいて変換を検出することができる。変換目標の例は、ファネルの特定のウェブインタフェースにユーザが到達すること(例えば、サンキューページ)、ファネルのウェブインタフェース上のリンク若しくはボタン、または他のユーザインタフェース要素をユーザがクリックすること、或いは設計者によって定義されたいずれかの他のカスタムイベント(例えば、jQueryを使用した)を含む。変
換目標の他の例は、Amazon.com(商標)上の「Buy Now」ボタンをユーザがクリックすること、電子メール登録ページ上の「Sign Up」ボタンをユーザがクリックすること、アプリケーションランディングページ上の「Download Now」ボタンをユーザがクリックすること、レポートをダウンロードするためにフォームをユーザが記入すること、ウェビナをユーザがサインアップすること、購入処理をユーザが完了すること、ショッピングカートにアイテムをユーザが追加すること、ショッピングカートのチェックアウトをユーザが初期化すること、及び本を読むために誓約をユーザが行うことを含む。変換目標は、異なるファネル及び異なるテスト環境について異なってもよい。
【0035】
変換システム104は、パフォーマンス測定値106に従って動作し、パフォーマンス測定値は、変換システム104に対し、候補個体の適応度をどのように測定するかを示す。変換システム104は、最大の適応度を有する候補個体について最適化するが、適応度は、パフォーマンス測定値106によって定義される。パフォーマンス測定値106は、標的のユーザの行動を達成する際の候補個体及び対応するファネルの成功のインジケータである。パフォーマンス測定値106は、特定の適用の環境及び目標に特有である。ウェブページテスト環境では、例えば、パフォーマンス測定値106は、ファネルについて定義された変換目標に応じている。1つの実装態様では、パフォーマンス測定値106は、「変換率」に基づいている。変換率は、ファネルを訪問するエンドユーザ、及びファネルについて定義された変換目標を完了するエンドユーザの比率である(すなわち、変換目標を完了する訪問者が何パーセントあるか)。例えば、5000の訪問者及び50の変換を有するウェブサイトは、1%の変換率を有する。別の実装態様では、パフォーマンス測定値106は、「収益率」に基づいている。収益率は、ファネルについて定義された変換目標をエンドユーザが完了する結果としてエンドユーザごとに生成される収益量(例えば、ドル価格値)である。
【0036】
ライブのオンライン評価108に関して、「ライブのオンライン評価」は、候補個体に従って構築されたファネルがテストのために実世界のエンドユーザに提示されるリアルタイムのテストまたはトライアルを意味する。ライブのオンライン評価108の間、パフォーマンス測定値106は、対応するファネルとのリアルタイム且つ実世界のユーザ対話に基づいて候補個体ごとに発展する。典型的には、ファネルごとに、パフォーマンス測定値106は、エンドユーザのサンプル(例えば、1000のエンドユーザまたは2000のエンドユーザなど)にわたって判定される。ライブのオンライン評価108の間のファネルのパフォーマンスに基づいて計算されたパフォーマンス測定値106は、ファネルを生成するために元々使用される対応する候補個体と関連付けられ、それにリンク付けられ、またはそれに割り当てられることに留意されたい。その後、パフォーマンス測定値106は、良好なパフォーマンスを示す個体を生殖させるために開示される進化的計算によって使用される。
【0037】
変換システム104は、候補個体数102を含むデータベースと対話する。本明細書で使用されるように、用語「データベース」は、いずれかの統一した構造を必ずしも暗示しない。例えば、2つ以上の別個のデータベースは、共に考えられるとき、その用語が本明細書で使用されるようになお「データベース」を構成する。いくつかの実装態様では、データベースは、マルチテナントデータベースシステム(MTDS)など、多くの方法で実装することができる、オンデマンドデータベースサービス(ODDS)を形成するように1つ以上のテナントからの情報を共通データベースイメージのテーブルに記憶することができる。データベースイメージは、1つ以上のデータベースオブジェクトを含むことができる。他の実装態様では、データベースは、関係データベース管理システム(RDBMS)、オブジェクト指向データベース管理システム(OODBMS)、分散ファイルシステム(DFS)、非スキーマデータベース、またはいずれかの他のデータ記憶システム若し
くはコンピューティングデバイスとすることができる。
【0038】
1つの実装態様では、個体数102における候補個体は、従来のデータベース管理システム(DBMS)によって記憶及び管理され、SQL文を使用してアクセスされる。よって、従来のSQLクエリは、例えば、候補個体のパフォーマンス測定値106を取得するために使用されてもよい。新たな候補個体は、SQL「insert」文を使用して個体数102に挿入されてもよく、破棄される候補個体は、SQL「delete」文を使用して削除されてもよい。別の実装態様では、個体数102における候補個体は、リンク付けリストに記憶される。そのような実装態様では、その内容をフリーリストにおける要素に書き込み、次いで、要素をメインのリンク付けリストにリンク付けすることによって新たな候補個体の挿入を達成することができる。候補個体を破棄することは、それらをメインのリンク付けリストからリンク付け解除し、それらをフリーリストに再リンク付けすることを含む。
【0039】
いくつかの実装態様では、MLCOシステムは、任意選択のフルフィルメントシステム110を使用する。フルフィルメントシステム110は、変換システム104からの出力/アクション信号によって自動制御されるシステムである。ウェブページテスト環境では、例えば、フルフィルメントシステム110は、コンピュータネットワーク(図示せず)を介して信号を受信し、適切な取引及び配送アクションをとる製品分布電子倉庫(例えば、Amazon.com(商標))である。
【0040】
ここで議論は、
図1のMLCOシステムによって実装される進化的計算に向けられる。
【0041】
進化的計算
図2は、
図1における変換システム104の進化的計算を実装するために使用することができるモジュールを示す。
図2では、実線はデータフローを示し、破線は制御フローを示し、点線は任意選択のモジュールを示す。
図2におけるモジュールは、ハードウェアまたはソフトウェアにおいて実装されてもよく、
図2に示されるような同一のブロックに正確に分けられる必要はない。モジュールのいくつかはまた、異なるプロセッサ若しくはコンピュータ上で実装されてもよく、またはいくつかのプロセッサ若しくはコンピュータの間で分散されてもよい。加えて、モジュールのいくつかは、達成される機能に影響を与えることなく、組み合わされてもよく、並列して動作してもよく、または
図2に示される順序と異なる順序で動作してもよい。また、本明細書で使用されるように、用語「モジュール」は、それら自体が本明細書でモジュールを構成すると考えられてもよい、「サブモジュール」を含むことができる。特に、候補テスト212、競争モジュール222、及び生殖モジュール228はまた、本明細書で候補処理220のサブモジュールであると考えられる。モジュールとして指定される
図2におけるブロックはまた、方法におけるフローチャートのステップとして考えられてもよい。モジュールはまた、メモリに隣接して配置された全てのそのコードを必ずしも有する必要はなく、コードのいくつかの部分は、間に配置された他のモジュールまたは他の機能からのコードを有するコードの他の部分とは別々であってもよい。
【0042】
個体数初期化
図2を参照して、候補個体数102は、候補個体の予備プールを個体数102に書き込む、個体数初期化モジュール202によって初期化される。予備プールは、ランダムに作成されてもよく、またはいくつかの実装態様では、第1の世代を接種するために先天的知識が使用されてもよい。別の実装態様では、新規のランを接種するために、過去のランからの候補個体を借用することが可能である。スタート時点では、すべての候補個体は、定義されていないとして示されるパフォーマンス測定値106で初期化される。
【0043】
個体数初期化モジュール202はまた、候補探索空間を定義する。本明細書で使用されるように、用語「候補探索空間」は、M個の次元を有する空間を指し、各々の次元は、それに沿って異なる候補個体が異なる値を有することができる軸を表す。各々の次元における空間のサイズは、その次元について利用可能な値の範囲に等しい。
【0044】
以下の議論は、どのようにスタータファネルが設計エディタを使用して設計者、マーケティング担当者、広告担当者、またはコンテンツ作成者によって定義されるかを説明する。一旦定義されると、スタータファネルは、候補探索空間を定義し、第1の世代を接種するために個体数初期化モジュール202によって使用される。
【0045】
スタータファネル定義
候補探索空間は、少なくとも1つのスタータファネル、並びにそのスタータウェブインタフェースのスタータ次元及びスタータ次元値に従って個体数初期化モジュール202によって定義される。実装態様では、スタータファネルは、
図3に示されるように、設計エディタ302を使用して定義される。設計エディタ302は、MLCOワークフローを実装するために、設計者、マーケティング担当者、広告担当者、またはコンテンツ作成者によって使用されるインタフェース304の一部としての様々なインタフェース構成要素を含む。特に、設計エディタ302は、スタータファネルの1つ以上のスタータウェブインタフェースを指定し、スタータファネルについての変換目標を設定し、スタータファネルのパフォーマンス測定値を設定し、スタータファネルのスタータウェブインタフェースごとのスタータ次元及びスタータ次元値を設定し、スタータファネルをプレビューし、テストを配置するために、設計者によって使用される。
【0046】
図4は、3つのスタータウェブインタフェース(例えば、1つのランディングページ及び2つのファネルページ)を有するスタータファネルの1つの実装態様を示す。1つの実装態様では、スタータウェブインタフェースは、それらのそれぞれのアクセス経路(例えば、ユニファイドリソースロケータ(URL))によってスタータファネルにおいて識別され、トポロジの順に配置される。典型的には、トポロジの順は、ファネルについて定義される変換目標を完了するためにエンドユーザが進むファネル中の経路を判定する。トポロジの順は、インタフェース304にわたって設計者によってグラフィカルに設定され、メモリに論理的に記憶される。
【0047】
図4はまた、設計者がスタータファネルについての変換目標を設定することを可能にする「変換目標定義」ボタンを記す。変換目標の例はまた、「リードの増加」または「収益の増加」を含む。設計者はまた、どのタイプのイベントが、サンキューページに訪問すること、ボタン若しくはリンクをクリックすること、またはカスタムイベントなど、変換が発生したことを示すと考えられるかを定義する。変換目標を設定した後、設計者は、スタータファネルについてのパフォーマンス測定値を指定する。パフォーマンス測定値は、テストの間の候補個体のパフォーマンスを評価するために開示される進化的計算にて使用される。
【0048】
次いで、スタータファネルについてのウェブインタフェースレイアウトが生成される。本明細書で使用されるように、「ウェブインタフェースレイアウト」は、その中で次元についての代替的な値がファネルの特定のウェブインタフェースを定義するために挿入されるテンプレートにすぎない。1つの実装態様では、ウェブインタフェースレイアウトは、可変スクリーンのキャンバスを有するデバイスのオプションの中から(例えば、スマートフォン、タブレット、コンピュータ、ウェアラブルデバイス)設計者によって選択されたシミュレートされたデバイスにわたって表示される。いくつかの実装態様では、デバイスのオプションは、iPhone6(商標)、Samsung GalaxyS6(商標)、及びその他のような異なるデバイスモデルが挙げられる。
図5は、ウェブインタフェー
スレイアウト、並びにウェブインタフェースレイアウトに適用することができる次元及び次元値の1つの実装態様を示す。
【0049】
次いで、設計者は、スタータファネルのスタータウェブインタフェースごとのウェブインタフェースレイアウトに含まれることになる異なるページ要素(本明細書で「スタータ次元」と称される)を選択する。1つの実装態様では、設計者はまた、ページ要素についてのタイプを指定する。例えば、ページ要素の名前は、「Clean,Awesome and Multi-Purpose」であり、ページ要素のタイプは、「Headline-Main」である。更に進むと、設計者は、スタータファネルのスタータウェブインタフェースごとに異なるサブ要素(本明細書で「スタータ次元」と称される)を定義する。サブ要素の例は、テキスト、書式設定/CSS(Cascading Style Sheets)、ページ要素の隠蔽、ページ要素の除去、クラス、HTML、カスタムjQuery、及びイメージを含む。いくつかの実装態様では、設計者は、サブ要素のいくつかを活性化または非活性化することができる(例えば、ドロップダウンを使用して)。1つの実装態様では、非活性なサブ要素は、インタフェース304にわたって取消線を有して表示される。他の実装態様では、設計エディタ302は、いくつかのサブ要素を自動的に活性し、その他を非活性にする。
【0050】
次いで、設計者は、定義されたサブ要素ごとにサブ要素値(本明細書で「スタータ次元値」と称される)を設定する。加えて、設計者はまた、定義されたサブ要素ごとに、制御サブ要素値及び1つ以上のテストサブ要素値を設定する。他の実装態様では、設計エディタ302は、サブ要素についてのデフォルトの制御値を自動で設定する。例えば、ページ要素「Headline-Main」について、制御サブ要素値は、「Clean,Awesome and Multi-Purpose」になるように設定され、テストサブ要素値は、「Slick,Awesome and Powerful」、「New,Fast,Better」、「Shiny,Better than the competition」、及び「Best you can Buy」になるように設定される。同様に、他の実装態様では、異なるページ要素、並びに対応するサブ要素及びサブ要素値は、スタータファネルのスタータウェブインタフェースの各々のスタータ次元及びスタータ次元値のセットとして定義されてもよい。
【0051】
ファネルの各々のウェブインタフェースは、ベクトルに基づく探索空間におけるポイントとして考えられてもよい。ベクトル空間内の各々の次元軸は、ページ要素のうちの1つに対応し、所与の軸に沿った各々の異なる座標位置は、そのページ要素についての設計者により指定された代替のうちの1つを示す。例えば、
図5では、コールトゥアクション次元は、4つの座標位置(値またはその代替)、すなわち、「Go!」、「Go to the Auction!」、「Win the Auction!」、及び 「Win it NOW!」を有する。ファネルの特定のウェブインタフェースは、ページ要素/次元ごとの値を指定する。
【0052】
図6は、ファネルのウェブインタフェースの1つの実装態様を示す。
図6では、ウェブインタフェースは、ウェブインタフェースレイアウト内の異なるページ要素/次元の配置または位置と、ピクチャの選択肢(ページ要素/次元)、背景イメージ(ページ要素/次元)、背景色(ページ要素特性/次元値)、ヘッドラインコピー(ページ要素/次元)、ヘッドラインコピーのタイプフェース及び色(ページ要素特性/次元値)、ロゴの出現または隠蔽(ページ要素/次元)、部分ヘッドコピー(ページ要素/次元)、部分ヘッドコピーのタイプフェース及び色(ページ要素特性/次元値)、ディスクリプションコピー(ページ要素/次元)、ディスクリプションコピーのタイプフェース及び色(ページ要素特性/次元値)、フォーンコールトゥアクション(ページ要素/次元)、フォーンコールトゥアクションのタイプ、フォーマット、及び色(ページ要素特性/次元値)、フォーム設
計(ページ要素/次元)、ボタン(ページ要素/次元)、並びにボタンの形状、色、及びテキスト(ページ要素特性/次元値)を含む、ページ要素/次元の対応する特性または値とによって定義される。
【0053】
一旦作成されると、スタータファネルのプレビュー、及びその構成するスタータウェブインタフェースは、インタフェース304にわたって設計者に提示される。
【0054】
スタータファネルの定義を理解した上で、ここで議論は、対応するスタータ候補個体がスタータファネルを符号化することによってランタイムにおいてどのように初期化されるかに向けられる。
【0055】
スタータ個体初期化
図7は、スタータファネルのエディタ設計表現702をランタイム設計表現712に転換する1つの実装態様の符号図である。ランタイム322において、設計者によって定義されるスタータファネルのエディタ設計表現702は、ランタイム設計表現712に転換される。
図7で使用される例では、エディタ設計表現702は、ツリーを含む。ツリーのルートは、それに対してテストが実行される最高レベルの粒度である。ウェブサイトまたはモバイルウェブページについて、ルートはドメインである。モバイルアプリケーションについて、ルートはアプリケーションである。電子メールについて、ルートは電子メールであり、件名及びページは、次のレベルのツリーである。他のアプリケーション(広告など)について、異なるマッピングが使用されてもよい。ウェブページ及びモバイルアプリケーションのドメインでは、ウェブサイトは、1つからn個のファネルを有し、各々のファネルは、目標、及び1つからn個のページを有する。各々のページは、要素の1つからn個のクラスタを有する。各々のクラスタは、1つからn個の要素を有する。各々の要素は、要素の特性を変更するサブ要素のセットを有する。本明細書で使用されるように、サブ要素は、要素でもある。各々のサブ要素は、1つからn個の値を有する。他の実装態様では、構造は異なってもよい。例えば、要素は、全くクラスタ化されなくてもよく、または表現は、全く階層化されなくてもよい。
【0056】
また、ランタイム322において、スタータファネルは、それを二進式として符号化するスタータゲノムによって表される。1つの実装態様では、二進符号化は、ツリーのリーフの連結であり、スタータファネルの場合、スタータファネルのスタータウェブインタフェースの各々のスタータ次元及びスタータ次元値を連結することを含む。いくつかの実装態様では、ゲノムの符号化の前に、エディタ設計者表現702の概略表現は、ランタイム設計表現712の形式で生成される。他の実装態様では、ゲノムの符号化は、量的若しくは数的データタイプ、質的データタイプ、離散データタイプ、連続的データタイプ(上限及び下限を有する)、整数データタイプ(上限及び下限を有する)、公称データタイプ、序数若しくはランク付けデータタイプ、分類別データタイプ、間隔的データタイプ、並びに/または比率データタイプなど、二進データタイプ(0または1)以外のデータタイプに依存した他の方式に基づいてもよい。例えば、ゲノムの符号化は、0~1の実数値、0~256の赤、緑、青(RGB)値などの連続値、CSS色の16進数値(例えば、#F0F8FF)、CSS色の分類別色値(例えば、AliceBlue)、他のCSS特性グループ及び特性のそれぞれの値(<http://www.w3schools.com/cssref/#animation>におけるウェブ上でリスト化された1つなど)、特定の次元のサイズ(例えば、高さ及び幅)、異なる値及びデータタイプのセット(例えば、異なる数的なドル価格値、若しくは異なる数的なドル価格値と、高さ及び幅との組み合わせ)、並びにその他に基づいてもよく、またはそれらのいずれかの組み合わせに基づいてもよい。
【0057】
図8は、スタータファネルのスタータ次元及びスタータ次元値を符号化する1つの実装
態様の符号図を記す。
図8では、スタータファネルのサブ要素806に対応するクラスタ802、要素804、サブ要素806、及びサブ要素808は、二進列符号化810に符号化される。二進列符号化810では、サブ要素値ごとの最も左のビットは、制御値である。他の実装態様では、二進列符号化810は、量的若しくは数的データタイプ、質的データタイプ、離散データタイプ、連続的データタイプ(上限及び下限を有する)、整数データタイプ(上限及び下限を有する)、公称データタイプ、序数若しくはランク付けデータタイプ、分類別データタイプ、間隔的データタイプ、並びに/または比率データタイプなど、二進データタイプ(0または1)以外のデータタイプに依存した他の方式に基づいてもよい。例えば、二進列符号化810は、0~1の実数値、0~256の赤、緑、青(RGB)値などの連続値、CSS色の16進数値(例えば、#F0F8FF)、CSS色の分類別色値(例えば、AliceBlue)、他のCSS特性グループ及び特性のそれぞれの値(<http://www.w3schools.com/cssref/#animation>におけるウェブ上でリスト化された1つなど)、特定の次元のサイズ(例えば、高さ及び幅)、異なる値及びデータタイプのセット(例えば、異なる数的なドル価格値、若しくは異なる数的なドル価格値と、高さ及び幅との組み合わせ)、並びにその他に基づいてもよく、またはそれらのいずれかの組み合わせに基づいてもよい。
【0058】
図9は、スタータファネルのスタータ次元902及びスタータ次元値912をスタータ候補個体/スタータゲノムに符号化する個体数初期化モジュール202を示す。特に、符号化は、スタータ候補個体922を表す二進数列を作成する。スタータ候補個体922の符号化は、以下のように示される。
[
[[0,1], [0,0,1,0]],ロゴ
[0,0,0,1,0 ],メインヘッドライン
[ クラスタ
[[1,0], [0,1] ],部分ヘッドライン
[[1,0], [0,1] ],コールトゥアクション
]
]
【0059】
スタータゲノム922は、7つのサブ要素806の各々に対応する7つの遺伝子を含む。各々の遺伝子の最も左のビットは、制御値である。他の実装態様では、スタータ候補個体922の符号化は、量的若しくは数的データタイプ、質的データタイプ、離散データタイプ、連続的データタイプ(上限及び下限を有する)、整数データタイプ(上限及び下限を有する)、公称データタイプ、序数若しくはランク付けデータタイプ、分類別データタイプ、間隔的データタイプ、並びに/または比率データタイプなど、二進データタイプ(0または1)以外のデータタイプに依存した他の方式に基づいてもよい。例えば、スタータ候補個体922の符号化は、0~1の実数値、0~256の赤、緑、青(RGB)値などの連続値、CSS色の16進数値(例えば、#F0F8FF)、CSS色の分類別色値(例えば、AliceBlue)、他のCSS特性グループ及び特性のそれぞれの値(<http://www.w3schools.com/cssref/#animation>におけるウェブ上でリスト化された1つなど)、特定の次元のサイズ(例えば、高さ及び幅)、異なる値及びデータタイプのセット(例えば、異なる数的なドル価格値、若しくは異なる数的なドル価格値と、高さ及び幅との組み合わせ)、並びにその他に基づいてもよく、またはそれらのいずれかの組み合わせに基づいてもよい。
【0060】
スタータ候補個体の初期化及び符号化を理解した上で、ここで議論は、候補探索空間がどのように定義化されるかに向けられる。
【0061】
候補探索空間定義
上記議論されたように、候補探索空間は、スタータファネルに基づいて定義される。特に、個体数初期化モジュール202は、スタータファネルのスタータ次元及びスタータ次元値を連結操作に付すことによって定義される。1つの例では、設計者が4つのスタータページ要素(例えば、ロゴ、メインヘッドライン、部分ヘッドライン、コールトゥアクション)、7つの可能なスタータサブ要素、及び19の可能なスタータ部分要素値を指定する場合、次元及び次元値の640の可能な組み合わせを有する探索空間は次いで、ロゴの8つの異なる変動、メインヘッドラインの5つの異なる変動、部分ヘッドラインの4つの異なる変動、及びコールトゥアクションの4つの異なる変動を連結操作に付すことによって定義される(すなわち、8×5×4×4=640)。
【0062】
候補探索空間の定義を理解した上で、本明細書で開示される進化的計算の様々な世代がどのように最適化されるかに目を向ける。
【0063】
世代最適化
スタータファネルに基づく最適化
実装態様では、個体数初期化モジュール202は、少なくとも1つのスタータファネル、並びにそのスタータウェブインタフェース(例えば、スタータゲノム922)のスタータ次元及びスタータ次元値に従って候補個体の予備プールを作成する(例えば、第1の世代)。1つの実装態様では、第1の世代における候補個体は、スタータ次元値の各々が第1の世代の初期化された個体のうちの1つのみにおいて発生することを保証する方式で初期化される。
図10は、そのような実装態様を記す。
図10では、スタータゲノム922は、7つの遺伝子及び19の可能な遺伝子値を有する。結果として、スタータゲノム922だけで、19の遺伝子値のうち7つが初期化される。従って、個体数初期化モジュール202は、12の追加のゲノムを作成し、その結果、残りの12の可能な遺伝子値がそれぞれの12の追加のゲノムにおいて初期化される。
図10では、12の可能な遺伝子値は、グレーの背景で記される。よって、候補探索空間が次元及び次元値の640の可能な組み合わせを含んだ例では、640の可能な組み合わせのサブセットのみ(例えば、
図10における13の組み合わせ)が第1の世代において初期化される。
【0064】
別の実装態様では、第1の世代における候補個体は、スタータ次元値の各々が第1の世代の初期化された個体のうちの少なくとも1つにおいて発生することを保証する方式で初期化される。
【0065】
別の例では、スタータゲノムは、スタータ次元のセットについての28のスタータ次元値を含むように指定されることを想定されたい。28のスタータ次元値のうちのいくつかまたは全てが、同一のスタータ次元または異なるスタータ次元のセットに適用されてもよいことに留意されたい。よって、いくつかの例では、28のスタータ次元値からの複数のスタータ次元値は、複数のスタータ次元で構成されるグループのメンバである単一のスタータ次元に適用される。
図5に示される例では、前記「ヘッドラインフォント」スタータ次元は、5つのスタータ次元値、すなわち、「Audiowide」、「Impact」、「Cambria 20px」、「American Typewriter」、及び「Copperplate」を有することができる。同様に、「ヘッドラインテキスト」スタータ次元は、5つの異なるスタータ次元値、すなわち、「Don’t miss the live auction」、「Only a few minutes left!Live Auction」、「You can Win Your Car!」、「When it’s gone,it’s gone forever」、及び「Win Your Dream Car!」をも有することができる。同一のやり方で、「部分ヘッドライン背景色」スタータ次元は、4つの異なるスタータ次元値、すなわち、青、シアン、オレンジ、及び赤を有することができる。また、「部分ヘッドラインテキスト」スタータ次元は、4つの異なるスタータ次元値、すなわち、「Go!」、「Go to
the Auction!」、「Win the Auction!」、及び「Win it NOW!」を有することができる。
【0066】
従って、1つの実装態様では、第1の世代は、28のスタータ次元値の各々が第1の世代の候補個体のうちの1つのみに含まれることを保証する方式で初期化される。別の実装態様では、第1の世代は、28のスタータ次元値の各々が第1の世代の候補個体のうちの少なくとも1つに含まれることを保証する方式で初期化される。そのような実装態様では、28のスタータ次元からの複数のスタータ次元値は、第1の世代の単一の候補個体に含まれる。これは、1つ以上のスタータ次元において識別されるスタータ次元及び次元値の各々が開示される進化的計算に入力として提示され、その結果、ライブのオンライン評価108の間にパフォーマンス測定値106をそれらのために発展することができることを保証する。
【0067】
他の実装態様では、候補個体は、候補探索空間から次元のセットについての利用可能な値をランダムに選択することによって初期化される。更なる他の実装態様では、候補個体は、作成されることになる予め定められた数の候補個体に従って、候補探索空間における次元値の分布にわたる最大限に統一した方式で初期化される。1つの実装態様では、一旦作成されると、候補個体は、次元ごとの特定の値を有するベクトルとして候補個体数102に記憶される。
【0068】
テストパラメータに基づく最適化
本明細書で開示される進化的計算は、標的のユーザの行動の促進を探求する特定の組織に特有な1つ以上のテストパラメータに従ってMLCOをカスタマイズする。そのようなテストパラメータの例は、組織によって登録または受信されるライブのユーザトラフィック(例えば、週、月、四半期、または他の暦に基づく)、及び組織によって登録されるパフォーマンス測定値106(例えば、変換率、収益率(ユーザのサンプルに対して判定される))を含む。実装態様では、そのようなテストパラメータについての値は、組織によって提供され、または初期のテスト期間を通じて判定される。
【0069】
加えて、ライブのユーザトラフィックがウェブページのテスト環境において貴重な産品であるから、本明細書で開示される進化的計算は、効率的な方式で様々な世代を生成及び処理する。1つの実装態様では、本明細書で開示される進化的計算は、或る期間の間に(例えば、1週間または1月)組織によって受信されるライブのユーザトラフィックの量があるとして、パフォーマンス測定値106についてのより高い値を有するとライブのオンライン評価108によって判定された進化した候補個体を生み出すように、最小の数の進化的計算のループがその期間内に完了されることを保証することによって、そのような効率性を達成する。よって、1つの例では、1月の間に組織によって受信されるライブのユーザトラフィックの量が10万のユーザ(すなわち、100,000ユーザ/月)である場合、本明細書で開示される進化的計算は次いで、1月内に少なくとも3つの世代を生成及び処理するように構成されてもよい。
【0070】
別の実装態様では、そのような効率性は、或る期間の間に(例えば、1週間または1月)組織によって受信されるある一定のライブのユーザトラフィックの量があるとして、最小の数の候補個体がその期間内に進化し(または、ユーザのサンプルに対してライブのオンライン評価108を受ける)、及び/または制限された数の候補個体のみが各々の世代において処理され、その結果、複数の世代がその期間内に進化することを保証することによって達成される。よって、1つの例では、1月の間に組織によって受信されるライブのユーザトラフィックの量が10万のユーザ(すなわち、100000ユーザ/月)である場合、本明細書で開示される進化的計算は次いで、各々の候補個体が少なくとも2千のユーザによってライブで評価されるように、1月内に3つの世代にわたって少なくとも50
の候補個体を生成及び処理するように構成されてもよい。別の例では、本明細書で開示される進化的計算は、3つの世代の各々においてわずか17の候補個体を生成及び処理するように構成されてもよい。
【0071】
更なる別の実装態様では、第1の世代を初期化するための特殊化方式は、最大の個体数サイズの候補個体数をライブのユーザトラフィック及びパフォーマンス測定値106(例えば、変換率、収益率(ユーザのサンプルに対して判定される))の関数とすることを含む。更に、そのライブのユーザトラフィック及びパフォーマンス測定値106に基づいて組織について計算された最大の個体数サイズが、組織の設計者によって指定されたスタータ次元の数及び/またはスタータ次元値の数と一致しないとき、本明細書で開示される進化的計算は、いくつか(例えば、第1の世代のみ)または全ての世代において候補個体数の個体数サイズが組織について計算された最大の個体数サイズによって制約されることを保証する方式で候補個体の初期化のためのスタータ次元及びスタータ次元値を選択するために特殊化選択方式を使用する。1つの実装態様では、これは、遺伝子ごとに基づいてスタータ次元及び/またはスタータ次元値をトラバースし、各々の遺伝子における値のサブセットのみ、及び/または候補個体の初期化のための遺伝子のサブセットのみを選択することによって達成される。そのような実装態様では、各々の遺伝子における値のサブセット及び/または遺伝子のサブセットの選択は、前の値及び/若しくは前の遺伝子、または後の値及び/若しくは後の遺伝子について偏重されてもよく、遺伝子及び/または遺伝子レベルにおける値の均一選択であってもよく、遺伝子及び/または遺伝子レベルにおける値の一点選択であってもよく、遺伝子及び/または遺伝子レベルにおける値の二点選択であってもよく、或いは遺伝子及び/または遺伝子レベルにおける値のランダム選択であってもよい。他の実装態様では、遺伝子及び/または遺伝子レベルにおける値の選択は、いずれかの従来または後に開発される選択技術に基づいてもよい。
【0072】
別の実装態様では、最大の個体数サイズに基づく制約は、組織の設計者によって指定されたスタータ次元及び/またはスタータ次元値のいくつかのサブセットが前の世代において選択され、他のサブセットが後の世代において選択されるように、異なる世代にわたってスタータ次元及び/またはスタータ次元値の選択を分散させることによって達成される。サブセットの選択は、均一、一点、二点、ランダムであってもよく、またはいずれかの従来若しくは後に開発される選択技術に基づいてもよい。
【0073】
1つの例では、1月の間に組織によって受信されるライブのユーザトラフィックの量が5万のユーザ(すなわち、50000ユーザ/月)であり、各々の候補個体が少なくとも2千のユーザによってライブで評価されることになると想定すると、組織について判定された最大の個体数サイズは、3つの世代にわたる25の候補個体である。また、組織の設計者が30のスタータ次元を選択しており、各々が4つのスタータ次元値を有することを想定されたい。各々のスタータ次元値が1つのみの候補個体において発生することを必要とする標準的な初期化方式が実装される場合、120のスタータ次元値は、少なくとも91の候補個体がまさに第1の世代において作成されることを必要とする。しかしながら、これは、組織について計算された25の最大の個体数サイズと不一致となり、所与の世代における候補個体の総数を8または9のいずれかに制限する。
【0074】
この不一致を解決するために、本明細書で開示される進化的計算の特殊化初期化及び選択方式は、1つの実装態様によって、第1及び第2の世代の各々における8つの候補個体のみ、並びに第3の世代における9つの候補個体のみを初期化するために、120のスタータ次元値のサブセット及び/または30のスタータ次元のサブセットを選択することができる。実装態様では、選択は、ランダムであってもよく、または前の若しくは後のスタータ次元値及び/若しくはスタータ次元に偏重されてもよい。他の実装態様では、第1の世代の間に選択されないスタータ次元値及び/またはスタータ次元は、第2の世代の終わ
り、またはいずれかの他の後続の世代における候補個体数に含まれてもよい。
【0075】
実装態様では、本明細書で開示される進化的計算のいずれかの段階、並びに/または世代(例えば、第1、第2、第3、第4、第10、若しくは第20の世代など)は、特殊化及び/または標準的な初期化方式を利用することができる。本明細書で使用されるように、用語「初期化」または「初期化する」は、新たな候補個体を作成し、及び/または生殖させるために進化的計算のいずれかの世代に適用することができる進化的操作を指す。
【0076】
個体数の初期化を理解した上で、個体がどのようにテストされるかに目を向ける。
【0077】
個体のテスト
候補テストモジュール212は、個体数102における候補個体をテストする。各々の候補個体は、テストまたはトライアルの組を受け、各々のトライアルは、数百、数千、及び数百万のユーザに及ぶサンプルサイズを有するユーザの1つまたは複数のサンプルに関して候補個体をテストする。別の実装態様では、テストまたはサンプルサイズの数は、テストと関連付けられたパラメータによって判定される。そのようなテストパラメータの例は、単位時間当たりの訪問者の数、既存の変換率、候補探索空間のサイズ、好ましいリスク許容度、及びパフォーマンス測定値のタイプを含む。テストまたはトライアルは、候補個体に従って生成されたファネルがテストのための実世界のユーザに提示されるライブのオンライン評価108として実装される。次いで、パフォーマンス測定値106は、実世界のユーザがファネルと対話する間、ライブのオンライン評価108に基づいて収集される。候補テストモジュール212は、テストされた候補個体の各々と関連付けられたパフォーマンス測定値106をリアルタイムで更新する。更新の頻度はまた、テストパラメータによって判定される。
【0078】
適応度比例生殖
ライブのユーザトラフィックを効率的に消費するために、本明細書で開示される進化的計算は、いくつかの実装態様では、個体の第2の世代を作成するために特殊化生殖方式を使用する。1つの実装態様では、第2の世代を生殖させるための特殊化方式は、第1の世代、すなわち、親ゲノムの間に作成されたゲノムを適応度比例選択(例えば、ルーレットホイール選択、確率的ユニバーサルサンプリング)に付す生殖モジュール228を含む。そのような実装態様では、あらゆる親ゲノムは、繁殖するように選択される機会を有するが、より適合する親ゲノムは、より弱い親ゲノムよりも選択される確率が高い。これは、親ゲノムの選択確率をパフォーマンス測定値106(例えば、変換率、収益率(ユーザのサンプルに対して判定される))の関数とすることによって達成される。1つの実装態様では、所与の親ゲノムからの選択は、特定の遺伝子の選択確率に従って遺伝子ごとに基づいて行われる。いくつかの実装態様では、特定の遺伝子の選択確率は、特定の遺伝子を含むゲノムのパフォーマンス測定値106(例えば、変換率、収益率(ユーザのサンプルに対して判定される))に応じている。従って、第2の世代における結果として生じるゲノムは、それらのそれぞれの選択確率に従って親ゲノムから選択された遺伝子を含む。
【0079】
更なる別の実装態様では、第2の世代は、親ゲノムのランダムな選択を遺伝子ごとに基づくようにすることによって生殖される。
【0080】
実装態様では、本明細書で開示される進化的計算のいずれかの段階、及び/または世代(例えば、第1、第2、第3、第4、第10、若しくは第20の世代など)は、特殊化生殖方式を利用することができる。
【0081】
生殖の後、候補テストモジュール212は、更新された個体数102に関して再度動作する。処理は、繰り返して続く。実装態様では、制御モジュール230は、候補テストモ
ジュール212及び生殖モジュール228を反復する。
【0082】
競争
1つの実装態様では、進化的計算は、或る世代では操作を可能にする競争モジュール222を利用する。競争モジュール222は、更新されたパフォーマンス測定値106に従って候補個体数102の内容を更新する。いくつかの実装態様では、競争モジュール222は、最小のベースラインの個体適応度(例えば、管理者によって予め設定され、若しくは自動設定された)を満たさない候補個体、またはその「個体適応度」が同様にテストされた候補個体の「個体適応度」に相対的に遅れる候補個体を破棄する。個体数102は、改正された内容で更新される。
【0083】
競争モジュール222は、1つの世代から次への候補個体の卒業を管理する。この処理は、以下のように、一度に1つずつの候補個体が発生するとして考えられてもよい。最初に、競争モジュール122が実行された最後の時からそれらに対してパフォーマンス測定値106が更新された全ての候補個体を通じてループが始まる。1つの実装態様では、現在の候補個体についてのパフォーマンス測定値106がなおベースラインの個体適応度(例えば、管理者によって予め設定され、若しくは自動設定される)を下回り、または他の候補個体の個体適応度に相対的に十分に遅れる場合、現在の候補個体は次いで破棄され、次の1つが考慮される。現在の個体についてのパフォーマンス測定値106がベースラインの個体適応度(例えば、管理者によって予め設定され、若しくは自動設定される)を上回り、または他の候補個体の個体適応度と相対的に同等である場合、現在の候補個体は次いで、次の世代に追加される。処理は次いで、次の候補個体を考慮するために順番に進む。
【0084】
相対的パフォーマンス測定値
あまり経験を有さない個体の高いパフォーマンス測定値は、真の適応度ではなく運に起因する(例えば、ホリデイシーズンに起因した個体へのユーザの非現実的な親和性に起因する)。すなわち、より経験を有する他の個体と比較する場合、高い能力を有すると判定されたより若い、幸運な個体はなお、その適応度レベルがより低いが、より現実的である個体に取って代わる。そのような個体が絶対的適応度に基づいて一人で相互に競争することを可能にすることは、幸運な個体についての進化的計算を最適化する。
【0085】
この課題への解法は、候補個体がそれらの絶対的パフォーマンス測定値の代わりに、それらの「相対的パフォーマンス測定値」に基づいて比較されることである。候補個体の相対的パフォーマンス測定値は、第1の期間において判定された対照個体の絶対的パフォーマンス測定値と、第1の期間においてまた判定された候補個体の絶対的パフォーマンス測定値との間の差に基づいて計算される。よって、例えば、第1の世代の間に作成された第1の候補個体が40%の絶対的平均変換率を有し、第1の世代においてまた初期化された第1の対照個体が35%の絶対的平均変換率を有する場合、第1の候補個体の相対的パフォーマンス測定値は次いで、5%(40%-35%=5%)である。同様に、第2の世代の間に作成された第2の候補個体が45%の絶対的平均変換率を有し、第2の世代における第1の対照個体の絶対的平均変換率が42%まで増加した場合、第2の候補個体の相対的パフォーマンス測定値は次いで、3%(45%-42%=3%)である。従って、第1及び第2の候補個体は、それらのそれぞれの相対的パフォーマンス測定値に基づいて比較され、第1の候補個体は、第2の候補個体の絶対的パフォーマンス測定値が第1の候補個体の絶対的パフォーマンス測定値よりも5%高い(45%-40%=5%)としても、第1の候補個体よりも2%良好(5%-3%=2%)であると見出される。1つの個体の相対的パフォーマンス測定値と別の個体の相対的パフォーマンス測定値との間の競争モジュール222によって行われる各々の比較は、本明細書で比較「インスタンス」と称されることがある。
【0086】
1つの実装態様では、競争モジュール222は、現在の候補個体の相対的パフォーマンス測定値が候補個体数102における最も適応しない候補個体の相対的パフォーマンス測定値を上回るかを判定する。そうである場合、最も適応しない候補個体は次いで破棄され、現在の候補個体が次の世代に移動される。そうでない場合、現在の候補個体は次いで破棄される。処理は次いで、次の候補個体を考慮するために順番に移動する。
【0087】
クロスオーバー及び変異に基づく生殖
生殖に関して、いずれかの従来のまたは後に開発される技術は、生殖のために使用されてもよい。実装態様では、親の個体からの条件、出力、またはルールは、子の個体を形成するための様々な方法で組み合わされ、次いで、時に、それらは変異する。組み合わせ処理は、例えば、クロスオーバー、すなわち、子の個体を形成するために親の個体の間で条件、出力、またはルール全体を交換することを含んでもよい。生殖を通じて作成された新たな個体は、定義されていないとして示されるパフォーマンス測定値から始まる。
【0088】
生殖モジュール228は、候補個体数102に、候補個体数102からの1つ以上の親の個体のそれぞれのセットに従って形成され、破棄するために競争モジュール222によってまだ選択されていない新たな個体を追加する。1つの実装態様では、ゲノムの第3の世代は、親ゲノムのペアを第2の世代から選択し、親ゲノムのペアをクロスオーバー方式に付すことによって作成される。他の実装態様では、生殖(例えば、クロスオーバー及び/または変異)は、例えば、第1、第2、第3、第4、または第10の世代などのいずれかの他の世代において初期化されてもよい。
【0089】
クロスオーバー
クロスオーバーに関して、後続の選択された第2の親ゲノムが第2の親ゲノムの直前に候補個体数から選択された第1の親ゲノムとは異なるとときにクロスオーバーについての親ゲノムのペアが識別される。実装態様では、親ゲノムは、同一の世代の間に複数のクロスオーバー操作に参加するために選択されてもよい。いくつかの実装態様では、所与の世代内で、様々なクロスオーバー方式は、孫ゲノムの総数が所与の世代について判定された最大の個体数サイズに到達するまで、親ゲノムのペアの間でクロスオーバーを実施するために使用される。1つの実装態様では、クロスオーバーは、遺伝子ごとに基づいて行われる。よって、1つの例では、親ゲノムは、
図8に示されるように、サブ要素806及び/またはサブ要素値808に基づいてクロスオーバーすることができる。他の実装態様では、特定の世代を進化させるために遺伝子レベルで適用されるクロスオーバー方式は、均一クロスオーバー(例えば、親ゲノムのペアから二者択一で遺伝子値を選択すること)、一点クロスオーバー、二点クロスオーバー、及び/またはランダムクロスオーバーなどの様々なクロスオーバー方式に基づいてもよい。更なる他の実装態様では、特定のを進化させるために遺伝子レベルで適用されるクロスオーバー方式は、いずれかの他の従来のまたは後に開発されるクロスオーバー技術に基づいてもよい。
【0090】
図11は、クロスオーバー技術を使用して新たな候補個体を生殖させる1つの実装態様の符号図を示す。
図11では、親の候補個体Aの二進数列は、第1のテキストタイプ(例えば、Times Roman)を有するロゴA、メインヘッドラインA、部分ヘッドラインA、及びアクションボタンAを表す。また、
図11では、親の候補個体Bの二進数列は、第2のテキストタイプ(例えば、Arial)を有するロゴB、メインヘッドラインB、部分ヘッドラインB、及びアクションボタンBを表す。1つの例示的な実装態様では、生殖モジュール228は、親の候補個体AからのロゴA及び部分ヘッドラインAを含み、親の候補個体BからのメインヘッドラインB及びアクションボタンBを含むクロスオーバーの子の個体AB1を作成する。別の例示的な実装態様では、生殖モジュール228は、第2のテキストタイプ(例えば、Arial)(親の候補個体Bからの)を有するロゴ
A(親の候補個体Aからの)及び親の個体Bからの部分ヘッドラインBを含み、親候補個体AからでもあるメインヘッドラインA及びアクションボタンAをも含むクロスオーバーの子の候補個体AB2を作成する。
【0091】
変異
図12は、変異技術を使用して候補個体を生殖させる1つの実装態様の符号図である。
図12では、親ゲノムの第1の遺伝子は、ロゴAのテキストタイプが第1のテキスト(例えば、Times Roman)から第2のテキスト(例えば、Arial)に変異するように変異する。
【0092】
好ましくは、生殖は、新たな個体の小さなサブセットのみの変異がそれに続く、小さな予め定められた数の新たな個体を作成するためのクロスオーバーを含む。変異は、この実装態様では候補個体の数を増加させず、クロスオーバーによって作成された個体を修正するにすぎない。
【0093】
本明細書で開示される進化的計算は、極大値を回避または克服するために変異を使用する。従って、いくつかの実装態様では、本明細書で開示される進化的計算は、或る数の世代においてクロスオーバーを実施した後、及び/または同一の世代内で或る数の生殖操作においてクロスオーバーを実施した後のみ、変異を実施するように構成される(例えば、変異は、第3の世代の後でのみ行われる)。他の実装態様では、生殖(例えば、クロスオーバー及び/または変異)は、第1、第2、第3、第4、または第10の世代などのいずれかの他の世代において初期化されてもよい。
【0094】
実装態様では、各々の親ゲノムは、生成の間にわずかでも変異に付される尤度を判定するゲノム変異確率が割り当てられる。「ゲノム変異確率」は、ランダム確率、均一確率、重み付け確率、及び/または適応度比例確率などのいずれかの確率方式に基づいてもよい。親ゲノムが選択されるとき、変異は、1つの実装態様によって、遺伝子ごとに基づいて行われる。よって、1つの例では、親ゲノムは、
図8に示されるように、サブ要素806及び/またはサブ要素値808に基づいて変異されてもよい。
【0095】
親ゲノム内で、遺伝子ごとの変異についての遺伝子及び/または遺伝子値の選択は、「遺伝子変異確率」に基づいてもよい。遺伝子変異確率は、ランダム確率、均一確率、重み付け確率、及び/または適応度比例確率などのいずれかの確率方式に基づいてもよい。よって、例えば、ゲノム(
図12に示される1つなど)のBoolean、二進、またはベクトル符号化は、確率方式に基づいて遺伝子ごとに基づいて変異されてもよい。他の実装態様では、遺伝子レベルにおける変異は、均一変異、非均一変異、境界変異、及び/または勾配変異であってもよい。更なる他の実装態様では、遺伝子レベルにおける変異は、いずれかの他の従来のまたは後に開発される変異技術に基づいてもよい。
【0096】
個体の生殖を理解した上で、本明細書で開示される進化的計算が擬似進化を使用して候補探索空間のトラバースをどのように加速化するかに目を向ける。
【0097】
加速化された擬似進化
パフォーマンスの効率性は、MLCOの効果的な実装のための最優先のものである。本明細書で開示される進化的計算は、候補探索空間(例えば、小さい探索空間)のトラバースを加速化させることによって、パフォーマンスの効率性を進化的過程に加える。上記議論されたように、候補探索空間は、次元及び次元値の全ての可能な組み合わせを識別するが、その組み合わせのサブセットのみが各々の世代において初期化される。上記使用された例に続いて、候補探索空間が次元及び次元値の640の組み合わせを識別する場合、13の組み合わせのみが次いで、第1の世代において初期化される。更に、前に生成された
組み合わせ(すなわち、候補個体またはゲノム)が世代の中でまたは世代間でいつ再生成されようと、それは、複製として識別され、拒絶される。複製を作成する進化的事象または進化的操作は、本明細書で「衝突」と称される。衝突の結果(すなわち、複製)が拒絶され、進化的過程を前進させないため、衝突は、パフォーマンスの非効率性を生じさせる。
【0098】
1つの例では、衝突の総数における急増は、次元及び次元値の全ての可能な組み合わせの大部分が既に生成され、進化的操作が複製を頻繁に作成するときに発生することがある。結果として、それは、次元及び次元値の残りの組み合わせを生成するのに甚大な時間を要する可能性がある。上記使用された例に続いて、640の可能な組み合わせのうちの620が50の世代を通じて作成される場合、ルーチンの進化は次いで、残りの20の組み合わせを作成するために更に20~50世代かかる。
【0099】
本明細書で開示される進化的計算は、衝突の総数が予め設定された閾値に到達するときに擬似進化に切り替わることによってこの技術的課題を解決する。1つの実装態様では、本明細書で開示される進化的計算は、次元及び次元値の全ての可能な組み合わせのいずれが既に生成されているか(例えば、注釈及び/または列挙方式を使用して)を追跡し、衝突の総数が予め設定された閾値に到達するとき、それらは、まだ生成されていないそれらの組み合わせ(すなわち、候補個体またはゲノム)のみをランダムに生成する。従って、進化的過程は、先の世代のいずれかの間にまだ選択または作成されていないそれらの組み合わせのみに焦点を当てて人為的に行われる。これは、本明細書で「擬似進化」と称される。擬似進化は、それがルーチン進化をバイパスし(例えば、初期化及び/または生殖方式を終了させ、並列化し、無効にし、または回避する)、更に少ない世代において残りの組み合わせを作成することを理由に、進化的過程を加速化する。上記使用された例に続いて、640の可能な組み合わせのうちの620が50の世代を通じて作成され、衝突の総数が10の閾値に到達する場合、擬似進化は、残りの20の組み合わせのみを作成するために、次の2つの世代を排他的に利用することができる。
【0100】
進化疑似コード
以下の疑似コードは、進化的計算の1つの実装態様を示す。
set_evolution_parameters
create_candidates_generation_1
repeat
repeat
test_candidates
untilcandidate_spread_is_sufficientorremove_criteria_is_met
remove_low_performing_candidates
create_new_candidates
Untilperformance_is_sufficientorno_more_designs_are_possible
【0101】
以下の拡張されたバッカスナウア記法は、進化的計算の別の実装態様を示す。
genome::=[element_cluster+]
element_cluster::=[element+]|element
element::=[action+]
action::=[control、action_value]
action_value::=text|formatting|html|hid|remove|image|class|custom
text、formatting、html、image、class、custom
::=bit_value
hide、remove::=bit_value
bit_value::=0|1
【0102】
議論は、エンドユーザへのフロントエンド提示のためにファネル及び構成するウェブインタフェースを生成するために候補個体がどのように使用されるかに向けられる。
【0103】
フロントエンド提示
図13及び14は、エンドユーザへのフロントエンド提示のために対応する候補個体に従って1つ以上のウェブインタフェースのファネルを生成する1つの実装態様を示す。
図13は、それに基づいて4つのウェブインタフェースが生成される4つの候補個体(CI1~CI4)を示す。個体(CI1~CI4)は、個体数102におけるいずれかの候補個体であってもよく、すなわち、それらは、それに対してパフォーマンス測定値106がライブのオンライン評価108の間に発展する候補個体であってもよい。
【0104】
図13はまた、各々のゲノムが二進数列(文字列)によって表されることを示す。各々の二進数列は、本明細書で「遺伝子」と称される部分列(部分文字列)に更に区分化される。各々の遺伝子は、ファネルについての次元及び対応する次元値を表す。従って、各々の遺伝子は、ゲノム(CI1~CI4)に従って生成されることになるウェブインタフェースについてのサブ要素及び対応するサブ要素値を識別する。ウェブインタフェースがコンテンツを含むフロントエンド(例えば、グラフィカル)オブジェクトである実装態様では、遺伝子は、ゲノム(CI1~CI4)に基づいて生成されたウェブインタフェースに含まれることになる、フロントエンド(例えば、グラフィカル)要素/構成要素及び対応する要素/構成要素値を識別する。
【0105】
図13及び14の実装態様では、ファネルの各々の要素は、遺伝子としてグループ化されるビットの固定長の部分文字列として符号化されることに留意されたい。例えば、部分ヘッドライン要素は、2つの遺伝子にグループ化される4つのビットを有する。遺伝子ごとに、ビットのうちの1つのみが利用可能な次元値のセットから特定の次元値を識別するように活性または「ホット」であってもよい(例えば、「1」によって表される)。最も左のビットは、1つの例では、メインヘッドラインについて「プレーンテキスト」を示すことができる、遺伝子の「対照」値を表す。2つ目、3つ目、及び4つ目のビットは、例えば、「ボールド」、「イタリック」、及び「ボールド下線」それぞれを示してもよい。多くの他の符号化が異なる実装態様において可能であることが認識されよう。例えば、2ビットの数値は、対照を示す0、「ボールド」を示す1、「イタリック」を示す2、及び「ボールド下線」を示す3で使用されてもよい。
【0106】
図13及び14の他の実装態様では、ゲノムが提示されてもよく、構成する要素は、量的若しくは数的データタイプ、質的データタイプ、離散データタイプ、連続的データタイプ(上限及び下限を有する)、整数データタイプ(上限及び下限を有する)、公称データタイプ、序数若しくはランク付けデータタイプ、分類別データタイプ、間隔的データタイプ、並びに/または比率データタイプなど、二進データタイプ(0または1)以外のデータタイプに依存した他の方式を使用して符号化される。例えば、
図13及び14におけるゲノム及び構成する要素の符号化は、0~1の実数値、0~256の赤、緑、青(RGB)値などの連続値、CSS色の16進数値(例えば、#F0F8FF)、CSS色の分類別色値(例えば、AliceBlue)、他のCSS特性グループ及び特性のそれぞれの値(<http://www.w3schools.com/cssref/#animation>におけるウェブ上でリスト化された1つなど)、特定の次元のサイズ(例えば、高さ及び幅)、異なる値及びデータタイプのセット(例えば、異なる数的なドル価格値、若しくは異なる数的なドル価格値と、高さ及び幅との組み合わせ)、並びにその他に
基づいてもよく、またはそれらのいずれかの組み合わせに基づいてもよい。
【0107】
ゲノム(CI1~CI4)は、上記議論されたように、開示される進化的計算を使用して、変換システム104によって生成及び提供される。変換システム104は次いで、ゲノム(CI1~CI4)を1つ以上のウェブインタフェースの出力ファネルに転換するためにプレゼンテーションデータベース1320及びプレゼンテーションモジュール1310を利用する。
【0108】
プレゼンテーションデータベース1320は、ファネルの次元の各々の少なくとも1つの利用可能な値ごとのフロントエンド要素値を識別するルールリポジトリとしての役割を果たす。プレゼンテーションモジュール1310は、選択された候補個体によって識別される次元値に対応するフロントエンド要素値を判定するために、候補個体のうちの選択された1つをプレゼンテーションデータベース1320に適用する。従って、プレゼンテーションモジュール1310は、プレゼンテーションデータベース1320に対して変換システム104によって提供されるゲノムを評価し、ゲノムに基づいてファネルの適切な変動を生成することが可能である。
【0109】
プレゼンテーションデータベース1320は、様々な要素ルールを含む。プレゼンテーションデータベース1320では、探索空間における全ての可能な次元、すなわち、ウェブインタフェースに含まれることができる全ての可能なフロントエンド(例えば、グラフィカル)要素/構成要素についての要素ルールが提供されてもよい。また、各々の要素ルールは、所与の次元またはページ要素/構成要素についての全ての可能な次元値またはページ要素/構成要素を識別するポインタを含む。例えば、「部分ヘッドライン」要素ルールは、色、テキスト、サイズ、及び配置など、「部分ヘッドライン」要素の全ての可能な特性についてのポインタを含む。
【0110】
選択されたゲノムについて、プレゼンテーションモジュール1310は、プレゼンテーションデータベース1320にアクセスし、選択されたゲノムにおける遺伝子ごとの適用可能な要素ルールを評価する。
図13の例では、要素1のルールは、全てのロゴの遺伝子について識別され、要素2のルールは、全てのメインヘッドラインの遺伝子について識別され、要素3のルールは、全ての部分ヘッドラインの遺伝子について識別され、要素4のルールは、全てのアクションボタンの遺伝子について識別される。更に、各々の要素ルールは、それぞれの遺伝子値についてのポインタを識別し、対応するフロントエンド(例えば、グラフィカル)要素/構成要素及び要素/構成要素値を生成する。
【0111】
1つの実装態様では、次元ごとの利用可能な値のうちの1つがデフォルトの値であるとき、結果として生じるファネルは、次元の各々のデフォルトの次元値についてのデフォルトのフロントエンド要素値を有する。そのような実装態様では、プレゼンテーションモジュール1310は、次元ごとのデフォルトの次元値以外の、選択された候補個体によって識別される全ての次元値に対応するフロントエンド要素値を判定するために、選択された候補個体をプレゼンテーションデータベース1320に適用する。
【0112】
他の実装態様では、ウェブインタフェースファネルの特定の変動について、ファネルの次元ごとの値を記憶するファネルカスタム化仕様メモリが利用される。そのような実装態様では、プレゼンテーションモジュール1310は、ユーザに対し、プレゼンテーションデータベース1320によって示されるフロントエンド要素値を有するファネルをファネルファネルカスタム化仕様メモリに記憶された次元値に対応するとして提示する。ファネルファネルカスタム化仕様メモリはまた、ファネルの次元ごとの値の新たなセットで更新される。ファネルカスタム化仕様メモリについての更新された値は、ファネルを入力するためのユーザの行動(例えば、ユーザがブラウザを介してランディングページURLを提
供すること)に応じて取り出される。加えて、プレゼンテーションモジュール1310は、ユーザの行動(例えば、ユーザがブラウザを介してランディングページURLを提供すること)に応じてプレゼンテーションデータベース1320にアクセスする。
【0113】
1つの実装態様では、次元ごとの利用可能な値のうちに1つがデフォルトの値であるとき、ファネルは、次元の各々のデフォルトの次元値についてのデフォルトのフロントエンド要素値を有する。そのような実装態様では、プレゼンテーションモジュール1310によってユーザに対して提示されるファネルは、次元ごとのデフォルトの次元値以外の、ファネルカスタム化仕様メモリにおいて識別される次元値の全てに対応するとしてプレゼンテーションデータベース1320によって示されるフロントエンド要素値を有する。
【0114】
図14では、4つのウェブインタフェース(WI1~WI4)は、候補個体(CI1~CI4)の各々に従って、プレゼンテーションモジュール1310によって生成される。ウェブインタフェースの各々は、プレゼンテーションデータベース1320におけるルールによって識別されるフロントエンド(例えば、グラフィカル)要素/構成要素及び要素/構成要素値を含む。次いで、ウェブインタフェース(WI1~WI4)は、ライブのオンライン評価108のためにエンドユーザに提示される。
【0115】
機械学習ユーザデバイス(MLUD)
図15は、本明細書で「機械学習ユーザデバイス」(MLUD)と称される、改善されたユーザデバイスの1つの実装態様を示す。
図15では、エンドユーザは、ベンダウェブサイトにアクセスするためにMLUD1104上で実行するブラウザを使用する。ベンダウェブサーバは、エンドユーザがベンダウェブサイトにアクセスしたことに応じて、ウェブページの一部として、変換スニペットをMLUD1504に配置するように構成される。変換スニペットがMLUD1504に送信された後、及びウェブページがエンドユーザにレンダリングされる前に、変換スニペットは、ネットワークサーバインフラストラクチャを呼び出す。ネットワークサーバインフラストラクチャは、変換システム104、候補個体数102、及びコンテンツ配信ネットワーク(CDN)1508を含む。
【0116】
MLUD1504に配置される変換スニペットは、プレゼンテーションファイル1330をCDN1508から取り出し、プレゼンテーションファイル1330をMLUD1504に記憶する。CDN1508は、プレゼンテーションファイル1330と共に事前にロードされる。今日の一般的なCDNサービスの例は、Akamai(商標)、CloudFlare(商標)、CloudFront(商標)、Fastly(商標)、MaxCDN(商標)、KeyCDN(商標)、Incapsula(商標)、及びGlobalDots(商標)を含む。プレゼンテーションファイル1330は、上記議論された、プレゼンテーションデータベース1320及びプレゼンテーションモジュール1310を含む。
【0117】
次いで、MLUD1504に配置される変換スニペットは、変換システム104からのゲノムを要求する。それに応じて、変換システム104は、ゲノムを候補個体数102から取り出し、選択されたゲノムをMLUD1504に配信する。
【0118】
次いで、選択されたゲノムを変換システム104から受信し、プレゼンテーションファイル1330をCDN1508から受信したMLUD1504は、プレゼンテーションモジュール1310を実行する。プレゼンテーションモジュール1310は、上記議論されたように、プレゼンテーションデータベース1320のルールに対して選択されたゲノムを評価し、1つ以上のウェブインタフェースのファネルを生成する。従って、標準的なユーザデバイスは、アルゴリズム的に進化したウェブインタフェースを生成するために改善される。
【0119】
機械学習コンテンツ配信ネットワーク(MLCDN)
図16は、本明細書で「機械学習コンテンツ配信ネットワーク」(MLCDN)と称される、改善されたコンテンツ配信ネットワーク(CDN)の1つの実装態様を示す。
図16では、エンドユーザは、ベンダウェブサイトにアクセスするためにユーザデバイス1602上で実行するブラウザを使用する。ベンダウェブサーバは、エンドユーザがベンダウェブサイトにアクセスしたことに応じて、ウェブページの一部として、変換スニペットをユーザデバイス1602に配置するように構成される。変換スニペットがユーザデバイス1602に送信された後、及びウェブページがエンドユーザにレンダリングされる前に、変換スニペットは、ネットワークサーバインフラストラクチャを呼び出す。ネットワークサーバインフラストラクチャは、変換システム104、候補個体数102、及びMLCDN1604を含む。
【0120】
MLCDN1604は、プレゼンテーションファイル1330と共に事前にロードされる。プレゼンテーションファイル1330は、上記議論された、プレゼンテーションデータベース1320及びプレゼンテーションモジュール1310を含む。
【0121】
次いで、MLCDN1604は、変換システム104からのゲノムを要求する。それに応じて、変換システム104は、ゲノムを候補個体数102から取り出し、選択されたゲノムをMLCDN1604に配信する。
【0122】
次いで、選択されたゲノム及びプレゼンテーションファイル1330の両方を有するMLCDN1604は、プレゼンテーションモジュール1310を実行する。プレゼンテーションモジュール1310は、上記議論されたように、プレゼンテーションデータベース1320のルールに対して選択されたゲノムを評価し、1つ以上のウェブインタフェースのファネルを生成する。MLCDN1604は次いで、エンドユーザへのフロントエンド提示のためにウェブインタフェースをユーザデバイス1602に配信する。従って、標準的なCDNは、アルゴリズム的に進化したウェブインタフェースを生成するために改善される。
【0123】
例示的な結果
ライブのオンライン評価108の間、パフォーマンス測定値106は、ユーザ対話324に基づいて、ファネルごとに収集される。いくつかの実装態様では、対話メタデータは、セッションごとに基づいてユーザごとに追跡されてもよい。例えば、ユーザ_m、ユーザ_j、ユーザ_(j+1)、及びユーザ_nのような対話するユーザごとに、対応するセッションの対話_im、対話_ij、対話_i(j+1)、及び対話_inは、ライブのオンライン評価108の間に作成されてもよい。それらのセッションの間、個体_i、個体_i+1、及び個体_nのような候補個体に対応するファネルは、ユーザに提示されてもよく、並列して評価されてもよい。ユーザ対話324に基づいて、候補個体ごとのパフォーマンス測定値106が収集及び配置されてもよい。
【0124】
図17は、対照個体及び獲得個体、並びに構成する次元及び次元値をグラフィカルに示す。
図17に示される例では、最良なパフォーマンスを示す獲得ヘッドラインページ要素が対照バナーに沿って示される。
【0125】
図18は、MLCOを実施する開示される進化的計算の1つの実装態様の例示的な結果をグラフィカルに示すグラフである。
図18では、グラフは、
図17の最良なパフォーマンスを示す獲得ヘッドラインページ要素が変換率をほぼ0%から4.44%に改善することができることを示す。
【0126】
リスク許容度及び個体数区分化
現実のユーザに関するライブのテストを含む既存の変換最適化解法は、それらが変換を中断させるときの非常に早い段階で中止にされることがある。変換最適化のリスク及び利益は、「逆相関する」。結果として、本明細書で開示されるMLCOは、所望のリスク許容度の範囲内で変換を増大させるシステム及び方法を提供する。
図19は、開示される進化的計算についてのリスク許容度を実装するリスク許容度モジュールの1つの実装態様を示す。
図19に示される例では、リスク許容度モジュールは、管理インタフェースにわたってアクセス可能な構成可能パラメータとしての役割を果たすことができるノブ1904の形式で記される。
【0127】
1つの実装態様では、どのくらいの割合または量のライブのユーザトラフィック(すなわち、何人のユーザ)がアルゴリズム的に進化したファネルまたは候補個体を提示され、どのくらいの割合または量のライブのユーザトラフィック(すなわち、何人のユーザ)が対照ファネルまたは候補個体を提示されるかを判定するリスク許容度レベルが指定される。例えば、控えめなリスク許容度レベルにおいて、ユーザにサービス提供されるウェブページの5%のみが進化的計算によって判定され、ウェブページの95%が対照バージョンである。他の実装態様では、適度に控えめな(例えば、15%の進化したウェブページ、85%の対照ウェブページ)、適度な(例えば、20%の進化したウェブページ、80%の対照ウェブページ)、適度に積極的な(例えば、60%の進化したウェブページ、40%の対照ウェブページ)、及び積極的な(例えば、70%の進化したウェブページ、30%の対照ウェブページ)など、異なるリスク許容度レベルが指定されてもよい。それらのリスク許容度レベルごとに、アルゴリズム的に進化した候補個体及び対照候補個体へのユーザの露出する適切な部分が設定されてもよい。
【0128】
1つの実装態様では、候補個体数102における候補個体は、複数のヒューリスティックに従って、割当モジュール1902によって複数のグループまたはプールに区分化されてもよい。そのようなヒューリスティックの例は、どの程度良好に候補個体がパフォーマンス測定値(例えば、変換率若しくは収益率)に基づいているか、候補個体がライブのユーザ評価の程度に基づいてどの程度経験しているか、どのくらい最近に候補個体が作成されたか、エリートプールに選択されることに起因していくつの候補個体が生き残ったか若しくは候補個体が保護された回数、または候補個体が設計者の仕様に基づいた対照個体であるかを含む。
【0129】
1つの実装態様では、候補個体数内の第1の個体数グループは、対照個体のみを含み、候補個体数内の第2の個体数グループは、エリート個体のみを含み、候補個体数内の第3の個体数は、非エリートの前から存在する個体(すなわち、前の世代において形成された)のみを含み、候補個体数内の第4の個体数は、新たに形成された個体(すなわち、現在の世代において形成された)のみを含む。
【0130】
ノブ1904の構成に応じて、エリートプール1912及び対照プール1922からの候補個体の代替的な配置の頻度が設定されてもよい。例えば、ノブ1904が20%に設定される場合、変換システム104は次いで、その時間の80%のとき対照プール1922からの候補個体にアクセスし、それを配置する。他の実装態様では、当業者にとって直ちに明らかな異なるアクセス頻度ルールが設定されてもよい。
【0131】
加えて、ライブのユーザトラフィックが、ノブ1904と共に作動する候補テストモジュール212によって候補個体数の様々なグループまたはプールに割り振られてもよい。1つの例では、ライブのユーザトラフィックの50%が対照プールにおける対照個体に割り当てられてもよく、リバーユーザトラフィックの30%がエリートプールにおけるエリート個体(例えば、前の世代の最良に適応するメンバ及び次の世代に保存された)に割り
当てられてもよく、ライブのユーザトラフィックの20%が非エリートプールにおける非エリート個体(例えば、最近作成された孫ゲノム)に割り当てられてもよい。更に、候補個体数の異なる区分にわたるライブのユーザトラフィックの多用な分散は、リスク許容度方式を実装するために組織によって使用されてもよい。例えば、エリート個体が対照個体よりも優れているので、積極的なリスク許容度方式は、ライブのユーザトラフィックの大部分をエリートプールにおけるエリート個体に経路選択すること、並びにライブのユーザトラフィックの少数のみを対照プール及び非エリートプールに経路選択することを含むことができる。例えば、ライブのユーザトラフィックの60%がエリートプールに割り当てられてもよく、リバーユーザトラフィックの20%が対照プールに割り当てられてもよく、ライブのユーザトラフィックの20%が非エリートプールに割り当てられてもよい。そのような方式では、更なるユーザがエリートウェブインタフェースに露出されることを理由に、組織的なパフォーマンス測定値(例えば、組織的な変換率または組織的な収益率)はより早く改善する。同様に、他の実装態様では、控えめな、半積極的な、または半控えめな方式が組織によって選択及び/または実装されてもよい。
【0132】
更なる他の実装態様では、異なるヒューリスティックは、ヒューリスティックによって定義された候補個体数の異なる区分、グループ、プール、またはクラスタにライブのユーザトラフィックを様々に分散することができるように、候補個体数を区分化するために使用されてもよい(例えば、組織内の重み付け確率、領域、ドメイン名、部門)。
【0133】
コンピュータシステム
図20は、開示される技術を実装するために使用することができるコンピュータシステムの簡易ブロック図である。コンピュータシステム2010は、典型的には、バスサブシステム2012を介していくつかの周辺機器デバイスと通信する少なくとも1つのプロセッサ2014を含む。それらの周辺機器デバイスは、例えば、メモリデバイス及びファイル記憶サブシステムを含む記憶サブシステム2024、ユーザインタフェース入力デバイス2022、ユーザインタフェース出力デバイス2018、並びにネットワークインタフェースサブシステム2016を含むことができる。入力及び出力デバイスによって、コンピュータシステム2010とのユーザ対話が可能になる。ネットワークインタフェースサブシステム2016は、外部ネットワークへのインタフェースを提供し、外部ネットワークへのインタフェースは、他のコンピュータシステムにおける対応するインタフェースデバイスへのインタフェースを含む。
【0134】
1つの実装態様では、変換システム104は、記憶サブシステム2024及びユーザインタフェース入力デバイス2022に通信可能にリンクされる。
【0135】
ユーザインタフェース入力デバイス2022、またはクライアント若しくはクライアントデバイスは、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム及びマイクロフォンなどの音声入力デバイス、並びに他のタイプの入力デバイスを含むことができる。概して、用語「入力デバイス」の使用は、情報をコンピュータシステム2010に入力する全ての可能なタイプのデバイス及び方法を含むことが意図される。
【0136】
ユーザインタフェース出力デバイス2018は、ディスプレイサブシステム、プリンタ、ファクシミリ、または音声出力デバイスなどの非視覚的ディスプレイを含むことができる。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投射デバイス、または可視画像を作成するためのいくつかの他のメカニズムを含むことができる。ディスプレイサブシステムはまた、音声出力デバイスなどの非視覚的ディスプレイを提供することができる。概して、用語「出力デバイス
」の使用は、情報をコンピュータシステム2010からユーザまたは別のマシン若しくはコンピュータシステムに出力する全ての可能なタイプのデバイス及び方法を含むことが意図される。記憶サブシステム2024は、本明細書で説明されるモジュール及び方法のいくつかまたは全ての機能性を提供するプログラミング及びデータ構造を記憶する。それらのソフトウェアモジュールは、概して、プロセッサ2014によって単独で、または他のプロセッサとの組み合わせで実行される。
【0137】
記憶サブシステムにおいて使用されるメモリ2026は、プログラムの実行の間に命令及びデータの記憶のためのメインランダムアクセスメモリ(RAM)2034、並びに固定命令が記憶されるリードオンリメモリ(ROM)2032を含むいくつかのメモリを含むことができる。ファイル記憶サブシステム2028は、プログラム及びデータファイルについての永続的な記憶を提供することができ、ハードディスクドライブ、関連付けられた着脱可能媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、または着脱可能媒体カートリッジを含むことができる。或る実装態様の機能性を実装するモジュールは、ファイル記憶サブシステム2028によって、記憶サブシステム2024、またはプロセッサによってアクセス可能な他のマシンに記憶されてもよい。
【0138】
バスサブシステム2012は、コンピュータシステム2010の様々な構成要素及びサブシステムに、意図するように相互に通信させるためのメカニズムを提供する。バスサブシステム2012が単一のバスとして概略的に示されるが、バスサブシステムの代替的な実装態様は、複数のバスを使用することができる。アプリケーションサーバ2020は、ハードウェア及び/またはソフトウェア、例えば、オペレーティングシステムなど、コンピュータシステム2010のアプリケーションが実行することを可能にするフレームワークであってもよい。
【0139】
コンピュータシステム2010自体は、パーソナルコンピュータ、ポータブルコンピュータ、ワークステーション、コンピュータ端末、ネットワークコンピュータ、テレビ、メインフレーム、サーバファーム、大まかにネットワークで結ばれたコンピュータの広範囲に分散されたセット、またはいずれかの他のデータ処理システム若しくユーザデバイスを含む可変タイプのコンピュータシステムであってもよい。コンピュータ及びネットワークのこれまでの変化する性質に起因して、
図20に記されるコンピュータシステム2010の説明は、本発明の好ましい実施形態を例示する目的のための特定の例としてのみ意図される。
図20に記されるコンピュータシステムよりも多くのまたは少ない構成要素を有するコンピュータシステム2010の多くの他の構成が可能である。
【0140】
これによって、出願人は、そのような特徴または特徴の組み合わせが本明細書で開示されるいずれかの課題を解決するかに関わらず、且つ請求項の範囲を限定することなく、本明細書で説明される各々の個々の特徴及び2つ以上のそのような特徴のいずれかの組み合わせと分離して、そのような特徴または組み合わせが、当業者の共通する一般的な知識を全体として考慮して現在の仕様に基づいてある程度実施されることが可能であることを開示する。出願人は、本発明の態様が、いずれかのそのような特徴または特徴の組み合わせから構成されてもよいことを示す。上述した説明を考慮して、様々な修正が本発明の範囲内で行われてもよいことが当業者にとって明らかである。
【0141】
前述の説明は、開示される技術を行うことを可能にし、使用するために提示される。開示される実装態様への様々な修正が明らかであり、本明細書で定義される一般的な原理は、開示される技術の精神及び範囲から逸脱することなく他の実装態様及び適用例に適用されてもよい。よって、開示される技術は、示される実装態様を限定することを意図していないが、本明細書で開示される原理及び特徴と一貫した最も広い範囲に一致することになる。開示される技術の範囲は、添付の特許請求の範囲によって定義される。
【外国語明細書】