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

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

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

<>
  • 特表-キーワード推薦のための人工知能 図1
  • 特表-キーワード推薦のための人工知能 図2
  • 特表-キーワード推薦のための人工知能 図3
  • 特表-キーワード推薦のための人工知能 図4
  • 特表-キーワード推薦のための人工知能 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-08-03
(54)【発明の名称】キーワード推薦のための人工知能
(51)【国際特許分類】
   G06F 16/90 20190101AFI20230727BHJP
【FI】
G06F16/90 100
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022580327
(86)(22)【出願日】2021-06-29
(85)【翻訳文提出日】2023-02-08
(86)【国際出願番号】 US2021039652
(87)【国際公開番号】W WO2022006135
(87)【国際公開日】2022-01-06
(31)【優先権主張番号】63/045,693
(32)【優先日】2020-06-29
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
2.JAVA
3.VISUAL BASIC
4.FRAM
(71)【出願人】
【識別番号】520221017
【氏名又は名称】6センス インサイツ,インコーポレイテッド
(74)【代理人】
【識別番号】110000659
【氏名又は名称】弁理士法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】カーモディ,ダン
(72)【発明者】
【氏名】チュティナ,ユリア
(72)【発明者】
【氏名】スティーヴンス,マイケル
(72)【発明者】
【氏名】マジュンダール,アディティア
(72)【発明者】
【氏名】バジャリア,ヴァイラル
(72)【発明者】
【氏名】サッサマン,スティーヴン
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175DA01
5B175EA01
5B175FB03
5B175HA02
(57)【要約】
キーワード推薦のための人工知能。一実施形態では、生のキーワードデータが受信される。生のキーワードデータは、キーワード活動記録を含み、該キーワード活動記録は、オンラインリソースのユニフォームリソースロケータ(URL)及びオンラインリソースのメタデータをそれぞれ含む。キーワードの配列が、キーワード活動記録から抽出され、キーワードの各配列は、キーワードの配列が抽出されたキーワード活動記録におけるURLに関連付けられる。ユーザ指定キーワードが受信され、ユーザ指定キーワードのうちの少なくとも1つと一致するキーワードの配列のサブセットが識別される。訓練データセットは、サブセットから生成され、入力キーワードに基づいて推薦キーワードを出力するように機械学習モデルを訓練するために使用される。
【選択図】図3
【特許請求の範囲】
【請求項1】
少なくとも1つのハードウェアプロセッサを使用して、
複数のキーワード活動記録を含む生のキーワードデータを受信することであって、前記複数のキーワード活動記録の各々は、オンラインリソースのユニフォームリソースロケータ(URL)及び前記オンラインリソースのメタデータを含む、受信することと、
前記複数のキーワード活動記録の各々からキーワードの配列を抽出することによって、キーワードの複数の配列を生成することであって、前記キーワードの複数の配列の各々は、前記キーワードの配列が抽出された前記キーワード活動記録における前記URLに関連付けられる、生成することと、
1つ以上のユーザ指定キーワードを受信することと、
前記1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致する前記キーワードの複数の配列のサブセットを識別することと、
前記キーワードの複数の配列の前記サブセットから訓練データセットを生成することと、
前記訓練データセットを使用して、入力キーワードに基づいて推薦キーワードを出力するように機械学習モデルを訓練することと、を含む、方法。
【請求項2】
前記機械学習モデルを訓練することは、前記訓練データセットにおけるキーワードを多次元ベクトル空間内の点に変換するように、1つ以上のニューラルネットワークを訓練することを含み、前記多次元ベクトル空間内において、2つの点間の距離は、より短い距離がより高い類似度を表し、より長い距離がより低い類似度を表すように、それらの2つの点におけるキーワード間の類似度を表す、請求項1に記載の方法。
【請求項3】
各点は、数のベクトルを含む、請求項2に記載の方法。
【請求項4】
前記距離は、ユークリッド距離である、請求項3に記載の方法。
【請求項5】
前記多次元ベクトル空間は、少なくとも100次元を含む、請求項2に記載の方法。
【請求項6】
前記1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致する前記キーワードの複数の配列のサブセットを識別することは、前記キーワードの複数の配列の各々について、及び前記1つ以上のユーザ指定キーワードの各々について、
前記キーワードの配列を前記ユーザ指定キーワードと比較することと、
前記キーワードの配列が前記ユーザ指定キーワードを含む場合、前記キーワードの配列が前記ユーザ指定キーワードと一致すると判定することと、
前記キーワードの配列が前記ユーザ指定キーワードを含まない場合、
前記ユーザ指定キーワードが2つ以上の単語を含み、前記キーワードの配列が前記2つ以上の単語の全てを含む場合、前記キーワードの配列における前記2つ以上の単語の配置にかかわらず、前記キーワードの配列が前記ユーザ指定キーワードと一致すると判定し、
前記ユーザ指定キーワードが単一の単語から構成される場合、又は前記ユーザ指定キーワードが2つ以上の単語を含み、前記キーワードの配列が前記2つ以上の単語の全てを含まない場合、前記キーワードの配列が前記ユーザ指定キーワードと一致しないと判定することと、を含む、請求項1に記載の方法。
【請求項7】
前記複数のキーワード活動記録の各々からキーワードの配列を抽出することは、前記複数のキーワード活動記録の各々について、前記キーワード活動記録における前記メタデータから1つ以上のキーワードを抽出することを含む、請求項1に記載の方法。
【請求項8】
前記複数のキーワード活動記録の各々からキーワードの配列を抽出することは、前記複数のキーワード活動記録の各々について、前記キーワード活動記録における前記URLから1つ以上のキーワードを抽出することを更に含む、請求項7に記載の方法。
【請求項9】
前記URLから1つ以上のキーワードを抽出することは、1つ以上の区切り記号に基づいて、前記URLを2つ以上のキーワードに分割することを含む、請求項8に記載の方法。
【請求項10】
前記少なくとも1つのハードウェアプロセッサを使用して、
ユーザから少なくとも1つのキーワードを受信することと、
前記機械学習モデルを前記少なくとも1つのキーワードに適用して、1つ以上の推薦キーワードを出力することと、
前記1つ以上の推薦キーワードを前記ユーザに提供することと、を更に含む、請求項1に記載の方法。
【請求項11】
前記少なくとも1つのハードウェアプロセッサを使用して、
前記1つ以上の推薦キーワードのうちの少なくとも1つの選択を前記ユーザから受信することと、
前記選択された少なくとも1つの推薦キーワードを前記1つ以上のユーザ指定キーワードに追加することと、を更に含む、請求項10に記載の方法。
【請求項12】
前記少なくとも1つのハードウェアプロセッサを使用して、
少なくとも1つの画面を含むグラフィカルユーザインターフェースを生成することを更に含み、前記少なくとも1つの画面は、前記1つ以上のユーザ指定キーワードの各々の視覚的表現を含む第1のフレームと、前記1つ以上の推薦キーワードの各々の選択可能な視覚的表現を含む第2のフレームと、を含み、
前記ユーザから前記1つ以上の推薦キーワードのうちの少なくとも1つの選択を受信することは、前記第2のフレームにおけるその少なくとも1つの推薦キーワードの前記選択可能な視覚的表現の選択を受信することを含み、
前記選択された少なくとも1つの推薦キーワードを前記1つ以上のユーザ指定キーワードに追加することは、前記少なくとも1つの推薦キーワードの視覚的表現を前記第1のフレームに追加することを含む、請求項11に記載の方法。
【請求項13】
前記キーワードの複数の配列の前記サブセットから訓練データセットを生成することは、前記キーワードの複数の配列の前記サブセットにおける1つ以上のキーワードを正規化することを含む、請求項1に記載の方法。
【請求項14】
1つ以上のキーワードを正規化することは、複数の単語のフレーズを含む前記キーワードの複数の配列の前記サブセットにおける任意のキーワードからスペースを除去することを含む、請求項13に記載の方法。
【請求項15】
前記少なくとも1つのハードウェアプロセッサを使用して、前記1つ以上のキーワードを正規化するときに、前記正規化された1つ以上のキーワードの各々について、そのキーワードの正規化バージョンをそのキーワードの非正規化バージョンにマッピングするルックアップ辞書を生成することを更に含む、請求項13に記載の方法。
【請求項16】
前記少なくとも1つのハードウェアプロセッサを使用して、
前記機械学習モデルを少なくとも1つの入力キーワードに適用して、1つ以上の推薦キーワードの各々の前記正規化バージョンを出力することと、
前記ルックアップ辞書を使用して、前記1つ以上の推薦キーワードの各々の前記非正規化バージョンを取り出すことと、
前記1つ以上の推薦キーワードの各々の前記非正規化バージョンをユーザに提供することと、を更に含む、請求項15に記載の方法。
【請求項17】
前記少なくとも1つのハードウェアプロセッサを使用して、
前記キーワードの複数の配列の前記サブセットにおけるキーワードの各配列について、コーパスに対するそのキーワードの配列におけるキーワードの平均頻度、及び前記1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致したそのキーワードの配列におけるキーワードの割合に基づいて、前記キーワードの複数の配列の前記サブセットに関連付けられた前記URLをランク付けすることと、
前記ランク付けに基づいて前記URLの関連するサブセットを決定することと、を更に含む、請求項1に記載の方法。
【請求項18】
前記少なくとも1つのハードウェアプロセッサを使用して、
前記複数のキーワード活動記録の各々を、そのキーワード活動記録における前記URLへの訪問に対応する企業に関連付けることと、
前記URLの前記関連するサブセットにおける1つ以上のURLへの訪問に対応する各企業について、予測意図モデルを前記1つ以上のURLに適用して、前記企業が製品を購入することを意図する尤度を予測することと、を更に含む、請求項17に記載の方法。
【請求項19】
システムであって、
少なくとも1つのハードウェアプロセッサと、
1つ以上のソフトウェアモジュールと、を備え、前記1つ以上のソフトウェアモジュールは、前記少なくとも1つのハードウェアプロセッサによって実行されると、
複数のキーワード活動記録を含む生のキーワードデータを受信することであって、前記複数のキーワード活動記録の各々は、オンラインリソースのユニフォームリソースロケータ(URL)及び前記オンラインリソースのメタデータを含む、受信することと、
前記複数のキーワード活動記録の各々からキーワードの配列を抽出することによって、キーワードの複数の配列を生成することであって、前記キーワードの複数の配列の各々は、前記キーワードの配列が抽出された前記キーワード活動記録における前記URLに関連付けられる、生成することと、
1つ以上のユーザ指定キーワードを受信することと、
前記1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致する前記キーワードの複数の配列のサブセットを識別することと、
前記キーワードの複数の配列の前記サブセットから訓練データセットを生成することと、
前記訓練データセットを使用して、入力キーワードに基づいて推薦キーワードを出力するように機械学習モデルを訓練することと、を行うように構成されている、システム。
【請求項20】
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
複数のキーワード活動記録を含む生のキーワードデータを受信することであって、前記複数のキーワード活動記録の各々は、オンラインリソースのユニフォームリソースロケータ(URL)及び前記オンラインリソースのメタデータを含む、受信することと、
前記複数のキーワード活動記録の各々からキーワードの配列を抽出することによって、キーワードの複数の配列を生成することであって、前記キーワードの複数の配列の各々は、前記キーワードの配列が抽出された前記キーワード活動記録における前記URLに関連付けられる、生成することと、
1つ以上のユーザ指定キーワードを受信することと、
前記1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致する前記キーワードの複数の配列のサブセットを識別することと、
前記キーワードの複数の配列の前記サブセットから訓練データセットを生成することと、
前記訓練データセットを使用して、入力キーワードに基づいて推薦キーワードを出力するように機械学習モデルを訓練することと、を行わせる、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年6月29日に出願された米国仮特許出願第63/045,693号の優先権を主張するものであり、完全に記載されているかのように参照により本明細書に援用される。
【0002】
更に、本出願は、2015年12月1日に発行された米国特許第9,202,227号(’227特許)、2019年11月12日に発行された米国特許第10,475,056号(’056特許)、及び2020年1月14日に発行された米国特許第10,536,427号(’427特許)に関連し、これらは全て、完全に記載されているかのように参照により本明細書に援用される。本出願はまた、2020年6月29日に出願された米国仮特許出願第63/045,731号、及び2020年6月29日に出願された米国仮特許出願第63/045,707号に関連し、これらは両方とも、完全に記載されているかのように参照により本明細書に援用される。
【0003】
本明細書で説明される実施形態は、概して人工知能を対象とし、より詳細には、キーワード推薦を提供するための機械学習モデルを対象とする。
【背景技術】
【0004】
関連技術の説明
適切なキーワードを選択する能力は、あらゆるキーワードベースの検索に不可欠である。誤ったキーワードの選択は、通常、無関係な結果を生成する。当然ながら、検索のために選択されるキーワードは、定義上、検索の「鍵(key)」であるべきである。これは、統計的に、選択したキーワードが、偶然だけで予想されるよりも高い頻度でターゲットに現れるべきであることを意味する。このことは、任意のタイプのキーワードベースの検索に当てはまる。
【0005】
1つの特定の状況では、適切なキーワードを選択することは、例えば、’227特許及び’056特許に記載されているように、例えば、ウェブサイトへの訪問者の購入意図を予測しようとするときに有利であり得る。これに関連して、特定の製品(例えば、商品又はサービス)の購入意図は、検索クエリ、又は見込み顧客によって訪問されたウェブページ若しくは他のオンライン文書内の、その製品に関連するキーワードの存在から推論することができる。購入意図を正確に測定するために、最も関連のあるキーワードに基づいて購入意図を推論することが重要である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
別の特定の状況では、マーケティング担当者は、自社製品を検索エンジンに入力された特定のキーワードにリンクすることができる。ユーザが特定のキーワードを使用して検索エンジンにクエリを行うと、検索エンジンは、その特定のキーワードにリンクされたマーケティング担当者からのスポンサー付きの結果又は広告を返すことができる。したがって、費用対効果の高い検索エンジンマーケティング(SEM)を保証するためには、マーケティング担当者が自社製品に最も関連性の高いキーワードを選択することが重要である。
【課題を解決するための手段】
【0007】
したがって、キーワード推薦を提供する機械学習モデルのためのシステム、方法、及び非一時的コンピュータ可読媒体が開示される。一実施形態では、少なくとも1つのハードウェアプロセッサを使用して、複数のキーワード活動記録を含む生のキーワードデータを受信することであって、複数のキーワード活動記録の各々は、オンラインリソースのユニフォームリソースロケータ(URL)と、オンラインリソースのメタデータと、を含む、受信することと、複数のキーワード活動記録の各々からキーワードの配列を抽出することによって、キーワードの複数の配列を生成することであって、キーワードの複数の配列の各々は、キーワードの配列が抽出されたキーワード活動記録におけるURLに関連付けられる、生成することと、1つ以上のユーザ指定キーワードを受信することと、1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致するキーワードの複数の配列のサブセットを識別することと、キーワードの複数の配列のサブセットから訓練データセットを生成することと、訓練データセットを使用して、入力キーワードに基づいて推薦キーワードを出力するように機械学習モデルを訓練することと、を含む、方法が開示される。
【0008】
機械学習モデルを訓練することは、訓練データセットにおけるキーワードを多次元ベクトル空間内の点に変換するように、1つ以上のニューラルネットワークを訓練することを含み得、多次元ベクトル空間において、2つの点間の距離は、より短い距離は、より高い類似度を表し、より長い距離は、より低い類似度を表すように、それらの2つの点におけるキーワード間の類似度を表す。各点は、数のベクトルを含み得る。距離は、ユークリッド距離であり得る。多次元ベクトル空間は、少なくとも100次元を含み得る。
【0009】
1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致するキーワードの複数の配列のサブセットを識別することは、キーワードの複数の配列の各々について、及び1つ以上のユーザ指定キーワードの各々について、キーワードの配列をユーザ指定キーワードと比較することと、キーワードの配列がユーザ指定キーワードを含む場合、キーワードの配列がユーザ指定キーワードと一致すると判定することと、キーワードの配列がユーザ指定キーワードを含まない場合、ユーザ指定キーワードが2つ以上の単語を含み、キーワードの配列が2つ以上の単語の全てを含む場合、キーワードの配列における2つ以上の単語の配置にかかわらず、キーワードの配列がユーザ指定キーワードと一致すると判定すること、及びユーザ指定キーワードが単一の単語から構成される場合、又はユーザ指定キーワードが2つ以上の単語を含み、キーワードの配列が2つ以上の単語の全てを含まない場合、キーワードの配列がユーザ指定キーワードと一致しないと判定することと、を含み得る。
【0010】
複数のキーワード活動記録の各々からキーワードの配列を抽出することは、複数のキーワード活動記録の各々について、キーワード活動記録におけるメタデータから1つ以上のキーワードを抽出することを含み得る。複数のキーワード活動記録の各々からキーワードの配列を抽出することは、複数のキーワード活動記録の各々について、キーワード活動記録におけるURLから1つ以上のキーワードを抽出することを更に含み得る。URLから1つ以上のキーワードを抽出することは、1つ以上の区切り記号に基づいて、URLを2つ以上のキーワードに分割することを含み得る。
【0011】
方法は、少なくとも1つのハードウェアプロセッサを使用して、ユーザから少なくとも1つのキーワードを受信することと、機械学習モデルを少なくとも1つのキーワードに適用して、1つ以上の推薦キーワードを出力することと、1つ以上の推薦キーワードをユーザに提供することと、を更に含み得る。方法は、少なくとも1つのハードウェアプロセッサを使用して、1つ以上の推薦キーワードのうちの少なくとも1つの選択をユーザから受信することと、選択された少なくとも1つの推薦キーワードを1つ以上のユーザ指定キーワードに追加することと、を更に含み得る。方法は、少なくとも1つのハードウェアプロセッサを使用して、少なくとも1つの画面を含むグラフィカルユーザインターフェースを生成することを更に含み得、少なくとも1つの画面は、1つ以上のユーザ指定キーワードの各々の視覚的表現を含む第1のフレームと、1つ以上の推薦キーワードの各々の選択可能な視覚的表現を含む第2のフレームと、を含み、ユーザから1つ以上の推薦キーワードのうちの少なくとも1つの選択を受信することは、第2のフレームにおけるその少なくとも1つの推薦キーワードの選択可能な視覚的表現の選択を受信することを含み、選択された少なくとも1つの推薦キーワードを1つ以上のユーザ指定キーワードに追加することは、少なくとも1つの推薦キーワードの視覚的表現を第1のフレームに追加することを含む。
【0012】
キーワードの複数の配列のサブセットから訓練データセットを生成することは、キーワードの複数の配列のサブセットにおける1つ以上のキーワードを正規化することを含み得る。1つ以上のキーワードを正規化することは、複数の単語のフレーズを含むキーワードの複数の配列のサブセットにおける任意のキーワードからスペースを除去することを含み得る。方法は、少なくとも1つのハードウェアプロセッサを使用して、1つ以上のキーワードを正規化するときに、正規化された1つ以上のキーワードの各々について、そのキーワードの正規化バージョンをそのキーワードの非正規化バージョンにマッピングするルックアップ辞書を生成することを更に含み得る。方法は、少なくとも1つのハードウェアプロセッサを使用して、機械学習モデルを少なくとも1つの入力キーワードに適用して、1つ以上の推薦キーワードの各々の正規化バージョンを出力することと、ルックアップ辞書を使用して、1つ以上の推薦キーワードの各々の非正規化バージョンを取り出すことと、1つ以上の推薦キーワードの各々の非正規化バージョンをユーザに提供することと、を更に含み得る。
【0013】
方法は、少なくとも1つのハードウェアプロセッサを使用して、キーワードの複数の配列のサブセットにおけるキーワードの各配列について、コーパスに対するそのキーワードの配列におけるキーワードの平均頻度と、1つ以上のユーザ指定キーワードのうちの少なくとも1つと一致したそのキーワードの配列におけるキーワードの割合とに基づいて、キーワードの複数の配列のサブセットに関連付けられたURLをランク付けすることと、ランク付けに基づいてURLの関連するサブセットを決定することと、を更に含み得る。方法は、少なくとも1つのハードウェアプロセッサを使用して、複数のキーワード活動記録の各々を、そのキーワード活動記録におけるURLへの訪問に対応する企業に関連付けることと、URLの関連するサブセットにおける1つ以上のURLへの訪問に対応する各企業について、予測意図モデルを1つ以上のURLに適用して、企業が製品を購入することを意図する尤度を予測することと、を更に含み得る。
【0014】
開示される方法のうちのいずれかは、サーバなどのプロセッサベースのシステムの実行可能なソフトウェアモジュールにおいて、かつ/又は非一時的コンピュータ可読媒体に記憶された実行可能な命令において具現化され得る。
【図面の簡単な説明】
【0015】
本発明の詳細は、その構造及び動作の両方に関して、添付の図面を検討することによって部分的に得ることができ、図面において、同様の参照番号は同様の部分を指す。
【0016】
図1】一実施形態による、本明細書で説明されるプロセスのうちの1つ以上が実装され得る例示的インフラストラクチャを示す。
図2】一実施形態による、本明細書で説明されるプロセスのうちの1つ以上が実行され得る例示的な処理システムを示す。
図3】一実施形態によるキーワード推薦を利用するデータパイプラインの例示的なフロー図を示す。
図4】一実施形態による推薦されたキーワードを提供するためのグラフィカルユーザインターフェースの画面の一例を示す。
図5】一実施形態による上位キーワードを提供するためのグラフィカルユーザインターフェースの画面の一例を示す。
【発明を実施するための形態】
【0017】
一実施形態では、キーワード推薦を提供する機械学習モデルのためのシステム、方法、及び非一時的コンピュータ可読媒体が開示される。キーワード調査は、企業間(B2B)購入プロセスの「ダークファネル(dark funnel)」の重要な部分を形成し、購入意図の初期段階の兆候を捉えるものである。開示される実施形態は、意図関連活動を表すデータであって、キーワードを含むデータを(例えば、複数のサードパーティソースから)収集し、処理し(例えば、フィルタリングし)、(例えば、推薦モデルを介して)キーワード意図データの適用範囲及び量を拡張し、(例えば、関連性ベースのランク付けの式を介して)キーワード意図データの品質を向上させ、拡張及び向上されたキーワード意図データを利用して、予測信号(例えば、特定の企業に結び付けられたB2B購入意図)などの下流機能を促進する。例えば、キーワード推薦モデルは、ユーザのウェブサイト内のキーワード、SEMキーワード、ユーザの顧客又は見込み客によるエンゲージメントに使用されたキーワード、及び/又は購入の成功につながった過去のパイプラインにおけるキーワードに基づいて新しいキーワードを提案してもよく、これにより、より関連のあるキーワードを見つけること、販売インテリジェンスを提供すること、より効率的な広告、電子メールマーケティング、及び他の販売アウトリーチを実行することなどに役立ち得る。キーワード推薦モデルは、B2Bチームが、関連する行動を有するより多くの顧客を見つけるのに役立ち得る。
【0018】
本明細書を読んだ後、当業者には、種々の代替実施形態及び代替の用途において本発明をどのように実装するかが明らかになるであろう。しかしながら、本発明の種々の実施形態が本明細書で説明されるが、これらの実施形態は、限定ではなく、例及び例示のみとして提示されることが理解される。したがって、種々の実施形態のこの詳細な説明は、添付の特許請求の範囲に記載される本発明の範囲又は広さを限定するものと解釈されるべきではない。
【0019】
1.システムの概要
1.1.インフラストラクチャ
図1は、一実施形態による、開示されたプロセスが動作し得る例示的なインフラストラクチャを示している。インフラストラクチャは、本明細書で説明される種々の機能、プロセス、方法、及び/又はソフトウェアモジュールのうちの1つ以上をホスト及び/又は実行するプラットフォーム110(例えば、1つ以上のサーバ)を含み得る。プラットフォーム110は、専用サーバを含んでもよく、又は代わりに、1つ以上のサーバの共有リソースを利用するクラウドインスタンスを含んでもよい。これらのサーバ又はクラウドインスタンスは、コロケートされ、かつ/又は地理的に分散され得る。プラットフォーム110はまた、サーバアプリケーション112及び/又は1つ以上のデータベース114を含んでもよく、又はそれらに通信可能に接続されてもよい。更に、プラットフォーム110は、1つ以上のネットワーク120を介して1つ以上のユーザシステム130に通信可能に接続され得る。プラットフォーム110はまた、1つ以上のネットワーク120を介して、1つ以上の外部システム140(例えば、他のプラットフォーム、ウェブサイトなど)に通信可能に接続され得る。
【0020】
ネットワーク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セットのみが示されているが、インフラストラクチャは、任意の数のユーザシステム、外部システム、サーバアプリケーション、及びデータベースを含むことができることを理解されたい。
【0021】
ユーザシステム130は、限定ではないが、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、スマートフォン又は他の携帯電話、サーバ、ゲームコンソール、テレビ、セットトップボックス、電子キオスク、店頭端末などを含む、有線及び/又は無線通信が可能な任意のタイプ又は複数のタイプのコンピューティングデバイスを含み得る。しかしながら、概して、ユーザシステム130は、ワークステーション、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、及び/又はモバイルデバイス(例えば、スマートフォン)などのユーザ(例えば、企業の販売又はマーケティング代表者)が典型的にその仕事を行うデバイスを含むであろうことが企図される。
【0022】
プラットフォーム110は、1つ以上のウェブサイト及び/又はウェブサービスをホストするウェブサーバを含み得る。ウェブサイトが提供される実施形態では、ウェブサイトは、例えば、ハイパーテキストマークアップ言語(HTML)又は他の言語で生成された1つ以上の画面(例えば、ウェブページ)を含む、グラフィカルユーザインターフェースを含んでもよい。プラットフォーム110は、ユーザシステム130からの要求に応答して、グラフィカルユーザインターフェースの1つ以上の画面を送信又は提供する。一部の実施形態では、これらの画面は、ウィザードの形態で提供されてもよく、その場合、2つ以上の画面が、連続する方法で提供されてもよく、連続画面のうちの1つ以上は、1つ以上の先行画面とのユーザ又はユーザシステム130の対話に依存してもよい。グラフィカルユーザインターフェースの画面を含む、プラットフォーム110への要求及びプラットフォーム110からの応答は、両方とも、標準通信プロトコル(例えば、HTTP、HTTPSなど)を使用して、インターネットを含み得る、ネットワーク120を通して通信されてもよい。これらの画面(例えば、ウェブページ)は、テキスト、画像、ビデオ、アニメーション、参照(例えば、ハイパーリンク)、フレーム、入力(例えば、テキストボックス、テキスト領域、チェックボックス、ラジオボタン、ドロップダウンメニュー、ボタン、フォームなど)、スクリプト(例えば、JavaScript)などのコンテンツ及び要素の組み合わせを含むことができ、プラットフォーム110にローカルに、かつ/又はリモートにアクセス可能な1つ以上のデータベース(例えば、データベース114)に記憶されたデータを含む又はそれから導出される要素を含む。プラットフォーム110はまた、ユーザシステム130からの他の要求に応答してもよい。
【0023】
プラットフォーム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に含まれる)などのサーバ側ウェブ技術によって処理されてもよい。
【0024】
ウェブサービスが提供される実施形態では、プラットフォーム110は、外部システム140から要求を受信し、拡張マークアップ言語(XML)、JavaScript Object Notation(JSON)、及び/又は任意の他の好適な若しくは所望のフォーマットで応答を提供し得る。かかる実施形態では、プラットフォーム110は、ユーザシステム130及び/又は外部システム140がウェブサービスと対話し得る方法を定義する、アプリケーションプログラミングインターフェース(API)を提供してもよい。したがって、ユーザシステム130及び/又は外部システム140(それら自体がサーバであり得る)は、それら自体のユーザインターフェースを定義し、ウェブサービスに依拠して、本明細書で説明されるバックエンドプロセス、方法、機能、記憶装置などを実装するか、又は別様に提供することができる。例えば、かかる一実施形態では、1つ以上のユーザシステム130上で実行するクライアントアプリケーション132(ローカルデータベース134を利用し得る)は、プラットフォーム110上で実行するサーバアプリケーション112と対話し、本明細書に説明される種々の機能、プロセス、方法、及び/又はソフトウェアモジュールのうちの1つ以上又は1つ以上の一部を実行してもよい。クライアントアプリケーション132は「シン(thin)」であってもよく、その場合、処理は主にプラットフォーム110上のサーバアプリケーション112によってサーバ側で実行される。シンクライアントアプリケーションの基本的な例は、ユーザシステム130においてウェブページを単に要求し、受信し、レンダリングするブラウザアプリケーションであり、一方、プラットフォーム110上のサーバアプリケーションは、ウェブページを生成し、データベース機能を管理することを担う。代替的に、クライアントアプリケーションは「シック(thick)」であってもよく、その場合、処理は主にユーザシステム130によってクライアント側で実行される。クライアントアプリケーション132は、特定の実装形態の設計目標に応じて、「シン」と「シック」との間のこの範囲に沿った任意の点において、プラットフォーム110上のサーバアプリケーション112に対してある量の処理を実行し得ることを理解されたい。いずれの場合も、プラットフォーム110(例えば、サーバアプリケーション112が全ての処理を実行する場合)又はユーザシステム130(例えば、クライアントアプリケーション132が全ての処理を実行する場合)のいずれかに完全に存在し得るか、又はプラットフォーム110とユーザシステム130との間に分散され得る(例えば、サーバアプリケーション112及びクライアントアプリケーション132の両方が処理を実行する場合)、本明細書に説明されるアプリケーションは、本明細書に説明されるアプリケーションの機能、プロセス、又は方法のうちの1つ以上を実装する、1つ以上の実行可能ソフトウェアモジュールを含み得る。
【0025】
1.2.例示的な処理デバイス
図2は、本明細書で説明される種々の実施形態に関連して使用され得る例示的な有線又は無線システム200を示すブロック図である。例えば、システム200は、本明細書で説明される(例えば、アプリケーション又は該アプリケーションの1つ以上のソフトウェアモジュールを記憶及び/又は実行するための)機能、プロセス、又は方法のうちの1つ以上として、又はそれと併せて使用されてもよく、プラットフォーム110、ユーザシステム130、外部システム140、及び/又は本明細書で説明される他の処理デバイスの構成要素を表してもよい。システム200は、サーバ若しくは任意の従来のパーソナルコンピュータ、又は有線若しくは無線データ通信が可能な任意の他のプロセッサ対応デバイスとすることができる。当業者には明らかなように、他のコンピュータシステム及び/又はアーキテクチャも使用することができる。
【0026】
システム200は、プロセッサ210などの1つ以上のプロセッサを含むことが好ましい。入力/出力を管理するための補助プロセッサ、浮動小数点数学演算を実行するための補助プロセッサ、信号処理アルゴリズムの高速実行に適したアーキテクチャを有する専用マイクロプロセッサ(例えば、デジタル信号プロセッサ)、主処理システムに従属するスレーブプロセッサ(例えば、バックエンドプロセッサ)、デュアル若しくはマルチプロセッサシステム用の追加のマイクロプロセッサ若しくはコントローラ、及び/又はコプロセッサなど、追加のプロセッサが設けられてもよい。かかる補助プロセッサは、個別のプロセッサであってもよく、又はプロセッサ210と統合されてもよい。システム200とともに使用され得るプロセッサの実施例は、限定ではないが、Pentium(登録商標)プロセッサ、Core i7(登録商標)プロセッサ、及びXeon(登録商標)プロセッサを含み、それらの全ては、Intel Corporation(Santa Clara,California)から入手可能である。
【0027】
プロセッサ210は、通信バス205に接続することが好ましい。通信バス205は、記憶装置とシステム200の他の周辺構成要素との間の情報転送を容易にするためのデータチャネルを含み得る。更に、通信バス205は、データバス、アドレスバス、及び/又は制御バス(図示せず)を含む、プロセッサ210との通信に使用される信号のセットを提供することができる。通信バス205は、例えば、インダストリスタンダードアーキテクチャ(ISA)、拡張インダストリスタンダードアーキテクチャ(EISA)、マイクロチャネルアーキテクチャ(MCA)、ペリフェラルコンポーネントインターコネクト(PCI)ローカルバス、IEEE488汎用インターフェースバス(GPIB)を含む米国電気電子学会(IEEE)によって公表された規格、IEEE696/S-100などに準拠するバスアーキテクチャなどの任意の標準又は非標準バスアーキテクチャを備えてもよい。
【0028】
システム200は、好ましくはメインメモリ215を含み、二次メモリ220も含み得る。メインメモリ215は、本明細書で論じる機能及び/又はモジュールのうちの1つ以上など、プロセッサ210上で実行されるプログラムのための命令及びデータの記憶を提供する。メモリ内に記憶され、プロセッサ210によって実行されるプログラムは、限定ではないが、C/C++、Java、JavaScript、Perl、Visual Basic、.NETなどを含む、任意の好適な言語に従って記述され、かつ/又はコンパイルされ得ることを理解されたい。メインメモリ215は、典型的には、ダイナミックランダムアクセスメモリ(DRAM)及び/又はスタティックランダムアクセスメモリ(SRAM)などの半導体ベースのメモリである。他の半導体ベースのメモリタイプは、例えば、読み出し専用メモリ(ROM)を含む、同期型ダイナミックランダムアクセスメモリ(SDRAM)、Rambusダイナミックランダムアクセスメモリ(RDRAM)、強誘電体ランダムアクセスメモリ(FRAM)などを含む。
【0029】
二次メモリ220は、任意選択で、内部媒体225及び/又は取り外し可能媒体230を含み得る。取り外し可能媒体230は、任意の周知の方法で読み出され、かつ/又は書き込まれる。取り外し可能な記憶媒体230は、例えば、磁気テープドライブ、コンパクトディスク(CD)ドライブ、デジタル多用途ディスク(DVD)ドライブ、他の光学ドライブ、フラッシュメモリドライブなどであってもよい。
【0030】
二次メモリ220は、コンピュータ実行可能コード(例えば、開示されるソフトウェアモジュール)及び/又は他のデータが記憶された非一時的コンピュータ可読媒体である。二次メモリ220に記憶されたコンピュータソフトウェア又はデータは、プロセッサ210による実行のためにメインメモリ215に読み込まれる。
【0031】
代替実施形態では、二次メモリ220は、コンピュータプログラム又は他のデータ若しくは命令がシステム200にロードされることを可能にするための他の同様の手段を含み得る。かかる手段は、例えば、ソフトウェア及びデータが外部記憶媒体245からシステム200に転送されることを可能にする、通信インターフェース240を含んでもよい。外部記憶媒体245の例として、外部ハードディスクドライブ、外部光学ドライブ、外部磁気光学ドライブなどが挙げられる。二次メモリ220の他の例として、プログラマブル読み出し専用メモリ(PROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能読み出し専用メモリ(EEPROM)、及びフラッシュメモリ(EEPROMに類似したブロック指向メモリ)などの半導体ベースのメモリが挙げられる。
【0032】
上述のように、システム200は、通信インターフェース240を含み得る。通信インターフェース240は、ソフトウェア及びデータが、システム200と外部デバイス(例えば、プリンタ)、ネットワーク、又は他の情報源との間で転送されることを可能にする。例えば、コンピュータソフトウェア又は実行可能コードは、通信インターフェース240を介してネットワークサーバ(例えば、プラットフォーム110)からシステム200に転送されてもよい。通信インターフェース240の例には、内蔵ネットワークアダプタ、ネットワークインターフェースカード(NIC)、パーソナルコンピュータメモリカード国際協会(PCMCIA)ネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、ユニバーサルシリアルバス(USB)ネットワークアダプタ、モデム、無線データカード、通信ポート、赤外線インターフェース、IEEE1394ファイヤワイヤ、及びシステム200をネットワーク(例えば、ネットワーク120)又は別のコンピューティングデバイスとインターフェースすることができる任意の他のデバイスが含まれる。通信インターフェース240は、好ましくは、イーサネットIEEE802規格、ファイバチャネル、デジタル加入者線(DSL)、非同期デジタル加入者線(ADSL)、フレームリレー、非同期転送モード(ATM)、統合デジタルサービスネットワーク(ISDN)、パーソナル通信サービス(PCS)、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、シリアル回線インターネットプロトコル/ポイントツーポイントプロトコル(SLIP/PPP)などの業界で公表されたプロトコル規格を実装するが、カスタマイズされた又は非標準のインターフェースプロトコルも実装することができる。
【0033】
通信インターフェース240を介して転送されるソフトウェア及びデータは、概して、電気通信信号255の形態である。これらの信号255は、通信チャネル250を介して通信インターフェース240に提供され得る。一実施形態では、通信チャネル250は、有線若しくは無線ネットワーク(例えば、ネットワーク120)、又は任意の種々の他の通信リンクであってもよい。通信チャネル250は、信号255を搬送し、一部例を挙げると、ワイヤ又はケーブル、光ファイバ、従来の電話回線、携帯電話リンク、無線データ通信リンク、無線周波数(「RF」)リンク、又は赤外線リンクを含む、種々の有線又は無線通信手段を使用して実装することができる。
【0034】
コンピュータ実行可能コード(例えば、開示されたアプリケーションなどのコンピュータプログラム、又はソフトウェアモジュール)は、メインメモリ215及び/又は二次メモリ220に記憶される。コンピュータプログラムはまた、通信インターフェース240を介して受信され、メインメモリ215及び/又は二次メモリ220に記憶され得る。かかるコンピュータプログラムは、実行されると、システム200が、本明細書の他の場所で説明されるような開示される実施形態の種々の機能を行うことを可能にする。
【0035】
本明細書では、「コンピュータ可読媒体」という用語は、コンピュータ実行可能コード及び/又は他のデータをシステム200に、又はシステム200内に提供するために使用される任意の非一時的コンピュータ可読記憶媒体を指すために使用される。かかる媒体の例として、メインメモリ215、二次メモリ220(内部メモリ225、取り外し可能媒体230、及び外部記憶媒体245を含む)、及び通信インターフェース240と通信可能に結合された任意の周辺デバイス(ネットワーク情報サーバ又は他のネットワークデバイスを含む)が挙げられる。これらの非一時的コンピュータ可読媒体は、実行可能コード、プログラミング命令、ソフトウェア、及び/又は他のデータをシステム200に提供するための手段である。
【0036】
ソフトウェアを使用して実装される一実施形態では、ソフトウェアは、コンピュータ可読媒体上に記憶され、取り外し可能媒体230、I/Oインターフェース235、又は通信インターフェース240を経由して、システム200にロードされてもよい。かかる一実施形態では、ソフトウェアは、電気通信信号255の形態でシステム200にロードされる。ソフトウェアは、プロセッサ210によって実行されると、好ましくは、プロセッサ210に、本明細書の他の場所で説明されるプロセス及び機能のうちの1つ以上を行わせる。
【0037】
一実施形態では、I/Oインターフェース235は、システム200の1つ以上の構成要素と1つ以上の入力及び/又は出力デバイスとの間のインターフェースを提供する。例示的な入力デバイスは、限定ではなく、センサ、キーボード、タッチスクリーン又は他のタッチセンシティブデバイス、バイオメトリックセンシングデバイス、コンピュータマウス、トラックボール、ペンベースのポインティングデバイスなどを含む。出力デバイスの例としては、他の処理デバイス、陰極線管(CRT)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイ、液晶ディスプレイ(LCD)、プリンタ、真空蛍光ディスプレイ(VFD)、表面伝導型電子放出ディスプレイ(SED)、電界放出ディスプレイ(FED)などが挙げられるが、これらに限定されない。ある場合には、タッチパネルディスプレイ(例えば、スマートフォン、タブレット、又は他のモバイルデバイス内)の場合など、入力及び出力デバイスが組み合わせられてもよい。
【0038】
システム200はまた、音声ネットワーク及び/又はデータネットワーク(例えば、ユーザシステム130の場合)を経由した無線通信を促進する、任意選択の無線通信構成要素を含み得る。無線通信構成要素は、アンテナシステム270、無線システム265、及びベースバンドシステム260を含む。システム200において、無線周波数(RF)信号は、無線システム265の管理の下でアンテナシステム270によって無線で送受信される。
【0039】
一実施形態では、アンテナシステム270は、1つ以上のアンテナと、アンテナシステム270に送信信号経路及び受信信号経路を提供するためにスイッチング機能を実行する1つ以上のマルチプレクサ(図示せず)とを含み得る。受信経路では、受信されたRF信号は、マルチプレクサから低雑音増幅器(図示せず)に結合され得、低雑音増幅器は、受信されたRF信号を増幅し、増幅された信号を無線システム265に送信する。
【0040】
代替実施形態では、無線システム265は、種々の周波数を介して通信するように構成された1つ以上の無線機を含み得る。一実施形態では、無線システム265は、復調器(図示せず)と変調器(図示せず)とを1つの集積回路(IC)に組み合わせることができる。復調器及び変調器は、別個の構成要素であり得る。入力経路では、復調器はRF搬送波信号を除去してベースバンド受信音声信号を残し、これが無線システム265からベースバンドシステム260に送信される。
【0041】
受信された信号がオーディオ情報を含む場合、ベースバンドシステム260は信号をデコードし、それをアナログ信号に変換する。次に、信号は増幅され、スピーカに送信される。ベースバンドシステム260はまた、マイクロフォンからアナログオーディオ信号を受信する。これらのアナログオーディオ信号は、デジタル信号に変換され、ベースバンドシステム260によって符号化される。ベースバンドシステム260はまた、送信のためにデジタル信号を符号化し、無線システム265の変調器部分にルーティングされるベースバンド送信オーディオ信号を生成する。変調器は、ベースバンド送信オーディオ信号をRFキャリア信号と混合し、アンテナシステム270にルーティングされ、電力増幅器(図示せず)を通過し得るRF送信信号を生成する。電力増幅器は、RF送信信号を増幅し、それをアンテナシステム270にルーティングし、信号は、送信のためにアンテナポートにスイッチされる。
【0042】
ベースバンドシステム260はまた、中央処理装置(CPU)であり得るプロセッサ210と通信可能に結合される。プロセッサ210は、データ記憶領域215及び220へのアクセスを有する。プロセッサ210は、好ましくは、メインメモリ215又は二次メモリ220に記憶され得る命令(すなわち、開示されたアプリケーションなどのコンピュータプログラム、又はソフトウェアモジュール)を実行するように構成される。コンピュータプログラムはまた、ベースバンドプロセッサ260から受信され、メインメモリ210又は二次メモリ220に記憶されるか、又は受信時に実行され得る。かかるコンピュータプログラムは、実行されると、システム200が、開示される実施形態の種々の機能を実行することを可能にする。
【0043】
2.プロセスの概要
キーワード推薦を提供する機械学習モデルのためのプロセスの実施形態が、ここで詳細に説明される。説明するプロセスは、例えば、本明細書で説明するアプリケーション(例えば、サーバアプリケーション112、クライアントアプリケーション132、及び/又はサーバアプリケーション112及びクライアントアプリケーション132の両方を含む分散アプリケーション)として、1つ以上のハードウェアプロセッサ(例えば、プロセッサ210)によって実行される1つ以上のソフトウェアモジュールで具現化されてもよく、これは、プラットフォーム110のプロセッサによって完全に実行されてもよく、ユーザシステム130のプロセッサによって完全に実行されてもよく、又はアプリケーションの一部の部分又はモジュールがプラットフォーム110によって実行され、アプリケーションの他の部分又はモジュールがユーザシステム130によって実行されるように、プラットフォーム110及びユーザシステム130にわたって分散されてもよいことを理解されたい。説明するプロセスは、ソースコード、オブジェクトコード、及び/又はマシンコードで表される命令として実装され得る。これらの命令は、ハードウェアプロセッサによって直接実行されてもよく、又は代替的に、オブジェクトコードとハードウェアプロセッサとの間で動作する仮想マシンによって実行されてもよい。加えて、開示されるアプリケーションは、1つ以上の既存のシステム上に構築されるか、又はそれとインターフェース接続されてもよい。
【0044】
代替的に、説明するプロセスは、ハードウェア構成要素(例えば、汎用プロセッサ、集積回路(IC)、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブル論理デバイス、個別ゲート若しくはトランジスタ論理など)、ハードウェア構成要素の組み合わせ、又はハードウェア構成要素とソフトウェア構成要素との組み合わせとして実装され得る。ハードウェアとソフトウェアとの互換性を明確に示すために、種々の例示的な構成要素、ブロック、モジュール、回路、及びステップが、本明細書では概してそれらの機能に関して説明される。かかる機能がハードウェアとして実装されるかソフトウェアとして実装されるかは、特定の適用例及びシステム全体に課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに種々の方法で実装することができるが、かかる実装の決定は、本発明の範囲からの逸脱を引き起こすものと解釈されるべきではない。加えて、構成要素、ブロック、モジュール、回路、又はステップ内の機能のグループ化は、説明を容易にするためのものである。特定の機能又はステップは、本発明から逸脱することなく、1つの構成要素、ブロック、モジュール、回路、又はステップから別の構成要素、ブロック、モジュール、回路、又はステップに移動され得る。
【0045】
更に、本明細書で説明されるプロセスは、サブプロセスの特定の配置及び順序で示されているが、各プロセスは、より少ない、より多い、又は異なるサブプロセス、並びにサブプロセスの異なる配置及び/又は順序で実装されてもよい。加えて、別のサブプロセスの完了に依存しない任意のサブプロセスは、サブプロセスが特定の順序で説明又は図示されている場合であっても、その他の独立したサブプロセスの前後、又はそれと並行して実行されてもよいことを理解されたい。
【0046】
2.1.全体のプロセス
図3は、一実施形態による、キーワード推薦が使用され得るプロセス300の全体的なデータフローを示している。プロセス300は、サーバアプリケーション112及び/又はクライアントアプリケーション132によって実装され、プラットフォーム110及び/又はユーザシステム130のプロセッサ210によって実行され得る。本明細書で使用される場合、「キーワード」という用語は、単一の単語と、2つ以上の単語を含む複数の単語のフレーズとの両方を指し得る。例えば、キーワードは、「クラウド」という用語と「クラウドベースのコンピューティング」という用語の両方を含んでもよい。
【0047】
生のキーワードデータ310は、外部システム140(例えば、データベンダ)などの1つ以上のデータソースから受信され得る。一実施形態では、生のキーワードデータ310は、キーワードを有するか又は利用する複数のオンラインリソースの活動を表す複数のキーワード活動記録を含み得る。生のキーワードデータ310は、これらのオンラインリソースと対話した1人以上の訪問者のオンライン活動を表すことができ、複数のキーワード活動記録の各々は、1つのオンラインリソースへの1回の訪問を表す。オンラインリソースは、検索クエリ、検索結果、ウェブページ、電子文書などであり得る。生のキーワードデータ310は、複数のキーワード活動記録の各々について、キーワード活動記録によって表されるオンラインリソースのユニフォームリソースロケータ(URL)、そのオンラインリソースへの訪問者のIPアドレス、訪問日(例えば、タイムスタンプ)、オンラインリソースのメタデータ(例えば、タイトル、説明、明示的なキーワードなどを含む、ウェブページのHTMLソースコード又は検索クエリに埋め込まれたキーワード)、及び/又はリソースのテキスト(例えば、ウェブページ又は文書のコンテンツ)を含み得る。生のキーワードデータ310は、キーワード活動記録が生成されるときにリアルタイムで、又は定期的に(例えば、毎時間、毎日、不規則な間隔で、ある量の生のキーワードデータ310が生成された後、要求されたときなど)受信され得る。生のキーワードデータ310は、非常に大きく、ノイズの多いデータセットである可能性があり、例えば、多種多様な関連キーワード及び無関係キーワードを含んでおり、1日当たり数百万の行を伴って、高速で受信される。
【0048】
サブプロセス312では、生のキーワードデータ310が処理されて、アクティブキーワード314が生成される。サブプロセス312は、生のキーワードデータ310を解析して、オンラインリソース内のキーワード及び/又はオンラインリソースのメタデータ内のキーワードを抽出することを含み得る。これらのキーワードは、検索クエリで最近又は積極的に使用されているキーワード、最近訪問されたオンラインリソースで見られるキーワード、又は他の形で訪問者がエンゲージしているキーワードなどを表すことを理解されたい。サブプロセス312は、オンラインリソース(例えば、ウェブページ又は他のオンライン文書のコンテンツ)のテキスト内のキーワード、並びにリソースのメタデータ内に埋め込まれたキーワードを解析することができる。しかしながら、一実施形態では、サブプロセス312は、オンラインリソースのメタデータに埋め込まれているがオンラインリソースのテキストには埋め込まれていないキーワードを解析する。メタデータは、検索エンジン最適化(SEO)のためのオンラインリソースに埋め込まれ、機械学習(例えば、ニューヨーク州アーモンクのInternational Business Machines Corp.によって提供されるWatson Natural Language Understanding)などによって抽出されるキーワードの配列を含み得る。
【0049】
更に、サブプロセス312は、生のキーワードデータ310内のURLを処理して、URL自体から追加のキーワードを抽出することを含み得る。例えば、各URLは、文字列操作を介して処理され、使用可能なキーワードを抽出してもよい。URLをその構成要素キーワードに分割するために、「/」、「-」、「_」、及び「.」など、URL中で頻繁に発生するセパレータ又は区切り記号が使用され得る。例えば、URL「hub.6sense.com/blogs/6sense-linkedin-ads-better-targeting-bigger-engagement」は、区切り文字「-」に基づいて最後の区切り文字「/」の後の文字列を分離することによって、キーワード[6sense,linkedin,ads,better,targeting,bigger,engagement]に解析することができる。URLは、典型的には、一部の一般的かつ周知のパターンに従い、これらのパターンは、URLをキーワードに分離するために使用されてもよく、キーワードは、アクティブキーワード314に追加されることを理解されたい。
【0050】
生のキーワードデータ310内のキーワード活動記録のうちの特定の1つから抽出されたアクティブキーワード314の全ては、そのキーワード活動記録のための単一の配列に記憶され得る。換言すれば、生のキーワードデータ310内の複数のキーワード活動記録とアクティブキーワード314内のキーワードの複数の配列との間に1対1の対応が存在し得る。例えば、アクティブキーワード314は、オンラインリソースごとに、オンラインリソースのメタデータからのキーワード(例えば、タイトル、説明、明示的なキーワードなど)、オンラインリソースのURLからのキーワード、機械学習(例えば、Watson Natural Language Understanding)によって抽出されたキーワードなど、オンラインリソースから抽出されたキーワードの配列を含み得る。オンラインリソース自体のテキストを構文解析してキーワードを抽出する実施形態では、キーワードの配列は、オンラインリソース自体のテキストからのキーワードを含み得ることを理解されたい。アクティブキーワード314内のキーワードの各配列は、その配列が抽出されたキーワード活動記録によって表されるオンラインリソースのURL(又は他の識別子)に関連付けられ得る。換言すれば、キーワードの配列とそれらの対応するURLとの間の関連付け又は関係は、1つ以上の下流機能で利用するために、プロセス300中に維持され得る。
【0051】
1つ又は複数のユーザ指定キーワード320は、ユーザによって指定され得る。ユーザは、プラットフォーム110を有するビジネスアカウントのユーザであり得る。例えば、企業は、標準的な登録技術を介してプラットフォーム110とのビジネスアカウントを確立してもよく、そのビジネスアカウント内でユーザによって使用される1つ以上のユーザアカウントを作成してもよい。代替的に、各ビジネスアカウントは単一のユーザを有してもよく、その場合、ビジネスアカウントとユーザアカウントは同じものである。いずれの場合も、各ユーザは、プラットフォーム110上の自身の対応するユーザアカウントにログインしたとき、開示されたアプリケーションによって提供されるグラフィカルユーザインターフェースを介して1つ以上のキーワード320を指定することができる。例えば、グラフィカルユーザインターフェースは、対象の(例えば、ユーザのビジネス及び/又は製品に関連する)キーワードを入力及び提出するための1つ以上の入力を伴う1つ以上の画面を含んでもよい。代替的に、プラットフォーム110はAPIを提供してもよく、ユーザはAPIを介して対象のキーワードを提出してもよい。
【0052】
一実施形態では、ユーザは、入力されたキーワードごとに、そのキーワードがブランドキーワードであるかジェネリックキーワードであるかを指定することができる。代替的に、アプリケーションは、例えば、ブランドキーワードのデータベース内のキーワードのルックアップを実行し、キーワードがデータベース内に現れるときにキーワードがブランド化されていると判定し、キーワードがデータベース内に現れないときにキーワードがジェネリックであると判定することによって、ユーザが入力する各キーワードがブランド化されているかジェネリックであるかを自動的に判定してもよい。ブランドキーワードは、特定の企業又は製品(例えば、企業名、製品名、商標など)を識別するものである一方、ジェネリックキーワードは、特定の企業又は製品を識別しないものであることを理解されたい。ブランド又はジェネリックとしてのキーワードの分類は、1つ以上の下流機能に有用であり得る。例えば、ブランドキーワードは、見込み購入者が購入プロセスにおいてジェネリックキーワードよりも更に進んでいることを示唆し得るので、ブランドキーワードには、見込み購入者の意図を予測する予測モデルにおいてより多くの重みを与えることができる。
【0053】
サブプロセス330では、生のキーワードデータ310から抽出されたアクティブキーワード314が、ユーザ指定キーワード320と一致する。具体的には、アクティブキーワード314内のキーワードの各配列が、ユーザ指定キーワード320内の各キーワードと比較される。ユーザ指定キーワード320内のキーワードと一致したアクティブキーワード314内のキーワードの各配列は、サブプロセス330によって出力されて、フィルタリングされたキーワード340のセットを生成する。換言すれば、フィルタリングされたキーワード340は、ユーザ指定キーワード320のうちの少なくとも1つと一致するアクティブキーワード314からのキーワードの配列を含む。フィルタリングされたキーワード340内のキーワードのこれらの配列の各々は、URLによって表され、生のキーワードデータ310内のキーワード活動記録によって表されるように、単一のオンラインリソースを表すことを理解されたい。したがって、フィルタリングされたキーワード340は、ユーザ指定キーワード320に関連し、キーワードの配列として表されるオンラインリソースのリストと考えることもできる。
【0054】
一致は、正確なキーワード一致と配列交差一致との両方を含み得る。正確なキーワード一致では、ユーザ指定キーワード320は、オンラインリソースに関連付けられたキーワードの配列における同一のキーワード314と一致する。例えば、ユーザ指定キーワード320内の用語[クラウド]は、[アズール、オラクル、クラウド、コンピューティング]のキーワードの配列と正確と一致する。配列交差一致では、複数の単語のフレーズを含むユーザ指定キーワードが、その複数の単語のフレーズ内の単語を含むキーワードの配列に、その配列が正確な複数の単語のフレーズを含まない場合でも一致する。任意選択で、複数の単語のフレーズは、キーワードの配列における複数の単語のフレーズからの単語の配置にかかわらず、キーワードの配列と一致し得る。例えば、ユーザ指定キーワード320内の用語[予測解析]は、[予測、クラウド、解析、マーケティング]のキーワードの配列と一致し、任意選択的に、[クラウド、解析、マーケティング、予測]のキーワードの配列と一致する。代替的に、複数の単語のフレーズは、複数の単語のフレーズ内のワードがキーワードの配列内で同じ順序で発生する場合にのみ、キーワードの配列と一致し得る。この場合、ユーザ指定キーワード320内の用語[予測解析]は、[予測、クラウド、解析、マーケティング]のキーワードの配列と一致するが、[クラウド、解析、マーケティング、予測]のキーワードの配列とは一致しない。いずれの場合も、オンラインリソースのためのキーワードの配列が、複数の単語のフレーズの中の単語の全て(又は、代替的に、複数の単語のフレーズの中の単語の少なくとも相当の割合)を含む場合、配列に正確な複数の単語のフレーズが含まれていなくても、配列は複数の単語のフレーズと一致する。
【0055】
上述したように、フィルタリングされたキーワード340は、サブプロセス330においてユーザ指定キーワード320と一致した、生のキーワードデータ310内のオンラインリソースを表すキーワード314の配列から構成され得る。したがって、ユーザ指定キーワード320は、通常、異なるユーザに対して異なっているので、フィルタリングされたキーワード340は、異なるユーザに対して異なり得ることを理解されたい。換言すれば、異なるユーザによって指定されたユーザ指定キーワード320の複数の異なるセットが存在することが可能であり、キーワード一致サブプロセス330は、ユーザ指定キーワードの複数の異なるセットの各々について実行されて、ユーザごとにフィルタリングされたキーワード340の複数の異なるセットを生成することが可能である。換言すれば、フィルタリングされたキーワード340の各セットは、ユーザ指定されたものである。
【0056】
一実施形態では、フィルタリングされたキーワード340は、キーワードモデル350を訓練するために使用される。具体的には、訓練データセットは、フィルタリングされたキーワード340から生成されてもよく、キーワードモデル350は、キーワードを受け入れ、1つ以上の関連する又は推薦されるキーワードを出力するように訓練データセット上で訓練されてもよい。有利には、フィルタリングされたキーワード340は、ユーザに関連しないキーワードを除外するように既にフィルタリングされているので、ユーザに対する訓練データセットの関連性が保証される。例えば、B2Bユーザの場合、フィルタリングされたキーワード340の実質的に全てがB2Bに関連する。したがって、機械学習アルゴリズムを含み得る、キーワードモデル350を訓練するためのフィルタリングされたキーワード340を使用することで、得られたキーワードモデル350がユーザのビジネスに関連することが確実となる。一実施形態では、異なるキーワードモデル350が異なるユーザに関連付けられるように、別個のキーワードモデル350がユーザごとに訓練され、記憶され、操作され得る。換言すれば、ユーザ指定のフィルタリングされたキーワード340の別個のセットを使用して、ユーザごとに別個のキーワードモデル350を訓練することができる。代替的に、同じキーワードモデル350が、全てのユーザに対して、又は同じ業界内の、若しくは何らかの他の関連する特性を共有するユーザのグループに対して使用され得る。
【0057】
キーワードモデル350は、word2vecアルゴリズムを含むか、又はそれに基づき得る。word2vecは、ニューラルネットワークを使用して、テキストのコーパスから単語関連付けを学習し、その結果、入力キーワードの同義語を検出するか、又は入力キーワードとともに使用されるべき追加のキーワードを提案することができる(例えば、部分的な文において)。word2vecは、数学的関数(例えば、コサイン類似度)を2つのベクトルに適用して、これらの2つのベクトルによって表される2つの単語間の意味的類似度のレベルを示すことができるように、各別個の単語を数のベクトルで表すものである。特に、word2vecは、訓練データセットを使用して訓練される浅い2層ニューラルネットワークのグループを使用して、典型的には数百次元であるベクトル空間を使用して単語の言語文脈を再構築する。訓練データセットにおける各単語には、訓練データセット内で共通の文脈を共有する単語がベクトル空間内で互いに近接して位置するように、ベクトル空間内の対応するベクトルが割り当てられる。
【0058】
キーワードモデル350が訓練される訓練段階の後に、キーワードモデル350は、動作段階においてキーワードを推薦するために展開され得る。例えば、動作段階では、キーワードモデル350は、ユーザ指定キーワード320を入力として受信し、推薦キーワード352を出力してもよい。例えば、ユーザがキーワード320を入力するときはいつでも、アプリケーションは、自動的に(例えば、いかなるユーザ介入も伴わずに)又は半自動的に(例えば、続行するためのユーザ確認後に)、キーワードモデル350を適用し、推薦キーワード320を生成してもよい。代替的に、アプリケーションは、ユーザがキーワード320を手動で入力して推薦キーワード352を生成することを可能にする専用の画面、フレーム、又は入力をグラフィカルユーザインターフェース内に提供することができる。
【0059】
アプリケーションは、ユーザ指定キーワード320に追加される推薦キーワード352のうちの1つ以上をユーザが個々に及び/又は集合的に選択することを可能にする1つ以上の入力とともに、推薦キーワード352をグラフィカルユーザインターフェース内に表示することができる。代替的に、アプリケーションは、推薦キーワード352をユーザ指定キーワード320に自動的に追加してもよい。いずれの場合も、ユーザ指定キーワード320に追加される推薦キーワード352は、サブプロセス330におけるキーワード一致に使用されることを理解されたい。したがって、有利には、キーワードモデル350は、サブプロセス330におけるキーワード一致を強化及び改善するために、ユーザ及び/又はユーザのビジネスに暗黙的に関連する(例えば、前のフィルタリングされたキーワード340から推論された)データセットに対して訓練された人工知能を提供する。
【0060】
フィルタリングされたキーワード340は、1つ以上の予測モデル380のため、かつ/又は1つ以上の他のプロセス若しくはモデルのため、サブプロセス370においてURLをランク付けするため、報告360のためなどの1つ以上の下流機能において使用されてもよい。報告360は、プラットフォーム110又は別個のプラットフォームのサーバアプリケーション112によって実行され得る。いずれの場合も、報告360は、フィルタリングされたキーワード340に関連する集約された及び/又は企業レベルのプロファイル及び行動情報をユーザが閲覧することを可能にするアカウントベースマーケティング(ABM)プラットフォームを介して実行され得る。例えば、ABMプラットフォームは、フィルタリングされたキーワード340から導出された意図信号に関する種々のメトリック及び報告能力を、グラフィカルユーザインターフェースを介してユーザに提供してもよい。
【0061】
サブプロセス370では、ランク付けロジックを適用して、フィルタリングされたキーワード340内のキーワードの配列によって表される各URLの所与のユーザに対する関連性を、フィルタリングされたキーワード340内で表される他の全てのURLに対して評価し、ランク付けすることができる。ランク付け論理によるURLのランク付けは、フィルタリングされたキーワード340の1つ以上のメトリックの関数であり得る。例えば、これらのメトリックは、限定するものではないが、URLに対するキーワードの配列における一致するキーワードの数、及び/又はフィルタリングされたキーワード340に対するURLに対するキーワードの配列におけるキーワードの全体的な頻度を含み得る。
【0062】
サブプロセス370からのランク付けされたURLは、’227特許及び’056特許に開示される予測モデルなどの1つ以上の予測モデル380に提供され得る。例えば、予測モデル380は、ユーザが販売する製品(例えば、商品又はサービス)を企業が購入する尤度を示す、企業の購入意図を予測してもよい。この場合、予測モデル380は、1つ以上のデータソース(例えば、販売又はマーケティングキャンペーン、ウェブサイト、検索エンジンなど)から収集された、企業によるエンゲージメント行動(例えば、検索クエリ、ウェブサイト訪問、ウェブフォーム提出、電子メールを開くこと、電子メールに返信すること、電子文書をダウンロードすることなどのオンライン活動、並びに見本市に出席すること、店舗を訪れることなどのオフライン活動)を集約し、製品を購入する企業の尤度を示すスコアを出力することができる。エンゲージメント行動は、オンラインリソースのアクセスに関連付けられている企業を識別するマッピングサービスを使用して、(例えば、キーワード活動記録におけるIPアドレス、ドメイン名、アカウントサインインなどに基づいて)特定の企業に関連付けることができる。ランク付けされたURLは、予測モデル380によって使用される1つ以上の重みを生成するために使用され得る。例えば、より高いランクのURLとのエンゲージメント(例えば、訪問)は、予測モデル380において、より低いランクのURLとのエンゲージメントよりも高く重み付けされてもよい。したがって、より高くランク付けされたURLへの企業の訪問は、より低くランク付けされたURLへの訪問と比較して、企業の予測モデル380によって出力されるスコアを増加させ得る。
【0063】
一実施形態では、予測モデル380はまた、ジェネリックキーワード又はブランドキーワードの使用に基づいてエンゲージメントを重み付けすることができる。例えば、ブランドキーワードの検索を含むエンゲージメントは、ジェネリックキーワードの検索を含むエンゲージメントよりも高く重み付けされてもよい。したがって、URL(例えば、検索エンジン、ウェブサイトなど)において企業がブランドキーワードを使用することで、URLにおけるジェネリックキーワードの使用に対して、企業の予測モデル380によって出力されるスコアを増加させることができる。換言すれば、予測モデル380は、ブランドキーワードを使用している企業が、ジェネリックキーワードを使用している企業よりも購入プロセスに沿っていることを推論するが、これは、ブランドキーワードが、よりターゲットを絞った調査行動を示すからである。
【0064】
2.2.配列交差一致
B2B購入意図を決定するための最高品質のキーワードは、よりターゲットを絞った調査行動を表すので、多くの場合、複数の単語のフレーズである。したがって、一実施形態では、サブプロセス330では、アクティブキーワード314からかかるフレーズを収集するために配列交差一致が用いられる。この配列交差一致は、キーワードの配列におけるフレーズの構成単語の存在に基づいて、それらの構成単語がキーワードの配列内にどのように配置されているかにかかわらず、ユーザ指定の複数の単語のフレーズを、URLを表すキーワードの配列と一致させ得るユーザ定義の機能として実装することができる。機能は、複数の単語のフレーズ(例えば、「アカウントベースマーケティング(account based marketing)」)を受信し、複数の単語のフレーズをワードの配列(例えば、[アカウント(account)、ベース(based)、マーケティング(marketing)])に(例えば、スペースに基づいて)分割し、次いで、アクティブキーワード314内のキーワードの配列におけるワードのその配列の共通部分を検索することによって、これを実装してもよい。
【0065】
2.3.キーワード推薦
上述したように、キーワードモデル350は、フィルタリングされたキーワード340を使用して訓練され、ユーザ指定キーワード320の入力に基づいて推薦キーワード352を提供する。したがって、キーワードモデル350は、プロセス300のデータパイプライン内のキーワードの量を増加させる。特に、これは、サブプロセス312におけるURLの処理に追加されるものであり、これにより、プロセス300のデータパイプラインにおけるキーワードの量も増加する。有利には、キーワードの量のこの増加により、予測モデル380(例えば、予測意図モデルのための意図信号)などの下流機能のための信号の追加のソースが得られる。キーワード推薦は、新しいユーザのための初期キーワードを自動的に生成すること(例えば、新しいユーザのビジネスに基づいてキーワードを自動的に生成するコールドスタート)、SEM又は他の目的のために潜在的な新しいキーワードの関連性をスコア付けすること(例えば、既知の関連キーワードに対するキーワードモデル350のベクトル空間内の類似度距離に基づいて)、及び/又は予測モデル380がSEO又は他の目的のためにURLに割り当てる関連性を判断するためにURLのデータをスコア付けすることなど、一部の他の下流機能のために使用され得ることを理解されたい。
【0066】
キーワード推薦は、キーワード調査のためのツールとして、アプリケーションのグラフィカルユーザインターフェースに統合され得る。ユーザは、ユーザ指定キーワード320をグラフィカルユーザインターフェースに入力して、キーワードモデル350から推薦キーワード352を生成することができる。上述したように、キーワードモデル350は、フィルタリングされたキーワード340に対して訓練されてもよい。これらの特徴は、推薦キーワード352が、ユーザに固有であり、かつユーザの企業(例えば、B2B)に合っていることを保証する。
【0067】
図4は、一実施形態による、推薦キーワード352を提供するためのグラフィカルユーザインターフェースの画面400(例えば、ウェブページ)の一例を示している。図示のように、画面400は、ユーザ指定キーワード320のサブセット(例えば、特定のスペースに関連するブランドのサブセット、ジェネリックなサブセット、ユーザが作成したサブセットなど)を選択し、ソートし、検索し、かつ/又はそれに対してアクションを実行するための1つ以上の入力410と、ユーザ指定キーワード320のためのフレーム420と、推薦キーワード352のためのフレーム430とを含む。
【0068】
フレーム420は、選択されたソート基準(例えば、アルファベット順)に従ってソートされた、選択されたサブセットにおけるユーザ指定キーワード320の各々を表す。各ユーザ指定キーワード320は、テキストとしてのキーワードと入力424(例えば、チェックボックス)とを含む視覚要素422として表すことができる。ユーザは、特定の視覚要素422の入力424を選択して、その視覚要素422によって表されるキーワードを選択することができる。ユーザは、このようにして、キーワードに対するそれぞれの入力424を使用して1つ以上のキーワードを選択し、選択されたキーワードの全てに対して(例えば、入力410のうちの1つを使用して)アクション(例えば、削除)をまとめて実行することができる。
【0069】
フレーム430は、フレーム420内のユーザ指定キーワード320に適用された後にキーワードモデル350によって出力される推薦キーワード352をリスト化する。各推薦キーワード352は、テキストとしてのキーワードと入力434(例えば、「プラス」アイコン)とを含む視覚要素432として表すことができる。ユーザは、特定の視覚要素432の入力434を選択して、その視覚要素432によって表されるキーワードをユーザ指定キーワード320に追加することができる。換言すれば、ユーザが特定の視覚要素422の入力434を選択した場合、その視覚要素432はフレーム430から除去されてもよく、対応する視覚要素432がフレーム420に追加されてもよい。フレーム420に追加される対応する視覚要素422は、フレーム420内の他の全てのユーザ指定キーワード320の視覚要素422と同様に、テキストとしてのキーワードと、キーワードを選択するための入力424とを含むことを理解されたい。加えて、アプリケーションは、これらのユーザが追加した推薦キーワード352にキーワードモデル350を自動的に適用して、フレーム430内の視覚要素432によって視覚的に表し得る1つ以上の新しい推薦キーワード352を生成することができる。このようにして、ユーザは、関連するユーザ指定キーワード320の大きなセットを迅速かつ容易に構築することができる。
【0070】
2.4.Word2vec
上述したように、キーワードモデル350は、推薦キーワード352として出力される単語関連付けを提供するために、キーワード(例えば、メタデータキーワード)の配列を含む発行元データに対して訓練されたword2vecアルゴリズムを含み得る。word2vecは、各単語をベクトル表現に変換し、ベクトル表現は、2つの単語を比較する(すなわち、2つの単語の2つのベクトル表現を比較する)ときに、類似する単語のリストを見つけるか、又は類似度スコアを提供するために使用され得る。word2vecの実装形態は、Gensim及びH2Oを含むPython(商標)の機械学習ライブラリに存在する。特定の実装形態では、Gensimライブラリを使用して、キーワードモデル350用のword2vecアルゴリズムを構築した。
【0071】
word2vecは、単語相関を学習するために文書アプローチを使用する。多次元ベクトルは、訓練データセットにおける文書における単語共起の頻度を使用して構築される。複数のword2vecアルゴリズムがパブリックドメインに存在しており、これには、ニュース記事で訓練されたカリフォルニア州マウンテンビューのGoogle(商標)によって公開されたもの(code.google.com/archive/p/word2vec/)が含まれる。しかしながら、予め構築済みのモデルを使用してキーワード推薦を行うことには大きな欠点がある。
【0072】
例えば、これらの予め構築済みのモデル(例えば、ニュース記事のコーパス上で訓練された)は、単一の単語に対して有用であり得るが、それらのボキャブラリは、意図を推論するために特に有用であり得る複数の単語のフレーズ(例えば、「アカウントベースマーケティング」)を含まない。「nグラム」と称されることもある複数語のキーワードフレーズを識別する能力は、B2B調査にとって重要であるが、これは、よりターゲットを絞った関連性の高い結果が得られるためである。したがって、一実施形態では、nグラムを考慮するために、キーワードモデル350は、word2vecアルゴリズムを訓練するために使用される「文書」として、URLのメタデータからのキーワード配列(例えば、URL自体を含む)を使用する。有利には、(例えば、ニュース記事などの実際の文書とは対照的に)「文書」としてのメタデータキーワード配列を使用することで、事前定義されたnグラム及び共起関係を有するword2vecアルゴリズムが得られる。
【0073】
word2vecアルゴリズムを訓練するために大きな任意のデータセットを使用することの別の欠点は、多くの単語及びフレーズが文脈に依存することである。その意味は、一般的な文脈とはB2Bの文脈において異なる場合がある。一例として、一般的な英語の文脈では、単語「クラウド(cloud)」は、「天気」、「雨」、「積雲」などの単語に関連付けられる。しかしながら、B2Bの文脈では、単語「クラウド」は、「アズーレ」、「オラクル」、「クラウドコンピューティング」などの単語に関連付けられるべきである。これらの単語の一部はブランド名であり、その他のものはより一般的な英語の単語である。有利には、フィルタリングされたキーワード340を使用して訓練されたキーワードモデル350のword2vecアルゴリズムは、ユーザの特定の文脈に関連する単語(例えば、「クラウド」のB2Bでの使用)を生成することになるが、その理由は、概して、ユーザの特定の文脈に関連しない単語(例えば、「クラウド」の気象関連での使用)に関して訓練されないためである。
【0074】
換言すれば、キーワードモデル350のための訓練データセットは、ユーザの特定の文脈(例えば、B2B)に対するその関連性を保証するために高度にフィルタリングされる。具体的には、訓練データセットは、生のキーワードデータ310又は他の何らかの広範なコーパスから直接ではなく、フィルタリングされたキーワード340から得られる。本質的に、ユーザは、ユーザ指定キーワード320を手動で入力することによって、訓練データセットを暗黙的に(及び潜在的に知らずに)構築する。ユーザの観点からは、ユーザは単に、予測モデル380などの下流機能に関連すると考えるユーザ指定キーワード320を入力している。しかしながら、アプリケーションはまた、大部分の無関係なキーワードがフィルタリングされた広範なコーパス(例えば、URL)を表すこれらのユーザ指定キーワード320を、キーワードモデル350のための訓練データセットとして再利用する。これらにより、訓練プロセスの効率が改善され、訓練プロセスのメモリ要件が低減され、キーワードモデル350の語彙がユーザの特定の文脈(例えば、B2B)に合わせて調整される。
【0075】
2.5.訓練
上述したように、キーワードモデル350のための訓練データセットは、(例えば、サブプロセス312において)処理され、(例えば、サブプロセス330において)フィルタリングされたパブリッシャデータ(すなわち、生のキーワードデータ310)に由来しており、その結果、訓練データセットは、(例えば、正確に又は配列交差を介して)ユーザ指定キーワード320と一致するキーワードの配列のみを含むことになる。フィルタリングされたキーワード340は、サブプロセス330における一致の出力であり、訓練データセットに組み込まれるか又は訓練データセットとして使用されるキーワードの一致した配列を含む。データ処理及びフィルタリングプロセス(例えば、サブプロセス312及び330)は、生のキーワードデータ310を継続的に処理し、アクティブキーワード314をユーザ指定キーワード320と一致してフィルタリングされたキーワード340を生成する、日次的又はその他の定期的な抽出、変換、ロード(ETL)パイプラインの一部であり得る。
【0076】
フィルタリングされたキーワード340は、報告360及び予測モデル380などの下流機能のために使用されるが、それらはまた、word2vecアルゴリズムを含み得るキーワードモデル350のための訓練データセットとして再利用され得る。有利には、訓練データセットは、(フィルタリングされたURL及びターゲットとされたURLを表す)すでにフィルタリングされたキーワード及びターゲットとされたキーワードから構成されるので、キーワードモデル350は、別様に必要とされるよりも少ない訓練データを用いて、関連性の高い結果を生成するように訓練され得る。これにより、URLのコーパス全体で訓練されたモデルと比較して、ユーザの特定の文脈(例えば、B2B)に対するモデルの出力の関連性が大幅に改善される。
【0077】
フィルタリングされたキーワード340内のキーワードの配列の一部の例を以下に示す。
1:[ビジネスニュース、金融ニュース、株式市場相場、市場ニュース、株式市場ニュース、個人金融ニュース、株式情報、株式]
2:[市場、株式、金融、ミューチュアルファンド、etf、石油、金、銀、ガス、ビジネス]
3:[nvidia、ドライバ(driver)、ドライバ(drivers)、ダウンロード、ソフトウェア、geforce、quadro、tesla、nforce]
4:[ビジネス電子メール、プロジェクト管理ソフトウェア、会計ソフトウェア、生命保険、金融アドバイザー、オンライン株式トレーダー、株式取引、カットurl(cut url)、カットurl(cut urls)、資金、ショートリンク、ショートリンクサービス、ベストショートニングリンク]
5:[太陽、pv、再生可能エネルギー、モジュール、セル、料金、ニュース、ブログ、解析]
【0078】
キーワードの各配列は、単一のURLを表し、訓練データセットにおける1つの文書と考えられることを理解されたい。特に、配列は、単一の単語から構成されるキーワードと、複数の単語のフレーズを含むキーワードとの両方を含む。更に、配列は、ブランドキーワードとジェネリックキーワードの両方を含み得る。
【0079】
一実施形態では、アプリケーションは、キーワードの配列を訓練データセットに追加する前に、フィルタリングされたキーワード340内のキーワードの配列を前処理することができる。この前処理は、配列におけるキーワードを(例えば、スペースを除去することによって)正規化することを含み得る。キーワードを正規化するとき、アプリケーションは、キーワードの各々の正規化バージョンをその対応する非正規化バージョンに関連付ける(例えば、正規化された「accountbasedmarketing」を正規化されていない「アカウントベースマーケティング(account based marketing)」にマッピングする)参照辞書を生成することができる。正規化されていないキーワードは概して人間が読み、理解するのがより容易であるので、ルックアップ辞書により、グラフィカルユーザインターフェースが、正規化されたキーワードの代わりに正規化されていないキーワードを表示することが可能となる。更に、前処理は、例えば、不快な単語の所定のルックアップ辞書を使用して、ユーザの特定の文脈(例えば、B2B)に関連しない不快な単語を除去することを含み得る。
【0080】
キーワードモデル350は、標準パラメータを使用して、訓練データセットにおけるこれらの前処理されたキーワードの配列(すなわち、「文書」)を使用して訓練され得る。例えば、キーワードモデル350のためにword2vecアルゴリズムを利用する一実施形態では、word2vecアルゴリズムは、例えば、100次元ベクトル空間、10の関連性ウィンドウ、及び5の最小発生閾値を使用して訓練され得る。
model=Word2Vec(documents,size=100,window=10,min_count=5,workers=8)
model.train(documents,total_examples=len(documents),epochs=1)
model.save_word2vec_format(‘model_name_version.bin’,binary=true)
【0081】
2.6.動作
キーワードモデル350においてword2vecアルゴリズムを利用する一実施形態では、推薦キーワード352は、Gensimライブラリの「最類似」機能を使用して生成されてもよい。「最類似」機能は、入力として単語又は単語の配列を受け入れ、類似度スコアによってランク付けされた単語のリストを生成する。類似度スコアは、word2vecアルゴリズムの訓練中に作成された埋め込みベクトル空間におけるユークリッド距離を使用して決定される。この場合、キーワードモデル350の出力は、各エントリがキーワードと、入力キーワードに対するそのキーワードの類似度を表す類似度スコアとを含む(例えば、より高いスコアはより高い類似度を表し、より低いスコアはより低い類似度を表す)リストを含み得る。訓練されたword2vecアルゴリズムの入力及び出力の一部の例を以下に示す。
:model.wv.most_similar(‘business’)
:[(‘commerce’,0.5051543712615967),
(‘businesses’,0.4964611530303955),
(‘company’,0.4873649775981903),
(‘small business’,0.46376699209213257),
(‘profit’,0.4615456461906433),
(‘award’,0.4571419060230255),
(‘franchise’,0.45397913455963135),
(‘industry’,0.4539056122303009),
(‘profession’,0.4519237279891968),
(‘technology’,0.4380800724029541)]
:model.wv.most_similar(‘predictive analytics’)
:[(‘data mining’,0.931482195854187),
(‘predictive modeling’,0.9308880567550659),
(‘business analytics’,0.905793309211731),
(‘business strategy’,0.9040995240211487),
(‘big data analytics’,0.9005128145217896),
(‘data analytics’,0.8995591402053833),
(‘data quality’,0.8967177271842957),
(‘data integration’,0.8917843103408813),
(‘digital technologies’,0.8888974189758301),
(‘erm’,0.8869186043739319)]
:model.wv.most_similar(positive=[‘predictive analytics’,‘marketing intelligence’,‘marketing analytics’])
:[(‘ab testing’,0.9416207075119019),
(‘market intelligence’,0.931481659412384),
(‘data warehouse’,0.9212490320205688),
(‘advanced analytics’,0.9202632904052734),
(‘unstructured data’,0.9168689846992493),
(‘data services’,0.9152300357818604),
(‘marketing research’,0.9139900207519531),
(‘account based marketing’,0.912448525428772),
(‘resource allocation’,0.9121400713920593),
(‘dynamic programming’,0.9120453000068665)]
【0082】
一実施形態では、1つ以上の否定的なキーワードのセットも、キーワードモデル350への入力として提供され得る。この場合、否定的なキーワードは、推薦に悪影響を及ぼすことになる。例えば、所与の単語のスコアは、ベクトル空間内の否定的なキーワードまでのその距離が減少するにつれて減少し得る。
【0083】
一実施形態では、所与の入力キーワードに対してキーワードモデル350によって出力されたキーワードであって、類似度スコアが所定の閾値(例えば、0.90又は90%以上の類似度)を満たすキーワードのみが、推薦キーワード352に含まれ得る。類似度スコアが所定の閾値を満たさないキーワードは、推薦キーワード352から除外され得る。代替的又は追加的に、所与の入力キーワードに対して最も高い類似度スコアを有する所定の数(例えば、3、5、10など)のキーワードが、推薦キーワード352に含まれてもよく、一方、この所定の数の範囲外のキーワードは、推薦キーワード352から除外されてもよい。
【0084】
一実施形態では、訓練されたキーワードモデル350は、Amazon Simple Storage Service(S3)などのクラウドストレージに記憶され得る。キーワードモデル350のバイナリコードは、必要に応じてロードされ、アプリケーションのグラフィカルユーザインターフェースを介して入力されるユーザ指定キーワード320を供給され得る。所定の閾値スコア(例えば、0.9)以上の類似度スコアを有する、キーワードモデル350によって出力された全ての推薦キーワード352は、グラフィカルユーザインターフェースを介してユーザに提供され得る。キーワードの正規化バージョンをキーワードの非正規化バージョンにマッピングする、前処理中に生成されたルックアップ辞書は、グラフィカルユーザインターフェースにおける提示のために、キーワードモデル350の生の出力におけるキーワード352の正規化バージョンを、キーワード352の非正規化バージョンに変換するために使用され得る。所定の閾値スコア未満の類似度スコアを有する、キーワードモデル350によって出力された推薦キーワード352は、ユーザに提供されない(例えば、グラフィカルユーザインターフェースにおける提示から除外される)。
【0085】
2.7.下流機能
フィルタリングされたキーワード340及び訓練データセットにおけるキーワードの各配列は、URLを表すことを理解されたい。例えば、キーワードの各配列は、生のキーワードデータ310内のURLを含むキーワード活動記録から抽出されたメタデータキーワード(例えば、明示的なメタデータ及びURL自体内の文字列)を表す。追加的又は代替的に、キーワードの各配列は、URLにおけるオンラインリソースのコンテンツからのキーワードを表すことができる。フィルタリングされたキーワード340内のキーワードの各配列は、そのキーワードの配列が抽出されたキーワード活動記録における対応するURLに関連付けることができる。各URLは、URLにおけるオンラインリソースとそのオンラインリソースへの訪問者との間の関係を表し、訪問者のネットワークアドレス又はソースを表すIPアドレス及び/又はドメイン名(例えば、生のキーワードデータ310内の)と、訪問の日時を表すタイムスタンプとに関連付けられ得る。一実施形態では、IPアドレス及び/又はドメイン名は、IP-企業へのマッピング又はドメイン名から企業へのマッピングを使用して、特定の企業にマッピングされ得る。かかるマッピングの例は、’427特許に記載されている。換言すれば、URLとのエンゲージメントとして表されるキーワード調査及び他のオンライン調査は、ユーザのシステム(例えば、顧客関係管理(CRM)システム、マーケティングオートメーションプラットフォーム(MAP)など)における特定のアカウントとして表され得る特定の企業にリンクされ得る。
【0086】
特に、フィルタリングされたキーワード340は、大部分が関連するキーワードの配列から構成されるので、これらのキーワードの配列が表すURLも、大部分が関連するURLから構成される。各関連URLは、関連するエンゲージメント又は活動(例えば、キーワード検索、ウェブサイト訪問など)を表す。したがって、サブプロセス330は、無関係なキーワードをフィルタリングするだけでなく、無関係な活動もフィルタリングする。したがって、主に関連する活動が、下流機能(例えば、報告360、予測モデル380など)に提供され、それによって、下流の効率及び有効性が増加する。
【0087】
もちろん、一部の無関係な活動は、サブプロセス330を通過することができるため、それらの対応するキーワードの配列は、フィルタリングされたキーワード340内に存在する。無関係な活動は、ユーザの特定の文脈(例えば、B2B)に無関係なトピックに関するURLへの訪問又は他のエンゲージメントを含み得る。例えば、ユーザが、クラウドコンピューティングに関連するユーザ指定キーワード320として「クラウド」を入力すると、天気に関連するURLは、サブプロセス330を通過することができる。したがって、一実施形態では、サブプロセス370は、一致したキーワードの数及び/又は頻度に基づいて開発された1つ以上の基準に基づいてURLをフィルタリングするための追加のフィルタとして機能する。例えば、基準には、キーワードの平均頻度及び/又は一致したキーワードの割合が含まれてもよい。
【0088】
キーワードの平均頻度は、コーパス全体(例えば、アクティブキーワード314又はフィルタリングされたキーワード340)に対する、URLを表すキーワードの配列内(例えば、フィルタリングされたキーワード340内)の各キーワードの頻度を計算し、次いで、URLを表すキーワードの配列に含まれるキーワードの平均頻度を計算することによって、URLに対して計算されてもよい。一例として、例として、URLがキーワードの配列[クラウド、クラウドコンピューティング、アズーレ]で表され、「クラウド」の母集団頻度が0.1、「クラウドコンピューティング」の母集団頻度が0.01であり、「アズーレ」の母集団頻度が0.05であるとする。この場合、URLに対するキーワードの平均頻度は、(0.1+0.01+0.05)/3=0.0387=3.9%と計算され得る。
【0089】
URLに対する一致したキーワードの割合は、ユーザ指定キーワード320と一致するURLを表すキーワードの配列におけるキーワードの割合として計算され得る。一例として、例として、URLがキーワードの配列[クラウド、クラウドコンピューティング、アズーレ]で表され、「クラウド」の母集団頻度が0.1、「クラウドコンピューティング」の母集団頻度が0.01であり、「アズーレ」の母集団頻度が0.05であるとする。また、ユーザ指定キーワード320は、キーワード「クラウドコンピューティング」のみから構成されるとする。この場合、URLに対する一致したキーワードの割合は、1/3=0.33=33%と計算され得る。
【0090】
サブプロセス370の一実施形態では、関連するURLは、少なくとも10%の一致するキーワードの割合(すなわち、URLを表すキーワードの配列におけるキーワードの少なくとも10%が、ユーザ指定キーワード320内のキーワードと一致する必要がある)と、全てのキーワードの全体的な平均頻度の4倍未満のキーワードの平均頻度(すなわち、平均して、URLを表すキーワードの配列におけるキーワードは、任意のキーワードの全体的な平均よりも4倍少ない)とを有するものとして定義される。これらの閾値は、一実装形態では発見的に決定されている。関連性の代替的な定義が他の実装形態のために定義され得ることを理解されたい。
【0091】
フィルタリングされたキーワード340(例えば、サブプロセス370によって更にフィルタリングされた)内のキーワードの配列に関連付けられたURLによって表されるキーワード意図活動は、ファーストパーティデータセット(例えば、販売及び/又はマーケティングキャンペーン、ウェブサイト訪問、及び/又は他のウェブサイト活動などとのエンゲージメントを表す)とともに、予測モデル380に入力され、購入意図の指示(例えば、購入の尤度を表す購入意図スコア)を生成することができる。予測モデル380は、(例えば、IP-企業マッピングを介して)特定の企業にマッピングされたURLのセットに適用され得る。例えば、サブプロセス370によって出力された関連URLに対応する生のキーワードデータ310内の複数のキーワード活動記録は、それらの対応する企業にマッピングされてもよく、予測モデル380は、企業の購入意図スコアを生成するために各企業の関連URLに適用されてもよい。
【0092】
一例として、マーケティング電子メール内のリンクをクリックすること、又はマーケティングイベントに参加することと同様に、キーワード調査活動(例えば、URLによって表されるように、オンライン検索エンジンを使用してキーワードを検索する企業)は、購入意図を示す。しかしながら、キーワード調査活動は、リンクをクリックすること又はイベントに参加することよりも意図を示さない傾向がある。したがって、キーワード調査活動は、購入プロセスの初期段階(上部ファネル)で企業を識別する。したがって、キーワード調査活動は、購入処理のより後の段階(下部ファネル)で企業を識別する活動(例えば、マーケティング電子メール内のリンクをクリックすること、マーケティングイベントに参加することなど)よりも少ない量を購入意図スコアに寄与し得る。
【0093】
報告360は、有用なキーワード関連情報及び/又はメトリックをユーザに提供する、グラフィカルユーザインターフェースを含み得る。例えば、グラフィカルユーザインターフェースの画面は、ユーザの特定の文脈(例えば、B2B)で(例えば、生のキーワードデータ310で表されるURLエンゲージメントで)使用されている上位キーワードのリストを提供することができる。図5は、一実施形態による、上位キーワードを提供するためのグラフィカルユーザインターフェースの画面の一例を示している。上位キーワードは、ブランドキーワードとジェネリックキーワードとに分離されてもよく、各カテゴリ内の最も頻度の高いキーワード(例えば、キーワードを使用する一意の企業の数、総発生数などとして測定される)が、頻度の降順で提供されてもよい。図示のように、各キーワードは、キーワードを調査している一意の企業の数を表す括弧付きの数とともに、テキストとして視覚的に表すことができる。本明細書の他の箇所で説明したように、ルックアップ辞書を使用して、グラフィカルユーザインターフェースでの提示の前に、キーワードの非正規化バージョンをキーワードの正規化バージョンに変換することができる。ユーザは、そのマーケティング戦略(例えば、ユーザのウェブサイトのSEM、SEO、ターゲット広告など)におけるセグメンテーション又はターゲティングのために、上位キーワードに関するこのデータを利用することができる。
【0094】
一実施形態では、キーワードは、コンバージョン率に基づいてランク付けすることができる。例えば、企業のコンバージョン(すなわち、企業による成功した購入取引)は、それらの企業がそれらのコンバージョンの前にどのキーワードを使用していたかを判定するために解析されてもよい。この解析を使用して、例えば、これらの企業のコンバージョンの前にこれらの企業によって使用されていた頻度に基づいて、キーワードをランク付けすることができる。別のキーワードよりも頻繁に発生するキーワードは、ビジネスの誘致及び/又は販売の予測においてより効果的であると推測することができる。したがって、かかるキーワードは、そのSEM及び/又はSEOを改善しようとするユーザによる(例えば、ウェブサイトでの、検索エンジンから購入されたなどの)使用のための良好な候補となる。この頻度情報はまた、例えば、より多くの予測キーワード(例えば、成功したコンバージョンにつながる活動においてより頻繁に発生する)を含む活動に対する重みを、より少ない予測キーワード(例えば、成功したコンバージョンにつながる活動においてより少ない頻度で発生する)を含む活動に対して増加させることによって、予測意図モデルなどの予測モデル380を改善するために使用され得る。
【0095】
開示される実施形態の上記の説明は、当業者が本発明を作成又は使用することを可能にするために提供される。これらの実施形態に対する種々の修正は、当業者には容易に明らかになり、本明細書で説明される一般的な原理は、本発明の趣旨又は範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本明細書に提示される説明及び図面は、本発明の現在好ましい実施形態を表し、したがって、本発明によって広く企図される主題を表すことを理解されたい。本発明の範囲は、当業者に明らかになり得る他の実施形態を完全に包含し、したがって、本発明の範囲は限定されないことが更に理解される。
【0096】
「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
図4
図5
【国際調査報告】