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

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

▶ 6センス インサイツ,インコーポレイテッドの特許一覧

特表2024-522358マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー
<>
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図1
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図2
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図3
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図4A
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図4B
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図4C
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図4D
  • 特表-マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-06-18
(54)【発明の名称】マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミー
(51)【国際特許分類】
   G06F 16/906 20190101AFI20240611BHJP
   G06Q 30/02 20230101ALI20240611BHJP
【FI】
G06F16/906
G06Q30/02
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023574169
(86)(22)【出願日】2022-06-27
(85)【翻訳文提出日】2024-01-29
(86)【国際出願番号】 US2022035159
(87)【国際公開番号】W WO2022256751
(87)【国際公開日】2022-12-08
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.JAVA
3.VISUAL BASIC
4.PYTHON
5.TENSORFLOW
(71)【出願人】
【識別番号】520221017
【氏名又は名称】6センス インサイツ,インコーポレイテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ケワラマニ,ロヒット
(72)【発明者】
【氏名】チェン,ジャスティン
【テーマコード(参考)】
5B175
5L030
【Fターム(参考)】
5B175FA03
5L030BB01
(57)【要約】
マーケティングオートメーション及び顧客関係管理のための機械学習支援自動タクソノミー。一実施形態では、複数の機械学習モデルは、注釈付き特徴の訓練データセットを使用して、アクティビティレコードをアクションクラス、チャネルクラス、及びタイプクラスに分類するように訓練される。動作中、関連する特徴を各アクティビティレコードから抽出することができ、各モデルを、それらの特徴のそれぞれのセットに適用して、アクティビティレコードをアクションクラス、チャネルクラス、及びタイプクラスに分類することができる。次いで、これらのクラスを、タクソノミー化されたアクティビティレコードとしてアクティビティレコードに関連付けて記憶することができる。
【選択図】図3
【特許請求の範囲】
【請求項1】
少なくとも1つのハードウェアプロセッサを使用して、
訓練モード中に、複数の注釈付き特徴を含む訓練データセットに基づいて、複数のモデルの各々を、前記複数のモデルのうちの任意の他の1つとは異なる複数のタクソノミーのうちの1つにおける複数のクラスからクラスを予測するように訓練することであって、前記複数のモデルは、アクションのタクソノミーにおけるクラスを予測するアクションモデルと、チャネルのタクソノミーにおけるクラスを予測するチャネルモデルと、タイプのタクソノミーにおけるクラスを予測するタイプモデルと、を含む、訓練することと、
動作モード中に、
1つ以上のアクティビティレコードを含むデータを取得することと、
前記1つ以上のアクティビティレコードの各々について、
前記アクティビティレコードからアクション特徴、チャネル特徴、及びタイプ特徴を抽出することと、
前記アクションモデルを前記アクション特徴に適用して、前記アクションのタクソノミーからアクションクラスを予測することと、
前記チャネルモデルを前記チャネル特徴に適用して、前記チャネルのタクソノミーからチャネルクラスを予測することと、
前記タイプモデルを前記タイプ特徴に適用して、前記タイプのタクソノミーからタイプクラスを予測することと、
予測された前記アクションクラス、予測された前記チャネルクラス、及び予測された前記タイプクラスを、タクソノミー化されたアクティビティレコードとして、前記アクティビティレコードに関連付けて記憶することと、を含む、方法。
【請求項2】
前記アクション特徴を抽出すること、前記チャネル特徴を抽出すること、及び前記タイプ特徴を抽出することは、各々、
前記アクティビティレコードから1つ以上のキーワードを導出することと、
ベクトル化関数に従って前記1つ以上のキーワードをベクトルに変えることと、を含む、請求項1に記載の方法。
【請求項3】
各ベクトルは、固定数の次元を有し、前記固定数の次元を有するベクトル空間内への前記1つ以上のキーワードの埋め込みを表す、請求項2に記載の方法。
【請求項4】
前記ベクトル化関数は、言語変換器である、請求項3に記載の方法。
【請求項5】
前記ベクトルは、前記固定数の次元の各々についての実数値を含む、請求項3に記載の方法。
【請求項6】
前記アクション特徴を抽出すること、前記チャネル特徴を抽出すること、及び前記タイプ特徴を抽出することは、各々、前記1つ以上のキーワードを前記ベクトルに変える前に前記1つ以上のキーワードを正規化することを更に含む、請求項2に記載の方法。
【請求項7】
前記複数のモデルの各々は、深層ニューラルネットワークを含む、請求項1に記載の方法。
【請求項8】
前記複数のモデルの各々を訓練することは、自然言語処理のために訓練された既存のニューラルネットワークに1つ以上の層を追加することを含み、一方、前記既存のニューラルネットワークの1つ以上の層中のニューロン重みは、凍結される、請求項7に記載の方法。
【請求項9】
前記複数のモデルの各々は、予測されたクラスと、前記予測されたクラスについての確率値との両方を出力し、前記方法は、前記少なくとも1つのハードウェアプロセッサを使用して、前記動作モード中に、前記1つ以上のアクティビティレコードの各々について、
前記複数のモデルの全てによる前記予測されたクラスについての前記確率値がそれぞれの閾値を満たす場合、マッピングされたステータスを前記アクティビティレコードに割り当てることと、
前記複数のモデルのうちの少なくとも1つからの前記予測されたクラスについての前記確率値が前記それぞれの閾値を満たさない場合、マッピングされていないステータスを前記アクティビティレコードに割り当てることと、を更に含む、請求項7に記載の方法。
【請求項10】
前記方法は、前記少なくとも1つのハードウェアプロセッサを使用して、
前記マッピングされていないステータスが割り当てられた前記アクティビティレコードの各々について、そのアクティビティレコードに関連付けられる前記複数のタクソノミーのうちの2つ以上における前記複数のクラスのうちの1つを指定するための1つ以上の入力を含むグラフィカルユーザインターフェースを生成することと、
前記マッピングされていないステータスが割り当てられた前記アクティビティレコードのうちの1つを保存するためのユーザ動作に応答して、任意の指定されたクラスを1つの前記アクティビティレコードに関連付けて記憶し、前記マッピングされたステータスを前記1つのアクティビティレコードに割り当てることと、を更に含む、請求項9に記載の方法。
【請求項11】
前記方法は、前記少なくとも1つのハードウェアプロセッサを使用して、記憶された前記アクションクラス及び記憶された前記チャネルクラスのうちの一方又は両方の各々を、前記タクソノミー化されたアクティビティレコードのうちの1つ以上におけるオーバーライドクラスに変更するための1つ以上の入力と、任意のオーバーライドクラスを含む1つ以上の前記タクソノミー化されたアクティビティレコードをデータウェアハウスに記憶するための少なくとも1つの入力とを含むグラフィカルユーザインターフェースを生成することを更に含む、請求項1に記載の方法。
【請求項12】
前記少なくとも1つのハードウェアプロセッサを使用して、前記データウェアハウスから少なくとも1つのルックアップテーブルを生成することを更に含み、前記少なくとも1つのルックアップテーブルは、
前記データウェアハウス内の前記タクソノミー化されたアクティビティレコードのうちの1つ以上の各々における、そのタクソノミー化されたアクティビティレコードの前記アクション特徴による、前記アクションクラス、
前記データウェアハウス内の前記タクソノミー化されたアクティビティレコードのうちの1つ以上の各々における、そのタクソノミー化されたアクティビティレコードの前記チャネル特徴による、前記チャネルクラス、又は
前記データウェアハウス内の前記タクソノミー化されたアクティビティレコードのうちの1つ以上の各々における、そのタクソノミー化されたアクティビティレコードの前記タイプ特徴による、前記タイプクラスのうちの1つ以上をインデックス付けする、請求項11に記載の方法。
【請求項13】
前記少なくとも1つのハードウェアプロセッサを使用して、1つ以上のアクティビティレコードの各々について、前記複数のモデルの各々について、
そのモデルについて抽出された特徴を使用して、前記アクティビティレコードから、前記少なくとも1つのルックアップテーブルにおいてルックアップを実施することと、
前記ルックアップがクラスを返した場合、返された前記クラスを、前記モデルを適用することなく前記タクソノミー化されたアクティビティレコードとして前記アクティビティレコードに関連付けて記憶することと、
前記ルックアップがクラスを返さない場合、そのモデルについての前記特徴を抽出し、前記モデルを抽出された前記特徴に適用することと、を更に含む、請求項12に記載の方法。
【請求項14】
前記複数のモデルは、ウェブアクティビティのタクソノミーにおけるクラスを予測するウェブモデルを更に含み、前記方法は、前記少なくとも1つのハードウェアプロセッサを使用して、前記動作モード中に、前記1つ以上のアクティビティレコードの各々について、前記アクティビティレコードがユニフォームリソースロケータ(URL)を含む場合、
前記アクティビティレコードからウェブ特徴を抽出することと、
前記ウェブモデルを前記ウェブ特徴に適用して、前記ウェブアクティビティのタクソノミーからウェブアクティビティを予測することと、
予測された前記ウェブアクティビティを前記アクティビティレコードに関連付けて前記タクソノミー化されたアクティビティレコードに記憶することと、を更に含む、請求項1に記載の方法。
【請求項15】
前記動作モード中に、前記1つ以上のアクティビティレコードの各々について、前記アクティビティレコードがURLを含む場合、前記予測されたウェブアクティビティは、前記予測されたタイプクラスの代わりに、前記タクソノミー化されたアクティビティレコード中の前記アクティビティレコードに関連付けられる、請求項14に記載の方法。
【請求項16】
前記複数のモデルは、複数のアクションモデルと、複数のチャネルモデルと、複数のタイプモデルと、を含み、前記方法は、前記少なくとも1つのハードウェアプロセッサを使用して、前記動作モード中に、前記データが取得されたデータソースのタイプに基づいて、前記複数のアクションモデルのうちの1つ、前記複数のチャネルモデルのうちの1つ、及び前記複数のタイプモデルのうちの1つを選択することを更に含む、請求項1に記載の方法。
【請求項17】
前記データソースのタイプがマーケティングオートメーションプラットフォームであるとき、前記複数のアクションモデルのうちの1つ、前記複数のチャネルモデルのうちの1つ、及び前記複数のタイプモデルのうちの1つの第1の組み合わせが選択され、前記データソースのタイプが顧客関係管理システムであるとき、前記複数のアクションモデルのうちの1つ、前記複数のチャネルモデルのうちの1つ、及び前記複数のタイプモデルのうちの1つの第2の組み合わせが選択され、前記第1の組み合わせは、前記第2の組み合わせとは異なる、請求項16に記載の方法。
【請求項18】
前記データソースのタイプがマーケティングオートメーションプラットフォームであるとき、前記複数のアクションモデルのうちの1つ、前記複数のチャネルモデルのうちの1つ、及び前記複数のタイプモデルのうちの1つの第1の組み合わせが選択され、前記データソースのタイプが顧客関係管理システムのキャンペーンデータであるとき、前記複数のアクションモデルのうちの1つ、前記複数のチャネルモデルのうちの1つ、及び前記複数のタイプモデルのうちの1つの第2の組み合わせが選択され、前記データソースのタイプが顧客関係管理システムのイベントデータであるとき、前記複数のアクションモデルのうちの1つ、前記複数のチャネルモデルのうちの1つ、及び前記複数のタイプモデルのうちの1つの第3の組み合わせが選択され、前記第1の組み合わせ、前記第2の組み合わせ、及び前記第3の組み合わせは、互いに異なる、請求項16に記載の方法。
【請求項19】
システムであって、
少なくとも1つのハードウェアプロセッサと、
1つ以上のソフトウェアモジュールと、を備え、前記1つ以上のソフトウェアモジュールは、前記少なくとも1つのハードウェアプロセッサによって実行されると、
訓練モード中に、複数の注釈付き特徴を含む訓練データセットに基づいて、複数のモデルの各々を、前記複数のモデルのうちの任意の他の1つとは異なる複数のタクソノミーのうちの1つにおける複数のクラスからクラスを予測するように訓練することであって、前記複数のモデルは、アクションのタクソノミーにおけるクラスを予測するアクションモデルと、チャネルのタクソノミーにおけるクラスを予測するチャネルモデルと、タイプのタクソノミーにおけるクラスを予測するタイプモデルと、を含む、訓練することと、
動作モード中に、
1つ以上のアクティビティレコードを含むデータを取得することと、
前記1つ以上のアクティビティレコードの各々について、
前記アクティビティレコードからアクション特徴、チャネル特徴、及びタイプ特徴を抽出することと、
前記アクションモデルを前記アクション特徴に適用して、前記アクションのタクソノミーからアクションクラスを予測することと、
前記チャネルモデルを前記チャネル特徴に適用して、前記チャネルのタクソノミーからチャネルクラスを予測することと、
前記タイプモデルを前記タイプ特徴に適用して、前記タイプのタクソノミーからタイプクラスを予測することと、
予測された前記アクションクラス、予測された前記チャネルクラス、及び予測された前記タイプクラスを、タクソノミー化されたアクティビティレコードとして前記アクティビティレコードに関連付けて記憶することと、を行うように構成されている、システム。
【請求項20】
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
訓練モード中に、複数の注釈付き特徴を含む訓練データセットに基づいて、複数のモデルの各々を、前記複数のモデルのうちの任意の他の1つとは異なる複数のタクソノミーのうちの1つにおける複数のクラスからクラスを予測するように訓練することであって、前記複数のモデルは、アクションのタクソノミーにおけるクラスを予測するアクションモデルと、チャネルのタクソノミーにおけるクラスを予測するチャネルモデルと、タイプのタクソノミーにおけるクラスを予測するタイプモデルと、を含む、訓練することと、
動作モード中に、
1つ以上のアクティビティレコードを含むデータを取得することと、
前記1つ以上のアクティビティレコードの各々について、
前記アクティビティレコードからアクション特徴、チャネル特徴、及びタイプ特徴を抽出することと、
前記アクションモデルを前記アクション特徴に適用して、前記アクションのタクソノミーからアクションクラスを予測することと、
前記チャネルモデルを前記チャネル特徴に適用して、前記チャネルのタクソノミーからチャネルクラスを予測することと、
前記タイプモデルを前記タイプ特徴に適用して、前記タイプのタクソノミーからタイプクラスを予測することと、
予測された前記アクションクラス、予測された前記チャネルクラス、及び予測された前記タイプクラスを、タクソノミー化されたアクティビティレコードとして前記アクティビティレコードに関連付けて記憶することと、を行わせる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年6月1日に出願された米国仮特許出願第63/195,565号の優先権を主張するものであり、その全体が記載されているかのように参照により本明細書に組み込まれる。加えて、本出願は、2015年12月1日に発行された米国特許第9,202,227号、2019年11月12日に発行された米国特許第10,475,056号、2020年1月14日に発行された米国特許第10,536,427号、2020年12月22日に発行された米国特許第10,873,560号、2021年6月29日に出願された米国特許出願第17/362,605号、2021年6月29日に出願された米国特許出願第17/362,646号、及び2021年6月29日に出願された米国特許出願第17/362,843号に関連し、これらは全て、その全体が記載されているかのように参照により本明細書に組み込まれる。
【背景技術】
【0002】
本明細書で説明される実施形態は、概して、人工知能(AI)を対象とし、より具体的には、マーケティングオートメーション及び顧客関係管理システムのための機械学習支援自動タクソノミーを対象とする。
【0003】
関連技術の説明
マーケティングオートメーションプラットフォーム(MAP)、顧客関係管理(CRM)システム、及びウェブサイトなどの異なるシステムは、レコードを異なるように編成している。したがって、データソースとしてこれらの異なるシステムからデータを受信するプラットフォームは、これらのデータソースからのレコードを集約するためにタクソノミーを利用しなければならない。タクソノミーは、異なるデータソースからのデータを共通の一貫したラベリングシステムにマッピングして、下流の機能との互換性を保証する。タクソノミーがなければ、下流の機能はデータを理解することができない。
【0004】
従来、タクソノミーの作成は、データアグリゲータとデータソースの各々との間の労働集約的な協調プロセスを必要としている。データアグリゲータは、下流の機能とともに使用するための標準化されたフィールドにデータをマッピングするタクソノミーを構築するために、データの構造を理解しなければならない。スケーラビリティ及び再現性など、自動化に対する種々の障害のために、このプロセスは、従来、手動で実施されなければならない。かかるプロセスにより、膨大な時間及び労力がかかるだけでなく、相当量のヒューマンエラーが発生する可能性がある。
【0005】
したがって、必要とされるのは、特にMAP及びCRMシステムのコンテキストにおいて、タクソノミーを管理するためのプロセスの自動化を妨げる障害に対する解決策である。
【発明の概要】
【0006】
したがって、MAP及びCRMシステムのための機械学習支援自動タクソノミーのためのシステム、方法、及び非一時的コンピュータ可読媒体が開示される。
【0007】
一実施形態では、方法は、少なくとも1つのハードウェアプロセッサを使用して、訓練モード中に、複数の注釈付き特徴を含む訓練データセットに基づいて、複数のモデルの各々を、複数のモデルのうちの任意の他の1つとは異なる複数のタクソノミーのうちの1つにおける複数のクラスからクラスを予測するように訓練することであって、複数のモデルは、アクションのタクソノミーにおけるクラスを予測するアクションモデルと、チャネルのタクソノミーにおけるクラスを予測するチャネルモデルと、タイプのタクソノミーにおけるクラスを予測するタイプモデルと、を含む、訓練することと、動作モード中に、1つ以上のアクティビティレコードを含むデータを取得することと、1つ以上のアクティビティレコードの各々について、アクティビティレコードからアクション特徴、チャネル特徴、及びタイプ特徴を抽出することと、アクションモデルをアクション特徴に適用して、アクションのタクソノミーからアクションクラスを予測することと、チャネルモデルをチャネル特徴に適用して、チャネルのタクソノミーからチャネルクラスを予測することと、タイプモデルをタイプ特徴に適用して、タイプのタクソノミーからタイプクラスを予測することと、予測されたアクションクラス、予測されたチャネルクラス、及び予測されたタイプクラスを、タクソノミー化されたアクティビティレコードとしてアクティビティレコードに関連付けて記憶することと、を含む。
【0008】
アクション特徴を抽出すること、チャネル特徴を抽出すること、及びタイプ特徴を抽出することは、各々、アクティビティレコードから1つ以上のキーワードを導出することと、ベクトル化関数に従って1つ以上のキーワードをベクトルに変えることと、を含み得る。各ベクトルは、固定数の次元を有することができ、固定数の次元を有するベクトル空間内への1つ以上のキーワードの埋め込みを表すことができる。ベクトル化関数は、言語変換器であり得る。ベクトルは、固定数の次元の各々についての実数値を含み得る。アクション特徴を抽出すること、チャネル特徴を抽出すること、及びタイプ特徴を抽出することは各々、1つ以上のキーワードをベクトルに変える前に、1つ以上のキーワードを正規化することを更に含み得る。
【0009】
複数のモデルの各々は、深層ニューラルネットワークを含み得る。複数のモデルの各々を訓練することは、自然言語処理のために訓練された既存のニューラルネットワークに1つ以上の層を追加することを含み得、一方、既存のニューラルネットワークの1つ以上の層中のニューロン重みは凍結される。複数のモデルの各々は、予測されたクラスと、予測されたクラスについての確率値との両方を出力することができ、方法は、少なくとも1つのハードウェアプロセッサを使用して、動作モード中に、1つ以上のアクティビティレコードの各々について、複数のモデルの全てによる予測されたクラスについての確率値がそれぞれの閾値を満たす場合、マッピングされたステータスをアクティビティレコードに割り当てることと、複数のモデルのうちの少なくとも1つからの予測されたクラスについての確率値がそれぞれの閾値を満たさない場合、マッピングされていないステータスをアクティビティレコードに割り当てることと、を更に含む。方法は、少なくとも1つのハードウェアプロセッサを使用して、マッピングされていないステータスが割り当てられたアクティビティレコードの各々について、そのアクティビティレコードに関連付けられる複数のタクソノミーのうちの2つ以上における複数のクラスのうちの1つを指定するための1つ以上の入力を含むグラフィカルユーザインターフェースを生成することと、マッピングされていないステータスが割り当てられたアクティビティレコードのうちの1つを保存するためのユーザ動作に応答して、任意の指定されたクラスを1つのアクティビティレコードに関連付けて記憶し、マッピングされたステータスを1つのアクティビティレコードに割り当てることと、を更に含み得る。方法は、少なくとも1つのハードウェアプロセッサを使用して、記憶されたアクションクラス及び記憶されたチャネルクラスの一方又は両方の各々を、タクソノミー化されたアクティビティレコードのうちの1つ以上におけるオーバーライドクラスに変更するための1つ以上の入力と、任意のオーバーライドクラスを含む1つ以上のタクソノミー化されたアクティビティレコードをデータウェアハウスに記憶するための少なくとも1つの入力と、を含むグラフィカルユーザインターフェースを生成することを更に含み得る。
【0010】
方法は、少なくとも1つのハードウェアプロセッサを使用して、データウェアハウスから少なくとも1つのルックアップテーブルを生成することを更に含み得、少なくとも1つのルックアップテーブルは、データウェアハウス内のタクソノミー化されたアクティビティレコードのうちの1つ以上の各々における、そのタクソノミー化されたアクティビティレコードのアクション特徴による、アクションクラス、データウェアハウス内のタクソノミー化されたアクティビティレコードのうちの1つ以上の各々における、そのタクソノミー化されたアクティビティレコードのチャネル特徴による、チャネルクラス、又はデータウェアハウス内のタクソノミー化されたアクティビティレコードのうちの1つ以上の各々における、そのタクソノミー化されたアクティビティレコードのタイプ特徴による、タイプクラスのうちの1つ以上をインデックス付けする。方法は、少なくとも1つのハードウェアプロセッサを使用して、1つ以上のアクティビティレコードの各々について、複数のモデルの各々について、アクティビティレコードからそのモデルについて抽出された特徴を使用して、少なくとも1つのルックアップテーブルにおいてルックアップを実施することと、ルックアップがクラスを返した場合、返されたクラスを、モデルを適用することなくタクソノミー化されたアクティビティレコードとしてアクティビティレコードに関連付けて記憶することと、ルックアップがクラスを返さない場合、そのモデルのための特徴を抽出し、抽出された特徴にモデルを適用することと、を更に含み得る。
【0011】
複数のモデルは、ウェブアクティビティのタクソノミーにおけるクラスを予測するウェブモデルを更に含み得、方法は、少なくとも1つのハードウェアプロセッサを使用して、動作モード中に、1つ以上のアクティビティレコードの各々について、アクティビティレコードがユニフォームリソースロケータ(URL)を含む場合、アクティビティレコードからウェブ特徴を抽出することと、ウェブモデルをウェブ特徴に適用して、ウェブアクティビティのタクソノミーからウェブアクティビティを予測することと、予測されたウェブアクティビティをアクティビティレコードに関連付けてタクソノミー化されたアクティビティレコードに記憶することと、を更に含む。動作モード中に、1つ以上のアクティビティレコードの各々について、アクティビティレコードがURLを含む場合、予測されたウェブアクティビティは、予測されたタイプクラスの代わりに、タクソノミー化されたアクティビティレコード中のアクティビティレコードに関連付けられ得る。
【0012】
複数のモデルは、複数のアクションモデルと、複数のチャネルモデルと、複数のタイプモデルと、を含み得、方法は、少なくとも1つのハードウェアプロセッサを使用して、動作モード中に、データが取得されたデータソースのタイプに基づいて、複数のアクションモデルのうちの1つ、複数のチャネルモデルのうちの1つ、及び複数のタイプモデルのうちの1つを選択することを更に含む。データソースのタイプがマーケティングオートメーションプラットフォームであるとき、複数のアクションモデルのうちの1つ、複数のチャネルモデルのうちの1つ、及び複数のタイプモデルのうちの1つの第1の組み合わせが選択され得、データソースのタイプが顧客関係管理システムであるとき、複数のアクションモデルのうちの1つ、複数のチャネルモデルのうちの1つ、及び複数のタイプモデルのうちの1つの第2の組み合わせが選択され得、第1の組み合わせは、第2の組み合わせとは異なる。データソースのタイプがマーケティングオートメーションプラットフォームであるとき、複数のアクションモデルのうちの1つ、複数のチャネルモデルのうちの1つ、及び複数のタイプモデルのうちの1つの第1の組み合わせが選択され得、データソースのタイプが顧客関係管理システムのキャンペーンデータであるとき、複数のアクションモデルのうちの1つ、複数のチャネルモデルのうちの1つ、及び複数のタイプモデルのうちの1つの第2の組み合わせが選択され得、データソースのタイプが顧客関係管理システムのイベントデータであるとき、複数のアクションモデルのうちの1つ、複数のチャネルモデルのうちの1つ、及び複数のタイプモデルのうちの1つの第3の組み合わせが選択され得、第1の組み合わせ、第2の組み合わせ、及び第3の組み合わせは、互いに異なる。
【0013】
上記の方法のいずれも、サーバなどのプロセッサベースのシステムの実行可能ソフトウェアモジュールにおいて、及び/又は非一時的コンピュータ可読媒体に記憶された実行可能命令において、個々に又は任意の組み合わせで具現化され得る。
【0014】
その構造及び動作の両方に関する本発明の詳細は、同様の部分に同様の参照番号が付された添付の図面を考察することで部分的に得られるであろう。
【図面の簡単な説明】
【0015】
図1】一実施形態による、本明細書で説明されるプロセスのうちの1つ以上が実装され得る例示的インフラストラクチャを示す。
図2】一実施形態による、本明細書で説明されるプロセスのうちの1つ以上が実行され得る例示的な処理システムを示す。
図3】一実施形態による、予測モデルを使用してタクソノミーを自動化するためのプロセスを示す。
図4A】実施形態による、グラフィカルユーザインターフェースの例示的な画面を示す。
図4B】実施形態による、グラフィカルユーザインターフェースの例示的な画面を示す。
図4C】実施形態による、グラフィカルユーザインターフェースの例示的な画面を示す。
図4D】実施形態による、グラフィカルユーザインターフェースの例示的な画面を示す。
図5】一実施形態による、予測モデルとして使用される深層ニューラルネットワークの一例を示す。
【発明を実施するための形態】
【0016】
一実施形態では、MAP及びCRMシステムのための機械学習支援自動タクソノミーのためのシステム、方法、及び非一時的コンピュータ可読媒体が開示される。本明細書を読んだ後、当業者には、種々の代替的な実施形態及び代替の用途において本発明をどのように実装するかが明らかになるであろう。しかしながら、本発明の種々の実施形態が本明細書で説明されるが、これらの実施形態は、限定ではなく、例及び例示のみとして提示されることが理解される。したがって、種々の実施形態のこの詳細な説明は、添付の特許請求の範囲に記載される本発明の範囲又は広さを限定するものと解釈されるべきではない。
【0017】
1.システムの概要
1.1.インフラストラクチャ
図1は、一実施形態による、開示されるプロセスのうちの1つ以上が実装され得る、例示的なインフラストラクチャを示している。インフラストラクチャは、本明細書で説明される種々の機能、プロセス、方法、及び/又はソフトウェアモジュールのうちの1つ以上をホスト及び/又は実行するプラットフォーム110(例えば、1つ以上のサーバ)を含み得る。プラットフォーム110は、専用ハードウェアサーバを備えてもよく、又は代わりに、1つ以上のハードウェアサーバの共有リソースを利用する、クラウドサーバを備えてもよい。いずれの場合も、これらのサーバは、コロケートされ、及び/又は地理的に分散され得る。プラットフォーム110はまた、サーバアプリケーション112及び/又は1つ以上のデータベース114を含んでもよく、又はそれらに通信可能に接続されてもよい。更に、プラットフォーム110は、1つ以上のネットワーク120を介して1つ以上のユーザシステム130に通信可能に接続され得る。プラットフォーム110はまた、1つ以上のネットワーク120を介して、1つ以上の外部システム140(例えば、他のプラットフォーム、ウェブサイトなど)に通信可能に接続され得る。
【0018】
ネットワーク(複数可)120は、インターネットを含むことができ、プラットフォーム110は、ハイパーテキスト転送プロトコル(HTTP)、HTTPセキュア(HTTPS)、ファイル転送プロトコル(FTP)、FTPセキュア(FTPS)、セキュアシェルFTP(SFTP)などの標準伝送プロトコル、並びに専用プロトコルを使用して、インターネットを介してユーザシステム(複数可)130と通信することができる。プラットフォーム110は、ネットワーク(複数可)120の単一のセットを介して種々のシステムに接続されるものとして示されているが、プラットフォーム110は、1つ以上のネットワークの異なるセットを介して種々のシステムに接続され得ることを理解されたい。例えば、プラットフォーム110は、インターネットを介してユーザシステム130及び/又は外部システム140のサブセットに接続されてもよいが、イントラネットを介して1つ以上の他のユーザシステム130及び/又は外部システム140に接続されてもよい。更に、少数のユーザシステム130及び外部システム140、1つのサーバアプリケーション112、並びにデータベース(複数可)114の1セットのみが示されているが、インフラストラクチャは、任意の数のユーザシステム、外部システム、サーバアプリケーション、及びデータベースを含むことができることを理解されたい。
【0019】
ユーザシステム(複数可)130は、限定ではないが、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン又は他の携帯電話、サーバ、ゲームコンソール、テレビ、セットトップボックス、電子キオスク、店頭端末などを含む、有線及び/又は無線通信が可能な任意のタイプ又は複数のタイプのコンピューティングデバイスを含み得る。ユーザシステム(複数可)130は、ユーザが雇用主の通常の職務の遂行中に典型的に利用するデスクトップコンピュータ、ワークステーション、及び/又はモバイルデバイスを含むことが一般に企図される。各ユーザは、自身のユーザシステム130を利用して、ユーザがセキュアセッション中に適切な役割又は適切な許可を有するプラットフォーム110の機能(例えば、サーバアプリケーション112に実装されるような)のいずれかを認証し、それにアクセスすることを可能にするプラットフォーム110のユーザアカウントを作成し、かつ/又はそれにアクセスすることができる。
【0020】
プラットフォーム110は、1つ以上のウェブサイト及び/又はウェブサービスをホストするウェブサーバを含み得る。ウェブサイトが提供される実施形態では、ウェブサイトは、例えば、ハイパーテキストマークアップ言語(HTML)又は他の言語で生成された1つ以上の画面(例えば、ウェブページ)を含む、グラフィカルユーザインターフェースを含んでもよい。プラットフォーム110は、ユーザシステム(複数可)130からの要求に応答して、グラフィカルユーザインターフェースの1つ以上の画面を送信又は提供する。一部の実施形態では、これらの画面は、ウィザードの形態で提供されてもよく、その場合、2つ以上の画面が、連続する方法で提供されてもよく、連続画面のうちの1つ以上は、1つ以上の先行画面とのユーザ又はユーザシステム130の対話に依存してもよい。グラフィカルユーザインターフェースの画面を含む、プラットフォーム110への要求及びプラットフォーム110からの応答は、両方とも、標準通信プロトコル(例えば、HTTP、HTTPSなど)を使用して、インターネットを含み得る、ネットワーク(複数可)120を通して通信されてもよい。これらの画面(例えば、ウェブページ)は、テキスト、画像、ビデオ、アニメーション、参照(例えば、ハイパーリンク)、フレーム、入力(例えば、テキストボックス、テキスト領域、チェックボックス、ラジオボタン、ドロップダウンメニュー、ボタン、フォームなど)、スクリプト(例えば、JavaScript)などのコンテンツ及び要素の組み合わせを含むことができ、プラットフォーム110にローカルに、かつ/又はリモートにアクセス可能な1つ以上のデータベース(例えば、データベース(複数可)114)に記憶されたデータを含む又はそれから導出される要素を含む。プラットフォーム110はまた、ユーザシステム(複数可)130からの他の要求に応答してもよい。
【0021】
プラットフォーム110は更に、1つ以上のデータベース114を含み、それと通信可能に結合され、又は別様にそれへのアクセスを有してもよい。例えば、プラットフォーム110は、1つ以上のデータベース114を管理する1つ以上のデータベースサーバを含んでもよい。プラットフォーム110上で実行されるユーザシステム130又はサーバアプリケーション112は、データベース(複数可)114に記憶されるデータ(例えば、ユーザデータ、フォームデータなど)を提出し、かつ/又はデータベース(複数可)114に記憶されたデータへのアクセスを要求し得る。クラウドベースのデータベース及び専用データベースを含む、MySQL(商標)、Oracle(商標)、IBM(商標)、Microsoft SQL(商標)、Access(商標)、PostgreSQL(商標)などを含むがこれらに限定されない任意の好適なデータベースを利用することができる。データは、例えば、HTTPによってサポートされる周知のPOST要求を使用して、FTPなどを介して、プラットフォーム110に送信されてもよい。このデータ及び他の要求は、例えば、プラットフォーム110によって実行されるサーブレット又は他のソフトウェアモジュール(例えば、サーバアプリケーション112に含まれる)などのサーバ側ウェブ技術によって処理されてもよい。
【0022】
ウェブサービスが提供される実施形態では、プラットフォーム110は、外部システム(複数可)140から要求を受信し、拡張マークアップ言語(XML)、JavaScript Object Notation(JSON)、及び/又は任意の他の好適な若しくは所望のフォーマットで応答を提供し得る。かかる実施形態では、プラットフォーム110は、ユーザシステム(複数可)130及び/又は外部システム(複数可)140がウェブサービスと対話し得る方法を定義する、アプリケーションプログラミングインターフェース(API)を提供してもよい。したがって、ユーザシステム(複数可)130及び/又は外部システム(複数可)140(それら自体がサーバであり得る)は、それら自体のユーザインターフェースを定義し、ウェブサービスに依拠して、本明細書で説明されるバックエンドプロセス、方法、機能、記憶装置などを実装するか、又は別様に提供することができる。例えば、かかる一実施形態では、1つ以上のユーザシステム(複数可)130上で実行され、潜在的にローカルデータベース134を使用するクライアントアプリケーション132は、プラットフォーム110上で実行されるサーバアプリケーション112と対話して、本明細書に記載される種々の機能、プロセス、方法、及び/又はソフトウェアモジュールのうちの1つ以上、又は1つ以上の部分を実行することができる。一実施形態では、クライアントアプリケーション132は、ユーザシステム130上にローカルにデータを記憶するためのローカルデータベース134を利用することができる。クライアントアプリケーション132は「シン(thin)」であってもよく、その場合、処理は主にプラットフォーム110上のサーバアプリケーション112によってサーバ側で実行される。シンクライアントアプリケーション132の基本的な例は、ユーザシステム(複数可)130においてウェブページを単に要求し、受信し、レンダリングするブラウザアプリケーションであり、プラットフォーム110上のサーバアプリケーション112は、ウェブページを生成し、データベース機能を管理することを担う。代替的に、クライアントアプリケーションは「シック(thick)」であってもよく、その場合、処理は主にユーザシステム(複数可)130によってクライアント側で実行される。クライアントアプリケーション132は、特定の実装形態の設計目標に応じて、「シン」と「シック」との間のこの範囲に沿った任意の点において、プラットフォーム110上のサーバアプリケーション112に対してある量の処理を実行し得ることを理解されたい。いずれの場合も、プラットフォーム110(例えば、サーバアプリケーション112が全ての処理を実施する場合)又はユーザシステム(複数可)130(例えば、クライアントアプリケーション132が全ての処理を実施する場合)のうちのいずれかに完全に存在し得るか、又はプラットフォーム110とユーザシステム(複数可)130との間に分散され得る(例えば、サーバアプリケーション112及びクライアントアプリケーション132の両方が処理を実施する場合)、本明細書に説明されるソフトウェアは、本明細書に記載のプロセス、方法、又は機能のうちの1つ以上を実装する命令を含む、1つ以上の実行可能ソフトウェアモジュールを含み得る。
【0023】
1.2.例示的な処理デバイス
図2は、本明細書で説明される種々の実施形態に関連して使用され得る例示的な有線又は無線システム200を示すブロック図である。例えば、システム200は、本明細書で説明される(例えば、ソフトウェアを記憶及び/又は実行するための)機能、プロセス、又は方法のうちの1つ以上として、又はそれと併せて使用されてもよく、プラットフォーム110、ユーザシステム(複数可)130、外部システム(複数可)140、及び/又は本明細書で説明される他の処理デバイスの構成要素を表してもよい。システム200は、サーバ若しくは任意の従来のパーソナルコンピュータ、又は有線若しくは無線データ通信が可能な任意の他のプロセッサ対応デバイスとすることができる。他のコンピュータシステム及び/又はアーキテクチャもまた、当業者に明らかなように、使用されてもよい。
【0024】
システム200は、好ましくは、1つ以上のプロセッサ210を含む。プロセッサ(複数可)210は、中央処理装置(CPU)を備えることができる。グラフィックス処理装置(GPU)、入力/出力を管理するための補助プロセッサ、浮動小数点数学演算を実施するための補助プロセッサ、信号処理アルゴリズムの高速実行に好適なアーキテクチャを有する専用マイクロプロセッサ(例えば、デジタル信号プロセッサ)、主処理システムに従属する二次プロセッサ(例えば、バックエンドプロセッサ)、デュアル若しくはマルチプロセッサシステム用の追加のマイクロプロセッサ若しくはコントローラ、及び/又はコプロセッサなど、追加のプロセッサが提供されてもよい。かかる補助プロセッサは、個別のプロセッサであってもよく、又はプロセッサ210と統合されてもよい。システム200とともに使用され得るプロセッサの例は、カリフォルニア州サンタクララのIntel Corporationから入手可能なプロセッサ(例えば、Pentium(商標)、Core i7(商標)、Xeon(商標)など)のいずれか、カリフォルニア州サンタクララのAdvanced Micro Devices,Incorporated(AMD)から入手可能なプロセッサのいずれか、クパチーノのApple Inc.から入手可能なプロセッサ(例えば、Aシリーズ、Mシリーズなど)のいずれか、韓国ソウルのSamsung Electronics Co.,Ltd.から入手可能なプロセッサ(例えば、Exynos(商標))のいずれかなどを含むが、これらに限定されない。
【0025】
プロセッサ210は、通信バス205に接続することが好ましい。通信バス205は、記憶装置とシステム200の他の周辺構成要素との間の情報転送を容易にするためのデータチャネルを含み得る。更に、通信バス205は、データバス、アドレスバス、及び/又は制御バス(図示せず)を含む、プロセッサ210との通信に使用される信号のセットを提供することができる。通信バス205は、例えば、インダストリスタンダードアーキテクチャ(ISA)、拡張インダストリスタンダードアーキテクチャ(EISA)、マイクロチャネルアーキテクチャ(MCA)、ペリフェラルコンポーネントインターコネクト(PCI)ローカルバス、IEEE488汎用インターフェースバス(GPIB)を含む米国電気電子学会(IEEE)によって公表された規格、IEEE696/S-100などに準拠するバスアーキテクチャなどの任意の標準又は非標準バスアーキテクチャを備えてもよい。
【0026】
システム200は、好ましくはメインメモリ215を含み、二次メモリ220も含み得る。メインメモリ215は、本明細書で論じる機能及び/又はモジュールのうちの1つ以上など、プロセッサ210上で実行されるプログラムのための命令及びデータの記憶を提供する。メモリ内に記憶され、プロセッサ210によって実行されるプログラムは、限定ではないが、C/C++、Java、JavaScript、Perl、Visual Basic、.NETなどを含む、任意の好適な言語に従って記述され、かつ/又はコンパイルされ得ることを理解されたい。メインメモリ215は、典型的には、ダイナミックランダムアクセスメモリ(DRAM)及び/又はスタティックランダムアクセスメモリ(SRAM)などの半導体ベースのメモリである。他の半導体ベースのメモリタイプには、例えば、シンクロナスダイミックランダムアクセスメモリ(SDRAM)、ランバスダイナミックランダムアクセスメモリ(RDRAM)、強誘電体ランダムアクセスメモリ(FRAM(登録商標))などを含み、そして、読み出し専用メモリ(ROM)を含む。
【0027】
二次メモリ220は、任意選択で、内部媒体225及び/又は取り外し可能媒体230を含み得る。取り外し可能媒体230は、任意の周知の方法で読み出され、かつ/又は書き込まれる。取り外し可能な記憶媒体230は、例えば、磁気テープドライブ、コンパクトディスク(CD)ドライブ、デジタル多用途ディスク(DVD)ドライブ、他の光学ドライブ、フラッシュメモリドライブなどであってもよい。二次メモリ220は、コンピュータ実行可能コード(例えば、開示されるソフトウェアモジュール)及び/又は他のデータが記憶された非一時的コンピュータ可読媒体である。二次メモリ220に記憶されたコンピュータソフトウェア又はデータは、プロセッサ210による実行のためにメインメモリ215に読み込まれる。代替的な実施形態では、二次メモリ220は、コンピュータプログラム又は他のデータ若しくは命令がシステム200にロードされることを可能にするための他の同様の手段を含み得る。かかる手段は、例えば、ソフトウェア及びデータが外部記憶媒体245からシステム200に転送されることを可能にする、通信インターフェース240を含んでもよい。外部記憶媒体245の例として、外部ハードディスクドライブ、外部光学ドライブ、外部磁気光学ドライブなどが挙げられる。二次メモリ220の他の例として、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能読み出し専用メモリ(EEPROM)、及びフラッシュメモリ(EEPROMに類似したブロック指向メモリ)などの半導体ベースのメモリが挙げられる。
【0028】
上述のように、システム200は、通信インターフェース240を含み得る。通信インターフェース240は、ソフトウェア及びデータが、システム200と外部デバイス(例えば、プリンタ)、ネットワーク、又は他の情報源との間で転送されることを可能にする。例えば、コンピュータソフトウェア又は実行可能コードは、通信インターフェース240を介してネットワークサーバ(例えば、プラットフォーム110)からシステム200に転送されてもよい。通信インターフェース240の例には、内蔵ネットワークアダプタ、ネットワークインターフェースカード(NIC)、パーソナルコンピュータメモリカード国際協会(PCMCIA)ネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ユニバーサルシリアルバス(USB)ネットワークアダプタ、モデム、無線データカード、通信ポート、赤外線インターフェース、IEEE1394ファイヤワイヤ、及びシステム200をネットワーク(例えば、ネットワーク(複数可)120)又は別のコンピューティングデバイスとインターフェースすることができる任意の他のデバイスが含まれる。通信インターフェース240は、例えば、イーサネットIEEE 802標準、ファイバーチャネル、デジタル加入者線(DSL)、非同期デジタル加入者線(ADSL)、フレームリレー、非同期転送モード(ATM)、統合デジタルサービス・ネットワーク(ISDN)、個人情報提供サービス(PCS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、シリアルライン・インターネットプロトコル/ポイントツーポイントプロトコル(SLIP/PPP)、及びその他のような、工業的に広められたプロトコル標準を実装することが好ましいが、これと同様に、カスタマイズされるか又は非標準のインターフェース・プロトコルを実装してもよい。
【0029】
通信インターフェース240を介して転送されるソフトウェア及びデータは、概して、電気通信信号255の形態である。これらの信号255は、通信チャネル250を介して通信インターフェース240に提供され得る。一実施形態では、通信チャネル250は、有線若しくは無線ネットワーク(例えば、ネットワーク(複数可)120)、又は任意の種々の他の通信リンクであってもよい。通信チャネル250は、信号255を搬送し、一部例を挙げると、ワイヤ又はケーブル、光ファイバー、従来の電話回線、携帯電話リンク、無線データ通信リンク、無線周波数(「RF」)リンク、又は赤外線リンクを含む、種々の有線又は無線通信手段を使用して実装することができる。
【0030】
コンピュータプログラム(例えば、開示されたソフトウェアを実装するコンピュータ実行可能コード)は、メインメモリ215及び/又は二次メモリ220に記憶される。コンピュータプログラムはまた、通信インターフェース240を介して受信され、メインメモリ215及び/又は二次メモリ220に記憶され得る。かかるコンピュータプログラムは、実行されると、システム200が、本明細書の他の場所で説明されるような開示される実施形態の種々の機能を行うことを可能にする。
【0031】
本明細書で使用される場合、「コンピュータ可読媒体」という用語は、コンピュータ実行可能コード及び/又は他のデータをシステム200に、又はシステム200内に提供するために使用される任意の非一時的コンピュータ可読記憶媒体を指すために使用される。かかる媒体の例として、メインメモリ215、二次メモリ220(内部メモリ225、取り外し可能媒体230、及び外部記憶媒体245を含む)、及び通信インターフェース240と通信可能に結合された任意の周辺デバイス(ネットワーク情報サーバ又は他のネットワークデバイスを含む)が挙げられる。これらの非一時的コンピュータ可読媒体は、実行可能コード、プログラミング命令、ソフトウェア、及び/又は他のデータをシステム200に提供するための手段である。
【0032】
ソフトウェアを使用して実装される一実施形態では、ソフトウェアは、コンピュータ可読媒体上に記憶され、取り外し可能媒体230、I/Oインターフェース235、又は通信インターフェース240を経由して、システム200にロードされてもよい。かかる一実施形態では、ソフトウェアは、電気通信信号255の形態でシステム200にロードされる。ソフトウェアは、プロセッサ210によって実行されると、好ましくは、プロセッサ210に、本明細書の他の場所で説明されるプロセス及び機能のうちの1つ以上を行わせる。
【0033】
一実施形態では、I/Oインターフェース235は、システム200の1つ以上の構成要素と1つ以上の入力及び/又は出力デバイスとの間のインターフェースを提供する。例示的な入力デバイスは、限定ではなく、センサ、キーボード、タッチ画面又は他のタッチセンシティブデバイス、カメラ、バイオメトリックセンシングデバイス、コンピュータマウス、トラックボール、ペンベースのポインティングデバイスなどを含む。出力デバイスの例としては、他の処理デバイス、プリンタ、陰極線管(CRT)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プリンタ、真空蛍光ディスプレイ(VFD)、表面伝導型電子放出ディスプレイ(SED)、電界放出ディスプレイ(FED)などが挙げられるが、これらに限定されない。ある場合には、タッチパネルディスプレイ(例えば、スマートフォン、タブレット、又は他のモバイルデバイス内)の場合など、入力及び出力デバイスが組み合わせられてもよい。
【0034】
システム200はまた、音声ネットワーク及び/又はデータネットワーク(例えば、ユーザシステム130の場合)を経由した無線通信を促進する、任意選択の無線通信構成要素を含み得る。無線通信構成要素は、アンテナシステム270、無線システム265、及びベースバンドシステム260を含む。システム200において、無線周波数(RF)信号は、無線システム265の管理の下でアンテナシステム270によって無線で送受信される。
【0035】
一実施形態では、アンテナシステム270は、1つ以上のアンテナと、アンテナシステム270に送信信号経路及び受信信号経路を提供するためにスイッチング機能を実行する1つ以上のマルチプレクサ(図示せず)とを含み得る。受信経路では、受信されたRF信号は、マルチプレクサから低雑音増幅器(図示せず)に結合され得、低雑音増幅器は、受信されたRF信号を増幅し、増幅された信号を無線システム265に送信する。
【0036】
代替的な実施形態では、無線システム265は、種々の周波数を介して通信するように構成された1つ以上の無線機を含み得る。一実施形態では、無線システム265は、デモジュレータ(図示せず)とモジュレータ(図示せず)とを1つの集積回路(IC)に組み合わせることができる。デモジュレータ及びモジュレータは、別々の構成要素でもあり得る。入力経路では、デモジュレータはRF搬送波信号を除去してベースバンド受信音声信号を残し、これが無線システム265からベースバンドシステム260に送信される。
【0037】
受信された信号が(例えば、スマートフォンを備えるユーザシステムのための)オーディオ情報を含む場合、ベースバンドシステム260は信号をデコードし、それをアナログ信号に変える。次に、信号は増幅され、スピーカに送信される。ベースバンドシステム260はまた、マイクロフォンからアナログオーディオ信号を受信する。これらのアナログオーディオ信号は、デジタル信号に変えられて、ベースバンドシステム260によって符号化される。ベースバンドシステム260はまた、送信のためにデジタル信号を符号化し、無線システム265のモジュレータ部分にルーティングされるベースバンド送信オーディオ信号を生成する。モジュレータは、ベースバンド送信オーディオ信号をRFキャリア信号と混合し、アンテナシステム270にルーティングされ、電力増幅器(図示せず)を通過し得るRF送信信号を生成する。電力増幅器は、RF送信信号を増幅し、それをアンテナシステム270にルーティングし、信号は、送信のためにアンテナポートにスイッチされる。
【0038】
ベースバンドシステム260はまた、プロセッサ(複数可)210と通信可能に結合される。プロセッサ(複数可)210は、データ記憶領域215及び220にアクセスすることができる。プロセッサ(複数可)210は、好ましくは、メインメモリ215又は二次メモリ220に記憶され得る命令(すなわち、開示されたソフトウェアなどのコンピュータプログラム)を実行するように構成される。コンピュータプログラムはまた、ベースバンドプロセッサ260から受信され、メインメモリ210又は二次メモリ220に記憶されるか、又は受信時に実行され得る。かかるコンピュータプログラムは、実行されると、システム200が、開示された実施形態の種々の機能を実施することを可能にし得る。
【0039】
2.プロセスの概要
次に、MAP及びCRMシステムのための機械学習支援自動タクソノミーのためのプロセスの実施形態を詳細に説明する。説明されるプロセスは、1つ以上のハードウェアプロセッサ(例えば、プロセッサ210)によって実行される1つ以上のソフトウェアモジュールにおいて、例えば、ソフトウェアアプリケーション(例えば、サーバアプリケーション112、クライアントアプリケーション132、及び/又はサーバアプリケーション112とクライアントアプリケーション132との両方を含む分散アプリケーション)として具現化することができ、ソフトウェアアプリケーションの一部又はモジュールがプラットフォーム110によって実行され、ソフトウェアアプリケーションの他の部分又はモジュールがユーザシステム(複数可)130によって実行されるように、プラットフォーム110のプロセッサ(複数可)によって完全に、ユーザシステム(複数可)130のプロセッサ(複数可)によって完全に実行することができ、又はプラットフォーム110及びユーザシステム(複数可)130にわたって分散させることができることを理解されたい。説明するプロセスは、ソースコード、オブジェクトコード、及び/又はマシンコードで表される命令として実装され得る。これらの命令は、ハードウェアプロセッサ(複数可)210によって直接実行されてもよく、又は代替的に、オブジェクトコードとハードウェアプロセッサ210との間で動作する仮想マシンによって実行されてもよい。加えて、開示されるソフトウェアは、1つ以上の既存のシステム上に構築されるか、又はそれとインターフェース接続されてもよい。
【0040】
代替的に、説明するプロセスは、ハードウェア構成要素(例えば、汎用プロセッサ、集積回路(IC)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブル論理デバイス、個別ゲート若しくはトランジスタ論理など)、ハードウェア構成要素の組み合わせ、又はハードウェア構成要素とソフトウェア構成要素との組み合わせとして実装され得る。ハードウェアとソフトウェアとの互換性を明確に示すために、種々の例示的な構成要素、ブロック、モジュール、回路、及びステップが、本明細書では概してそれらの機能に関して説明される。この種の機能性がハードウェアとして実施されるか又はソフトウェアとして実施されるかは、特定の用途及びシステム全体が負う設計上の制約に依存する。当業者は、各特定用途のための様々な方法において、記載された機能性を実施することができるが、この種の実装形態の決定は、本発明の範囲からの逸脱を生じさせると解釈されてはならない。加えて、構成要素、ブロック、モジュール、回路、又はステップ内の機能のグループ化は、説明を容易にするためのものである。特定の機能又はステップは、本発明から逸脱することなく、1つの構成要素、ブロック、モジュール、回路、又はステップから別の構成要素、ブロック、モジュール、回路、又はステップに移動され得る。
【0041】
更に、本明細書で説明されるプロセスは、サブプロセスの特定の配置及び順序で示されているが、各プロセスは、より少ない、より多い、又は異なるサブプロセス、並びにサブプロセスの異なる配置及び/又は順序で実装されてもよい。加えて、別のサブプロセスの完了に依存しない任意のサブプロセスは、サブプロセスが特定の順序で説明又は図示されている場合であっても、その他の独立したサブプロセスの前後、又はそれと並行して実行されてもよいことを理解されたい。
【0042】
2.1.操作
図3は、一実施形態による、タクソノミー分類器として機能する予測モデルを使用して、タクソノミーを自動化するプロセス300を示している。一実施形態では、プロセス300は、プラットフォーム110上のサーバアプリケーション112によって実装される。しかしながら、代替的な実施形態では、プロセス300は、ユーザシステム130上のクライアントアプリケーション132によって、又はサーバアプリケーション112によって実装されるいくつかのサブプロセス及びクライアントアプリケーション132によって実装される他のサブプロセスを伴う分散ソフトウェアアプリケーションとして実装され得る。いずれの場合も、プロセス300は、データが受信されるときにリアルタイムで、特定の量のデータが受信された後に、ユーザ動作などに応答して、反復的に又は周期的に(例えば、毎日)実施され得る。プロセス300は、プラットフォーム110との組織アカウントを有する各組織(例えば、商品又はサービスなどの1つ以上の製品を販売する企業)に関連付けられたデータに対して独立して実施することができる。1人以上のユーザ(例えば、組織の従業員又は他の代理人)は、ユーザアカウントに独立してログインし、自身が責任を負う組織のデータを管理するための個々の認証証明書とともに、この組織アカウントの下にユーザアカウントを有することができる。代替的に、組織アカウントは、認証証明書の単一のセットを有する単一のユーザアカウントであってもよい。いずれの場合も、ユーザは、認証証明書を利用して、サーバアプリケーションにログインし、組織と関連付けられたデータ及び設定にアクセスし、管理してもよい。
【0043】
サブプロセス310において、1つ又は複数のアクティビティレコードを含むデータが受信されるか、又は他の方法で取得される。データは、ユーザの組織によって管理及び利用され、(例えば、ユーザ指定の設定を使用して)組織アカウントの下でプラットフォーム110とインターフェースするように構成される、MAP及び/又はCRMシステムなどの1つ以上の外部システム140から取得されてもよい。MAPは、組織が複数のチャネル(例えば、電子メール、ソーシャルメディア、ウェブサイトなど)上でより効果的にマーケティングすることを可能にする反復タスクを自動化するソフトウェアプラットフォームである。MAPは、概して、マーケティング人員がオンライン及びオフラインのマーケティングキャンペーンを計画し、調整し、管理し、測定し、マーケティングキャンペーンによって生成されたリード(すなわち、潜在的な顧客)を管理することを可能にするダッシュボードを提供し、これらのリードを実際の顧客(すなわち、組織によって提供される製品の購入者)に変えることを目標とする。MAPの例には、カリフォルニア州サンマテオのMarketo,Inc.によって提供されるMarketo(商標)製品、テキサス州オースティンのOracle Corp.によって提供されるEloqua(商標)製品、カリフォルニア州サンフランシスコのSalesforce.com,Inc.によって提供されるPardot(商標)製品、マサチューセッツ州ケンブリッジのHubspot,Inc.によって提供される製品などが含まれる。CRMシステムは、組織の種々の通信チャネル(例えば、ウェブサイト、電話、電子メール、リアルタイムチャット、ソーシャルメディアなど)からの過去、現在、及び潜在的な顧客についてのデータをコンパイルし、それらの顧客を管理するための種々のツールを提供することができる。CRMシステムの一例は、カリフォルニア州サンフランシスコのSalesforce.com,Inc.によって提供されるCRMソフトウェアである。MAP及びCRMシステムは、顧客のアクティビティレコードを収集するための最もよく知られているタイプのシステムであるが、顧客(例えば、過去の、現在の、及び/又は潜在的な顧客)のアクティビティレコードを収集することができる任意のシステムが、サブプロセス310において取得されるデータのソースであり得ることを理解されたい。例えば、一実施形態では、外部システム140のウェブサイトにビーコンをインストールして、ウェブサイトへの訪問者のアクティビティ及びIPアドレスを追跡し、追跡されたデータをアクティビティレコードとして記憶することができる。
【0044】
システムのタイプにかかわらず、外部システム140は、ネットワーク(複数可)120を介してこれらのアクティビティレコードをプラットフォーム110に通信することができる。例えば、外部システム140は、プラットフォーム110のAPIを介してプラットフォーム110にアクティビティレコードを「プッシュ」してもよい。代替的に、プラットフォーム110は、外部システム140のAPIを介して外部システム140からアクティビティレコードを「プル」することができる。別の代替として、アクティビティレコードは、プラットフォーム110に登録されたユーザアカウントを介してユーザによってプラットフォーム110に手動でアップロードされてもよい。いずれの場合も、アクティビティレコードは、ウェブサイトのウェブページ(例えば、組織のホームページ又は製品サイト)への訪問、(例えば、マーケティングキャンペーンの電子メールメッセージ内の)ハイパーリンクのクリック、ウェブサイト上でのオンラインフォームの提出(例えば、検索クエリ、連絡先フォーム、製品の価格見積の要求、ジョブ提出、会議又はトレードショー登録、製品試験など)、ウェブサイトからの電子文書のダウンロード(例えば、ホワイトペーパーなど)、ウェブサイト上でのメディアの再生(例えば、ビデオ、ウェビナー、デモンストレーションなど)、ニュース又は他のメディアフィードからの購読又は購読解除、会議又はトレードショーのアテンド、顧客サービス代表者への電話、ボット又は人間の顧客サービス代表者とのリアルタイムチャット、店内訪問、組織からのソーシャルメディア投稿への関与(例えば、再投稿、「いいね」、コメントなど)、オンラインディスカッションフォーラムへの関与などの任意のオンライン又はオフラインアクティビティを表すことができる。
【0045】
サブプロセス320では、データが前処理される。特に、データは、(例えば、外部システム140において表されるような)そのネイティブスキーマから、プラットフォーム110によって使用される共通スキーマに正規化又は標準化され得る。換言すれば、異なるソースからの異なるフォーマットのデータの全てが、共通のフォーマットに変えられる。更に、データ内のテキストは、前処理ステップの固定されたシーケンスに従って正規化又は標準化することができる。例えば、テキストは、キャメルケースの各単語を別個の単語に分離すること、記号をスペースに置き換えること、サポートされていない言語のテキスト(例えば、非英語テキスト)をスペースに置き換えること、数字をスペースに置き換えること、複数の連続するスペースを単一のスペースに変えること、頭字語を拡張すること、短縮形を拡張すること、全てのテキストを小文字に変えることなどによって正規化され得る。
【0046】
一実施形態では、共通スキーマは、共通の中間表現を定義することができる。例えば、データを提供する各外部システム140(例えば、MAP、CRMシステムなど)は、フィールド及びデータタイプの独自の選択を使用して定義されたテーブルのそれ自体のセットを使用して、そのデータを記憶及び管理してもよい。サブプロセス320は、これらの異なるデータソースの各々の表から全ての関連する使用可能な情報を抽出して、そのデータソースの専有テーブルに表された各アクティビティの共通の中間表現にすることができる。共通の中間表現は、各アクティビティレコードの関連データをアセンブルする、標準的な固定構造を有する1つ以上の表を含み得る。有利には、共通の中間表現の表(複数可)は、共通のスキーマに従って固定された構造を有し、その結果、サブプロセス300の各反復中に同じ列から特徴を抽出することができる。これにより、タクソノミーの自動化が可能になる。特に、データソースは、共通の中間表現内の表(複数可)の固定された構造内の全ての列に対応するデータを有するとは限らないため、共通の中間表現内の表(複数可)内の全ての列が、必ずしも所与のデータソースからのアクティビティレコードのデータでポピュレートされるとは限らない。
【0047】
前処理の後、データは、共通の中間表現で表される1つ以上のアクティビティレコードを含む。これらのアクティビティレコードの各々から、1つ以上の特徴のセットが、適用されるモデルの各々について抽出され得る。一実施形態では、アクティビティレコードによって表されるアクティビティの異なる属性に対する異なるタクソノミーに各々関連付けられた複数の異なるモデルが、アクティビティレコードに適用される。例えば、一実施形態では、アクション特徴330がアクションモデル336について抽出され、チャネル特徴340がチャネルモデル346について抽出され、タイプ特徴350がタイプモデル356について抽出される。更に、アクティビティレコードがオンラインリソースのユニフォームリソースロケータ(URL)を含む場合、ウェブモデル366についてウェブ特徴360を抽出することができる。概して、MAPから取得されたアクティビティレコードは、典型的には、ウェブ特徴360がウェブモデル366について抽出され得るように、URLを含む。一方、CRMシステムから取得されたアクティビティレコードは、通常、URLを含まないため、ウェブ特徴を抽出する必要がなく、その場合、ブロック360~368を省略することができる。
【0048】
MAPから取得されたアクティビティレコードごとに正規化され、共通の中間表現に記憶され得る関連データの例は、限定はしないが、ユーザ識別子、ユーザアクティビティ、ユーザアクティビティのタイプ、ユーザアクティビティの詳細、ユーザのインターネットプロトコル(IP)アドレス、ユーザアクティビティに関連付けられたマーケティングキャンペーンの識別子、マーケティングキャンペーンの名前、マーケティングキャンペーンの説明、ウェブ訪問に関連付けられたURL、参照元(例えば、ユーザをURLに参照したウェブページのアドレス)、(例えば、マーケティングキャンペーンの一部として送信された)電子メールメッセージ内のクリックイベント、電子メールメッセージの件名、電子メールメッセージの本文、(例えば、電子メールメッセージが送信された)電子メールアドレス、使用されたプログラムの説明、アセット、提出されたフォームの名前、ユーザアクティビティの日付、アクティビティレコードの日付などを含み得る。一実施形態では、アクティビティレコードのデータソースがMAPである場合、ユーザアクティビティのタイプ、マーケティングキャンペーンの名称、及びマーケティングキャンペーンの説明が、アクション特徴330、チャネル特徴340、及びタイプ特徴350の各々として各アクティビティレコードから抽出される。CRMシステムからキャンペーン(複数可)のために取得される各アクティビティレコードのための共通の中間表現において正規化され、記憶され得る関連データの例は、キャンペーンの識別子、キャンペーンの名前、キャンペーンのタイプ、キャンペーンの説明、キャンペーンメンバー識別子、キャンペーンメンバーステータス、キャンペーンメンバー説明、連絡先電子メール、リード電子メール、アクティビティレコードの日付などを含み得るが、これらに限定されない。CRMシステムからのスケジューリング情報(例えば、カレンダー、ミーティングスケジュールなどから同期される)においてイベント(複数可)について取得される各アクティビティレコードについての共通の中間表現において正規化され記憶され得る関連データの例は、ソースのタイプ、イベント識別子、アテンド者識別子(複数可)、イベントの件名、イベントの位置、イベントの期間、イベントの説明、イベントのタイプ、イベントが繰り返されているか否か、イベントの日付、レコードの日付などを含み得るが、これらに限定されない。所与のアクティビティレコードから抽出された特徴がタイプ(例えば、ソースのタイプ、イベントのタイプなど)を含み得るとしても、このタイプは、タイプモデル356によって出力される予測されたタイプ358とは異なり得ることを理解されたい。特に、予測されたタイプ358の値は、プラットフォーム110によって使用されるタイプのタクソノミーにおけるクラスであるが、特徴内のタイプは、通常、プラットフォーム110によって使用されるタクソノミーにおけるクラスに直接対応しない、データソース(例えば、外部システム140)によって定義される任意の値を有する。
【0049】
アクション特徴330、チャネル特徴340、及びタイプ特徴350は、所与のアクティビティレコードに対して異なってもよく、又は同じであってもよい。一実施形態では、特徴330、340、及び350は各々、所与のアクティビティレコードに対する共通の中間表現の表(複数可)内の列の1つ又は複数(潜在的に全てを含む)からのテキストを単一の文字ストリングに連結することによって生成される。特徴330、340、及び/又は350が互いに異なるとき、それらは、互いとは異なる、重複又は非重複の列のセットから導出され得ることを理解されたい。例えば、CRMシステムからのキャンペーンデータに関して、アクション特徴330及びチャネル特徴340は、キャンペーンのタイプ及びキャンペーンメンバーステータスを含む、又はそれらからなってもよい一方で、タイプ特徴350は、キャンペーンのタイプ、キャンペーンメンバーステータス、キャンペーンの名称、及びキャンペーンの説明を含む、又はそれらからなってもよい。キャンペーンの名前及び説明をタイプ特徴350に追加することは、表現されたアクティビティがその一部であるキャンペーンの種類の決定を容易にする。別の例として、CRMシステムからのイベントデータに関して、アクション特徴330は、イベントの件名及びソースのタイプを含むか、又はそれらからなってもよく、チャネル特徴340は、イベントの件名、ソースのタイプ、及びイベントの場所を含むか、又はそれらからなってもよく、タイプ特徴350は、イベントの件名、ソースのタイプ、及びイベントの説明を含むか、又はそれらからなってもよい。アクティビティレコードがURLを含む場合、そのアクティビティレコードのウェブ特徴360は、URLの1つ以上の構成要素(例えば、プロトコル、サブドメイン、ドメイン、パス、クエリ、パラメータ、フラグメントなど)と、URLに位置するオンラインリソースに関するメタデータ(例えば、タイトル、説明、キーワード、及びHTMLソースコードに埋め込まれたメタタグ、HTMLイベントなど)との連結を含み得る。各アクティビティレコードに対して、そのアクティビティレコードに対する共通の中間表現の表(複数可)内の列(複数可)からのテキストの連結は、モデル336、346、356、及び366の各々に対して、1つの単語又はスペースによって分離された複数の単語を含む特徴ストリングをもたらし得る。
【0050】
最終的な特徴330、340、350、及び/又は360の各々は、次いで、ベクトル化関数を使用してそれぞれの特徴ストリングから特徴ベクトルとして生成され得る。ベクトル化は、コンピュータ及びモデルが低レベルでテキストをより容易に処理できるようにするために実施される。サブプロセス320におけるベクトル化の一実施形態では、各特徴ストリングは、テキスト埋め込みを生成するためのベクトル空間モデルに従って固定次元ベクトルに変えられる。特に、特徴ストリングXは、N次元ベクトルVを出力するベクトル化関数Fに入力される(すなわち、F(X)=V)。例えば、

(“Today is a good day!”)=[v,v,v,…,v]=[0.435,-1.923,-0.553,…,0.123]

したがって、一実施形態において、サブプロセス320の出力は、サブプロセス310において取得されたデータ内のアクティビティレコードの各々についての、モデル336、346、356、及び366(該当する場合)の各々についての特徴ストリングの各々についてのN次元ベクトルVである。換言すれば、アクション特徴330、チャネル特徴340、タイプ特徴350、及びウェブ特徴360(該当する場合)の各々は、N次元ベクトルVを含むことができ、各アクティビティレコードは、アクション特徴330、チャネル特徴340、タイプ特徴350、及びウェブ特徴360(該当する場合)のセットを生成する。Nは、ベクトル化関数Fに使用される特定のベクトル空間内の次元数であることを理解されたい。
【0051】
ベクトル化関数Fの選択は、問題の性質及び複雑さに依存する。一実施形態では、Google LLC(カリフォルニア州マウンテンビュー)によるUniversal Sentence Encoderなどの言語変換器が、ベクトル化関数Fとして使用される。言語変換器は、自然言語文を入力として受け入れ、N次元ベクトル空間における文の位置を表すN次元実数値ベクトルを出力する深層学習モデルである。特に、各出力ベクトルは、N次元ベクトル空間内でベクトルが互いに近い文が、N次元ベクトル空間内でベクトルが互いに遠い文よりも意味が類似するように、入力文の意味を符号化する。Universal Sentence Encoderの場合、N=512であり、各出力ベクトルは512個の実数値からなる。これは1つの非限定的な例にすぎず、ベクトル化関数Fのために他のモデルが使用され得ることを理解されたい。しかしながら、ベクトル化関数Fがコンテキストアウェアであることは有益であり、これは、多くの特徴ストリングは、フレーズ(例えば、「送信済み電子メール」、「記入済みフォーム」など)、文、及び短い段落さえも含むためである。加えて、異なるデータソースは、異なる言い回しを使用することになり、コンテキストアウェア手法を使用することは、類似のタイプのデータを有する新しいタイプのデータソースを含む、異なる言い回しが使用されるときでも、モデルが複数のデータソースにわたって機能することを可能にする。換言すれば、コンテキストアウェアベクトル化関数Fは、人工知能が全てのタイプのデータソースの特定の言語を理解することを可能にする。
【0052】
サブプロセス332では、アクティビティレコードに対応するアクション特徴330の各セットについて、アクション特徴330のそのセットをルックアップテーブル333へのインデックスとして使用してルックアップが実施される。ルックアップテーブル333は、以前に抽出されたアクション特徴330のセットを以前に決定されたアクションに関連付ける。ルックアップテーブル333内の以前に決定されたアクションは、アクションモデル336によって以前に予測されたアクション338、及び/又は、例えば、以前に予測されたアクション338をオーバーライドするためにユーザによって指定されたアクションであってもよい(例えば、以下に説明するように、サブプロセス380において)。サブプロセス332において実施されたルックアップによって結果(すなわち、以前に決定されたアクション)が返された場合(すなわち、サブプロセス334における「イエス」)、その返された結果は、アクションモデル336を適用することなくアクション338として出力される。換言すれば、サブプロセス332におけるルックアップが成功した場合、アクションモデル336は、不必要な計算を回避するためにバイパスされる。これは、アクティビティレコードが以前に見られたアクティビティレコードと異なるたびに発生し得る。例えば、同じマーケティングキャンペーンから同じ電子メールを開く2つの異なるリードは、各リードに対して同じアクティビティレコードをもたらす場合があり、したがって、同じアクション338として分類されるべきである。有利には、以前に見られたアクション特徴330についてアクションモデル336をバイパスすることは、実行時間及び複雑さを低減する。
【0053】
サブプロセス332において実施されたルックアップによって結果が返されないか、又はヌル結果が返された場合(すなわち、サブプロセス334における「ノー」)、アクションモデル336が、検討中の現在のアクティビティレコードに対するアクション特徴330に適用されて、アクションのタクソノミーからそのアクティビティレコードに対するアクション338が予測される。換言すれば、アクションモデル336は、各アクティビティレコードを、そのアクティビティレコードから抽出されたアクション特徴330によって表されるように、アクションのタクソノミーにおけるアクションを表す複数のクラスのうちの1つに分類する。一実施形態では、アクションの異なるタクソノミーが、データの異なるソースに対して提供され得る。この場合、サブプロセス310において取得されたデータのソースに基づいて、プロセス300のために異なるルックアップテーブル333及び/又は異なるアクションモデル336を選択することができる。例えば、データがMAPから取得される場合、アクションのタクソノミーにおける複数のクラスは、「注意」、「クリック済み」、「変えられている」、「削除済み」、「エラー」、「記入済み」、「マージ」、「送信済み」、「サブスクライブ」、「アンサブスクライブ」、「閲覧」、及び/又は「その他」を含むか、又はそれらからなってもよい。データがCRMシステムからのキャンペーンデータから取得される場合、アクションのタクソノミーにおける複数のクラスは、「アテンド済み」、「クリック済み」、「ダウンロード済み」、「エラー」、「エンゲージ済み」、「記入済み」、「招待済み」、「否定的」、「欠席」、「肯定的」、「応答済み」、「送信済み」、「アンスクライブ」、「閲覧」、及び/又は「その他」を含み得るか、又はそれらからなってもよい。データがCRMシステムからのイベントデータから取得される場合、アクションのタクソノミーにおける複数のクラスは、「アテンド済み」、「ブロック済み」、「予約済み」、「招待済み」、「レコード済み」、及び/又は「送信済み」を含むか、又はそれらからなってもよい。本明細書で開示される特定のタクソノミーの全ては、本開示の理解を助けるための、単に例示的な、非限定的な例であることを理解されたい。任意のタクソノミーが開示される実施形態とともに使用されてもよいが、各モデルは、典型的には、タクソノミーにおける学習されたクラスが明確に分離可能であるときに最良に機能し、その結果、モデルは、明確な予測を行い、テキスト要素と学習されたクラスとの間の関連付けを駆動することができる。
【0054】
サブプロセス342において、アクティビティレコードに対応するチャネル特徴340の各セットについて、ルックアップテーブル343へのインデックスとしてチャネル特徴340のそのセットを使用してルックアップが実施される。ルックアップテーブル343は、以前に抽出されたチャネル特徴340のセットを以前に決定されたチャネルと関連付ける。ルックアップテーブル343内の以前に決定されたチャネルは、チャネルモデル346によって以前に予測されたチャネル348、及び/又は、例えば、以前に予測されたチャネル348をオーバーライドするためにユーザによって指定されたチャネルであってもよい(例えば、以下に説明するように、サブプロセス380において)。サブプロセス342において実施されたルックアップによって結果(すなわち、以前に決定されたチャネル)が返された場合(すなわち、サブプロセス344における「イエス」)、その返された結果は、チャネルモデル346を適用することなく、チャネル348として出力される。換言すれば、サブプロセス342におけるルックアップが成功した場合、チャネルモデル346は、不必要な計算を回避するためにバイパスされる。
【0055】
サブプロセス342において実施されるルックアップによって結果が返されないか、又はヌル結果が返された場合(すなわち、サブプロセス344における「ノー」)、チャネルのタクソノミーからそのアクティビティレコードのチャネル348を予測するために、チャネルモデル346が、検討中の現在のアクティビティレコードのチャネル特徴340に適用される。換言すれば、チャネルモデル346は、そのアクティビティレコードから抽出されたチャネル特徴340によって表されるような各アクティビティレコードを、チャネルのタクソノミーにおけるチャネルを表す複数のクラスのうちの1つに分類する。一実施形態では、チャネルの異なるタクソノミーが、データの異なるソースに対して提供され得る。この場合、サブプロセス310で取得されたデータのソースに基づいて、プロセス300のために異なるルックアップテーブル343及び/又は異なるチャネルモデル346を選択することができる。例えば、データがMAPから取得される場合、チャネルのタクソノミーにおける複数のクラスは、「広告」、「アラート」、「電子メール」、「フォーム」、「リード」、「マーケティング業者」、「salesforce.com」、「ソーシャル」、「ビデオ」、「ウェブページ」、及び/又は「その他」を含むか、又はそれらからなってもよい。データがCRMシステムからのキャンペーンデータから取得される場合、チャネルのタクソノミーにおける複数のクラスは、「広告」、「連絡先」、「ダイレクト」、「電子メール」、「フォーム」、「リンク」、「リスト」、「ライブ」、「オンデマンド」、「オンライン」、「検索」、「ソーシャルメディア」、「テレマーケティング」、「ビデオ」、及び/又は「ウェブページ」を含むか、又はそれらからなってもよい。データがCRMシステムからのイベントデータから取得される場合、チャネルのタクソノミーにおける複数のクラスは、「コール」、「ミーティング」、「仮想」、及び/又は「その他」を含むか、又はそれらからなってもよい。
【0056】
サブプロセス352では、アクティビティレコードに対応するタイプ特徴350の各セットについて、ルックアップテーブル353へのインデックスとしてタイプ特徴350のそのセットを使用してルックアップが実施される。ルックアップテーブル353は、以前に抽出されたタイプ特徴350のセットを以前に決定されたタイプと関連付ける。ルックアップテーブル353内の以前に決定されたタイプは、タイプモデル356によって以前に予測されたタイプ358、及び/又は、例えば、以前に予測されたタイプ358をオーバーライドするためにユーザによって指定されたタイプであってもよい(例えば、以下に説明するように、サブプロセス380において)。サブプロセス352において実施されたルックアップによって結果(すなわち、以前に決定されたタイプ)が返された場合(すなわち、サブプロセス354における「イエス」)、その返された結果は、タイプモデル356を適用することなく、タイプ358として出力される。換言すれば、サブプロセス352におけるルックアップが成功した場合、タイプモデル356は、不必要な計算を回避するためにバイパスされる。
【0057】
サブプロセス352において実施されたルックアップによって結果が返されないか、又はヌル結果が返された場合(すなわち、サブプロセス354における「ノー」)、タイプのタクソノミーからそのアクティビティレコードのタイプ358を予測するために、タイプモデル356が、検討中の現在のアクティビティレコードのタイプ特徴350に適用される。換言すれば、タイプモデル356は、そのアクティビティレコードから抽出されたタイプ特徴350によって表されるような各アクティビティレコードを、タイプのタクソノミーにおけるタイプを表す複数のクラスのうちの1つに分類する。一実施形態では、タイプの異なるタクソノミーが、データの異なるソースに対して提供され得る。この場合、サブプロセス310で取得されたデータのソースに基づいて、プロセス300のために異なるルックアップテーブル353及び/又は異なるタイプモデル356を選択することができる。例えば、データがMAPから取得される場合、タイプのタクソノミーにおける複数のクラスは、「ウェビナー」、「イベント」、「コンテンツ」、「会議/トレードショー」、「デマンド生成」、「ナーチャリング」、「デモ」、「オーガニック」、「メール」、「オペレーショナル」、及び/又は「その他」を含むか、又はそれらからなってもよい。データが、CRMシステムからのキャンペーンデータから取得される場合、タイプのタクソノミーにおける複数のクラスは、「コンテンツ」、「デマンド生成」、「デモ」、「メール」、「イベント」、「リード生成」、「ナーチャリング」、「トライアル」、「キャンペーン」、「会議/トレードショー」、「ウェビナー」、「ワークショップ」、及び/又は「その他」を含むか、又はそれらからなってもよい。データが、CRMシステムからのイベントデータから取得される場合、タイプのタクソノミーにおける複数のクラスは、「デモ」、「発見」、「一般」、「昼食」、「反復」、「販売」、及び/又は「訓練」を含むか、又はそれらからなってもよい。
【0058】
サブプロセス362では、アクティビティレコード内のURLに対応するウェブ特徴360の各セットについて、ウェブ特徴360のそのセットをルックアップテーブル363へのインデックスとして使用してルックアップが実施される。ルックアップテーブル363は、以前に抽出されたウェブ特徴360のセットを以前に決定されたウェブアクティビティに関連付ける。ルックアップテーブル363内の以前に決定されたウェブアクティビティは、ウェブモデル366によって以前に予測されたウェブアクティビティ368、及び/又は、例えば、以前に予測されたウェブアクティビティ368をオーバーライドするためにユーザによって指定されたウェブアクティビティであってもよい(例えば、以下に説明するように、サブプロセス380において)。サブプロセス362において実施されたルックアップによって結果(すなわち、以前に決定されたウェブアクティビティ)が返された場合(すなわち、サブプロセス364における「イエス」)、その返された結果は、ウェブモデル366を適用することなく、ウェブアクティビティ368として出力される。換言すれば、サブプロセス362におけるルックアップが成功した場合、ウェブモデル366は、不必要な計算を回避するためにバイパスされる。
【0059】
サブプロセス362において実施されたルックアップによって結果が返されないか、又はヌル結果が返された場合(すなわち、サブプロセス364における「ノー」)、ウェブアクティビティのタクソノミーからそのURLに対するウェブアクティビティ368を予測するために、ウェブモデル366が、検討中の現在のアクティビティレコード内のURLに対するウェブ特徴360に適用される。換言すれば、ウェブモデル366は、URLを含む任意のアクティビティレコード内のURLを、そのアクティビティレコードから抽出されたウェブ特徴360によって表されるように、ウェブアクティビティのタクソノミーにおける複数のクラスのうちの1つに分類する。例えば、ウェブアクティビティのタクソノミーにおける複数のクラスは、「製品リサーチ」、「ブログ」、「企業リサーチ」、「キャンペーン」、「検索」、「ケーススタディ」、「ソリューション」、「ホワイトペーパー」、「連絡先」、「デモ」、「訓練」、「製品試験」、「ビデオ」、「ウェビナー」、「サポート」、「ホームページ」、「キャリア」、「会議/トレードショー」、「価格設定」、「コミュニティ」、「アンサブスクライブ」、「製品リサーチ」、「製品ランディングページ」、及び/又は「その他」を含むか、又はそれらからなってもよい。
【0060】
一実施形態では、モデル336、346、356、及び/又は366の各々は確率的である。したがって、入力される特徴(例えば、特徴ベクトル)の各セットについて、モデル336、345、356、及び/又は366は、関連するタクソノミーからの予測されたクラスと、特徴のセットについての予測されたクラスの確率値との両方を出力することができる。確率値は、予測されたクラスが正しいという信頼度を表す。一実施形態では、各モデル336、346、356、及び/又は366は、関連するタクソノミーにおける複数のクラスの各々についての確率値を含む確率ベクトルを出力する。この場合、確率ベクトルのサイズは、タクソノミーにおけるクラスの数と同じであり、所与の確率ベクトル内の確率値は、合計して1.0になり得る。代替的な実施形態では、各モデル336、346、356、及び/又は366は、単に、予測されたクラスとして最も高い確率値を有するクラスを、その最も高い確率値とともに出力することができる。
【0061】
各アクティビティレコードに対するアクション338、チャネル348、タイプ358、及び/又はウェブアクティビティ368としての各モデル336、346、356、及び/又は366による各出力は、後処理することができる。特に、各予測は、その予測が受け入れられるべきか否か、及び/又はその予測がどのように特徴付けられるべきかを決定するために分析され得る。各予測は、信頼できるか、又は信頼できないものいずれかとして、バイナリ用語で特徴付けられ得る。この後処理は、最も高い確率値を有する予測されたクラスの確率値が所定の閾値を満たす(例えば、超える)か否かを判定することを含み得る。予測が所定の閾値を満たす場合、予測は、信頼できるものとして特徴付けられ得る。そうではなく、予測が所定の閾値を満たさない場合、予測は信頼できないものとして特徴付けられ得る。各モデル336、346、356、及び/又は366に対する所定の閾値の値は、試験及び評価中の予測されたクラス及びそれらの対応する確率値の変動に基づいて、それぞれのモデルの訓練中に決定され得る。各モデル336、346、356、及び/又は366は、必ずしもそうではないが、他のモデルとは異なる所定の閾値を有し得ることを理解されたい。一実施形態では、予測が、非常に近い確率値を有する2つのクラス(例えば、0.51の確率値を有する第1のクラス及び0.49の確率値を有する第2のクラスなど、1~3パーセントポイント以内)を含む場合、予測は、所定の閾値を満たす場合であっても、信頼できないものとして特徴付けられ得る。かかる場合、最も高い確率値を有する予測されたクラスを単に選択することは、しばしば、信頼できない分類をもたらし得る。予測が信頼できないものとして特徴付けられるいずれの場合においても、予測されたクラスは、ヌル又はヌルクラスに自動的にオーバーライドされ、それによって、それぞれのモデルの予測を無効にしてもよい。
【0062】
サブプロセス370では、データ内の各アクティビティレコードに対して、そのアクティビティレコードに対して決定されたアクション338、チャネル348、タイプ358、及びウェブアクティビティ368(該当する場合)が、そのアクティビティレコードに対する複合タクソノミー分類に組み合わされる。具体的には、図示された実施形態では、サブプロセス310で受信されたデータ内の各アクティビティレコードは、アクション338、チャネル348、及びタイプ358に関連付けられてもよく、これらの出力の各々が信頼できるものとして特徴付けられていると仮定する。更に、アクティビティレコードがURLを含む場合、この出力が信頼できるものとして特徴付けられていると仮定して、アクティビティレコードはウェブアクティビティ368にも関連付けられる。代替的に、アクティビティレコードがURLを含む場合、アクティビティレコードのタイプは、決定されたウェブアクティビティと置き換えられてもよい(例えば、決定されたウェブアクティビティが信頼できると特徴付けられた場合)。各アクション338は、リードが行ったこと(例えば、リンクをクリックしたこと、フォームに記入したこと、ウェブページを訪れたこと、電子メールを送信したことなど)を表す。各チャネル348は、リードが関連するアクション338(例えば、電子メール、ウェブページ、フォームなど)を実施したメディアを表す。各タイプ358は、関連付けられたアクション338が関連付けられるコンテンツのタイプ(例えば、ホームページ、デモ、ナーチャリング、ギフトなど)を表す。各ウェブアクティビティ368は、関連するアクティビティレコード内のURLにおけるオンラインリソースのタイプを表し、したがって、URLを含むアクティビティレコードのタイプ358の代わりに、又はそれに加えて使用することができる。
【0063】
一実施形態では、アクション338、チャネル348、並びにタイプ358及び/又はウェブアクティビティ368(該当する場合)が全て、所与のアクティビティレコードに対して信頼できる(例えば、所定の閾値を満たす)と特徴付けられる場合、そのアクティビティレコードは、「マッピングされた」というステータスに関連付けられる。そうではなく、アクション338、チャネル348、及びタイプ358のうちの少なくとも1つ、及び/又はウェブアクティビティ368が、信頼できないと特徴付けられる場合、そのアクティビティレコードは、「マッピングされていない」というステータスに関連付けられ得る。しかしながら、代替的な実施形態は、「マッピングされた」及び「マッピングされていない」のステータスを異なる方法で定義することができる。例えば、アクティビティレコードは、アクション338、チャネル348、及びタイプ358、並びに/又はウェブアクティビティ368のうちの少なくとも1つが信頼できると特徴付けられる場合、又はアクション338、チャネル348、及びタイプ358、並びに/又はウェブアクティビティ368の特定のサブセットが信頼できると特徴付けられる場合、「マッピングされた」と定義されてもよく、そうでない場合、「マッピングされていない」と定義されてもよい。
【0064】
オプションのサブプロセス380では、アクション338、チャネル348、タイプ358、及び/又はウェブアクティビティ368(該当する場合)の値のうちの1つ以上が、所与のアクティビティレコードについて確認され、オーバーライドされ、かつ/又は手動で指定され得る。例えば、サーバアプリケーション112は、ユーザがそれぞれのユーザアカウントにログインしたときに、ユーザが各アクティビティレコードの複合タクソノミーを管理することを可能にするグラフィカルユーザインターフェースを提供してもよい。一実施形態では、「マッピングされていない」のステータスが割り当てられた全てのアクティビティレコードの分類は、グラフィカルユーザインターフェースの1つ以上の入力を介した手動分類のために、グラフィカルユーザインターフェースを介して(例えば、ユーザのユーザアカウントのダッシュボード画面において)ユーザに提供されてもよい。グラフィカルユーザインターフェースはまた、「マッピングされた」のステータスが割り当てられたアクティビティレコードの分類を手動で確認及び/又はオーバーライドするための1つ以上の入力を含み得る。例えば、グラフィカルユーザインターフェースは、「マッピングされた」ステータス及び「マッピングされていない」ステータスの各々について、ユーザがアクセスを有するか又はユーザが責任を有する全てのアクティビティレコードのリストを提供してもよい。ユーザは、リスト内の個々のエントリを選択することができ、リスト内のエントリの選択に応答して、グラフィカルユーザインターフェースは、エントリに関する詳細と、エントリが属するクラス(複数可)を変更又は指定し、任意選択で、例えば、「マッピングされた」(例えば、現在分類されている場合)又は「マッピングされていない」(例えば、現在分類されていない場合)と「マッピングしない」との間でエントリのステータスを変更するための1つ以上の入力(例えば、ドロップダウンメニュー)とを提供することができる。「マッピングされた」というステータスを有するアクティビティレコードに対応するエントリの場合、クラスを変更するための入力は、そのエントリのための予測されたクラスで事前にポピュレートされ得る。同様に、エントリのステータスを変更するための入力は、そのエントリの現在のステータスで事前にポピュレートされてもよい。したがって、グラフィカルユーザインターフェースは、ユーザが任意の分類の誤りを識別し、修正することを容易にする。
【0065】
ユーザは、グラフィカルユーザインターフェースを利用して、限定はしないが、各アクティビティレコードに対して以下のアクションのうちの1つ以上を実施することができる。
・アクション338、チャネル348、並びにタイプ358及び/又はウェブアクティビティ368(適用可能な場合)のうちの1つ以上についての予測されたクラスを、ステータス(例えば、「マッピングされている」又は「マッピングされていない」)にかかわらず、関連するタクソノミーにおける複数のクラスのうちの任意の他の1つでオーバーライドする。
・ステータスを「マッピングされた」又は「マッピングされていない」から「マッピングしない」に、又はその逆に変更する。「マッピングしない」ステータスは、ユーザがアクティビティレコードを廃棄又は無視する意図があることを示す。例えば、「マッピングしない」ステータスを有するアクティビティレコードは、サブプロセス390に伝搬されない。
・ステータスを「マッピングされていない」から「マッピングされた」に、又はその逆に変更する。
・一実施形態において、ステータスは、「マッピングされたが確認を必要とする」ステータスを含む。このステータスは、ユーザによる明示的な注意が要求されていることを示す。「マッピングされたが確認を必要とする」ステータスは、アクション338、チャネル348、及びタイプ358、及び/又はウェブアクティビティ368(適用可能な場合)のうちの1つ以上の最も高い確率値が2番目に高い確率値に非常に近い(例えば、1~3パーセントポイント以内)アクティビティレコードに割り当てられ得、したがって、予測されたクラスは信頼できない場合がある。ユーザは、「マッピングされたが確認ステータスを必要とする」各アクティビティレコードをレビューし、そのアクティビティレコードに関連付けられたアクション338、チャネル348、並びにタイプ358及び/又はウェブアクティビティ368(該当する場合)のうちの1つ以上のクラスを確認又は変更することができる。ユーザがクラス(複数可)を確認又は変更すると、アクティビティレコードのステータスは「マッピングされた」に自動的に更新され得る。
【0066】
図4A図4Dは、実施形態による、アクティビティレコードのタクソノミークラスを閲覧、確認、指定、及び/又はオーバーライドすることができるグラフィカルユーザインターフェースの例示的な画面を示している。具体的には、図4Aは概要画面410を示し、図4BはMAP特有のアクティビティ画面420を示し、図4CはCRMキャンペーン特有のアクティビティ画面430を示し、図4DはCRMイベント特有のアクティビティ画面440を示す。
【0067】
概要画面410は、ユーザアカウントに関連付けられたタクソノミー分類の概要を提供する。概要画面410は、保留中であるか、対処する必要があるアクション項目があるか否かをユーザに通知する情報領域412を含み得る。概要画面410はまた、データ概要414及びアクティビティ概要416を含み得る。データ概要414は、直近の期間(例えば、過去1ヶ月)内に取得され処理された、各データソースに関連付けられたデータポイント(すなわち、アクティビティレコード)の数を示すことができる。例えば、これらのデータソースは、少なくとも1つのMAP及び少なくとも1つのCRMシステムを含んでもよい。MAPは、ユーザの組織によって管理及び利用され、関連付けられた組織アカウントの下で構成されるMAPであってもよく、CRMシステムは、ユーザの組織によって管理及び利用され、関連付けられた組織アカウントの下で構成されるCRMシステムであってもよいことを理解されたい。アクティビティ概要416は、各データソース(例えば、MAP、CRMシステムなど)からの各ステータス(例えば、「マッピングされていない」、「マッピングされた」、及び「マッピングしない」)を有するデータポイントの数を、表、グリッド、チャート、又は他のグラフィカル表現で示すことができる。
【0068】
MAP特有のアクティビティ画面420、CRMキャンペーン特有のアクティビティ画面430、及びCRMイベント特有のアクティビティ画面440の各々は、それぞれ、MAPから取得されたアクティビティレコード、CRMシステムからのキャンペーンデータ、及びCRMシステムからのイベントデータのリスト422を含み得る。リスト422は、(例えば、ユーザが全てのエントリ、過去の月からのエントリなどを閲覧し得るように)フィルタリング可能であってもよく、及び/又は(例えば、リスト422の列のうちの1つ以上によって)ソート可能であり得る。リスト422内のエントリの数及び/又はユーザ選好設定に応じて、リスト422は、ページ当たりのエントリの最大数に従ってページ付けすることができることを理解されたい。リスト422内の各エントリは、(例えば、エントリを選択するための)チェックボックス、ステータス(例えば、「マッピングされた」、「マッピングされたが確認を必要とする」、「マッピングされていない」、又は「マッピングしない」のうちの1つを示すアイコン)、エントリによって表されるアクティビティレコードについて決定されたアクション338、エントリによって表されるアクティビティレコードについて決定されたチャネル348、並びにエンティティによって表されるアクティビティレコードについてのタイプ358及び/又はウェブアクティビティ368を含み得る。CRMキャンペーン特有のアクティビティ画面430では、リスト422内の各エントリはまた、エントリによって表されるアクティビティレコードからのキャンペーンメンバーステータスを含み得る。CRMイベント特有のアクティビティ画面440では、リスト422内の各エントリはまた、エントリによって表されるアクティビティレコード内のイベントの対象、そのイベントの場所、及びアクティビティレコードの日付を含み得る。
【0069】
リスト422内の各エントリは選択可能であり得る。ユーザがエントリを選択すると、グラフィカルユーザインターフェースは、選択されたエントリによって表されるアクティビティレコードに関する詳細をフレーム424にポピュレートすることができる。これらの詳細は、アクティビティレコードのステータス(例えば、「マッピングされた」、「マッピングされていない」、「マッピングされているが確認を必要とする」、又は「マッピングしない」)、関連するアクションのタクソノミーにおける全ての利用可能なアクションのクラスからアクティビティレコードに関連付けられるアクションを選択するための入力、関連するチャネルのタクソノミーにおける全ての利用可能なチャネルのクラスからアクティビティレコードに関連付けられるチャネルを選択するための入力、アクティビティレコードに関連付けられるタイプ、及び/又はアクティビティレコードに関する他の詳細を含み得る。フレーム424内のアクティビティレコードに関する他の詳細は、アクティビティレコードのソースに依存し得る。例えば、MAPからのアクティビティレコードに関する他の詳細は、アクティビティレコードが取得された日付などを含んでもよい。CRMシステムのキャンペーンデータからのアクティビティレコードに関する他の詳細は、キャンペーンメンバーステータス、アクティビティレコードが取得された日付などを含み得る。CRMシステムのイベントデータからのアクティビティレコードについての他の詳細は、イベントの対象、イベントの場所、アクティビティレコードが取得された日付、アクティビティレコードに対する最後の更新の日付(例えば、アクティビティレコードを更新した個体の識別子を含む)、更新の監査証跡を閲覧するためのリンクなどを含み得る。フレーム424はまた、アクティビティレコードのマッピングに対する任意の変更を保存し、かつ/又は任意のかかる変更を取り消すための1つ以上の入力を含み得る。
【0070】
サブプロセス390において、サブプロセス380において受信された任意のオーバーライドを含む、各アクティビティレコードに対する組み合わされたタクソノミー分類は、それぞれのアクティビティレコードに関連付けて、データウェアハウスに保存される。一実施形態では、アクティビティレコードの組み合わされたタクソノミー分類は、ユーザが(例えば、グラフィカルユーザインターフェース内の入力を選択することによって)それを公開するまで、データウェアハウスの外部に記憶され得る。したがって、ユーザは、アクション338、チャネル348、タイプ358、及びウェブアクティビティ368(該当する場合)を、それらがそれぞれのアクティビティレコードに関連付けてデータウェアハウスに保存される前に、レビュー、確認、及び/又はオーバーライドすることができる。タクソノミー化されたアクティビティレコードのうちの一部は、データウェアハウスに保存されることなく破棄され得ることを理解されたい(例えば、「マッピングしない」ステータスに関連付けられたもの)。
【0071】
一実施形態では、データウェアハウスに保存された、最終的に決定されたタクソノミークラスのうちの1つ以上(潜在的に全てを含む)を、それらのそれぞれのルックアップテーブル333、343、353、及び363に組み込むことができる。例えば、各アクティビティレコードに対して、そのアクティビティから抽出されたアクション特徴330は、ルックアップテーブル333において、そのアクティビティレコードに対してサブプロセス390において保存された最終的な決定されたアクションへのインデックスとして保存されてもよい。同様に、そのアクティビティレコードから抽出されたチャネル特徴340は、そのアクティビティレコードについてサブプロセス390において保存された最終決定チャネルに対するインデックスとしてルックアップテーブル343に保存されてもよい。同様に、そのアクティビティレコードから抽出されたタイプ特徴350は、そのアクティビティレコードについてサブプロセス390において保存された最終的に決定されたタイプに対するインデックスとしてルックアップテーブル353に保存されてもよい。加えて、適用可能な場合、そのアクティビティレコード内のURLに対して抽出されたウェブ特徴360は、ルックアップテーブル363内に、そのアクティビティレコードに対してサブプロセス390内に保存された最終決定ウェブアクティビティへのインデックスとして保存されてもよい。換言すれば、種々のルックアップテーブル333、343、353、及び363は、概してレビューされ、承認された特徴とタクソノミークラスとの間の関連付けを用いて更新される。したがって、ルックアップテーブル333、343、353、及び363は、同じアクティビティレコードが2回目に見られるときはいつでも、モデル336、346、356、及び366がそれぞれバイパスされることを可能にするように、絶えず更新され得る。有利には、これは、特定のアクティビティレコードが以前に処理されたときにモデルを適用することに関連付けられた計算費用を回避し、それによって、プロセス300の速度及び効率を改善する。しかしながら、代替的な実施形態では、ルックアップテーブル333、343、353、及び363は、それらが以前に処理されたかどうかにかかわらず、モデルが全てのアクティビティレコードに適用されるように、省略されてもよいことを理解されたい。プロセス300は、概して、かかる一実施形態ではあまり効率的ではないであろうが、例えば、モデル336、346、356、及び366が頻繁に更新される場合、より柔軟かつ動的であり得る。
【0072】
関連特許出願においてより詳細に説明されるように、タクソノミー化されたアクティビティレコードは、データウェアハウスに保存されると、アクティビティレコードによって表されるリードについての購入者の意図及び購入段階を予測することなどの1つ以上のダウンストリーム機能のために使用され得る。タクソノミーは、リード関連アクティビティを表し、種々のソースから取得されたデータを一貫したラベル付けシステムに分類して、これらの下流機能(複数可)との互換性を確実にする。
【0073】
一実施形態では、タクソノミー化されたアクティビティレコードは、1つ以上の下流予測モデルへの入力として特徴を抽出するために使用される。例えば、アクティビティレコードに割り当てられると、タクソノミーにおける種々のクラスを使用して、販売予測アルゴリズム及び/又は意図モデルのために、アクティビティレコードによって表されるアクティビティを重み付けすることができる。この場合、将来の購入又は特定の購入段階をよりよく示す、タクソノミーにおけるアクティビティのいくつかのクラスは、将来の購入又は特定の購入段階をあまり示さない、タクソノミーにおけるアクティビティの他のクラスよりも高く重み付けされ得る。これらの重みは、自身の最近のアクティビティに基づいて、意図スコアの形態で、リードが組織の製品を購入する可能性がどれほど高いかを判定するために使用され得る。関連特許出願に記載されているように、この意図スコアを他のモデルの出力と組み合わせて、次善のアクション(例えば、推奨される連絡先)を決定することもできる。
【0074】
したがって、有利には、開示されるモデルは、アクティビティを解釈するための人工知能をコンピュータに与え、コンピュータが、それらのアクティビティがどのように購入決定に影響を及ぼし、その理解に基づいて行動し得るかを理解することを可能にする。これらのモデルは、アクティビティレコードのタクソノマイゼーションを自動化することに対する障害を克服し、その結果、新しい組織アカウントのシステム(例えば、MAP、CRMシステムなど)のための手動の時間集約的なオンボーディングプロセスは、必要に応じて、1日に何百万、何十億ものアクティビティレコードを処理することができる、スケーラブルで、反復可能で、自動化されたタクソノマイゼーションプロセスと置換することができる。自動化された分類は、リードのアクティビティが重要であったか、どのメディアがリードを使用したか、どのような種類のアクション又はコンテンツがアクティビティに関連付けられたかなど、並びにかかる質問の組み合わせなどの重要な質問に回答することが可能である、より詳細な下流モデル化及び分析を可能にする。
【0075】
2.2.モデル
モデル336、346、356、及び366の各々は、同一又は類似のアーキテクチャを有し得る。特に、これらのモデルの各々は、機械学習アルゴリズムを含み得る。それらのユーザアカウントによって使用される特定のデータソース(例えば、MAP、CRMシステムなど)にかかわらず、同じモデルが、全てのユーザアカウントにわたって使用されてもよい。代替的に、モデル336、346、356、及び/又は366の異なる組み合わせが、例えば、それらのユーザアカウントによって使用される特定のデータソースに応じて、異なるユーザアカウントに使用されてもよい。
【0076】
一実施形態では、データソースのタイプごとに異なるモデルが使用され得る。例えば、第1のアクションモデル336は、MAPから取得されたアクティビティレコードに使用されてもよく、第2の異なるアクションモデル336は、CRMシステムのキャンペーンデータから取得されたアクティビティレコードに使用されてもよく、第3の異なるアクションモデル336は、CRMシステムのイベントデータから取得されたアクティビティレコードに使用されてもよい。同様に、第1のチャネルモデル346は、MAPから取得されたアクティビティレコードに使用されてもよく、第2の異なるチャネルモデル346は、CRMシステムのキャンペーンデータから取得されたアクティビティレコードに使用されてもよく、第3の異なるチャネルモデル346は、CRMシステムのイベントデータから取得されたアクティビティレコードに使用されてもよい。同様に、第1のタイプのモデル356は、MAPから取得されたアクティビティレコードに使用されてもよく、第2の異なるタイプのモデル356は、CRMシステムのキャンペーンデータから取得されたアクティビティレコードに使用されてもよく、第3の異なるタイプのモデル356は、CRMシステムのイベントデータから取得されたアクティビティレコードに使用されてもよい。典型的には、MAPから取得されたアクティビティレコードのみがURLを有し、利用可能なURLデータは、データソースにかかわらず同じである。したがって、単一のウェブモデル366を、全てのデータソース及び全てのタイプのデータソースにわたる全てのURLから使用することができる。データソース又はデータソースのタイプに応じて異なるモデルが使用される任意の場合において、異なる特徴(例えば、330、340、350、及び360)が、それらの異なるモデルへの入力として使用されてもよく、それらの異なるモデルは、それらの特徴を異なるタクソノミー(例えば、異なるクラス及び/又は異なる数のクラスを含む)に分類してもよいことを理解されたい。
【0077】
一実施形態では、各モデルは、それぞれの特徴(例えば、330、340、350、又は360)を受け入れる入力層と、入力を変換する1つ以上の隠れ層と、複数のクラスのうちの予測された1つ又は関連するタクソノミーにおける複数のクラスの各々についての確率値を出力する出力層と、を有するニューラルネットワークを含む。ニューラルネットワークは、複数の隠れ層を含む深層ニューラルネットワークであってもよい。特定の実装形態では、ニューラルネットワークは、長短期記憶(LSTM)をもつリカレントニューラルネットワーク(RNN)であり得る。LSTMは、フィードバック接続を使用して、文などのデータのシーケンスを処理する。ニューラルネットワークは、隠れ層の潜在的に全てを含む1つ以上のための活性化関数として正規化線形活性化ユニット(ReLU)を利用し得、最終分類のための最後の活性化関数としてソフトマックス関数を利用し得る。訓練中、20%のドロップアウトを各層に使用して、過剰適合を低減し、一般化誤差を改善することができる。
【0078】
図5は、一実施形態による、モデル336、346、356、及び/又は366の潜在的に全てを含む1つ以上のために使用され得る深層ニューラルネットワーク500の例示的なアーキテクチャを示している。図示の実施形態では、depニューラルネットワーク500への入力は、ベクトル化関数Fによって出力され、N次元ベクトル空間における特徴ストリングのテキスト埋め込みを表すN次元特徴ベクトルである。この特徴ベクトルは、N個のニューロンを含む密入力層に入力される。入力層の活性化関数としては、ReLUを用いることができる。第1の隠れ層は、より高い抽象化レベルを表す、入力層の半分のサイズ(すなわち、N/2)である密な層であり得る。この場合も、第1の隠れ層の活性化関数としてReLUを使用することができる。第2の隠れ層は、第1の隠れ層のサイズの半分であり、入力層のサイズの4分の1(すなわち、N/4)である高密度層であってもよく、更に高いレベルの抽象化を表す。第2の隠れ層は、入力特徴ベクトルの最終分類を表す出力層を生成するソフトマックス活性化関数を供給することができる。出力層は、関連するタクソノミーにおけるクラスの数に等しいサイズMを有する。最終的な分類は、関連するタクソノミーにおける複数のクラスの各々についての確率値を含む、サイズMの確率ベクトルとして出力され得る。以下の表は、N=512及びM=11である深層ニューラルネットワーク500の特定の実装形態のレイヤを示す。この特定の実装形態は、Pythonの深層学習ライブラリを使用して層ごとに構築された。このモデルは、訓練の1エポック後に非常に良好に機能した。これは、使用事例の明確に定義された入力及び出力に起因する可能性が高く、使用された注釈付き訓練データセットの精度を強化する。
【表1】
【0079】
各ニューラルネットワークの重みは、損失関数を最小化するために訓練データセットを使用して訓練され得る。訓練データセットは、関連するタクソノミーからのグラウンドトゥルースクラスで注釈付けされた特徴ベクトルを含み得る。モデルが複数の異なる組織アカウント及び/又は複数の異なるシステムからのデータに対して使用される場合、訓練データセットは、複数の組織からの特徴ベクトル及び/又は複数の異なるシステムから取得された特徴ベクトルを含むはずである。例えば、特定の実装形態では、特徴ベクトルは、訓練及び試験データセットを構築するために58の異なる組織アカウントのデータから抽出され、検証データセットを構築するために27の異なる組織アカウントのデータから抽出された。組織的アカウントは、利用可能なデータの量、完了、及び幅に基づいて、コホートにおける異なるMAP(例えば、Marketo(商標)、Eloqua(商標)、Hubspot(商標)、及びPardot(商標))のほぼ等しい広がりを表すように選択され、その結果、得られるモデルは、MAPにとらわれない。各データセット内の特徴ベクトルは、関連するタクソノミーからのグラウンドトゥルースクラスで、手動で注釈付けされてもよい。異なるタクソノミーについて複数のモデルを訓練するために特徴ベクトルの同じセットが使用され得るが、それぞれのデータセットは異なるアノテーションを有することを理解されたい。各モデルを表す各ニューラルネットワークは、それぞれの特徴を関連するタクソノミーの複数のクラスのうちの1つに分類するように訓練される。したがって、各訓練された深層ニューラルネットワークは、ディープ学習ベースの分類器を表す。各モデルが予測するクラスは複数あるため、マルチクラス構成で各モデルのパラメータを初期化してもよい。マルチクラス構成とは、インスタンスを3つ以上のクラスのうちの1つに分類する問題を指す。
【0080】
一実施形態では、各モデルの訓練を容易にするために転移学習が使用される。転移学習では、既存のモデルが、新しいモデルを訓練するための開始点又はソースとして使用される。既存のモデルは、異なる又は同様の問題を解決するように以前に訓練されていてもよい。この場合、既存のモデルは、自然言語処理のために事前に訓練されていてもよい。特に、自然言語処理のために訓練されたニューラルネットワークのニューロン重みは、各深層学習ベースの分類器を訓練するための開始点として使用され得る。
【0081】
転移学習を利用する一実施形態では、言語変換器が転移学習のソースとして使用される。特に、変換器からの双方向エンコーダ表現(BERT)など、既存の言語変換器のための訓練されたニューラルネットワークのベースアーキテクチャのためのニューロン重みは凍結され得る。BERTは、Vaswaniらによる「Attention Is All You Need」,31st Conference on Neural Information Processing Systems(NIPS 2017),arXiv:1706.03762v5に記載されており、これは、その全体が記載されているかのように参照により本明細書に組み込まれる。次いで、1つ以上の、通常は一部の後続の層がこの基本アーキテクチャに追加されて、言語を関連するタクソノミーの複数の特定のクラスに分類することができる深層ニューラルネットワークが構築される。このプロセスは、「微調整」と称される。モデルを構築するために言語変換器を微調整することの1つの利点は、言語変換器の層が、文を句、単語、又は文字に分解するプロセスを抽象化する、自然言語理解及び文解釈に関する情報を保持することである。したがって、この基本アーキテクチャは、入力を解釈することができる。加えて、言語理解は、既存のモデルの基本アーキテクチャによってすでに対処されているため、転移学習は、モデルがより少ない数のデータ点(すなわち、アクティビティレコード)で訓練されることを可能にする。理解された言語を特定の用途のために開発された特定のクラスに分類するために、ニューラルネットワークの最終層を訓練するのに十分な数のデータ点があればよい。
【0082】
訓練の目標は、グラウンドトゥルースクラス(例えば、注釈)と予測されたクラス(すなわち、モデルによって出力される)との間の誤差を最小化することである。予測されたクラスがグラウンドトゥルースクラスに一致する場合、その予測について誤差が最小化される。モデルの総誤差は、損失関数に従って決定され得、その結果、訓練の目標は、損失関数を最小化することである。損失関数は、損失関数によって計算された誤差メトリックが、モデルの必要な又は所望の精度を表す所定の閾値を下回るとき、あるいは前のエポックからの誤差メトリックの差又は減少率が、損失関数がそれ以上最小化され得ないことを表す所定の閾値を下回るとき、最小化され得る。一実施形態では、アダムオプティマイザとともに、クロスエントロピー損失関数が損失関数として使用され得る。訓練は、例えば、Pytorch又はTensorFlowを使用して実施されてもよい。
【0083】
訓練の各反復又は「エポック」に続いて、訓練されたモデルが検証データセット上で検証される。換言すれば、訓練されたモデルは、検証データセット内の特徴ベクトルに入力として適用されて、特徴ベクトルの各々についての予測されたクラスを出力として生成する。次いで、検証データセット内の特徴ベクトルの予測されたクラスと、検証データセット内の特徴ベクトルの注釈によって表されるそれらの対応するグラウンドトゥルースクラスとの間の誤差を表す損失関数が計算され得る。損失関数が最小化されない場合、訓練の別のエポックを実施することができる。換言すれば、モデルは、損失関数が最小化されるまで、訓練データセットに対して(例えば、ニューラルネットワークのニューロン重みを更新することによって)再訓練される。
【0084】
各モデルが訓練され検証されると、モデルを評価することができる。特に、モデルは、グラウンドトゥルースが既知である特徴ベクトルを含む試験データセットに対して評価されてもよい。評価の目標は、モデルが動作に好適であるかどうかを判定することである。評価は、モデルの精度のメトリックを利用して、モデルが評価に合格するか否かを判定することができる。例えば、メトリックが所定の閾値を満たす(例えば、超える)場合、モデルは、評価に合格すると判定され得る。そうではなく、メトリックが所定の閾値を満たさない場合、モデルは評価に合格しないと判定され得る。モデルが評価に合格しない場合、新しい訓練データセットが(例えば、同じアクティビティレコード及び/又は新しいアクティビティレコードから)構築されてもよく、モデルは再訓練されてもよい。
【0085】
特定の実装形態では、マルチクラスF1スコアが、モデルの精度のメトリックとして使用された。F1スコアは、精度(正の予測値としても知られる)及び再現率(感度としても知られる)の関数である。精度は、真陽性の結果の数を、関連するタクソノミーにおける特定のクラスについての全ての陽性結果の数で割ったものであり、再現率は、真陽性の結果の数を、関連するタクソノミーにおける特定のクラスについて陽性として識別されるべきであった全てのデータ点の数で割ったものである。マルチクラスF1スコアは、組み合わせ戦略(例えば、マイクロ平均、マクロ平均、加重平均など)に従って、関連するタクソノミーにおけるクラスの各々についてのF1スコアを組み合わせることによって計算される。
【0086】
モデルが評価に合格した場合、モデル(例えば、モデル336、346、356、又は366)及びそれの関連するパラメータ(例えば、ニューロン重み)は、プロセス300への展開のために、クラウドサーバを含み得るプラットフォーム110上に保存され得る。各モデルは、プロセス300中に利用するために、メモリ内の共有パス(例えば、データベース114)に保存することができる。保存される前に、各モデルは性能のために合理化又は最適化されてもよい。例えば、特定の実装形態では、各モデルはオープンニューラルネットワーク交換(ONNX)ランタイムを介して渡され、これにより、ネイティブモデルが別の形式に変えられ、予測速度が向上する(例えば、予測時間が最大10倍、平均で3.1倍減少する)。有利には、これは、動作段階中にGPUが不要であり、モデルがよりポータブルであるように、動作段階中にモデルが標準CPU上で動作されることを可能にした。特に、この変換プロセスは、モデルがどのように表されるかに影響を及ぼすだけである。それは、モデルの精度に影響を及ぼさず、他の実装形態では省略され得る。
【0087】
開示される実施形態の上記の説明は、当業者が本発明を作成又は使用することを可能にするために提供される。これらの実施形態に対する種々の修正は、当業者には容易に明らかになり、本明細書で説明される一般的な原理は、本発明の趣旨又は範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本明細書に提示される説明及び図面は、本発明の現在好ましい実施形態を表し、したがって、本発明によって広く企図される主題を表すことを理解されたい。本発明の範囲は、当業者に明らかになり得る他の実施形態を完全に包含し、したがって、本発明の範囲は限定されないことが更に理解される。
【0088】
「A、B、又はCのうちの少なくとも1つ」、「A、B、又はCのうちの1つ以上」、「A、B、及びCのうちの少なくとも1つ」、「A、B、及びCのうちの1つ以上」、並びに「A、B、C、又はそれらの任意の組み合わせ」などの本明細書に説明される組み合わせは、A、B、及び/又はCの任意の組み合わせを含み、Aの倍数、Bの倍数、又はCの倍数を含み得る。具体的には、「A、B、又はCのうちの少なくとも1つ」、「A、B、又はCのうちの1つ以上」、「A、B、及びCのうちの少なくとも1つ」、「A、B、及びCのうちの1つ以上」、並びに「A、B、C、又はそれらの任意の組み合わせ」などの組み合わせは、Aのみ、Bのみ、Cのみ、A及びB、A及びC、B及びC、又はA及びB及びCであってもよく、任意のそのような組み合わせは、その構成要素A、B、及び/又はCのうちの1つ以上の成員を含有してもよい。例えば、A及びBの組み合わせは、1つのA及び複数のB、複数のA及び1つのB、又は複数のA及びBを含み得る。
図1
図2
図3
図4A
図4B
図4C
図4D
図5
【国際調査報告】