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

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特開2024-1121コンテンツアイテム推奨をランク付けするための技術
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024001121
(43)【公開日】2024-01-09
(54)【発明の名称】コンテンツアイテム推奨をランク付けするための技術
(51)【国際特許分類】
   G06F 16/908 20190101AFI20231226BHJP
【FI】
G06F16/908
【審査請求】有
【請求項の数】10
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023171976
(22)【出願日】2023-10-03
(62)【分割の表示】P 2021521193の分割
【原出願日】2019-10-18
(31)【優先権主張番号】201841039495
(32)【優先日】2018-10-18
(33)【優先権主張国・地域又は機関】IN
(31)【優先権主張番号】16/581,138
(32)【優先日】2019-09-24
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ゴシャール,サンディップ
(72)【発明者】
【氏名】パッタナヤック,ナリニ・カンタ
(72)【発明者】
【氏名】ピーター,ビベク
(72)【発明者】
【氏名】カドラバル,ハレーシュ
(57)【要約】      (修正有)
【課題】ソフトウェアツールおよび特徴ベクトル比較を用いて、コンテンツリポジトリからの画像、テキストコンテンツ及び他の関連メディアコンテンツを分析し推奨する方法を提供する。
【解決手段】方法は、テキスト及び/又は視覚入力を分析し、キーワード又はトピックを抽出し、入力コンテンツを分類及びタグ付けし、コンテンツを1つ以上のコンテンツリポジトリに格納し、入力テキスト及び/又は入力画像を、多次元ベクトル空間内でベクトルに変換するとともに、コンテンツリポジトリ内の関連コンテンツアイテムを識別するためにベクトル空間内の複数の特徴ベクトルと比較し、網羅的な深層サーチ及び/又は効率的なタグベースのフィルタリング済みサーチを含み、関連コンテンツアイテム(画像、音声及び/又は映像クリップ等)を取出すとともに、コンテンツオーサーに提示し、オリジナルのオーサリング済みコンテンツ内に埋込む。
【選択図】図6
【特許請求の範囲】
【請求項1】
ベクトル空間内のベクトル比較に基づいてコンテンツを選択する方法であって、
コンピューティングデバイスが、ユーザインターフェイスを介して、テキスト入力データを受取るステップと、
前記コンピューティングデバイスが、前記テキスト入力データの分析に基づいて、前記テキスト入力データのキーワード、トピックまたは特徴のうち少なくとも1つを判定するステップと、
前記コンピューティングデバイスが変換アルゴリズムを実行するステップとを含み、前記少なくとも1つの判定されたキーワード、トピックまたは特徴が前記変換アルゴリズムへの入力として提供されるとともに、前記変換アルゴリズムが前記テキスト入力データに対応する特徴ベクトルを出力し、前記方法はさらに、
前記コンピューティングデバイスが、前記テキスト入力データに対応する前記特徴ベクトルを、ベクトル空間内に格納された複数の付加的な特徴ベクトルの各々と比較するステップと、
前記コンピューティングデバイスが、前記特徴ベクトルと前記複数の付加的な特徴ベクトルとの比較に基づいて、前記付加的な特徴ベクトルのうちの1つ以上を選択するステップと、
前記コンピューティングデバイスが、コンテンツリポジトリから、前記1つ以上の選択された付加的な特徴ベクトルに対応する1つ以上のコンテンツファイルを取出すステップと、
前記コンピューティングデバイスが、前記ユーザインターフェイスを介して前記1つ以上のコンテンツファイルの選択可能な表現をレンダリングするステップとを含む、方法。
【請求項2】
前記ユーザインターフェイスを介して、第1のコンテンツファイルに対応する第1のユーザ入力コンポーネントの選択を受取るステップと、
前記コンテンツリポジトリから前記第1のコンテンツファイルを取出すステップと、
前記テキスト入力データを含む第1のコンテンツファイルの表現をユーザインターフェイス領域内に埋込むステップとを含む、請求項1に記載の方法。
【請求項3】
前記テキスト入力データに対応する前記特徴ベクトルを、前記ベクトル空間内に格納された前記複数の付加的な特徴ベクトルと比較するステップは、
前記特徴ベクトルに関連付けられた1つ以上のタグを取出すステップと、
前記特徴ベクトルに関連付けられた前記1つ以上のタグに一致する1つ以上のタグを有する前記複数の付加的な特徴ベクトルのサブセットを判定するステップと、
前記テキスト入力データに対応する前記特徴ベクトルを、前記ベクトル空間内に格納された前記複数の付加的な特徴ベクトルの前記サブセットと比較するステップとを含む、請求項1に記載の方法。
【請求項4】
前記テキスト入力データに対応する前記特徴ベクトルを、前記ベクトル空間内に格納された前記複数の付加的な特徴ベクトルと比較するステップは、
前記ベクトル空間内に格納された前記複数の付加的な特徴ベクトルの特定の特徴ベクトルごとに、前記特定の特徴ベクトルと前記テキスト入力データに対応する前記特徴ベクトルとの間のユークリッド距離を算出するステップを含む、請求項1に記載の方法。
【請求項5】
前記取出されたコンテンツファイルは複数の画像ファイルを含み、前記方法はさらに、前記ユーザインターフェイスを介して前記テキスト入力データを受取る前に、
前記複数の画像ファイルの各々を受取って前記コンテンツリポジトリに格納するステップと、
画像分類ソフトウェアツールを用いて、前記複数の画像ファイルの各々内の1つ以上の
画像特徴を識別するステップと、
前記複数の画像ファイル内において識別された前記画像特徴に基づいて、前記複数の画像ファイルの各々について1つ以上の画像タグを生成するステップと、
前記複数の画像ファイル内において識別された前記画像特徴に基づいて、前記コンテンツリポジトリ内の前記複数の画像ファイルに対応する、前記ベクトル空間内に格納される前記複数の付加的な特徴ベクトルを生成するステップとを含む、請求項1に記載の方法。
【請求項6】
前記ベクトル空間は、複数の異なるベクトル空間を含み、各々の異なるベクトル空間は、異なる種類のメディアコンテンツに対応するベクトルを格納しており、前記方法はさらに、
前記テキスト入力データに埋込まれるべきメディアコンテンツのタイプを識別する選択を前記ユーザインターフェイスを介して受取るステップと、
前記識別されたメディアコンテンツのタイプに対応する特定のベクトル空間に、前記複数の異なるベクトル空間からアクセスするステップとを含み、前記1つ以上の付加的な特徴ベクトルは前記特定のベクトル空間から選択される、請求項1に記載の方法。
【請求項7】
前記複数の異なるベクトル空間は、少なくとも、
複数の画像ファイルに対応する複数の特徴ベクトルを格納する第1のベクトル空間と、
複数のウェブページに対応する複数の特徴ベクトルを格納する第2のベクトル空間とを含む、請求項6に記載の方法。
【請求項8】
前記テキスト入力データの分析は、(1)キーワード抽出プロセス、(2)ステミングプロセス、および(3)同義語検索プロセスを含む、請求項1に記載の方法。
【請求項9】
方法であって、
コンテンツ推奨システムが、クライアントコンピューティングデバイスから入力コンテンツを受取るステップと、
前記コンテンツ推奨システムが、前記入力コンテンツについて関連付けられた1つ以上のタグのセットを判定するステップと、
前記入力コンテンツについての前記タグのセットに基づいて、前記コンテンツ推奨システムが、複数のコンテンツアイテムから、一致するコンテンツアイテムのセットを識別するステップとを含み、前記複数のコンテンツアイテムからのコンテンツアイテムは、当該コンテンツアイテムに関連付けられた少なくとも1つのタグが前記入力コンテンツについての前記1つ以上のタグ内のタグと一致する場合、前記一致するコンテンツアイテムのセットに含まれており、
前記一致するコンテンツアイテムのセット内の各コンテンツアイテムごとに、
(a)前記コンテンツ推奨システムが、前記コンテンツアイテムについての第1のスコアを算出し、前記第1のスコアは、前記入力コンテンツについての前記1つ以上のタグに一致する前記コンテンツアイテムに関連付けられたコンテンツタグの数に基づいており、
(b)前記コンテンツ推奨システムが、前記コンテンツアイテムについての第2のスコアを算出し、前記第2のスコアは、前記入力コンテンツについての前記1つ以上のタグと一致する前記コンテンツアイテムに関連付けられた1つ以上のタグに対応する1つ以上のタグ値に基づいており、
(c)前記コンテンツ推奨システムが、前記コンテンツアイテムについて算出された前記第1のスコアおよび前記第2のスコアに基づいて、前記コンテンツアイテムについて総アイテムランク付けスコアを算出し、前記方法はさらに、
前記コンテンツ推奨システムが、前記一致するコンテンツアイテムのセットの各々について算出された前記総アイテムランク付けスコアに基づいて、前記一致するコンテンツアイテムのセットからコンテンツアイテムのランク付けリストを生成するステップと、
前記コンテンツ推奨システムが、前記コンテンツアイテムのランク付けリストに基づいて、前記一致するコンテンツアイテムのセットから1つ以上のコンテンツアイテムを選択するステップと、
前記コンテンツ推奨システムが、前記一致するコンテンツアイテムから選択された前記1つ以上のコンテンツアイテムに関する推奨情報を、前記クライアントコンピューティングデバイスに通信するステップとを含み、前記推奨情報は、前記選択された1つ以上のコンテンツアイテムに関する情報が前記クライアントコンピューティングデバイスを用いて出力されることを可能にする、方法。
【請求項10】
重みが、前記入力コンテンツについての前記1つ以上のタグにおける少なくとも1つのタグに関連付けられ、
前記コンテンツアイテムについての前記第1のスコアを算出するステップは、
前記コンテンツアイテムに関連付けられたタグが前記入力コンテンツについての前記1つ以上のタグにおける前記少なくとも1つのタグと一致すると判定するステップと、
前記少なくとも1つのタグに関連付けられた前記重みを用いることによって、前記コンテンツアイテムについての前記第1のスコアを算出するステップとを含む、請求項9に記載の方法。
【請求項11】
前記コンテンツアイテムについての前記第2のスコアを算出するステップは、
前記入力コンテンツについての前記1つ以上のタグと一致するとともに前記コンテンツアイテムに関連付けられた1つ以上のコンテンツタグを識別するステップと、
前記コンテンツアイテムに関連付けられた前記1つ以上のコンテンツタグにおける各タグごとに、前記タグについてのタグ値を判定するステップと、
前記コンテンツアイテムに関連付けられた前記1つ以上のタグについて判定された前記1つ以上のタグ値を乗算することによって、前記コンテンツアイテムについての前記第2のスコアを計算するステップとを含む、請求項9に記載の方法。
【請求項12】
前記コンテンツアイテムについての前記第2のスコアを算出するステップは、前記入力コンテンツについての前記1つ以上のタグと一致するとともに前記コンテンツアイテムに関連付けられた1つ以上のタグに対応する前記1つ以上のタグ値に基づいて、ナイーブベイズ技術を用いるステップを含む、請求項9に記載の方法。
【請求項13】
前記コンテンツアイテムについての前記第2のスコアを算出するステップは、
前記入力コンテンツについての前記1つ以上のタグと一致するとともに前記コンテンツアイテムに関連付けられた前記1つ以上のタグにおける少なくとも第1のタグについて、前記複数のコンテンツアイテムのうち前記第1のタグに関連付けられたコンテンツアイテムの頻度を判定するステップと、
前記頻度を用いて、前記頻度に反比例する前記第2のスコアを算出するステップとを含む、請求項9に記載の方法。
【請求項14】
前記コンテンツアイテムについての前記総アイテムランク付けスコアを算出するステップは、前記コンテンツアイテムについて算出された前記第1のスコアと前記コンテンツアイテムについて算出された前記第2のスコアとを加算するステップを含む、請求項9に記載の方法。
【請求項15】
前記複数のコンテンツアイテムにおける各コンテンツアイテムごとに、前記コンテンツアイテムに関連付けられるべき1つ以上のタグのセットと、各タグごとに前記タグについてのタグ値とを判定するステップをさらに含む、請求項9に記載の方法。
【請求項16】
前記クライアントコンピューティングデバイスから受取った前記入力コンテンツは、前
記クライアントコンピューティングデバイスのユーザによってオーサリングされるコンテンツ、または、検索エンジンへの入力として提供される1つ以上の検索用語、のうち少なくとも1つを含む、請求項9に記載の方法。
【請求項17】
前記入力コンテンツに関連付けられた前記1つ以上のタグを判定するステップは、
前記入力コンテンツに対してキーワード抽出プロセスを実行するステップと、
前記キーワード抽出プロセスの出力に対してステミングプロセスを実行するステップと、
前記ステミングプロセスの出力に対して同義語検索プロセスを実行するステップとを含む、請求項9に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
優先権主張
本願は、(1)2018年10月18日付けで出願された「コンテンツオーサーのためのスマートコンテンツ推奨(SMART CONTENT RECOMMENDATIONS FOR CONTENT AUTHORS)」
と題されたインド仮特許出願第201841039495号の利点および優先権を主張する、2019年9月24日付けで出願された「コンテンツオーサーのためのスマートコンテンツ推奨(SMART CONTENT RECOMMENDATIONS FOR CONTENT AUTHORS)」と題された米国
特許出願第16/581,138号の優先権を主張するとともにその一部継続出願であり、(2)2018年10月18日付けで出願された「コンテンツオーサーのためのスマートコンテンツ推奨(SMART CONTENT RECOMMENDATIONS FOR CONTENT AUTHORS)」と題され
たインド仮特許出願第201841039495号の利益および優先権を主張するものである。米国特許出願第16/581,138号およびインド仮特許出願第201841039495号の内容全体が、あらゆる目的のために引用により本明細書に援用されている。
【背景技術】
【0002】
オンライン出版および/または送信向けのオリジナルコンテンツの作成者およびオーサーは、新しく作成されたコンテンツを生成し、編集し、格納するための多種多様なソフトウェアベースのツールおよび技術を用いる可能性がある。たとえば、新しいオリジナルコンテンツは、オンライン記事、広報、電子メール、ブログ投稿などを含み得る。このようなコンテンツは、ソフトウェアベースのワードプロセッサツール、電子メールクライアントアプリケーション、ウェブ開発ツールなどによって生成され得る。オーサリングされた新しいコンテンツの生成中に、オーサーがコンテンツ内の付加的な関連アイテム(たとえば、話題の画像および関係記事へのリンクなど)を識別して組込むことが有用であり得る。
【0003】
しかしながら、検索エンジン、キーワードサーチなどを用いるときでも、関連画像、リンク、および他の関係するコンテンツの位置特定および組込みは、困難であり手動で行なうには時間がかかることが分かっている。たとえば、新しいコンテンツの作成者またはオーサーが、関係するアイテムを自身の新しくオーサリングされたテキストに組込むことを望む場合、オーサーは、所望の関連するアイテムの位置を特定し、オーサリングされたコンテンツ内にアイテムを安全に挿入できること(たとえば、ウィルスおよびマルウェアがないこと)を保証し、オーサーおよび/または組織によるアイテムの使用が認可されていることを確認し、新たにオーサリングされたコンテンツ内に当該アイテムを埋込む必要がある。これらのプロセスの各々は、技術的に難易度が高く、多くの手作業を必要とし、非効率的である可能性がある。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本開示の局面は、コンテンツリポジトリからの画像、テキストコンテンツおよび他の関連メディアコンテンツを推奨するためのスマートデジタルアシスタントとして機能するように構成された人工知能(artificial intelligence:AI)駆動ツールに関する。特定
の実施形態は、オリジナルのメディアコンテンツ(たとえば、ブログ投稿、オンライン記事など)をオーサリングするのに用いられるコンテンツオーサリングインターフェイスを補足するためのグラフィカルユーザインターフェイスを有するフロントエンドソフトウェアツールを含み得る。場合によっては、既存のコンテンツオーサリングソフトウェアツー
ルに、付加的なGUI画面および特徴が、たとえばソフトウェアプラグインとして組込まれてもよい。スマートデジタルコンテンツ推奨ツールは、いくつかのバックエンドサービスおよびコンテンツリポジトリと通信して、たとえば、テキストおよび/または視覚入力を分析し、当該入力からキーワードまたはトピックを抽出し、入力コンテンツを分類およびタグ付けし、分類/タグ付けされたコンテンツを1つ以上のコンテンツリポジトリに格納し得る。
【0005】
(たとえば、ソフトウェアツールによって直接、および/または、バックエンドサービスを呼び出すことによって間接的に)スマートデジタルコンテンツ推奨ツールのさまざまな実施形態において実行される付加的な技術は、入力されたテキストおよび/または画像を多次元ベクトル空間内でベクトルに変換することと、コンテンツリポジトリ内でいくつかの関連するコンテンツオプションを発見するために入力コンテンツを複数のリポジトリコンテンツと比較することとを含み得る。このような比較は、完全かつ網羅的な深層サーチおよび/またはより効率的なタグベースのフィルタリング済みサーチを含み得る。最後に、関連するコンテンツアイテム(たとえば、画像、音声および/または映像クリップ、関係記事へのリンク等)が取出され、レビュー用にコンテンツオーサーに提示されて、オリジナルのオーサリング済みコンテンツ内に埋込まれ得る。
【0006】
本開示に従った実施形態の性質および利点は、添付の図面と併せて本明細書の残りの部分を参照することによってさらに理解され得る。
【図面の簡単な説明】
【0007】
図1】本開示の特定の実施形態が実装され得るデータ統合クラウドプラットフォームを含む例示的なコンピュータシステムアーキテクチャを示す図である。
図2】本開示の特定の実施形態に従った、サービスインスタンスを構成、監視および制御するのに用いられるユーザインターフェイスにおけるカスタマイズされたダッシュボードの例示的な画面を示す図である。
図3】本開示の特定の実施形態に従ったデータ統合クラウドプラットフォームを示すアーキテクチャ図である。
図4】本開示の特定の実施形態に従った、コンテンツ分類および推奨を実行するように構成された例示的なコンピューティング環境を示す図である。
図5】本開示の特定の実施形態に従った、コンテンツ分類および推奨を実行するように構成された例示的なコンピューティング環境を示す別の図である。
図6】本開示の特定の実施形態に従った、コンテンツリポジトリ内のコンテンツリソースに基づいて特徴ベクトルを生成するためのプロセスを示すフローチャートである。
図7】本開示の特定の実施形態に従った、複数の画像特徴を識別する例示的な画像を示す図である。
図8】本開示の特定の実施形態に従った、キーワード抽出プロセスを示すテキスト文書の例を示す図である。
図9】本開示の特定の実施形態に従った、画像タグを生成および格納するプロセスを示す図である。
図10】本開示の特定の実施形態に従った、画像タグを生成および格納するプロセスを示す図である。
図11】本開示の特定の実施形態に従った、画像タグを生成および格納するプロセスを示す図である。
図12】本開示の特定の実施形態に従った、特徴ベクトル同士を比較し、コンテンツリポジトリ内の関係するコンテンツを識別するための別のプロセスを示すフローチャートである。
図13】本開示の特定の実施形態に従った、画像ファイルを特徴ベクトルに変換する技術を示す図である。
図14】本開示の特定の実施形態に従った、特徴ベクトルがポピュレートされた例示的なベクトル空間を示すである。
図15】本開示の特定の実施形態に従った、深層特徴空間ベクトル比較を示す図である。
図16】本開示の特定の実施形態に従った、フィルタリング済み特徴空間ベクトル比較を示す図である。
図17】本開示の特定の実施形態に従った、フィルタリング済み特徴空間ベクトル比較を示す図である。
図18】本開示の特定の実施形態に従った、関係する画像または記事を識別するためにテキスト入力を受取って処理するプロセスを示す図である。
図19】本開示の特定の実施形態に従った、抽出されたキーワードと画像タグとの比較を示す例示的な図である。
図20】本開示の特定の実施形態に従った、3D単語ベクトル空間内のキーワード分析の例を示す図である。
図21】本開示の特定の実施形態に従った、キーワードとタグとのベクトル空間分析を示す図である。
図22】本開示の特定の実施形態に従った、同音異義語画像タグの例を示す図である。
図23】本開示の特定の実施形態に従った例示的な曖昧性除去プロセスを示す図である。
図24】本開示の特定の実施形態に従った例示的な曖昧性除去プロセスを示す図である。
図25】本開示の特定の実施形態に従った、特徴ベクトル同士を比較し、コンテンツリポジトリ内の関係するコンテンツを識別するプロセスを示す図である。
図26】本開示の特定の実施形態に従った、特徴ベクトル同士を比較し、コンテンツリポジトリ内の関係するコンテンツを識別するプロセスを示す図である。
図27】本開示の特定の実施形態に従った、特徴ベクトル同士を比較し、コンテンツリポジトリ内の関係するコンテンツを識別するプロセスを示す図である。
図28】本開示の特定の実施形態に従った、特徴ベクトル同士を比較し、コンテンツリポジトリ内の関係するコンテンツを識別するプロセスを示す図である。
図29】本開示の特定の実施形態に従った、トピック抽出プロセスを示すテキスト文書の例示的な図である。
図30】本開示の特定の実施形態に従った、トピック抽出プロセスを示すテキスト文書の例示的な図である。
図31】本開示の特定の実施形態に従った、入力テキストデータに基づいて関係する記事を識別するプロセスを示す図である。
図32】本開示の特定の実施形態に従った、入力テキストデータに基づいて関係する記事を識別するプロセスを示す図である。
図33】本開示の特定の実施形態に従った、入力テキストデータに基づいて関係する記事を識別するプロセスを示す図である。
図34】本開示の特定の実施形態に従った、入力テキストデータに基づいて関係する記事を識別するプロセスを示す図である。
図35】本開示の特定の実施形態に従った、入力テキストデータに基づいて関係する記事を識別するプロセスを示す図である。
図36】本開示の特定の実施形態に従った、例示的なセマンティックテキストアナライザシステムを示す図である。
図37】本開示の特定の実施形態に従った、コンテンツの作成中にユーザに提供される画像推奨を示す例示的なユーザインターフェイス画面を示す図である。
図38】本開示の特定の実施形態に従った、コンテンツの作成中にユーザに提供される画像推奨を示す例示的なユーザインターフェイス画面を示す図である。
図39】本開示に従った特定の実施形態を実装するための分散システムを示す簡略図である。
図40】本開示の特定の実施形態に従った、システムの1つ以上のコンポーネントによって提供されるサービスがクラウドサービスとして提供され得る、システム環境における1つ以上のコンポーネントを示す簡略ブロック図である。
図41】さまざまな実施形態が実装され得る例示的なコンピュータシステムを示す図である。
図42】本開示の特定の実施形態に従った、ユーザまたはクライアントシステムから受取った入力コンテンツに応答してコンテンツリポジトリからのコンテンツアイテムを評価してランク付けするように構成された例示的なコンピューティング環境を示す図である。
図43】本開示の特定の実施形態に従った、ユーザコンテンツに関連するコンテンツアイテムを識別してランク付けするためのプロセスを示すフローチャートである。
図44】本開示の特定の実施形態に従ったコンテンツオーサリングユーザインターフェイスの例示的な画面を示す図である。
図45】本開示の特定の実施形態に従った、コンテンツ推奨システムによって識別される一致するコンテンツアイテムのセットの例示的な表を示す図である。
図46】本開示の特定の実施形態に従った、ランク付けスコアを含む一致するコンテンツアイテムのセットの別の例示的な表を示す図である。
図47】本開示の特定の実施形態に従ったコンテンツオーサリングユーザインターフェイスの別の例示的な画面を示す図である。
【発明を実施するための形態】
【0008】
添付の図面では、同様の構成要素および/または特徴は同じ参照レベルを有し得る。さらに、同様の構成要素同士を識別するダッシュおよび第2のラベルが当該参照ラベルの後に続くことによって同じタイプのさまざまな構成要素が区別され得る。第1の参照ラベルが本明細書において用いられる場合、第2の参照ラベルに関わらず、当該記載は、同じ第1の参照ラベルを有する同様の構成要素のいずれか1つに適用可能である。
【0009】
詳細な説明
以下の記載では、さまざまな実装例および例を十分に理解できるようにするために、説明する目的で具体的な詳細が記載される。しかしながら、これらの具体的な詳細なしでもさまざまな実装例が実施され得ることが明らかになるだろう。たとえば、回路、システム、アルゴリズム、構造、技術、ネットワーク、プロセス、および他の構成要素は、不必要な詳細で実装例を不明瞭にしないためにブロック図の形態の構成要素として示され得る。図および記載は限定することを意図したものではない。
【0010】
本開示の図に関して開示されるようないくつかの例は、フローチャート、フロー図、データフロー図、構造図、シーケンス図、またはブロック図として示されるプロセスとして説明され得る。シーケンス図またはフローチャートは、動作を連続的なプロセスとして説明し得るが、動作の多くは並行してまたは同時に実行されてもよい。加えて、動作の順序は並べ替えられてもよい。プロセスは、その動作が完了すると終了するが、図に含まれない付加的なステップを有していてもよい。プロセスは、方法、機能、手順、サブルーチン、サブプログラムなどに対応し得る。或るプロセスが或る機能に対応する場合、そのプロセスの終了は、対応する機能を呼出し機能または主機能に戻すことに対応し得る。
【0011】
本開示の図を参照して説明されるプロセスなどの、本明細書に記載されるプロセスは、1つ以上の処理ユニット(たとえば、プロセッサコア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合せで実装され得る。ソフトウェアは、メモリ(たとえば、メモリデバイス上、非一時的なコンピュ
ータ可読記憶媒体上)に格納されてもよい。いくつかの例では、本明細書のシーケンス図およびフローチャートに示されるプロセスは、本明細書で開示されるシステムのいずれかによって実装され得る。本開示における特定の一連の処理ステップは、限定することを意図していない。ステップの他のシーケンスが代替例に従って実行されてもよい。たとえば、本開示の代替例は、上記で概説したステップを異なる順序で実行することもある。さらに、図に示される個々のステップは、個々のステップに適したさまざまな順序で実行され得る複数のサブステップを含み得る。さらに、特定の用途に応じて、付加的なステップが追加または削除されてもよい。当業者であれば、多くの変形例、変更例および代替例を認識するだろう。
【0012】
いくつかの例では、本開示の図における各プロセスは、1つ以上の処理ユニットによって実行され得る。処理ユニットは、シングルコアもしくはマルチコアプロセッサ、プロセッサの1つ以上のコア、またはそれらの組合わせを含む1つ以上のプロセッサを含み得る。いくつかの例では、処理ユニットは、グラフィックプロセッサ、デジタル信号プロセッサ(digital signal processor:DSP)などの1つ以上の専用コプロセッサを含み得る。いくつかの例では、処理ユニットのいくつかまたは全ては、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)またはフィールドプログラマブル
ゲートアレイ(Field programmable gate array:FPGA)などのカスタマイズされた
回路を用いて実装され得る。
【0013】
本明細書で説明する特定の実施形態は、データ統合プラットフォームクラウド(Data Integration Platform Cloud:DIPC)の一部として実装され得る。概して、データ統
合は、異なるデータソースに存在するデータを組合わせることと、データの統一されたアクセスおよび統一されたビューをユーザに提供することとを含む。このプロセスは頻繁に行われるものであって、既存のレガシーデータベースと商業用エンティティとをマージするなど多くの状況において重要となる。有用な結果(「ビッグデータ(big data)」)を提供するためにデータを分析する能力に合わせてデータの量が増加し続けるのに応じて、エンタープライズソフトウェアシステムにおいてデータ統合の発生する頻度が高くなり始めている。たとえば、ユーザがさまざまな種類の旅行情報(たとえば、天候、ホテル、航空会社、人口統計、犯罪統計など)について問合わせることができるウェブアプリケーションについて考察する。エンタープライズアプリケーションは、これらのさまざまなデータタイプの全てを単一のスキーマで単一のデータベースに格納する必要なしに、DIPC内の統合されたビューおよび仮想スキーマを用いて、多くの異種データソースを組合わせることで、それらを統合されたビューでユーザに提示することができる。
【0014】
DIPCは、データ変換、統合、複製、および管理のためのクラウドベースのプラットフォームである。これは、デフォルト公差およびレジリエンシーとのデータ一貫性を維持しながら、クラウドとオンプリミスのデータソースとの間でバッチデータおよびリアルタイムデータを移動させるものである。DIPCは、さまざまなデータソースに接続して、これらさまざまなデータソースが1つ以上のデータウェアハウスに結合されたときにこれらのさまざまなソースからデータを準備、変換、複製、管理および/または監視するのに用いられ得る。DIPCは、任意のタイプのデータソースと協働し、任意のフォーマットで任意のタイプのデータをサポートし得る。DIPCは、サービスとしてのプラットフォーム(Platform as a Service:PaaS)、またはサービスとしてのインフラストラク
チャ(Infrastructure as a Service:IaaS)のアーキテクチャを用いて、エンター
プライズのためにクラウドベースのデータ統合を提供し得る。
【0015】
DIPCは、データソース全体を新しいクラウドベースのデプロイメントに転送すること、および、クラウドプラットフォームからクラウドデータベースへの容易なアクセスを可能にすることを含め、いくつかの異なるユーティリティを提供し得る。データをリアル
タイムでストリーミングして最新の新しいデータソースにするとともに、任意の数の分散データソースを同期させたまま維持することができる。負荷は、エンドユーザにとって利用可能性が極めて高いままで維持されるように、同期されたデータソース間で分割されてもよい。基礎となるデータ管理システムは、データベースクラウド、ビッグデータクラウド、サードパーティクラウドなどへのデプロイメントのためにネットワーク上を移動させるデータの量を減らすために用いることができる。ドラッグ・アンド・ドロップユーザインターフェイスを用いて、再利用可能な抽出、ロードおよび変換(Extract, Load, and Transform:ELT)機能およびテンプレートを実行し得る。リアルタイムテスト環境は、エンドユーザにとってデータの利用可能性が極めて高いままで維持されるように複製データソース上のクラウド内で報告およびデータ分析を実行するために作成され得る。データ移行は、複製された同期済みデータソースを用いてゼロダウンタイムで実行され得る。同期済みデータソースはまた、利用可能性を維持するシームレスな障害回復のために用いることもできる。
【0016】
図1は、いくつかの実施形態に従った、さまざまな既存のプラットフォームからのデータを統合するためにDIPCを利用するコンピュータシステムアーキテクチャを示す。第1のデータソース102は、クラウドベースのストレージリポジトリを含み得る。第2のデータソース104は、オンプレミスデータセンタを含み得る。第1のデータソース102および第2のデータソース104への均一なアクセスおよびビューを提供するために、DIPC108は、高性能ELT機能106の既存のライブラリを用いて、第1のデータソース102および第2のデータソース104からのデータをコピーすることができる。DIPC108は、データが新しいクラウドプラットフォームに格納されると当該データを抽出、エンリッチ化および変換することもできる。DIPC108は、さらに、クラウドプラットフォーム内に常駐するかまたはクラウドプラットフォームによってアクセス可能である任意のビッグデータユーティリティへのアクセスを可能にする。いくつかの実施形態では、オリジナルのデータソース102および104が顧客へのアクセスを提供し続け得る一方で、クラウドプラットフォーム内の複製されたデータソースは、試験、監視、管理およびビッグデータ分析のために用いることができる。いくつかの実施形態では、データ管理が、ユーザインターフェイス内の既存の1セットのカスタマイズされたダッシュボード内でデータソースをプロファイリング、クレンジングおよび管理するために提供さされ得る。
【0017】
図2は、ユーザインターフェイスにおけるカスタマイズされたダッシュボードのうち、DIPC108においてサービスインスタンスを構成、監視、および制御するために用いることができるダッシュボードを示す。サマリダッシュボード202は、ユーザがサービスインスタンスを作成することを可能にする制御204を提供し得る。次いで、一連のプログレッシブウェブフォームを提示することで、サービスインスタンスを作成するために用いられる情報のタイプを順々にユーザに提示することができる。第1のステップにおいて、ユーザは、電子メールアドレスおよびサービスエディションタイプ付きのサービス名および記述を提供することを要求されるだろう。ユーザはまた、サービスにおいて用いられる仮想マシンの数を指定するクラスタサイズについて質問される可能性もある。サービスエディションタイプに応じて、仮想マシンにどのアプリケーションがインストールされているかが判定される。第2のステップおよび対応するウェブフォームにおいて、ユーザは、DIPCサーバのスキーマを格納するために実行中のクラウドデータベースデプロイメントを提供し得る。後に、同じデータベースを用いて、データエンティティを格納し、統合タスクを実行することもできる。加えて、ストレージクラウドは、バックアップユーティリティとして指定および/またはプロビジョニングされてもよい。ユーザはまた、データ統合に用いられる既存のデータソースにアクセスするために用いることができるクレデンシャルを提供し得る。第3のステップでは、プロビジョニング情報が確認され得るとともに、サービスインスタンスが作成され得る。次いで、新しいサービスインスタンスが
、サマリダッシュボード202のサマリエリア206に表示され得る。そこから、ユーザは、実行中の任意のデータ統合サービスインスタンスについてのいずれかの情報にアクセスし得る。
【0018】
図3は、いくつかの実施形態に従ったDIPCのアーキテクチャ図を示す。要求は、コンポーネントのJava(登録商標)Script(登録商標)Extension Toolkit(JET)セットを用いて実装され得るブラウザクライアント302を介して受取られてもよい。代替的には、または付加的には、当該システムは、顧客のオンプレミスデータセンタ306において動作するDIPCエージェント304を介して要求を受取ることもできる。DIPCエージェント304は、オラクル社(Oracle)のGoldenGate(登録商標)サービスなどの複製サービスのためのデータ統合エージェント308およびエージェント310を含み得る。これらのエージェント308、310の各々は、通常の動作中にオンプレミスデータセンタ306から情報を取出して、接続サービス312を用いてDIPCにデータを返信し得る。
【0019】
着信要求は、DIPCを通じて要求をルーティングするためのロードバランシングまたは他のユーティリティを含み得るサインインサービス314に渡すことができる。サインインサービス314は、統合されたエンタープライズセキュリティファブリックの一部としてクラウドプラットフォームのためにセキュリティおよびアイデンティティ管理を提供するために、アイデンティティクラウドサービス316などのアイデンティティ管理サービスを用いてもよい。アイデンティティクラウドサービス316は、本実施形態で説明するクラウドデプロイメントおよびオンプレミスアプリケーションの両方についてのユーザアイデンティティを管理し得る。アイデンティティクラウドサービス316に加えて、DIPCはまた、クラウドデプロイメントにおけるプラットフォームサービスのライフサイクルを管理するためのインターフェイスを提供するために、PaaSサービスマネージャ(PaaS Service Manage:PSM)ツール318を用いてもよい。たとえば、PSMツー
ル318を用いて、クラウドプラットフォームにおけるデータ統合サービスのインスタンスを作成および管理することができる。
【0020】
DIPCは、クラウド環境においてエンタープライズアプリケーションを構築およびデプロイするために、ウェブ論理サーバ320上において実装され得る。DIPCは、DIPCを通過する情報に関するデータポリシー、設計情報、メタデータ、および監査データを格納するローカルリポジトリ322を含み得る。DIPCはまた、ローカルリポジトリ322をポピュレートするための監視サービス324を含んでもよい。カタログサービス326は、クラウドデプロイメントにおけるSaaSアプリケーションおよびPaaSアプリケーションの多くにアクセスできるようにするために機械可読オープンAPIの集合を含み得る。カタログサービス326は、Apache Solr(登録商標)などの分散型インデ
ックス付けサービスを用いるサーチアプリケーション338にも利用可能であり得る。接続サービス328および仲介サービス330は、接続を管理し得るとともに、DIPCを通過する情報に関する論理を変換、検証およびルーティングし得る。DIPC内の情報は、イベント駆動型アーキテクチャ(Event Driven Architecture:EDA)および対応す
るメッセージバス332を用いて渡されてもよい。
【0021】
DIPCはまた、オーケストレーションサービス334を含み得る。オーケストレーションサービス334は、RESTエンドポイント、スクリプト、サードパーティ自動化フレームワーク等を呼び出すことによって自動化タスクを可能にし得る。次いで、これらのタスクがオーケストレーションサービス334によって実行されて、DIPC機能が提供され得る。オーケストレーションサービス334は、ランタイムサービスを用いて、データをインポート、変換および格納し得る。たとえば、ELTランタイムサービス334は、上述のELT機能のライブラリを実行することができ、複製ランタイムサービス342
は、さまざまなデータソースからのデータをクラウドデプロイ型DIPCリポジトリ316にコピーすることができる。加えて、DIPCは、ELT機能および複製機能の両方のために自動的にコードを生成するコード生成サービス336を含み得る。
【0022】
I.スマートコンテンツ<スマートコンテンツ推奨>
上述したように、ユーザがオリジナルのメディアコンテンツ(たとえば、記事、広報、電子メール、ブログ投稿など)を作成/認可しているとき、関係する画像、音声/映像クリップ、関係する記事へのリンク、または他のコンテンツなどの関連する付加的コンテンツでオーサリング済みコンテンツを強化することがしばしば有用である。しかしながら、このような付加的コンテンツをサーチすること、さらには、ユーザのオリジナルのオーサリング済みコンテンツ内に付加的コンテンツを埋込むことは、いくつかの点で困難であるかもしれない。最初の難題は、信頼できるソースから安全/確実な付加的コンテンツを発見すること、および、ユーザ/オーサーがそのコンテンツを自身の作業に組込むのを認可されることを確実にすること、を含み得る。加えて、このような安全かつ認可された任意のコンテンツリポジトリから、ユーザ/オーサーが自身のオリジナルのオーサリング済みコンテンツ内に任意の関連コンテンツを位置特定して組込む/埋込むことは、多くの手作業を必要とする非効率的なプロセスとなる可能性がある。
【0023】
したがって、本明細書で説明する特定の局面は、スマートデジタルコンテンツ推奨ツールに関する。特定の実施形態では、スマートデジタルコンテンツ推奨ツールは、コンテンツオーサーからの入力コンテンツ(たとえば、テキスト、画像)をリアルタイムで処理して分析するとともに、1つ以上の信頼できるコンテンツリポジトリから関連画像、付加的なテキストコンテンツおよび/または他の関連メディアコンテンツ(たとえば、音声クリップまたは映像クリップ、グラフィックス、ソーシャルメディア投稿など)を推奨するように構成された人工知能(AI)駆動ツールであってもよい。スマートデジタルコンテンツ推奨ツールは、いくつかのバックエンドサービスおよびコンテンツリポジトリと通信して、たとえば、テキストおよび/または視覚入力を分析し、当該入力からキーワードまたはトピックを抽出し、入力コンテンツを分類およびタグ付けし、分類/タグ付けされたコンテンツを1つ以上のコンテンツリポジトリに格納してもよい。
【0024】
本明細書で説明する付加的な局面は、各々がコンテンツオーサーによって操作されるクライアント上で実行されるスマートデジタルコンテンツ推奨ツールを介して直接、および/または、さまざまなバックエンドサービスを呼び出すことによって間接的に、実行され得るものであって、(a)テキストおよび/または画像の形態で入力としてオリジナルコンテンツを受取ること、(b)オリジナルコンテンツからキーワードおよび/またはトピックを抽出すること、(c)オリジナルコンテンツについての関連付けられたキーワードおよび/またはトピックタグを判定して格納すること、(d)オリジナルコンテンツ(たとえば、入力されたテキストおよび/または画像)を多次元ベクトル空間内でベクトルに変換すること、(e)ユーザ/オーサーによってオーサリングされたオリジナルコンテンツ入力に関係するさまざまな潜在的に関連する付加的コンテンツを発見して識別するために、このようなベクトルを、コンテンツリポジトリ内の付加的なコンテンツのそれぞれを表わしている複数の他のコンテンツベクトルと比較すること、ならびに、最後に、(f)スマートデジタルコンテンツ推奨ツールを介して識別済み付加的コンテンツを取出してオーサーに提示することを含み得る。いくつかの実施形態では、各々の付加的なコンテンツアイテム(たとえば、画像、関係記事またはウェブページへのリンク、音声ファイルまたは映像ファイル、グラフィックス、ソーシャルメディア投稿など)は、コンテンツのポジショニング、フォーマッティング、再サイジングなどを含め、ユーザがユーザのオリジナルのオーサリング済みコンテンツ内に付加的コンテンツをドラッグアンドドロップするかまたは配置することを可能にするGUIベースのツールにおいて、スマートデジタルコンテンツ推奨ツールによって表示および/またはサムネイル化され得る。
【0025】
ここで図4を参照すると、クライアントデバイス410、コンテンツ入力処理および分析サービス420、コンテンツ推奨エンジン425、コンテンツ管理および分類システム435、ならびにコンテンツ取出しおよび埋込みサービス445を含む、スマートコンテンツ分類および推奨のためのシステム400のさまざまなコンポーネントを示すブロック図が示されている。加えて、システム400は、コンテンツファイル/リソースを格納する1つ以上のコンテンツリポジトリ440と、1つ以上のベクトル空間430とを含む。以下でより詳細に説明するように、ベクトル空間は、1つ以上の特徴ベクトルを格納するように構成された多次元データ構造を指すこともある。いくつかの実施形態では、推奨エンジン425、関連付けられたソフトウェアコンポーネントおよびサービス420および445、コンテンツ管理および分類システム435、ならびに、コンテンツリポジトリ440(1つ以上のデータストアまたは他のデータ構造を格納し得る)は、フロントエンドクライアントデバイス410から離れたところにあるバックエンドサーバシステムとして実装および格納され得る。したがって、クライアントデバイス410とコンテンツ推奨エンジン425との間の対話は、インターネットベースのウェブブラウジングセッション、またはクライアント・サーバアプリケーションのセッションであってもよく、そのセッション中に、ユーザはクライアントデバイス410を介してオリジナルのオーサリング済みコンテンツを入力し得るとともに、コンテンツ推奨エンジン425からコンテンツ推奨を受取り得る。当該コンテンツ推奨の受取りは、コンテンツリポジトリ440から取出されるとともにクライアントデバイス410におけるコンテンツオーサリングユーザインターフェイスにリンクされるかまたは埋込まれる付加的コンテンツの形態で行なわれ得る。付加的には、または代替的には、コンテンツ推奨エンジン425および/またはコンテンツリポジトリ440ならびに関係するサービスは、クライアントデバイス410上で実行される専用のソフトウェアコンポーネントとして実装されてもよい。
【0026】
この例に示されるさまざまなコンピューティングインフラストラクチャ要素(たとえば、コンテンツ推奨エンジン425、ソフトウェアコンポーネント/サービス420、435および445、ならびにコンテンツリポジトリ440)は、さまざまなクライアントデバイス410にインターネットベースのサービスおよび/またはコンテンツを提供するエンタープライズまたは組織によって作成および維持される高レベルのコンピュータアーキテクチャに対応し得る。本明細書で説明するコンテンツ(コンテンツリソースおよび/またはコンテンツファイル、コンテンツリンクなどとも称され得る)は、1つ以上のコンテンツリポジトリに格納され、コンテンツ推奨エンジン425によって取出されるとともに分類され、クライアントデバイス410においてコンテンツオーサーに提供され得る。さまざまな実施形態では、多種多様なメディアタイプまたはファイルタイプのコンテンツが、クライアントデバイス410においてコンテンツオーサーによってオリジナルコンテンツとして入力されてもよく、同様に、多種多様なメディアタイプまたはファイルタイプのコンテンツが、コンテンツリポジトリ440に格納されて、クライアントデバイス410においてフロントエンドユーザインターフェイスについての推奨/フロントエンドユーザインターフェイスへの埋込みが行なわれてもよい。コンテンツオーサーによってオーサリングされるかまたはコンテンツオーサーへと推奨されるこれらの多種多様なメディアタイプは、(たとえば、文字、記事またはブログをオーサリングする)テキスト、(オーサーによってまたはオーサーのために選択された)画像、音声または映像コンテンツリソース、グラフィックス、ソーシャルメディアコンテンツ(たとえば、Facebook(登録商標)、Twitter(登録商標)、Instagram(登録商標)などへの投稿、メッセージまたはツイート)を含み得る。
【0027】
いくつかの実施形態では、図4に示すシステム400はクラウドベースの多層システムとして実装されてもよく、上層のユーザデバイス410は、コンテンツ処理/分析コンポーネント420を介してネットワークベースのリソースおよびサービスへのアクセスを要
求して受取り得る。この場合、アプリケーションサーバは、ハードウェアリソースおよび/またはソフトウェアリソースを含むリソースの基礎となるセット(たとえば、クラウドベース、SaaS、IaaS、PaaSなど)上にでデプロイされて実行され得る。加えて、クラウドベースのシステムがいくつかの実施形態で用いられ得るが、他の例では、システム400は、オンプレミスデータセンタ、サーバファーム、分散コンピューティングシステム、および他のさまざまな非クラウドコンピューティングアーキテクチャを用い得る。コンテンツ処理/分析コンポーネント420、コンテンツ推奨エンジン425、コンテンツ管理および分類システム435、コンテンツ取出しおよび埋込みコンポーネント445、ならびにベクトル空間430の生成および格納について本明細書で説明する機能のいくつかまたは全ては、シンプルオブジェクトアクセスプロトコル(Simple Object Access protocol:SOAP)ウェブサービスもしくはAPIを含むレプレゼンテーショナル
・ステート・トランスファ(Representational State Transfer:REST)サービスお
よび/もしくはウェブサービスによって、ならびに/または、ハイパーテキスト転送プロトコル(Hypertext Transfer Protocol:HTTP)もしくはHTTPセキュアプロトコ
ルを介して公開されるウェブコンテンツによって、実行され得る。こうして、付加的な詳細とともに示されるコンポーネントを不明瞭にしないために図4には示されていないが、コンピューティング環境400は、付加的なクライアントデバイス410、1つ以上のコンピュータネットワーク、1つ以上のファイアウォール435、プロキシサーバ、および/または他の中間ネットワークデバイスを含み得ることで、クライアントデバイス410と、コンテンツ推奨エンジン425と、バックエンドコンテンツリポジトリ440との間の対話を容易にし得る。同様のシステム500の別の実施形態をより詳細に図5に示す。
【0028】
図5を簡潔に参照すると、コンピューティング環境500の別の例示的な図であって、コンテンツ分類および推奨を実行するためのデータフロー/データ変換図が示されている。したがって、この例に示されるコンピューティング環境500は、図4において上述されたコンピューティング環境400の1つの実現可能な実装例に対応し得る。図5では、示される図のブロックのいくつかは、図4で上述した構造ハードウェアおよび/またはソフトウェアコンポーネントではなく、特定のデータ状態またはデータ変換を表わしている。このように、ブロック505は、ユーザインターフェイスを介して受取った入力コンテンツデータを表わし得る。ブロック510は、入力コンテンツ505に基づいてシステム400によって判定されるキーワードのセットを表わす。上述したように、キーワード510は、入力処理/分析コンポーネント420によって、1つ以上のキーワード抽出および/またはトピックモデリングプロセスを用いて判定され得るとともに、テキスト特徴ベクトル515は、判定されたキーワード510に基づいて生成され得る。
【0029】
図5に示される例を続けて参照すると、いくつかの付加的な特徴ベクトル520が、コンテンツリポジトリ440から取出され得る。この例では、付加的な特徴ベクトル520は、1つ以上のニューラルネットワークトレーニング済み画像モデルを実行して、判定されたキーワード510をトレーニング済みモデルに提供することによって、コンテンツリポジトリ440から選択され得る。結果として得られる特徴ベクトル520は、トレーニング済みモデルの出力に基づいて、z%未満の特徴ベクトル確率を有するものを除外するようにさらに狭められてもよく、結果として、取出された特徴ベクトル525のサブセットが得られることとなる。次いで、テスト特徴ベクトル515と取出された特徴ベクトルのサブセット525との間で特徴空間比較530が実行され得る。いくつかの実施形態では、この例に示されるように、最も近いユークリッド距離算出を用いて、テスト特徴515に最も近い、取出された特徴ベクトル525を識別し得る。特徴空間比較530に基づいて、1つ以上の推奨530が判定され得る。各々の推奨530は、テスト特徴ベクトル515と閾値が近い、関連付けられた特徴ベクトル525に基づいており、各々の推奨530は、コンテンツリポジトリ440内の画像に対応している。
【0030】
AIベースおよび特徴ベクトル分析ベースのコンテンツ推奨およびサービスをクライアントデバイス410に提供するための、システム400に示されるコンポーネントは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合わせで実装され得る。たとえば、ウェブサービスは、データストレージデバイス、ネットワークリソース、コンピューティングリソース(たとえば、サーバ)、およびさまざまなソフトウェアコンポーネントなどの基礎となるシステムハードウェアまたはソフトウェアのコンポーネントを用いて、データセンタ440内で生成、展開および実行され得る。いくつかの実施形態では、ウェブサービスは、基礎となる同じコンピュータサーバ、ネットワーク、データストア上で、および/または、同じ仮想マシン内で実行されるさまざまなソフトウェアコンポーネントに対応し得る。コンテンツ推奨エンジン425内に設けられるウェブベースのコンテンツ、コンピューティングインフラストラクチャインスタンス、および/またはウェブサービスの中には、専用のハードウェアおよび/またはソフトウェアリソースを用い得るものもあり、他には、基礎となるリソース(たとえば、共有クラウド)を共有し得るものもある。いずれの場合においても、より高レベルの特定のサービス(たとえば、ユーザアプリケーション)、さらにはクライアントデバイスにおけるユーザは、サービスをサポートするために用いられている基礎リソースを常に認識している必要はない。
【0031】
このような実装例では、さまざまなアプリケーションサーバ、データベースサーバおよび/またはクラウドストレージシステム、ならびに、ウェブキャッシュ、ネットワークコンポーネントなど(この例では図示せず)の他のインフラストラクチャコンポーネントは、コンテンツリソースの分類およびベクトル化を提供および監視するために、さらには、基礎となるストレージ/サーバ/ネットワークリソースを管理するために、さまざまなハードウェアおよび/またはソフトウェアコンポーネント(たとえば、アプリケーションプログラミングインターフェイス(application programming interface:API)、クラ
ウドリソースマネージャなど)を含み得る。コンテンツリポジトリ440の基礎となるリソースは、たとえば、データベース、ファイルベースのストレージなどとして実装される1セットの不揮発性コンピュータメモリデバイス、1セットのネットワークハードウェアおよびソフトウェアコンポーネント(たとえば、ルータ、ファイアウォール、ゲートウェイ、ロードバランサなど)、1セットのホストサーバ、ならびに、異なるバージョンのさまざまなプラットフォーム、サーバ、ミドルウェアおよびアプリケーションソフトウェアに対応するソフトウェア画像の格納、インストール、構築、テンプレート、構成ファイルなどのさまざまなソフトウェアリソースを含み得る、コンテンツデータベースおよび/またはクラウドストレージシステム内に格納され得る。推奨エンジン425のアプリケーションサーバ、ベクトル空間430、および関係するサービス/コンポーネントを収容するデータセンタはまた、付加的なリソース、たとえば、ハイパーバイザ、ホストオペレーティングシステム、リソースマネージャ、および他のクラウドベースのアプリケーションなどとともに、さまざまなインターネットベースのサービスをサポートするためのハードウェアおよびソフトウェアインフラストラクチャ、たとえば、サービスとしてのインフラストラクチャ(IaaS)、サービスとしてのプラットフォーム(PaaS)、および、サービスとしてのソフトウェア(SaaS)を含み得る。加えて、データセンタの基礎となるハードウェアは、たとえば、セキュリティおよびアイデンティティサービス、統合サービス、リポジトリサービス、エンタープライズ管理サービス、ウィルススキャンサービス、バックアップおよびリカバリサービス、通知サービス、ファイル転送サービスなどを含み得るいくつかの内部共有サービスをサポートするように構成され得る。
【0032】
上述したように、多くの異なる種類のコンピュータアーキテクチャ(クラウドベース、ウェブベース、ホスティング、多層コンピューティング環境、分散コンピューティング環境など)を用いて、本明細書に記載されるさまざまな実施形態にしたがって、(1つ以上のコンテンツ推奨アプリケーションサーバを介して実装され得る)コンテンツ推奨エンジン542からクライアントデバイス410に対してウェブベースのコンテンツ推奨を提供
し得る。しかしながら、特定の実装例では、ウェブベースのコンテンツの生成および管理のための特定の有利な特徴を提供するために、クラウドコンピューティングプラットフォームが用いられてもよい。たとえば、クラウドコンピューティングプラットフォームは、アーキテクチャが固定されておりハードウェアリソースが限定されている非クラウドベースの実装とは対照的に、多くの異なるタイプのコンピューティングインフラストラクチャインスタンスを迅速に提供、構成およびデプロイするための順応性および拡張性を提供し得る。さらに、公共のクラウドプラットフォーム、専用のクラウドプラットフォーム、および公共と専用とのハイブリッドクラウドプラットフォームが、個々のアーキテクチャの特徴および利点を活用するためにさまざまな実施形態において用いられてもよい。
【0033】
加えて、この例に示されるように、システム400は、コンテンツ管理および分類システム435も含む。いくつかの実施形態では、コンテンツ管理および分類システム435は、分散ストレージ処理システム、1つ以上の機械学習ベースの分類アルゴリズム(および/または非機械学習ベースのアルゴリズム)、および/またはストレージアーキテクチャを含み得る。以下でより詳細に説明するように、いくつかの実施形態では、コンテンツ管理および分類システム435は、1つ以上のコンテンツリポジトリ440(たとえば、ネットワークベースの文書ストア、ウェブベースのコンテンツプロバイダなど)を介してコンテンツリソース(たとえば、ウェブベースの記事、画像、音声ファイル、映像ファイル、グラフィックス、ソーシャルメディアコンテンツなど)にアクセスし得る。たとえば、システム400内では、専用のJavaScriptまたは他のソフトウェアコンポーネントをインストールして、コンテンツオブジェクトまたはネットワークベースのコンテンツを格納する1つ以上のアプリケーションサーバ、データベースサーバおよび/またはクラウドシステム上で動作させてもよい。これらのソフトウェアコンポーネントは、コンテンツリソース(たとえば、記事、画像、ウェブページ、文書など)を取出して、分析および分類のためにコンテンツ管理および分類システム435に送信するように構成され得る。たとえば、システム400の運営組織内のユーザが画像または記事などの新しいコンテンツをインポートまたは作成するたびに、ソフトウェアコンポーネントは、以下で説明するさまざまな処理および分析(たとえば、画像処理、キーワード抽出、トピック分析など)のために、コンテンツをコンテンツ管理および分類システム435に戻してもよい。加えて、この例では、コンテンツ管理および分類システム435は、コンテンツ推奨エンジン425およびコンテンツリポジトリ440とは別個に実装されるものとして示されているが、他の例では、コンテンツ管理および分類システム435は、コンテンツ推奨エンジン425および/またはコンテンツリポジトリ440を格納するストレージデバイスのいずれかでローカルに実装されてもよく、このため、それらのデバイスから別個に送信されたコンテンツを受取る必要はないが、それぞれのシステムによって格納または提供されるコンテンツリソースを分析および分類することもある。
【0034】
1つ以上のベクトル空間430はまた、コンテンツリポジトリ440内の異なるコンテンツアイテムに対応する特徴ベクトルを格納するために、かつ、(たとえば、クライアントデバイス410から受取った)オリジナルのオーサリング済みコンテンツについての特徴ベクトルをコンテンツリポジトリ440内の付加的なコンテンツアイテムの特徴ベクトルと比較するために、生成されて用いられ得る。いくつかの実施形態では、テキスト入力/記事のトピックのための第1の特徴空間430aおよび画像のための第2の特徴空間430bなどの複数の多次元特徴空間430がシステム400内に実装され得る。他の実施形態では、異なる種類のコンテンツメディア(たとえば、音声データ/ファイルのための特徴空間、映像データ/ファイルのための特徴空間、グラフィックスのための特徴空間、ソーシャルメディアコンテンツのための特徴空間など)のために、付加的な別個の多次元特徴空間430が生成されてもよい。以下で説明するように、比較アルゴリズムを用いて、特徴空間内のベクトル間の距離を判定し得る。したがって、画像特徴ベクトルの特徴空間においては、アルゴリズムを用いて、受取った入力画像に最も近い画像を識別し得ると
ともに、テキスト特徴ベクトルの特徴空間においては、アルゴリズムを用いて、受取った入力テキストブロックに最も近いテキスト(たとえば、記事)を識別し得る、などである。付加的または代替的には、比較アルゴリズムは、ベクトル空間のキーワード/タグを用いて、さまざまなメディアタイプ間の類似性を判定してもよい。
【0035】
さまざまな実装例では、システム400は、1つ以上のコンピューティングシステムおよび/またはネットワークを用いて実装され得る。これらのコンピューティングシステムは1つ以上のコンピュータおよび/またはサーバを含み得る。これらの1つ以上のコンピュータおよび/またはサーバは、汎用コンピュータ、専用サーバコンピュータ(たとえば、デスクトップサーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなど)、サーバファーム、サーバクラスタ、分散サーバ、または、コンピューティングハードウェアの他の任意で適切な構成および/もしくは組合わせであり得る。コンテンツ推奨エンジン425は、オペレーティング・システムおよび/または多様な付加的サーバアプリケーションおよび/または中間層アプリケーションを、たとえば、ハイパーテキストトランスポートプロトコル(HTTP)サーバ、ファイルトランスポートサービス(FTP)サーバ、共通ゲートウェイインターフェイス(CGI)サーバ、Java(登録商標)サーバ、データベースサーバ、および他のコンピューティングシステムなどを含め、実行し得る。コンテンツリポジトリ440は、たとえば、Oracle、Microsoftなどから市販されているデータベースサーバを含んでもよい
。システム400内の各コンポーネントは、ハードウェア、ファームウェア、ソフトウェア、またはハードウェアとファームウェアとソフトウェアとの組合わせを用いて実装され得る。
【0036】
さまざまな実装例では、システム400内の各コンポーネントは、少なくとも1つのメモリ、1つ以上の処理ユニット(たとえば、プロセッサ)および/またはストレージを含み得る。処理ユニットは、ハードウェア(たとえば、集積回路)、コンピュータ実行可能命令、ファームウェア、または、ハードウェアと命令との組合わせにおいて適宜実装され得る。いくつかの例では、システム400のさまざまなコンポーネントは、いくつかのサブシステムおよび/またはモジュールを含み得る。コンテンツ推奨エンジン425内のサブシステムおよび/またはモジュールは、ハードウェア、ハードウェア上で実行されるソフトウェア(たとえば、プロセッサによって実行可能なプログラムコードもしくは命令)、またはそれらの組合わせで実装され得る。いくつかの例では、ソフトウェアは、メモリ(たとえば、非一時的なコンピュータ可読媒体)、メモリデバイス、または他の何らかの物理メモリに格納され得るとともに、1つ以上の処理ユニット(たとえば、1つ以上のプロセッサ、1つ以上のプロセッサコア、1つ以上のグラフィックス処理ユニット(Graphics Process Unit:GPU)など)によって実行され得る。処理ユニットのコンピュータ
実行可能命令またはファームウェア実装例は、本明細書で説明するさまざまな動作、機能、方法、および/または処理を実行し得る任意の適切なプログラミング言語で書かれたコンピュータ実行可能命令または機械実行可能命令を含み得る。メモリは、処理ユニット上でロード可能かつ実行可能なプログラム命令と、これらのプログラムの実行中に生成されるデータとを格納し得る。メモリは、揮発性(ランダムアクセスメモリ(random access memory:RAM)など)および/または不揮発性(読取り専用メモリ(read only memory:ROM)、フラッシュメモリなど)であってもよい。メモリは、コンピュータ可読記憶媒体などの任意のタイプの永続性記憶装置を用いて実装され得る。いくつかの例では、コンピュータ可読記憶媒体は、悪意あるコードを含む電子通信からコンピュータを保護するように構成され得る。
【0037】
ここで図6を参照すると、コンテンツリポジトリ440内のコンテンツリソースに基づいて特徴ベクトルを生成するとともに、特徴空間430内に特徴ベクトルを格納するためのプロセスを示すフロー図が示される。以下で説明するように、このプロセスにおけるス
テップは、コンピューティング環境400内の1つ以上のコンポーネント、たとえば、コンテンツ管理および分類システム435、ならびにそこに実装されるさまざまなサブシステムおよびサブコンポーネントなどによって実行され得る。
【0038】
ステップ602において、コンテンツリソースは、コンテンツリポジトリ440または他のデータストアから取出され得る。上述のように、(コンテンツまたはコンテンツアイテムとも称され得る)個々のコンテンツリソースは、テキストアイテム(たとえば、テキストファイル、記事、電子メール、ブログ投稿など)、画像、音声ファイル、映像ファイル、2Dまたは3Dグラフィックオブジェクト、ソーシャルメディアデータアイテムなどの、任意のさまざまなコンテンツタイプのデータオブジェクトに対応し得る。いくつかの実施形態では、コンテンツアイテムは、特定の信頼できる組織によって所有および運用されるプロプラエタリデータストアなど、特定のコンテンツリポジトリ440から取出され得る。コンテンツリポジトリ440は、インターネットウェブサーバまたは他の遠隔データストアなどの外部データソースであってもよいが、ローカルな、および/または個別に制御されるコンテンツリポジトリ440からコンテンツを検索してベクトル化するシステム400は、システム400の動作におけるいくつかの技術的利点を実装し得る。いくつかの技術的利点とは、リポジトリ440からのコンテンツが保存されており必要に応じてアクセス可能であることと、ユーザ/オーサーがリポジトリ440からのコンテンツを使用および再生することが認可されることとを確実にすることを含む。場合によっては、ステップ602(および後続のステップ604~608)における取出しは、コンテンツリポジトリ440に格納されている新しいコンテンツアイテムに応答して、および/または、コンテンツリポジトリ440内のアイテムの修正に応答してトリガされてもよい。
【0039】
ステップ604では、ステップ602において取出されたコンテンツアイテムは、アイテム特徴または特性のセットを抽出するためにパーズ/分析/などされてもよい。ステップ604において実行されるパーズ、処理、特徴抽出および/または分析のタイプは、コンテンツアイテムのタイプに依存し得る。画像コンテンツアイテムの場合、人工知能ベースの画像分類ツールを用いて、特定の画像特徴の識別および/または画像タグの生成を実行し得る。図7の画像例に示されるように、画像分析は、複数の画像特徴(たとえば、笑顔、ウェイトレス、カウンタ、販売機、コーヒーカップ、ケーキ、手、食品、人、カフェなど)を識別し得るものであって、画像は、これらの識別された特徴の各々でタグ付けされ得る。ブログ投稿、文字、電子メール、記事などのテキストベースのコンテンツアイテムの場合、ステップ604において実行される分析は、図8に示されるように、キーワード抽出および処理ツール(たとえば、ステミング、同義語検索など)を含み得る。1つまたは両方のタイプの分析(すなわち、図9に示すような画像からの特徴抽出および図8に示すようなテキストコンテンツからのキーワード/トピック抽出)は、分析、機械学習アルゴリズムおよび/または人工知能(AI)、たとえば、AIベースの認知画像分析サービス、または、図8のテキストコンテンツに用いられる同様のAI/REST認知テキストサービスなどを用いて、RESTベースのサービスまたは他のウェブサービスを介して実行され得る。同様の技術が、映像ファイル、音声ファイル、グラフィックス、またはソーシャルメディア投稿などの他のタイプのコンテンツアイテムのためにステップ604において用いられてもよい。この場合、システム400の専用ウェブサービスが、コンテンツアイテムのメディアタイプに応じて特定の特徴(たとえば、単語、画像/映像内のオブジェクト、顔の表現など)を抽出および分析するために用いられる。
【0040】
ステップ606において、コンテンツアイテムから特定のコンテンツ特徴(たとえば、視覚的オブジェクト、キーワード、トピックなど)を抽出/判定した後、抽出/判定された特徴に基づいて特徴ベクトルが生成され得る。さまざまな変換技術を用いて、コンテンツアイテムに関連付けられた特徴の各セットが、共通のベクトル空間430に入力可能なベクトルに変換され得る。変換アルゴリズムは、予め定められたベクトル形式(たとえば
、1×4096次元ベクトル)を出力し得る。次いで、ステップ608において、特徴ベクトルは、ベクトル空間430のうちの1つ以上(たとえば、テキストコンテンツのためのトピックベクトル空間430a、画像コンテンツのための画像ベクトル空間430b、および/または、複数のコンテンツタイプのための結合ベクトル空間)に格納され得る。それぞれのベクトル空間および対応する空間に格納されたそれぞれの特徴ベクトルは、コンテンツ管理および分類システム435、コンテンツ推奨エンジン425、および/または、システム400の他のコンポーネントによって生成および維持され得る。
【0041】
いくつかの実施形態では、抽出/判定されたコンテンツ特徴のサブセットはまた、コンテンツアイテムに関連付けられたタグとして保存されてもよい。画像に基づいて画像タグを生成して格納するための例示的なプロセス、および、逆に画像タグに基づいて画像を検索するための例示的なプロセスが図9図11に示されている。これらの例は画像コンテンツアイテムに関係しているが、同様のタグ付けプロセスおよび/またはキーワードもしくはトピック抽出がテキストコンテンツアイテム、音声/映像コンテンツアイテムなどに対して実行されてもよい。図9に示されるように、ステップ901において、画像が作成てもよく、および/または、たとえばコンテンツリポジトリ440にアップロードされてもよい。ステップ902では、当該画像はコンテンツリポジトリ440から人工知能(AI)ベースのRESTサービスに送信され得る。この人工知能(AI)ベースのRESTサービスは、画像を分析するとともにトピック、テーマ、特定の視覚的特徴などを抽出するように構成されている。AI RESTサービスは、識別された画像特徴に基づいて1つ以上の特定の画像タグを判定し得るとともに、ステップ903において、画像タグをコンテンツリポジトリに送り返して、ステップ904において、画像内に格納され得るかまたは当該画像と関連付けられ得る。図10では、画像に基づいて画像タグを生成して格納するための、図9で説明したものと同じプロセスが示されている。加えて、図10は、特定の実施形態におけるAI RESTサービス内で実装され得るとともに画像タグ判定/取出しコンポーネント、Apache MxNetコンポーネント、および認知画像サービスを含むいくつかの例示的な特徴1001を示す。コンテンツアイテムについて1つ以上のタグを判定した後、これらのタグは、コンテンツリポジトリ440または別個の格納場所に再び格納され得る。たとえば、図7の例示的な画像を参照すると、十数個以上の潜在的な画像特徴がこの単一の画像から抽出されてもよく、それらの全てが特徴ベクトルに組込まれてもよい。しかしながら、AI RESTサービスおよび/またはコンテンツリポジトリ440は、画像(たとえば、コーヒー、小売り)の最も普及しているテーマのうちほんの少数のテーマだけを用いて当該画像にタグ付けすることがコンテンツ一致のために最適であると判定し得る。
【0042】
ここで図11を簡潔に参照すると、複数の画像に基づいて画像タグを生成して格納するための別の例示的なプロセスが図9および図10の記載に関連付けて示されている。図11では、コンテンツリポジトリ440から一致する画像を取出すために複数の画像タグが用いられる、逆のプロセスが示されている。ステップ1101において、コンテンツオーサリングユーザインターフェイス415または他のフロントエンドインターフェイスは、インターフェイスを介して受取った入力に基づいて1つ以上のコンテンツタグを判定し得る。この例では、単一のコンテンツタグ(「ウェイトレス(waitress)」)が、受取ったユーザ入力から判定され、ステップ1102において、コンテンツタグが、コンテンツリポジトリ440に関連付けられたサーチAPIに送信される。サーチAPIは、コンテンツ入力処理/分析コンポーネント420、コンテンツ推奨エンジン425、ならびに/または、コンテンツ管理および分類システム435を含む、コンピューティングシステムの1つ以上の別個の層内で実装され得る。ステップ1103において、サーチAPIによって判定される一致画像を識別するデータが、インターフェイス内で統合されるように、またはユーザに提示されるように、コンテンツオーサリングユーザインターフェイス415に送り返されてもよい。
【0043】
したがって、コンテンツリポジトリ440内の複数のコンテンツリソースのためのステップ602~608が完了すると、1つ以上のベクトル空間430に、リポジトリ440内のコンテンツアイテムに対応する各ベクトルがポピュレートされ得る。加えて、いくつかの実施形態では、メタデータタグの別個のセットが、コンテンツアイテムのいくつかまたは全てに対して生成され、ベクトル空間430においてベクトルとは別個のオブジェクトとして格納されてもよい。このようなタグは、図4に示される任意のデータストレージもしくはコンポーネント、または別個のデータストアに格納されてもよく、各タグは、リポジトリ440内のコンテンツアイテム、ベクトル空間430内のベクトル、またはこれら両方に関連付けられてもよい。
【0044】
ここで図12を参照すると、クライアントデバイス410を介してユーザからオリジナルのオーサリング済みコンテンツを受取り、ユーザのオーサリングセッション中にリアルタイム(またはほぼリアルタイム)でコンテンツから特徴および/またはタグを抽出し、(同様にリアルタイムまたはほぼリアルタイムで)オーサリング済みコンテンツをベクトル化し、1つ以上の利用可能なコンテンツリポジトリ440から関係する/関連付けられたコンテンツを識別して取出すために、オリジナルのオーサリング済みコンテンツのベクトルを1つ以上の既存のベクトル空間430と比較するための第2のプロセスを示す別のフローチャートが示されている。このプロセスにおけるステップはまた、コンピューティング環境400内の1つ以上のコンポーネントによって、たとえば、クライアントデバイス410と協働するコンテンツ推奨エンジン425、入力処理/分析コンポーネント420および取出し/埋込みコンポーネント445、ならびに、そこに実装されるさまざまなサブシステムおよびサブコンポーネントによって、実行されてもよい。
【0045】
ステップ1202において、オリジナルのオーサリング済みコンテンツを、クライアントデバイス410を介してユーザから受取り得る。上述のように、オリジナルのオーサリング済みコンテンツは、ユーザによってタイプされたテキスト、ユーザによって作成またはインポートされた新しい画像、ユーザによって記録またはインポートされた新しい音声または映像入力、ユーザによって作成された新しいグラフィックなどに対応し得る。このため、ステップ1202は、上述のステップ602と類似している可能性がある。しかしながら、ステップ602におけるコンテンツがリポジトリ440から取出されて事前にオーサリング/格納されたコンテンツであり得るのに対して、ステップ1202において、コンテンツは、ウェブベースのテキスト入力制御、画像インポータ制御、画像作成制御、音声/映像作成制御など、ユーザインターフェイスを介して受取った新たにオーサリングされたコンテンツであり得る。
【0046】
ステップ1204では、ステップ1202において受取ったコンテンツ(たとえば、オリジナルのオーサリング済みコンテンツ)は、たとえば、入力処理/分析コンポーネント420によって処理され得る。ステップ1204は、パーズステップ、処理ステップ、キーワード/データ特徴抽出ステップなどに関して上述したステップ604と同様または同一であってもよい。たとえば、ステップ1202で受取ったテキスト入力(たとえば、ブログ投稿、文字、電子メール、記事など)の場合、ステップ1204の処理は、テキストのパーズ、キーワードの識別、ステミング、同義語分析/取出しなどを含み得る。他の例では、画像がステップ1202において受取られる(ユーザによってアップロードされ得る、別のシステムからインポートされ得る、および/または、コンテンツオーサユーザインターフェイス415を介してユーザによって手動で作成もしくは修正され得る)場合、ステップ1204は、上述のとおりAIベースの画像分類ツールを用いて、特定の画像特徴を識別するステップおよび/または画像タグを生成するステップを含み得る(図7参照)。ステップ1204におけるこれらの分析は、分析、機械学習アルゴリズム、および/または、AI、このようなAIベースの認知画像分析サービス、および/または、AI/
REST認知テキストサービスを用いて、RESTベースのサービスまたは他のウェブサービスを介して実行され得る。同様の技術/サービスが、映像ファイル、音声ファイル、グラフィックス、またはソーシャルメディア投稿などの他のタイプのコンテンツアイテムのためにステップ1204において用いられてもよい。この場合、システム400の専用ウェブサービスを用いて、コンテンツアイテムのメディアタイプに応じて特定の特徴(たとえば、単語、画像/映像内のオブジェクト、顔の表現など)を抽出および分析する。ステップ1204はまた、テキストブロック、画像、音声/映像データおよび/または他のコンテンツを、任意の識別されたコンテンツトピック、カテゴリ、または特徴に対応するタグでタグ付けするための、本明細書で説明するタグ付け処理のいずれかを含み得る。
【0047】
ステップ1206では、ステップ1202で受取ったコンテンツに基づいて、利用可能なベクトル空間430のうちの1つ以上と互換性のある1つ以上のベクトルが生成され得る。ステップ1206は、上述のステップ606と同様または同一であってもよい。上述したように、ベクトルは、ステップ1204において識別されたコンテンツ(および/またはタグ)内の特定の特徴に基づいて生成され得る。ステップ1206におけるベクトル生成プロセスは、1つ以上のデータ変換技術を用いてもよく、これにより、元々オーサリングされていたコンテンツアイテムに関連付けられた特徴のセットを、共通のベクトル空間430のうちの1つと互換性のあるベクトルに変換し得る。たとえば、図13に示す技術により、ステップ1202において受取った画像入力が、ステップ1206において予め定められたベクトルフォーマットの特徴ベクトル(たとえば、1×4096次元ベクトル)に変換され得る。図13に示されるように、画像はモデルへの入力として提供されてもよく、当該モデルは、(たとえば、畳み込み、プール、および他の関数を用いて)当該画像内の特徴を抽出して学習するとともに、入力画像を表わす特徴ベクトルを出力するように構成される。たとえば、引用により本明細書中に援用されている、ニューヨーク大学(New York University)のMatthew D. ZeilerおよびRob Fergusによる論文「畳み込みネットワークの視覚化および理解(Visualizing and Understanding Convolutional Networks)」(2014年)に記載されるように、畳み込みニューラルネットワーク内では、ニューラルネットワークの初期層は、線形エッジのような画像から単純な特徴を検出し得るとともに、後の層では、より複雑な形状およびパターンを検出する。たとえば、畳み込みニューラルネットワークにおける第1の層または/および第2の層は単純なエッジまたはパターンを検出し得る一方で、後の層は、画像中に存在する実際の複雑なオブジェクト(カップ、花、犬など)を検出することができる。一例として、畳み込みニューラルネットワークを用いて顔の画像を受取って処理する場合、第1の層はさまざまな方向のエッジを検出してもよく、第2の層は所与の顔のさまざまな部分(たとえば、目、鼻など)を検出してもよく、第3の層は顔全体の特徴マップを所得してもよい。
【0048】
ステップ1208において、ステップ1206で生成された特徴ベクトルは、上述の処理602~608中にポピュレートされた互換性のある特徴ベクトル空間430(または空間430a~430n)と比較され得る。たとえば、複数の画像に対応する複数の特徴ベクトルがポピュレートされた例示的なベクトル空間を図14に示す。この例では、各ドットはベクトル化された画像を表わし得るとともに、図14の円(および対応するドット色)は、画像に関連付けられた3つの例示的なタグのうちの1つを示し得る。この場合の画像タグは、「コーヒー(Coffee)」、「山(Mountain)」、「鳥(Bird)」であり、これらのタグが互いに排他的でない(すなわち、画像が1つのタグ、2つのタグまたは3つのタグ全てでタグ付けされ得る)ことを理解されたい。加えて、図14のこれらのタグおよび多次元ベクトル空間のレイアウトが例示にすぎないことを理解されたい。さまざまな実施形態においては、用いられ得るタグの数もしくはタイプ、またはベクトル空間430の次元の数は限定されない。
【0049】
ステップ1208でベクトル空間比較を実行するために、コンテンツ推奨エンジン42
5は、ステップ1206で生成された特徴ベクトルと、ベクトル空間/空間430に格納された他の特徴ベクトルの各々との間のユークリッド距離を算出し得る。算出された距離に基づいて、エンジン425は、特徴空間距離の小さい順に特徴ベクトルをランク付けし得るので、2つの特徴ベクトル間の距離が小さければ小さいほど、ランクが高くなる。このような技術は、コンテンツ推奨エンジン425が、ベクトル空間430内の最高ランクの特徴ベクトルのセットを判定することを可能にし得る。最高ランクの特徴ベクトルは、ステップ1202において受取った入力に基づいてステップ1206において生成された特徴ベクトルと特徴/特性などが最も類似している。場合によっては、ステップ1208において、予め定められた数(N)の最高ランクの特徴ベクトル(たとえば、5個の最も類似した記事、10個の最も類似した画像など)が選択されてもよく、他の場合には、特定の近さの閾値を満たす全ての特徴ベクトル(たとえば、ベクトル間の距離<閾値(T))が選択されてもよい。
【0050】
いくつかの実施形態では、ステップ1208におけるベクトル比較は、図15に示される「深層特徴空間」比較であってもよい。これらの実施形態では、ステップ1206で生成された特徴ベクトルは、任意のタグまたは他のメタデータを考慮せずに比較されてもよい。言い換えれば、深層特徴比較では、ステップ1206で生成された特徴ベクトルを、ベクトル空間430に格納された他の全ての特徴と比較してもよい。ベクトル空間430において最も近いベクトルを発見するために深層特徴比較が確実にされ得る一方で、この種の比較は、ベクトル結果を返すために付加的な処理リソースおよび/または付加的な時間を必要とする可能性がある。これは、特に、数千または数百万もの特徴ベクトルを含み得る大きなベクトル空間の場合に当てはまり、当該特徴ベクトルの各々は、リポジトリ440に格納された別個のコンテンツオブジェクト/リソースを表わしている。たとえば、サイズ1×4096の2つの画像特徴ベクトル間のユークリッド距離を計算するために、約10,000の加算命令および乗算命令をシステム400によって実行することが必要となる。したがって、リポジトリ内に10,000個の画像が存在する場合、10,000,000の動作が実行されなければならない。
【0051】
したがって、他の実施形態では、ステップ1208におけるベクトル比較は、図16および図17に示される「フィルタリング済み特徴空間」比較であり得る。フィルタリング済み特徴空間比較では、ベクトル空間は、まず、タグ(および/または、リソースメディアタイプ、作成日などの他のプロパティ)に基づいてフィルタリングされて、ステップ1206で生成された特徴ベクトルのタグと一致するタグ(および/または他のプロパティ)を有するベクトル空間430内の特徴ベクトルのサブセットを識別し得る。次いで、ステップ1206で生成された特徴ベクトルは、一致するタグ/プロパティを有するサブセット内の特徴ベクトルのみと比較され得る。したがって、フィルタリング済み特徴空間比較は、フィルタリングして除去されるが比較されない近接特徴ベクトルが存在しない可能性があるものの、深層空間比較よりも迅速かつ効率的に実行され得る。
【0052】
上述したように、ステップ1208は、ステップ1206で生成された特徴ベクトルを単一のベクトル空間または複数のベクトル空間と比較することを含み得る。いくつかの実施形態では、ステップ1206で生成された特徴ベクトルは、対応するタイプのベクトル空間と比較され得る。たとえば、テキスト入力がステップ1202で受取られると、結果として得られる特徴ベクトルはトピックベクトル空間430a内のベクトルと比較され得る。さらに、画像がステップ1202で入力として受取られると、結果として得られる特徴ベクトルは画像ベクトル空間430b内のベクトルと比較され得る、等である。いくつかの実施形態では、1つのタイプの入力に対応する特徴ベクトルを異なるタイプのベクトルを含むベクトル空間と比較すること(たとえば、テキストベースの入力に最も密接に関係する画像リソースを識別すること、またはその逆)が可能であり得る。たとえば、図18は、ステップ1402においてテキスト入力を受取って、ステップ1408において、
同様の画像(たとえば、画像ベクトル空間430bから最も近い)および同様の記事(たとえば、トピックベクトル空間430bから最も近い)の両方を取出すプロセスを表わす。
【0053】
コンテンツリソースに関連付けられたタグを取出すことおよび/または比較することを含む実施形態の場合、1つのリソースのタグ同士が関係しているが、別のリソースの対応するタグ/キーワード/特性と厳密に一致しない場合に問題が生じる可能性がある。この潜在的な問題の例を図19に示している。この場合、オリジナルのオーサリング済みテキストコンテンツリソースから抽出されたキーワードが、画像コンテンツリソースのセットのために格納された画像タグのセットと比較される。この例では、抽出されたキーワード(「エベレスト(Everest)」、「ベースキャンプ(Base Camp)」、「頂上(Summit)」、「山(Mountain)」または「ヒマラヤ(Himalaya)」)のいずれも、画像タグ(「登山家(Mountaineer)」、「カプチーノ(Cappuccino)」または「コンゴウインコ(Macaw)」)に対する厳密な一致ではない。いくつかの実施形態では、単語のステムミング、単語定義および/または同義語検索および分析などの単語/句のパーズおよび処理技術を用いて、関係しているが一致していない用語間の一致を検出してもよい。しかしながら、これらの技術は、関係するキーワード/タグに対しても失敗する可能性がある。したがって、いくつかの実施形態では、コンテンツ処理/分析コンポーネント420および/またはコンテンツ推奨エンジン425は、この問題に対処するために単語ベクトル比較を実行し得る。図20の例に示すように、図19のテキスト文書から抽出したキーワードを3次元単語ベクトル空間内で分析し、それらのキーワードと画像タグの各々との間の距離を計算してもよい。図21に示されるように、図20において実行されるキーワード対タグのベクトル空間分析は、画像タグ「登山家(Mountaineer)」が単語ベクトル空間内で抽出キー
ワードに十分に近接しているため、フィルタリング済み特徴空間比較に関する画像タグ一致と見なされるべきであると判定し得る。
【0054】
コンテンツリソースに関連付けられたタグを取出すおよび/または比較する実施形態において発生し得る別の潜在的な問題は、同綴異義のキーワードおよび/またはリソースタグによって引起こされる。同綴異義の単語または句(または同音異義語)は、スペルは同じであるが意味が異なっていて関係性のないものである。同音異義の画像タグの例を図22に示す。この場合、第1の画像は、脚が長くて首が長い鳥を意味する「Crane(ツル)
」という単語でタグ付けされており、第2の画像は、重い物体を移動させるために用いられる突出たアームを備えた機械を意味する「Crane(起重機)」という同じ単語でタグ付
けされている。この場合、コンテンツ処理/分析コンポーネント420および/またはコンテンツ推奨エンジン425は、2つの画像タグに対して単語意味曖昧性除去プロセスを実行して、単語「crane」のどちらの意味を指しているのかを判定し得る。この例では、
単語意味曖昧性除去プロセスは、2つの異なる「Crane」タグについて、図22に示され
るように、各タグに関連付けられたWordnetデータベースエントリ(または他の定義デー
タ)を最初に検索し得る。
【0055】
例示的な単語意味曖昧性除去プロセスを図23および図24に示す。このプロセスでは、オーサリング済み文書内の他のキーワードおよび/または当該文書内の単語「Crane」
の特定のコンテキスト(たとえば、説明、スピーチの一部、時制など)を、コンテンツ処理/分析コンポーネント420および/またはコンテンツ推奨エンジン425が用いることで、オーサリング済みテキスト文書内の単語「crane」の意味で最も可能性の高いもの
を判定し得るとともに、これにより、「Crane」画像タグのうちどれがオーサリング済み
テキスト文書に関係しているかを判定し得る。たとえば、図23を参照すると、図示されている入力テキスト2301からは、いくつかの関連キーワード2302が抽出されている。第1の抽出キーワード(「Crane」)がコンテンツリポジトリ440内の画像タグと
比較され得るとともに、この例では、2つの一致するタグ2303が、コンテンツリポジ
トリ440内の2つの「Crane」タグ付き画像2304aおよび2304bに対応して識
別されている。
【0056】
図24に示されるように、単語の意味の不明瞭さというこの潜在的な問題に対処するために、曖昧性除去プロセスは、引き続き、入力コンテンツ2301から抽出された1つ以上の追加のキーワード2302を、2つの一致する画像2304aおよび2304bの他のコンテンツタグと比較し得る。この例では、「機械式(mechanical)」、「機械(machine)」、「昇降(lifting)」、および「建設(construction)」といった追加の抽出されたキーワードが、画像2304aおよび2304bの各々に関連付けられたコンテンツタグおよび/または抽出された特徴と比較され得る。図24に示されるように、これらの追加の比較によって「Crane」の初期のキーワード一致が明確になり得るので、コンテン
ツ推奨システム425によって、鳥類の「ツル(crane)」の画像2304aが返される
のではなく、建設用の「起重機(crane)」の画像2304bが返される。
【0057】
他の例では、同様の曖昧性除去プロセスが、画像類似性を用いて実行され得る。たとえば、コンテンツ処理/分析コンポーネント420および/またはコンテンツ推奨エンジン425は、どの「crane」が適切な関係画像であるかを判定するために、オーサリング済
みコンテンツに関連付けられた画像(たとえば、描画またはオーサリング済み画像)と2つの異なる「Crane」画像との間の共通の画像特徴を識別し得る。これらの曖昧性除去プ
ロセスはまた、たとえば、オーサリング済みテキスト文書から抽出されたキーワードを、画像から抽出された視覚的特徴と比較するなど、さまざまな方法で組合わされてもよい。したがって、「crane」を引用するオーサリング済みテキスト文書において、「ブーム」
および「プーリ」という関係する単語は、ブームおよびプーリがその画像内で視覚的に識別できるのであれば、下段の「起重機(crane)」の画像に視覚的に一致し得る。同様に
、オーサリング済みテキスト文書が「crane」を引用しており、「くちばし」および「羽
根」という関係する単語を含む場合、「crane」というキーワードは、くちばしおよび羽
根がその画像内で視覚的に識別できるのであれば、上段の「ツル(crane)」の画像に視
覚的に一致され得る。
【0058】
ここで図25図28を参照すると、図12のプロセスを実行するエンドツーエンドの例が示されており、具体的には、ユーザインターフェイス415を介してユーザによってオーサリングされた記事についての関連画像のセットを取出す実施形態についての例が示されている。最初に、2501(図25)において、ユーザは、Demo Editor(Alditor)のユーザインターフェイスに記事についてのテキストをタイプする。2502において、記事のテキストからいくつかのキーワードが抽出され、2503において、抽出されたキーワードがAI Restサービスによって、画像コンテンツリポジトリ440内の画像のライブラリ用に格納された画像タグと比較される。図26および図27は、AI Restサービスの動作に関する追加の詳細と共に、図25の同じ例示的なプロセスを示す。図26に示されるように、AI Restサービスは、上述の技術を用いて、1つ以上のタグ(たとえば、「登山家(mountaineer)」)をオーサリング済み記事に関係するもの
として識別する。次いで、図27に示すように、いくつかの実施形態においては、異なるソフトウェアサービスの組合わせを用いて、本ステップ、たとえば、テキスト入力からキーワードのセットを判定するのに用いられる第1の認知テキストRESTサービスと、キーワードを画像タグにマッピングするのに用いられる第2の内部RESTサービスと、を実行し得る。これらのサービスの各々は、コンテンツ推奨エンジン425内で、および/または、外部サービスプロバイダを介して実装され得る。次いで、(図28に示される)ステップ2505において、コンテンツ推奨エンジン425は、判定された画像タグを、画像コンテンツリポジトリ440に関連付けられたサーチAPIに送信し得る。場合によっては、サーチAPIは、クラウドベースのコンテンツハブ、たとえば、オラクル・コンテンツ・アンド・エクスペリエンス・クラウド(Oracle Content and Experience Cloud
:CEC)内で実装されてもよい。ステップ2506において、サーチAPIは、タグの一致に基づいて関連画像のセットを取出し得るとともに、ステップ2507において、取出された画像(または縮小版の画像)が送り返されて(画面領域2810において)415におけるユーザインターフェイス内に埋込まれてもよい。
【0059】
図25図28に示される例は、ユーザによってオーサリングされた記事に関する関連画像のセットを取出す特定の実施形態を示すが、図12のステップが、同様に他のタイプのコンテンツを取出すために実行され得ることを理解されたい。たとえば、同様のステップを実行して、ユーザインターフェイス415を介してユーザによって入力されたテキストに関係する記事(または他のテキスト文書)を取出してもよい。他の実施形態では、他のメディアタイプ(たとえば、音声ファイル、映像クリップ、グラフィックス、ソーシャルメディア投稿など)の関係するコンテンツリソースが取出されてもよい。加えて、ユーザがテキスト以外の他のタイプの入力をユーザインターフェイス(たとえば、描画またはアップロードされた画像、発話音声入力、映像入力など)にインポート/作成する場合、同様のステップを実行して、コンテンツ推奨エンジン425の構成および/またはユーザの好みに応じて、多種多様なタイプの関係するコンテンツリソース(たとえば、関係記事、画像、映像、音声、ソーシャルメディアなど)を取出してもよい。
【0060】
たとえば、ここで図29図35を参照して別の例示的実施形態を示す。ここでは、図12のプロセスステップを実行して、ユーザインターフェイス415(たとえば、ユーザのブログ投稿、電子メール、記事など)を介して受取ったオリジナルのオーサリング済みテキスト入力に基づいて関係記事(または他のテキストコンテンツリソース)のセットを取出す。図29に示されるように、ユーザは、ユーザインターフェイス415を介して新しい記事を認可しており、記事トピックのセットは、コンテンツ推奨エンジン425によって呼び出されたAIベースのRESTサービスによって識別されている。図30に示されるように、識別された記事トピックは、記事コンテンツリポジトリ440内の記事のセットに関して以前に識別されたトピックと比較され得る。これらの例では、図29は一実施形態に従って示されており、図30は別の実施形態を示す。図29は、図30の部分集合にすぎず、図29を省いても問題はない。このように、記事トピックは、画像特徴/タグを判定して画像に関連付けて格納する(図6で上述した)プロセスと同様の技術を用いて、メタデータまたは他の関連付けられたデータオブジェクトとして判定されて格納され得る。同様に、記事コンテンツリポジトリ440は、リポジトリ440に格納された各記事ごとに、記事トピック、日付、キーワード、著者、出版物等を含むメタデータまたは他の関連付けられたストレージを備えてもよい。図30に示す例では、エベレスト山の死亡者に関係する記事が、記事トピックの一致に基づいて、新しく作成されたユーザの記事に関係している可能性があるものとして識別されている。図31図35は、関係する画像を発見するための図25図28に示すステップと同様に、ユーザ入力記事に関係する記事を発見するためにシステム400を用いるエンドツーエンドプロセスを示す。ステップ3101(図31)において、ユーザは、ユーザインターフェイス415を介して新しい記事を作成する。ステップ3102において、記事テキストは、コンテンツ推奨エンジン425(たとえば、AIベースのRESTサービス)によって1つ以上のソフトウェアサービスに送信され、ステップ3103(図32)において、ソフトウェアサービスは、認知テキストサービス機能を用いて、記事のテキストを分析して記事の1つ以上のトピックを判定する。ステップ3104において、判定された記事トピックは、コンテンツ推奨エンジン425に送り返され、ステップ3105において、推奨エンジン425は、記事テキストおよび識別されたトピックの両方を別個の(たとえば、クラウドベースのコンテンツハブ内の)APIに送信し、ステップ3106において、記事は、将来参照するためにリポジトリ440に保存され、識別済みトピックに基づいてインデックス付けされてもよい。また、ステップ3106(図33)において、記事の既存のリポジトリ440は、サーチAPIを介してサーチされ、トピック一致プロセス(図34)に基づいて、潜在的に
関係しているトピックを識別し得る。最後に、ステップ3107(図35)において、新しく作成された記事に関係する可能性があると識別された記事は、(たとえば、ユーザインターフェイス領域3510において)ユーザインターフェイス415内に埋込まれるように(全体的に、または単にリンクにて)送り返され得る。
【0061】
図29図33の上述の例に示されるように、本明細書で説明する特定の実施形態は、新たに作成されたテキスト文書のトピック、および/または、コンテンツリポジトリ440内に格納されたテキスト文書のトピックの識別、ならびに、トピックの近似性と一致との比較および識別を含み得る。本明細書で説明するさまざまな実施形態では、明示的な意味論分析を含むさまざまな技術が、テキストトピック評価およびトピック「近似性」技術のために用いられ得る。図29および図30に示されるように、場合によっては、このような技術は、大規模データソース(たとえば、ウィキペディア「Wikipedia」)を用いて
、無制限の自然言語テキストの細粒度の意味論的表現を提供して、データソースから導出される自然概念の高次元空間での意味を表わし得る。たとえば、テキスト分類技術を用いて、ウィキペディアベースの概念の点から、任意のテキストの意味を明示的に表わしてもよい。意味論的表現は、トピックモデリングによって変換されるテキストスニペットの特徴ベクトルであってもよい。ウィキペディア(または別の大規模データソース)を用いることで、より大きな語彙(たとえば、「bag of words」)をシステムに含めて、複数単語の大きな領域を網羅してもよい。ウィキペディアベースの概念は、所与のテキストスニペットを分類すると同時にクラス/カテゴリとして用いられるウィキペディアページのタイトルであってもよい。テキストスニペットの場合、テキストのクラス/カテゴリとして用いられ得る最も近似するウィキペディアページタイトル(たとえば、「エベレスト山(Mount Everest)」、「スティーヴン・ホーキング(Stephen Hawking」、「自動車事故(Car Accident)」等)が戻され得る。このような技術の有効性は、自然言語テキストのフラグメント間の意味論的関係性の度合いを計算することによって自動的に評価され得る。
【0062】
これらのテキスト分類/関係性評価技術では、公に利用可能な大規模な知識ソース(たとえば、ウィキペディアまたは他の百科事典)を用いる1つの利点は、定期的に変更および開発されるとともに公に利用可能なソースへと予め符号化された、高度に組織化された大量の人の知識にアクセスできることである。ウィキペディアおよび/または他のソースに基づいて機械学習技術を用いることで意味論的インタプリタを構築することもできる。この意味論的インタプリタは、自然言語テキストのフラグメントを、入力との関連性によって順序付けられた重み付けされた一連のウィキペディア概念にマッピングするものである。したがって、入力テキストは、解釈ベクトルと呼ばれる概念の重み付きベクトルとして表わされることもある。このため、テキストフラグメントの意味は、ウィキペディア概念のホストとの類似性の点から解釈される。次いで、テキストの意味論的関係性は、たとえば、コサインメトリックを用いて、上記概念によって定義される空間におけるそれらのベクトルを比較することによって計算され得る。このような意味論分析は、明確な概念が人の認知に基づくものであり得るという意味で明確であり得る。ユーザ入力がユーザインターフェイス415を介してプレーンテキストとして受取られ得るので、従来のテキスト分類アルゴリズムを用いて、所与のテキストフラグメントに対するそれらの関連性に従ってこれらの記事によって表わされる概念をランク付けしてもよい。したがって、オンラインの百科事典(たとえば、ウィキペディア)は、深層言語の理解または予め分類生成された共通意味の知識を必要とすることなく、直接、用いられてもよい。いくつかの実施形態では、ウィキペディア概念は各々、対応する記事において生じる単語の属性ベクトルとして表現されることもある。これらのベクトルのエントリには、たとえば、単語出現頻度に対する逆文書頻度(term frequency-inverse document frequency:TFIDF)スキー
ムを用いて重みが割当てられてもよい。これらの重みは、単語と概念との間の関連付けの強さを定量化し得る。意味論的解釈を促進するために、各単語をそれが現れる概念のリストにマッピングする転置インデックスが用いられてもよい。転置インデックスはまた、所
与の単語についての重みが或る閾値未満である概念を除去することによって、単語と概念との間の重要でない関連付けを破棄するために用いられてもよい。意味論的インタプリタは、受取ったテキストフラグメントに基づいて、関連性によってウィキペディア概念をランク付けし得る重心ベースの分類器として実装されてもよい。たとえば、コンテンツ推奨エンジン内の意味論的インタプリタは、入力テキストフラグメントTを受取って、そのフラグメントを(たとえば、TFIDFスキームを用いて)ベクトルとして表わし得る。意味論的インタプリタは、テキストワードを反復させ、転置インデックスから対応するエントリを取出し、それらを重み付きベクトルにマージし得る。重み付きベクトルのエントリは、テキストTに対する対応する概念の関連性を反映してもよい。テキストフラグメントのペアの意味論的関係性を計算するために、それらのベクトルは、たとえばコサインメトリックを用いて比較されてもよい。
【0063】
他の例では、テキストのカテゴリ分類のための特徴を生成するための同様の方法は、教師あり学習タスクを含み得る。この場合、トレーニング文書に現われる単語は使用されている特徴であり得る。したがって、いくつかの例では、ウィキペディア概念は「bag of words」を増強するために用いられ得る。他方では、テキストのペアの意味論的関係性を計算することは、本質的に「1回限りの(one-off)」タスクであり、したがって、「bag of words」の表現は、概念に基づく表現と置換えられてもよい。これらの技術および他の
関係する技術は、あらゆる目的のために引用により本明細書に全体が援用されている、Evgeniy GabrilovichおよびShaul Markovitch(イスラエル工科大学(Israel Institute of
Technology)、コンピュータサイエンス学部(Department of Computer Science Technion))による論文「ウィキペディアベースの明示的な意味論分析を用いたコンピューティング意味論的関係性(Computing Semantic Relatedness using Wikipedia-based Explicit Semantic Analysis)」、ならびに本明細書に記載される他の関連文献においてより詳
細に記載されている。本論文および他の論文に記載される技術を用いることで、ウィキペディアのフィルタリング済みサブセットには、各記事ごとに、記事のタイトルである1つの概念が存在し得る。コンテンツ推奨エンジン425がユーザインターフェイス415を介してテキスト文書を受取ると、当該テキストが最初に要約され得る。これらの場合、テキスト内の一意の単語は各々、停止単語が除去され、単語がステミングされた後、記事内の単語の頻度および逆頻度に基づいて重みが与えられてもよい。各単語は、それがどのウィキペディア記事(概念)に現れるかを調べるために比較されてもよく、このため、その単語について、コンテンツ推奨エンジン425が概念ベクトルを生成し得る。テキスト文書内の全ての単語についての概念ベクトルを組合わせることで、テキスト文書についての重み付き概念ベクトルを形成することができる。次いで、コンテンツ推奨エンジン425は、各単語概念ベクトルとテキスト概念ベクトルとの間の類似性を測定し得る。さらに、ある閾値を上回る全ての単語が、文書についての「キーワード」として選択され得る。
【0064】
ここで図36を参照すると、例示的なセマンティックテキストアナライザシステム3600が示されており、上述の特定の実施形態において意味論的なテキストのサマリー化を実行するためにアナライザシステム3600によって用いられる技術を示している。このようなシステム3600は、さまざまな実装例では、コンテンツ推奨エンジン425によってアクセスされることによって、組込まれてもよく、および/または別個であってもよい。
【0065】
いくつかの実装例では、意味論的関係性を計算するための明示的な意味論分析は、所与のテキスト文書のテキストサマリーを計算するために別の用途に用いられる。より具体的には、テキストサマリーは、単語埋込みに基づいて導出される。言い換えれば、nグラム(n-gram)(たとえば、単語)のコンテキストは、「bag of words」に対するコサインまたは文字列上の編集距離などの典型的な類似性尺度とは対照的に、意味論的類似性を判定する目的で取込まれる。
【0066】
所与のテキスト文書は、テキスト要約が望まれる記事、ウェブページまたは他のテキスト片であり得る。本明細書で説明する分類アプローチと同様に、テキストは、それが書かれている言語に限定されず、他の人が読取り可能である記号、数字、チャート、表、方程式、式などを含み得る。
【0067】
明示的な意味論分析を用いたテキストサマリーアプローチは概して以下のとおりである。(1)文法単位(たとえば、文または単語)が、このような単位を識別および抽出するための任意の公知の技術を用いて所与のテキスト文書から抽出され、(2)抽出された文法単位およびテキスト文書の各々が、知識ベース概念の重み付きベクトルとして表わされ、(3)テキスト文書全体と各文法単位との間の意味論的関係性が重み付きベクトルを用いて計算され、(4)テキスト文書全体に最も意味論的に関係した文法単位の1つ以上がテキスト文書のテキストサマリーに含めるために選択される。場合によっては、知識ベース概念の重み付きベクトルの表現はトピックモデリングに対応し得る。この場合、各文または単語は最初に特徴ベクトルに変換されてもよく、その後、特徴の差/類似性が高次元ベクトル空間において算出されてもよい。単語をベクトルに変換するために、たとえば、WORD2VECまたは潜在ディリクレ配分法(Latent Dirichlet Allocation)などのさまざま
な方法があり得る。
【0068】
図36は、明示的な意味論分析を用いたテキストサマリー化を示す図である。まず、知識ベース3602に基づいてテキストサマライザを構築する。知識ベース3602は、一般的であり得るかまたはドメイン固有であり得る。一般的な知識ベースの例として、百科事典記事の集まり、たとえば、ウィキペディア記事の集まりまたはテキスト記事についての他の百科事典の集まりなどが挙げられる。しかしながら、知識ベース3602はドメイン固有のものであってもよく、たとえば、医療、科学、工学または金融関係の記事の集まりなどの特定の技術分野に特有のテキスト記事の集まりなどであり得る。
【0069】
知識ベース3602の各記事は、記事中に現われるnグラム(たとえば単語)の属性ベクトルとして表わされる。属性ベクトルのエントリには重みが割付けられる。たとえば、重みは、単語出現頻度に対する逆文書頻度のスコアリングスキームを用いて使用されてもよい。或る記事についての属性ベクトルにおける重みは、当該記事のnグラム(たとえば単語)と記事との間の関連付けの強さを概念として定量化する。
【0070】
いくつかの実装例では、単語出現頻度に対する逆文書頻度のスコアリングスキームで、以下の式によって表わされるように、所与の記事文書dの所与のnグラムtについての重みを計算する。
【0071】
【数1】
【0072】
ここで、tft,dは、文書dにおけるnグラムtの頻度を表わす。dfは、知識ベース3602におけるnグラムtの文書頻度を表わす。Mはトレーニングセットにおける文書の総数を表わし、Lは文書dの長さを数で表わし、Lavgは、トレーニングコーパスにおける平均長さを表わし、Kおよびbは自由パラメータである。いくつかの実装例では、kは約1.5であり、bは約0.75である。
【0073】
上記は、属性ベクトルの属性に重み付けするために用いられ得る、単語出現頻度に対する逆文書頻度スコアリングスキームの一例である。知識ベース3602内の記事に対して
属性(たとえば、nグラム)がどれほど重要であるかを反映する他の統計的尺度が用いられてもよい。たとえば、アンカーテキストを考慮に入れるBM25Fなどの他のTF/IDF変形例が、たとえば、ウェブページの知識ベースまたはハイパーリンクされた文書の他のセットなどの特定のタイプの知識ベースと共に用いられてもよい。
【0074】
重み付き転置インデックスビルダコンピュータ3604は、知識ベース3602の記事を表わす属性ベクトルから重み付き転置インデックス3606を構築する。重み付き転置インデックス3606は、属性ベクトルのセットにおいて表わされるそれぞれ別個のnグラムを、nグラムが現れる概念(記事)の概念ベクトルにマッピングする。概念ベクトル内の各概念は、概念と、概念ベクトルが重み付き転置インデックス3606によってマッピングされるnグラムとの間の関連付けの強さに従って重み付けされ得る。いくつかの実装例では、インデクサコンピュータ3604は、転置インデックス3606を用いて、所与のnグラムについての重みが閾値未満である概念を概念ベクトルから除去することによって、nグラムと概念との間の重要度の低い関連付けを廃棄する。
【0075】
所与のテキスト文書3610のテキストサマリーを生成するために、文法単位3608が所与のテキスト文書3610から抽出され、各文法単位と所与のテキスト文書3610との間の意味論的関係性が計算される。所与のテキスト文書3610に対して高度の意味論的関係性を有するいくつかの文法単位が、テキストサマリーに含めるために選択される。
【0076】
テキストサマリーに含めるために選択される文法単位の数は、多種多様な要因に基づいて異なり得る。1つのアプローチは、所定の数の文法単位を選択することである。たとえば、所定の数は、システムのユーザによって構成されてもよいし、機械学習プロセスによって学習されてもよい。別のアプローチは、所定の閾値を上回る所与のテキスト文書3610に対する意味論的関係性の度合いを有する全ての文法単位を選択することである。所定の閾値は、システムのユーザによって構成され得るかまたは機械学習プロセスによって学習され得る。さらに別の実現可能なアプローチは、所与のテキスト文書3610に対する意味論的関係性の度合いが最も高い文法単位を判定し、次いで、文法単位の所与のテキスト文書3610に対する意味論的関係性の度合いと最も高い度合いとの差が所定の閾値を下回っている他の全ての文法単位を選択することである。度合いが最も高い文法単位と、所定の閾値未満の他のいずれかの文法単位とが、テキストサマリーに含めるために選択される。ここでも、所定の閾値は、システムのユーザによって構成され得るかまたは機械学習プロセスによって学習され得る。
【0077】
いくつかの実装例では、所与のテキスト文書3610に対する意味論的関係性の度合いが最も高いかまたは比較的高い文法単位は、テキストサマリーに含めるために必ずしも選択されるわけではない。たとえば、所与のテキスト文書3610に対する意味論的関係性の度合いが第2の文法単位よりも低い第1の文法単位がテキストサマリーに含められるよう選択されてもよく、第1の文法単位がテキストサマリーに含めるために既に選択された文法単位と比べて十分に異なっていなければ、第2の文法単位がテキストサマリーに含めるために選択されなくてもよい。既存のテキストサマリーに対する文法単位の相違の程度は、たとえば、語彙によるアプローチ、確率論的アプローチ、または語彙によるアプローチと確率論的アプローチとのハイブリッドを用いることなどによって、多種多様な方法で測定することができる。テキストサマリーに含めるための文法単位を選択するために相違の尺度を用いることで、複数の同様の文法単位が同じテキストサマリーに含まれるのを防ぐことができる。
【0078】
いくつかの実装例では、テキストサマリーに含めるためにいくつかの文法単位を所与のテキスト文書3610に対するその単位の意味論的関係性の関数および他の単位のうちの
1つ以上に対するその相違性として選択するための他の技術が用いられてもよく、如何なる特定の技術にも限定されない。たとえば、所与のテキスト文書3610に対する意味論的関係性を有する文法単位の数が閾値を上回る場合、文法単位の数の組合わせに対する複合型文法単位の相違性が測定され得るとともに、テキストサマリーに含めるために、互いに最も異なる文法単位の数が選択され得る。結果として、テキストサマリーに含めるために選択された文法単位は、全体としてテキスト文書に対して高度に意味論的に関係しているが、互いに異なっている。これは、意味論的に高度に関係しているが同様である文法単位を含むものよりも有用なテキストサマリーである。なぜなら、同様の文法単位は、異なる文法単位よりも、文法単位が伝える情報の点で互いに冗長である可能性がより高いからである。
【0079】
別の可能性は、文法単位に対する複合的な類似性/相違性の尺度を計算し、次いで、それらの複合スコアに基づいてテキストサマリーに含めるための文法単位を選択することである。たとえば、複合尺度は、意味論的関係性尺度と相違性尺度との重み付き平均であり得る。たとえば、重み付き平均として計算される考えられ得る複合尺度は以下のとおりである。
【0080】
(a*類似性)+(b*相違性)
ここで、パラメータ「類似性」は、入力テキスト3610全体に対する文法単位の意味論的関係性を表わす。たとえば、パラメータ「類似性」は、文法単位について計算される類似性推定値3620であり得る。パラメータ「相違性」は、1つ以上の文法単位のセットに対する文法単位の相違性の相違性尺度を表わす。たとえば、1つ以上の文法単位のセットは、テキストサマリーに含めるために既に選択された1つ以上の文法単位のセットであり得る。パラメータaは、類似性尺度に適用される重みを重み付き平均で表わす。パラメータbは、相違度尺度への重みの適用を重み付き平均で表わす。複合尺度は、類似性尺度と相違性尺度との互いに対するバランスを有効にとるものである。これらは、互いに等しくバランスをとることができる(たとえば、a=0.5およびb=0.5)。代替的には、類似性尺度にはより多くの重みが与えられる可能性もある(たとえば、a=0.8およびb=0.2)。
【0081】
所与のテキスト文書から抽出される文法単位は、文、句、段落、単語、nグラム、または他の文法単位であり得る。この場合、所与のテキスト文書3610から抽出される文法単位3608が単語またはnグラムである場合、プロセスは、テキストサマリー化とは対照的に、キーワード生成と見なされる可能性がある。
【0082】
テキストサマライザ3612はテキスト片を受付ける。このテキスト片は、所与のテキスト文書3610またはその文法単位である。このテキスト片は、当該テキスト片の重み付き属性(たとえば、単語またはnグラム)の「入力」ベクトルとして表わされる。入力ベクトルにおける各重みは、テキスト片において識別される対応する属性(たとえば、単語またはnグラム)のためのものであり、テキスト片と対応する属性との間の関連付けの強さを表わす。たとえば、これらの重みはTF-IDFスキーム等に従って算出されてもよい。
【0083】
いくつかの実装例では、入力ベクトルにおける属性の重みは以下のように計算される。
【0084】
【数2】
【0085】
ここで、tft,dは、テキスト片dにおけるnグラムtの頻度である。パラメータk、b、L、およびLavgは、分類トレーニングセットではなく知識ベース3602に関する点を除いては以前と同様である。いくつかの実装例では、kは約1.5であり、bは約0.75である。
【0086】
他の重み付けスキームも実現可能であり、実施形態が、入力ベクトルを形成するときにいかなる特定の重み付けスキームにも限定されないことに留意されたい。入力ベクトルを形成することはまた、トレーニングデータアイテムベクトルに関して上述したような単位長正規化を含み得る。
【0087】
テキストサマライザ3612は、テキスト片に基づいて形成された入力ベクトルの非ゼロ重み付き属性を反復し、重み付き転置インデックス3606から属性に対応する属性ベクトルを取出し、取出された属性ベクトルをテキスト片を表わす概念の重み付きベクトルにマージする。概念のこの重み付きベクトルを以下「概念」ベクトルと称する。
【0088】
入力ベクトルの属性に対応する重み付き転置インデックス3606から取出される属性ベクトルも各々が重みのベクトルである。しかしながら、属性ベクトルにおける重みは、知識ベース3602のそれぞれの概念と転置インデックス3606によって属性ベクトルにマッピングされた属性との関連付けの強さを定量化する。
【0089】
テキストサマライザ3612は、テキスト片の概念ベクトルを作成する。概念ベクトルは重みのベクトルである。概念ベクトルにおける各重みは、知識ベース3602のそれぞれの概念とテキスト片との間の関連付けの強さを表わす。概念ベクトルにおける概念重みは、入力ベクトルにおいて非ゼロの重み付けがなされた各属性ごとの値の合計としてテキストサマライザ3612によって計算される。当該合計の属性についての各値は、(a)入力ベクトルにおける属性の重みと、(b)属性についての属性ベクトルにおける概念の重みとの積として計算される。概念ベクトルにおける各々の概念重みは、テキスト片に対する概念の関連性を反映している。いくつかの実装例では、概念ベクトルが正規化される。たとえば、概念ベクトルは、(たとえば、上記のクラス長のように)単位長または概念長に関して正規化され得る。
【0090】
テキストサマライザ3612は、入力テキスト3610についての概念ベクトル3616と、文法単位3608の各々についての概念ベクトル3614とを生成し得る。ベクトル比較器3618は、類似性尺度を用いて、文法単位について生成された概念ベクトル3614と入力テキスト3610について生成された概念ベクトル3616とを比較して、類似性推定値3620を生成する。いくつかの実装例では、コサイン類似性尺度が用いられる。実装例は任意の特定の類似性尺度に限定されず、2つの非ゼロベクトル間の類似性を測定することを可能にする任意の類似性尺度が用いられ得る。
【0091】
類似性推定値3620は、或る文法単位と、当該文法単位が抽出された入力テキスト3610との間の意味論的関係性の度合いを定量化する。たとえば、類似性推定値3620は、意味論的関係性の度合いがより高くて1により近い値と、意味論的関係性の度合いがより低くて0により近い値とを含め、1と0との間の値であってもよい。
【0092】
類似性推定値3620は、文法単位3608の各々について計算され得る。文法単位3608について生成された類似性推定値3620は、入力テキスト3610のテキストサマリーに含めるために文法単位3608のうちの1つ以上を選択する(かまたは、入力テキスト3610についてのキーワード生成のために1つ以上のキーワードを選択する)ために用いられ得る。
【0093】
たとえばニュース記事、ブログ投稿、ジャーナル記事、ウェブページなどの、より長いテキストの正確なテキストサマリーを提供するためのテキストサマリー化に関して上述の技術のさまざまな応用例がある。
【0094】
任意またはすべての上記実施形態においては、1つ以上のコンテンツリソース(たとえば、画像、記事等)が、ユーザインターフェイス415を介してユーザによって現在作成されているコンテンツに潜在的に関係していると識別された後、関係するコンテンツリソースは、コンテンツ推奨エンジン425に送り返され、そこで、たとえば、コンテンツ取出し/埋込みコンポーネント445によって、取出され、修正され、ユーザインターフェイス415に埋込まれてもよい。取出し/埋込みコンポーネント445を用いて、潜在的に関係したコンテンツリソースが、現在作成されているコンテンツに含まれるように任意に選択され得るように、ユーザインターフェイス415を介してユーザに提供され得る。2つの例示的なユーザインターフェイスが図37および図38に示されており、ここで、コンテンツの作成中に画像推奨がユーザに提供される。図37では、ユーザインターフェイスを介してユーザによって現在オーサリングされているコンテンツのテキストに基づいて選択された画像を含むメディア推奨ペインが示されている。図38では、視覚特徴分析は、ユーザによって選択された第1の画像(「ファイル名.JPG」)に潜在的に関係している画像のセットを選択するために用いられてきた。同様の技術およびユーザインターフェイス画面を用いて、ユーザが、画像、記事および他のテキスト文書へのリンク、音声/映像ファイルなどを選択し、ドラッグアンドドロップするとともに、当該ユーザによって現在作成中のコンテンツに埋込むことを可能にし得る。
【0095】
図39は、上述のさまざまな例が実装され得る分散システム3900の簡略図を示す。図示の例では、分散システム3900は、1つ以上の通信ネットワーク3910を介してサーバ3912に結合された1つ以上のクライアントコンピューティングデバイス3902、3904、3906、3908を含む。クライアントコンピューティングデバイス3902、3904、3906、3908は、1つ以上のアプリケーションを実行するように構成され得る。
【0096】
さまざまな実施形態では、サーバ3912は、コンテンツ推奨システム400に関連付けられた1つ以上の動作を可能にする1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。たとえば、ユーザは、(たとえば、コンテンツオーサデバイス410に対応する)クライアントコンピューティングデバイス3902、3904、3906、3908を用いて、コンテンツ推奨エンジン425を介して提供される1つ以上のクラウドベースのサービスにアクセスし得る。
【0097】
さまざまな例では、サーバ3912はまた、他のサービスまたはソフトウェアアプリケーションを提供してもよく、非仮想環境および仮想環境を含み得る。いくつかの例では、これらのサービスは、ウェブベースのサービスもしくはクラウドサービスとして、またはサービスとしてのソフトウェア(SaaS)モデル下で、クライアントコンピューティングデバイス3902、3904、3906、3908のユーザに提供され得る。クライアントコンピューティングデバイス3902、3904、3906、3908を操作するユーザは、次に、1つ以上のクライアントアプリケーションを用いてサーバ3912と対話して、これらのコンポーネントによって提供されるサービスを用い得る。
【0098】
図39に示す構成では、サーバ3912は、サーバ3912によって実行される機能を実装する1つ以上のコンポーネント3918、3920、3922を含み得る。これらのコンポーネントは、1つ以上のプロセッサ、ハードウェアコンポーネント、またはそれらの組合わせによって実行され得るソフトウェアコンポーネントを含み得る。例示的な分散
システム3900とは異なり得る多種多様なシステム構成が実現可能であることが認識されるはずである。
【0099】
クライアントコンピューティングデバイス3902、3904、3906、3908は、さまざまなタイプのコンピューティングシステム、たとえば、スマートフォンおよびタブレットなどの携帯用の手持ち式デバイス、パーソナルコンピュータおよびラップトップなどの汎用コンピュータ、ワークステーションコンピュータ、頭部装着型ディスプレイなどのウェアラブルデバイス、携帯型ゲーム装置、ゲームコンソール、およびインターネット対応ゲーム装置などのゲームシステム、シンクライアント、さまざまなメッセージングデバイス、センサおよび他の感知デバイスなどを含み得る。これらのコンピューティングデバイスは、各種モバイルオペレーティングシステム(たとえばMicrosoft Windows(登録商標) Mobile(登録商標)、iOS(登録商標)、Windows Phone(登録商標)、Android(登録商標)、BlackBerry(登録商標)、Palm OS(登録商標))を含む、さまざまな種類およびバージョンのソフトウェアアプリケーションおよびオペレーティングシステム(たとえばMicrosoft Windows(登録商標)、Apple Macintosh(登録商標)、UNIX(登録商標)またはUNIX系オペレーティングシステム、Linux(登録商標)またはLinux系オペレーティングシステム、たとえば、Google Chrome(登録商標)OS)を実行し得る。クライアントデバイスは、さまざまなインターネット関連アプリ、通信アプリケーション(たとえば、電子メールアプリケーション、ショートメッセージサービス(short message service:SMS)アプリケーション)など
の多種多様なアプリケーションを実行することができるとともに、さまざまな通信プロトコルを用い得る。クライアントデバイスは、当該クライアントデバイスのユーザがクライアントデバイスと対話することを可能にするインターフェイスを提供し得る。クライアントデバイスはまた、このインターフェイスを介してユーザに情報を出力してもよい。図39は4つのクライアントコンピューティングデバイスだけを示しているが、任意の数のクライアントコンピューティングデバイスがサポートされ得る。
【0100】
分散システム3900内のネットワーク3910は、利用可能な多様なプロトコルのうちのいずれかを用いてデータ通信をサポートできる、当該技術の当業者には周知のいずれかの種類のネットワークであればよく、上記プロトコルは、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、SNA(システムネットワークアーキテクチャ)、IPX(インターネットパケット交換)、AppleTalk(登録商標)などを含むがこれらに限定されない。単に例として、ネットワーク3910は、ローカルエリアネットワーク(LAN)、Ethernet(登録商標)に基づくネットワーク、トークンリング、ワイドエリアネットワーク、インターネット、仮想ネットワーク、仮想プライベートネットワーク(VPN)、イントラネット、エクストラネット、公衆交換電話網(PSTN)、赤外線ネットワーク、無線ネットワーク(たとえば電気電子学会(IEEE)802.11プロトコルスイートのいずれかの下で動作するネットワーク、Bluetooth(登録商標)および/もしくは他の任意の無線プロトコル)、ならびに/または、これらおよび/もしくは他のネットワークの任意の組合わせであってもよい。
【0101】
サーバ3912は、1つ以上の汎用コンピュータ、専用サーバコンピュータ(一例としてPC(パーソナルコンピュータ)サーバ、UNIX(登録商標)サーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウント型サーバなどを含む)、サーバファーム、サーバクラスタ、またはその他の任意の適切な構成および/または組合わせで構成されてもよい。サーバ3912は、仮想オペレーティングシステムを実行する1つ以上の仮想マシン、または仮想化を伴う他のコンピューティングアーキテクチャ、たとえば、サーバに対して仮想記憶装置を維持するように仮想化できる論理記憶装置の1つ以上のフレキシブルプールなど、を含み得る。各種例において、サーバ3912は、上述の動作を
実行する1つ以上のサービスまたはソフトウェアアプリケーションを実行するように適合され得る。
【0102】
サーバ3912は、上述のいずれかを含むオペレーティングシステム、および、市場で入手可能なサーバオペレーティングシステムを実行し得る。また、サーバ3912は、HTTP(ハイパーテキスト転送プロトコル)サーバ、FTP(ファイル転送プロトコル)サーバ、CGI(共通ゲートウェイインターフェイス)サーバ、JAVA(登録商標)サーバ、データベースサーバなどを含むさまざまな付加的なサーバアプリケーションおよび/または中間層アプリケーションのうちのいずれかを実行し得る。データベースサーバの例は、Oracle(登録商標)、Microsoft(登録商標)、Sybase(登録商標)、IBM(登録商標)(International Business Machines)などから市場で入
手可能なものを含むが、それらに限定されるものではない。
【0103】
いくつかの実装例において、サーバ3912は、クライアントコンピューティングデバイス3902,3904,3906および3908のユーザから受取ったデータフィードおよび/またはイベントアップデートを解析および整理統合するための1つ以上のアプリケーションを含み得る。一例として、データフィードおよび/またはイベントアップデートは、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえば、ネットワークモニタリングおよびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどに関係するリアルタイムのイベントを含み得る、1つ以上の第三者情報源および連続データストリームから受取られる、Twitter(登録商標)フィード、Facebook(登録商標)アップデートまたはリアルタイムのアップデートを含み得るが、これらに限定されない。サーバ3912は、データフィードおよび/またはリアルタイムのイベントをクライアントコンピューティングデバイス3902,3904,3906および3908の1つ以上の表示デバイスを介して表示するための1つ以上のアプリケーションも含み得る。
【0104】
分散システム3900はまた、1つ以上のデータリポジトリ3914、3916を含み得る。これらのデータリポジトリは、上述のさまざまな例によって説明される情報などのさまざまなタイプの情報を格納するためのメカニズムを提供し得る。データリポジトリ3914、3916はさまざまな場所に常駐し得る。たとえば、サーバ3912が使用するデータリポジトリは、サーバ3912のローカルにあってもよく、またはサーバ3912から遠隔の位置にあってもよく、ネットワークベースの接続または専用接続を介してサーバ3912と通信する。データリポジトリ3914、3916は異なる種類であってもよい。いくつかの例において、サーバ3912が使用するデータリポジトリは、データベース、たとえば、Oracle Corporation(登録商標)および他の製造業者が提供するデータベースなどのリレーショナルデータベースであってもよい。これらのデータベースのうちの1つ以上を、SQLフォーマットのコマンドに応じて、データの格納、アップデート、およびデータベースとの間での取出しを可能にするように適合されてもよい。
【0105】
いくつかの例では、データリポジトリ3914、3916のうちの1つ以上はまた、アプリケーションデータを格納するためにアプリケーションによって用いられてもよい。アプリケーションが使用するデータリポジトリは、たとえば、キー値ストアリポジトリ、オブジェクトストアリポジトリ、またはファイルシステムがサポートする汎用ストレージリポジトリなどのさまざまな種類のものであってもよい。
【0106】
いくつかの例では、クラウド環境は、上述したような1つ以上のサービスを提供し得る。図40は、これらのサービスおよび他のサービスをクラウドサービスとして提供することができるシステム環境4000の1つ以上のコンポーネントの簡略ブロック図である。
図40に示される例では、クラウドインフラストラクチャシステム4002は、1つ以上のクライアントコンピューティングデバイス4004、4006および4008を用いてユーザが要求し得る1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム4002は、図39のサーバ3912について上述したものを含み得る1つ以上のコンピュータおよび/またはサーバを含み得る。図40のクラウドインフラストラクチャシステム4002内のコンピュータは、汎用コンピュータ、専用サーバコンピュータ、サーバファーム、サーバクラスタ、または他の任意の適切な構成および/または組合わせとして編成され得る。
【0107】
ネットワーク4010は、クライアント4004、4006、4008とクラウドインフラストラクチャシステム4002との間のデータの通信およびやり取りを容易にし得る。ネットワーク4010は1つ以上のネットワークを含み得る。ネットワークは、同じタイプであっても異なるタイプであってもよい。ネットワーク4010は、通信を容易にするために、有線プロトコルおよび/または無線プロトコルを含む1つ以上の通信プロトコルをサポートし得る。
【0108】
図40に示す例は、クラウドインフラストラクチャシステムの一例にすぎず、限定することを意図していない。他の例では、クラウドインフラストラクチャシステム4002は、図40に示されたものよりも多いかまたは少ないコンポーネントを有していてもよく、2つ以上のコンポーネントを組合わせてもよく、または異なる構成または配置のコンポーネントを有しもよいことが認識されるはずである。たとえば、図40は3つのクライアントコンピューティングデバイスを示すが、他の例では、サポートされ得るクライアントコンピューティングデバイスの数は任意である。
【0109】
クラウドサービスという用語は一般に、サービスプロバイダのシステム(たとえばクラウドインフラストラクチャシステム4002)により、インターネット等の通信ネットワークを介してオンデマンドでユーザが利用できるようにされるサービスを意味するために用いられている。典型的には、公共のクラウド環境では、クラウドサービスプロバイダのシステムを構成するサーバおよびシステムは、顧客自身のオンプレミスサーバおよびシステムとは異なっている。クラウドサービスプロバイダのシステムは、クラウドサービスプロバイダによって管理される。よって、顧客は、別途ライセンス、サポート、またはハードウェアおよびソフトウェアリソースをサービスのために購入しなくても、クラウドサービスプロバイダが提供するクラウドサービスを利用することができる。たとえば、クラウドサービスプロバイダのシステムはアプリケーションをホストし得るとともに、ユーザは、アプリケーションを実行するためにインフラストラクチャリソースを購入しなくても、インターネットを介しオンデマンドかつセルフサービスでアプリケーションをオーダーして使用することができる。クラウドサービスは、アプリケーション、リソースおよびサービスに対する容易でスケーラブルなアクセスを提供するように設計されている。いくつかのプロバイダがクラウドサービスを提供する。たとえば、ミドルウェアサービス、データベースサービス、Javaクラウドサービスその他などのいくつかのクラウドサービスが、カリフォルニア州レッドウッド・ショアーズのOracle Corporation(登録商標)から提供されている。
【0110】
さまざまな例において、クラウドインフラストラクチャシステム4002は、ハイブリッドサービスモデルを含む、サービスとしてのソフトウェア(SaaS)モデル、サービスとしてのプラットフォーム(PaaS)モデル、サービスとしてのインフラストラクチャ(IaaS)モデルなどのさまざまなモデルを用いて、1つ以上のクラウドサービスを提供し得る。クラウドインフラストラクチャシステム4002は、各種クラウドサービスのプロビジョンを可能にする、アプリケーション、ミドルウェア、データベース、およびその他のリソースの一式を含み得る。
【0111】
SaaSモデルは、アプリケーションまたはソフトウェアを、インターネットのような通信ネットワークを通して、顧客が基本となるアプリケーションのためのハードウェアまたはソフトウェアを購入しなくても、サービスとして顧客に配信することを可能にする。たとえば、SaaSモデルを用いることにより、クラウドインフラストラクチャシステム4002がホストするオンデマンドアプリケーションに顧客がアクセスできるようにしてもよい。Oracle Corporation(登録商標)が提供するSaaSサービスの例は、人的資源/資本管理のための各種サービス、顧客関係管理(CRM)、エンタープライズ・リソース・プランニング(ERP)、サプライチェーン・マネジメント(SCM)、エンタープライズ・パフォーマンス・マネジメント(EPM)、解析サービス、ソーシャルアプリケーションその他を含むがこれらに限定されるものではない。
【0112】
IaaSモデルは一般に、インフラストラクチャリソース(たとえばサーバ、ストレージ、ハードウェアおよびネットワーキングリソース)を、クラウドサービスとして顧客に提供することにより柔軟な計算およびストレージ機能を提供するために使用される。各種IaaSサービスがOracle Corporation(登録商標)から提供されている。
【0113】
PaaSモデルは一般に、顧客が、このようなリソースを調達、構築、または管理しなくても、アプリケーションおよびサービスを、開発、実行および管理することを可能にするプラットフォームおよび環境リソースをサービスとして提供するために使用される。Oracle Corporation(登録商標)が提供するPaaSサービスの例は、Oracle Java Cloud Service(JCS)、Oracle Database Cloud Service(DBCS)、データ管理クラウドサービス、各種アプリケーション開発ソリューションサービスその他を含むがこれらに限定されるものではない。
【0114】
いくつかの例では、クラウドインフラストラクチャシステム4002内のリソースは、複数のユーザによって共有され、要求に応じて動的に再割当てされ得る。加えて、リソースは、異なる時間帯のユーザに割当てられてもよい。たとえば、クラウドインフラストラクチャシステム4002は、第1の時間帯にあるユーザの第1のセットが、指定された時間数にわたってクラウドインフラストラクチャシステムのリソースを利用することを可能にし、次いで、異なる時間帯にあるユーザの別のセットに同じリソースを再割当てすることを可能にし、これにより、リソースを最大限利用し得る。
【0115】
クラウドインフラストラクチャシステム4002は、異なるデプロイメントモデルを介してクラウドサービスを提供し得る。公共のクラウドモデルにおいて、クラウドインフラストラクチャシステム4002は、第三者クラウドサービスプロバイダによって所有されていてもよく、クラウドサービスは一般の任意の顧客に提供される。この場合、顧客は個人であっても企業であってもよい。その他いくつかの実施形態において、プライベートクラウドモデルでは、クラウドインフラストラクチャシステム4002を或る組織内で(たとえば企業組織内で)機能させてもよく、サービスはこの組織内の顧客に提供される。たとえば、これらの顧客は、企業のさまざまな部署、たとえば人事部、給与部などであってもよく、企業内の個人であってもよい。その他の特定の実施形態において、コミュニティクラウドモデルでは、クラウドインフラストラクチャシステム4002および提供されるサービスは、関係するコミュニティ内のいくつかの組織で共有されてもよい。上記モデルの混成モデルなどの他の各種モデルが用いられてもよい。
【0116】
クライアントコンピューティングデバイス4004、4006、4008は、図39のクライアントコンピューティングデバイス3902、3904、3906、3908について上述したものと同様のデバイスであってもよい。図40のクライアントコンピューテ
ィングデバイス4004、4006、4008は、クラウドインフラストラクチャシステム4002によって提供されるサービスを用いるためにクライアントコンピューティングデバイスのユーザがクラウドインフラストラクチャシステム4002と対話するのに用いられ得るウェブブラウザ、プロプラエタリクライアントアプリケーション(たとえば、Oracle Forms)、または他の何らかのアプリケーションなどのクライアントアプリケーションを操作するように構成され得る。
【0117】
さまざまな例では、クラウドインフラストラクチャシステム4002は、「ビッグデータ(big data)」ならびに関係する計算サービスおよび分析サービスを提供することもできる。「ビッグデータ」という語は、一般に、大量のデータを可視化し、傾向を検出し、および/またはそうでなければデータと対話するために分析者および研究者によって格納および操作され得る、極めて大きなデータセットを指すのに用いられる。クラウドインフラストラクチャシステム4002が実行できる分析は、大きなデータセットを使用し、分析し、操作することにより、このデータ内のさまざまな傾向、挙動、関係などを検出し可視化することを含み得る。この分析は、1つ以上のプロセッサが、場合によっては、データを並列に処理し、データを用いてシミュレーションを実行するなどして、実行されてもよい。この分析に使用されるデータは、構造化データ(たとえばデータベースに格納されたデータもしくは構造化モデルに従って構造化されたデータ)および/または非構造化データ(たとえばデータブロブ(blob)(binary large object:バイナリ・ラージ・オブ
ジェクト))を含み得る。
【0118】
図40の実施形態に示されるように、クラウドインフラストラクチャシステム4002は、クラウドインフラストラクチャシステム4002が提供する各種クラウドサービスのプロビジョンを容易にするために利用されるインフラストラクチャリソース4030を含み得る。インフラストラクチャリソース4030は、たとえば、処理リソース、ストレージまたはメモリリソース、ネットワーキングリソースなどを含み得る。
【0119】
いくつかの例では、異なる顧客に対しクラウドインフラストラクチャシステム4002が提供する各種クラウドサービスをサポートするためのこれらのリソースを効率的にプロビジョニングし易くするために、これらリソースをまとめて、リソースのセットまたはリソースモジュール(「ポッド」とも称される)にしてもよい。各リソースモジュールまたはポッドは、1種類以上のリソースの予め一体化して最適化された組合わせを含み得る。いくつかの例では、異なるポッドを異なる種類のクラウドサービスに対して予めプロビジョニングしてもよい。たとえば、第1のポッドセットをデータベースサービスのためにプロビジョニングしてもよく、第1のポッドセット内のポッドとは異なるリソースの組み合わせを含み得る第2のポッドセットをJavaサービスなどのためにプロビジョニングしてもよい。いくつかのサービスの場合、これらのサービスをプロビジョニングするために割当てられたリソースを当該サービス間で共有してもよい。
【0120】
クラウドインフラストラクチャシステム4002自体が、クラウドインフラストラクチャシステム4002のさまざまなコンポーネントによって共有されるとともにクラウドインフラストラクチャシステム4002によるサービスのプロビジョニングを容易にするサービス4032を、内部で使用してもよい。これらの内部共有サービスは、セキュリティ・アイデンティティサービス、統合サービス、エンタープライズリポジトリサービス、エンタープライズマネージャサービス、ウィルススキャン・ホワイトリストサービス、高可用性バックアップリカバリサービス、クラウドサポートを可能にするサービス、Eメールサービス、通知サービス、ファイル転送サービスなどを含み得るが、これらに限定されるものではない。
【0121】
さまざまな例では、クラウドインフラストラクチャシステム4002は複数のサブシス
テムを含み得る。これらのサブシステムは、ソフトウェア、またはハードウェア、またはこれらの組合わせで実現され得る。図40に示されるように、サブシステムは、クラウドインフラストラクチャシステム4002のユーザまたは顧客がクラウドインフラストラクチャシステム4002とやり取りすることを可能にするユーザインターフェイスサブシステムwを含み得る。ユーザインターフェイスサブシステム4012は、ウェブインターフェイス4014、クラウドインフラストラクチャシステム4002が提供するクラウドサービスが宣伝広告されるとともに消費者が購入可能であるオンラインストアインターフェイス4016、およびその他のインターフェイス4018などの、各種異なるインターフェイスを含み得る。たとえば、顧客は、クライアントデバイスを用い、クラウドインフラストラクチャシステム4002が提供する1つ以上のサービスを、インターフェイス4014、4016、および4018のうちの1つ以上を用いて要求(サービス要求4034)し得る。たとえば、顧客は、オンラインストアにアクセスし、クラウドインフラストラクチャシステム4002が提供するクラウドサービスをブラウズし、クラウドインフラストラクチャシステム4002が提供するサービスのうち顧客が申し込むことを希望する1つ以上のサービスについてサブスクリプションオーダーを行なう。サービス要求は、顧客と、当該顧客が加入を望む1つ以上のサービスとを識別する情報を含み得る。たとえば、顧客は、上述したようなサービスについてのサブスクリプションオーダーを行なってもよい。オーダーの一部として、顧客は、とりわけ、顧客が必要とするリソースの量、および/または、どの時間フレームに該当するか、を識別する情報を提供し得る。
【0122】
図40に示される例ようないくつかの例では、クラウドインフラストラクチャシステム4002は、新規のオーダーを処理するように構成されたオーダー管理サブシステム(OMS)4002を含み得る。この処理の一部として、OMS4020は、いくつかある動作の中でも特に、既に作成されていなければ顧客のアカウントを生成し、要求されたサービスを顧客に提供するために顧客に対して課金するのに使用する課金および/またはアカウント情報を顧客から受取り、顧客情報を検証し、検証後、顧客のためにこのオーダーを予約し、各種ワークフローを調整することにより、プロビジョニングのためにオーダーを準備するように、構成され得る。
【0123】
適切に検証されると、OMS4020は、処理リソース、メモリリソースおよびネットワーキングリソースを含む、このオーダーのためのリソースをプロビジョニングするように構成されたオーダープロビジョニングサブシステム(OPS)4024を呼び出し得る。プロビジョニングは、オーダーのためのリソースを割当てることと、顧客オーダーが要求するサービスを容易にするようにリソースを構成することとを含み得る。オーダーのためにリソースをプロビジョニングする方法およびプロビジョニングされるリソースのタイプは、顧客がオーダーしたクラウドサービスのタイプに依存し得る。たとえば、あるワークフローに従うと、OPS4024は、要求されている特定のクラウドサービスを判定し、この特定のクラウドサービスのために予め構成されたであろうポッドの数を特定するように構成されてもよい。あるオーダーのために割当てられるべきポッドの数は、要求されたサービスのサイズ/量/レベル/範囲に依存し得る。たとえば、割当てるポッドの数は、サービスがサポートすべきユーザの数、サービスが要求されている期間などに基づいて判断され得る。次に、要求されたサービスを提供するために、割当てられたポッドを、要求している特定の顧客に合わせてカスタマイズしてもよい。
【0124】
クラウドインフラストラクチャシステム4002は、要求されたサービスがいつ使用できるようになるかを示すために、応答または通知4044を、要求している顧客に送ってもよい。いくつかの例において、顧客が、要求したサービスの利益の使用および利用を開始できるようにする情報(たとえばリンク)を顧客に送信してもよい。
【0125】
クラウドインフラストラクチャシステム4002はサービスを複数の顧客に提供し得る
。各顧客ごとに、クラウドインフラストラクチャシステム4002は、顧客から受けた1つ以上のサブスクリプションオーダーに関係する情報を管理し、オーダーに関係する顧客データを維持し、要求されたサービスを顧客に提供する役割を果たす。また、クラウドインフラストラクチャシステム4002は、申し込まれたサービスの顧客による使用に関する使用統計を収集してもよい。たとえば、統計は、使用されたストレージの量、転送されたデータの量、ユーザの数、ならびにシステムアップタイムおよびシステムダウンタイムの量などについて、収集されてもよい。この使用情報を用いて顧客に課金してもよい。課金は、たとえば月ごとに行なってもよい。
【0126】
クラウドインフラストラクチャシステム4002は、サービスを複数の顧客に並列に提供してもよい。クラウドインフラストラクチャシステム4002は、場合によっては著作権情報を含む、これらの顧客についての情報を格納していてもよい。いくつかの例では、クラウドインフラストラクチャシステム4002は、顧客の情報を管理して当該管理される情報を分離させることで、ある顧客に関する情報が別の顧客からアクセスされないようにするように構成された、アイデンティティ管理サブシステム(IMS)4028を含む。IMS4028は、アイデンティティサービス、たとえば情報アクセス管理、認証および許可サービス、顧客のアイデンティティおよび役割ならびに関連する能力などを管理するためのサービスなどの各種セキュリティ関連サービスを提供するように構成されてもよい。
【0127】
図41は、上述のさまざまな例を実現するために用いられ得るコンピュータシステム4100の例を示す。いくつかの例において、コンピュータシステム4100を使用することにより、上述のさまざまなサーバおよびコンピュータシステムのいずれかが実現され得る。図41に示されるように、コンピュータシステム4100は、バスサブシステム4102を介して複数の他のサブシステムと通信する処理サブシステム4104を含むさまざまなサブシステムを含む。これらの他のサブシステムは、処理加速ユニット4106、I/Oサブシステム4108、ストレージサブシステム4118および通信サブシステム4124を含み得る。ストレージサブシステム4118は、非一時的なコンピュータ可読記憶媒体4122およびシステムメモリ4110を含み得る。
【0128】
バスサブシステム4102は、コンピュータシステム4100のさまざまなコンポーネントおよびサブシステム同士を意図するとおりに通信させるための機構を提供する。バスサブシステム4102は単一のバスとして概略的に示されているが、バスサブシステムの代替例は複数のバスを利用してもよい。バスサブシステム4102は、さまざまなバスアーキテクチャのうちのいずれかを用いる、メモリバスまたはメモリコントローラ、周辺バス、ローカルバスを含むいくつかのタイプのバス構造のうちのいずれかであってもよい。たとえば、そのようなアーキテクチャは、業界標準アーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロチャネルアーキテクチャ(Micro Channel Architecture)(MCA)バス、エンハンストISA(Enhanced ISA)(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association)(VESA)ローカルバス、およびIEEE P1386.1規格に
従って製造されるメザニンバスとして実現可能な周辺コンポーネントインターコネクト(Peripheral Component Interconnect)(PCI)バスなどを含み得る。
【0129】
処理サブシステム4104は、コンピュータシステム4100の動作を制御し、1つ以上のプロセッサ、特定用途向け集積回路(ASIC)、またはフィールドプログラマブルゲートアレイ(FPGA)を含み得る。プロセッサは、シングルコアまたはマルチコアプロセッサを含み得る。コンピュータシステム4100の処理リソースを、1つ以上の処理ユニット4132、4134などに組織することができる。処理ユニットは、シングルコアまたはマルチコアのプロセッサを含む1つ以上のプロセッサ、同一のもしくは異なるプ
ロセッサからの1つ以上のコア、コアとプロセッサとの組み合わせ、またはコアとプロセッサとのその他の組み合わせを含み得る。いくつかの例において、処理サブシステム4104は、グラフィックスプロセッサ、デジタル信号プロセッサ(DSP)などの1つ以上の専用コプロセッサを含み得る。いくつかの例では、処理サブシステム4104の処理ユニットの一部または全ては、特定用途向け集積回路(ASIC)またはフィールドプログラマブルゲートアレイ(FPGA)などのカスタマイズされた回路を用いて実現することができる。
【0130】
いくつかの例において、処理サブシステム4104内の処理ユニットは、システムメモリ4110またはコンピュータ可読記憶媒体4122に格納された命令を実行することができる。さまざまな例において、処理ユニットはさまざまなプログラムまたはコード命令を実行するとともに、同時に実行する複数のプログラムまたはプロセスを維持することができる。任意の所定の時点で、実行されるべきプログラムコードの一部または全ては、システムメモリ4110および/または潜在的に1つ以上の記憶装置を含むコンピュータ可読記憶媒体4110に常駐していてもよい。適切なプログラミングにより、処理サブシステム4104は、先に述べたさまざまな機能を提供することができる。コンピュータシステム4100が1つ以上の仮想マシンを実行している例において、1つ以上の処理ユニットに各仮想マシンを割当ててもよい。
【0131】
いくつかの例において、コンピュータシステム4100によって実行される全体的な処理を加速するよう、カスタマイズされた処理を実行するために、または処理サブシステム4104によって実行される処理の一部をオフロードするために、処理加速ユニット4106を任意に設けてもよい。
【0132】
I/Oサブシステム4108は、コンピュータシステム4100に情報を入力するための、および/またはコンピュータシステム4100から、もしくはコンピュータシステム1200を介して、情報を出力するための、デバイスおよび機構を含み得る。一般に、「入力デバイス」という語の使用は、コンピュータシステム4100に情報を入力するための全ての考えられ得るタイプのデバイスおよび機構を含むよう意図される。ユーザインターフェイス入力デバイスは、たとえば、キーボード、マウスまたはトラックボールなどのポインティングデバイス、ディスプレイに組み込まれたタッチパッドまたはタッチスクリーン、スクロールホイール、クリックホイール、ダイアル、ボタン、スイッチ、キーパッド、音声コマンド認識システムを伴う音声入力デバイス、マイクロフォン、および他のタイプの入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、ユーザが入力デバイスを制御しそれと対話することを可能にするMicrosoft Kinect(登録商標)モーションセンサ、Microsoft Xbox(登録商標)360ゲームコントローラ、ジェスチャおよび音声コマンドを用いて入力を受信するためのインターフェイスを提供するデバイスなど、モーションセンシングおよび/またはジェスチャ認識デバイスも含んでもよい。ユーザインターフェイス入力デバイスは、ユーザから目の動き(たとえば、写真を撮っている間および/またはメニュー選択を行っている間の「まばたき」)を検出し、アイジェスチャを入力デバイス(たとえばGoogle Glass(登録商標))への入力として変換するGoogle Glass(登録商標)瞬き検出器などのアイジェスチャ認識デバイスも含んでもよい。加えて、ユーザインターフェイス入力デバイスは、ユーザが音声コマンドを介して音声認識システム(たとえばSiri(登録商標)ナビゲータ)と対話することを可能にする音声認識感知デバイスを含んでもよい。
【0133】
ユーザインターフェイス入力デバイスの他の例は、三次元(3D)マウス、ジョイスティックまたはポインティングスティック、ゲームパッドおよびグラフィックタブレット、ならびにスピーカ、デジタルカメラ、デジタルカムコーダ、ポータブルメディアプレーヤ
、ウェブカム、画像スキャナ、指紋スキャナ、バーコードリーダ3Dスキャナ、3Dプリンタ、レーザレンジファインダ、および視線追跡デバイスなどの聴覚/視覚デバイスも含むが、それらに限定されない。加えて、ユーザインターフェイス入力デバイスは、たとえば、コンピュータ断層撮影、磁気共鳴撮像、ポジションエミッショントモグラフィー、および医療用超音波検査デバイスなどの医療用画像化入力デバイスを含んでもよい。ユーザインターフェイス入力デバイスは、たとえば、MIDIキーボード、デジタル楽器などの音声入力デバイスを含んでもよい。
【0134】
一般に、出力デバイスという語の使用は、コンピュータシステム4100からユーザまたは他のコンピュータに情報を出力するための考えられる全てのタイプのデバイスおよび機構を含むことを意図している。ユーザインターフェイス出力デバイスは、ディスプレイサブシステム、インジケータライト、または音声出力デバイスなどの非視覚式ディスプレイなどを含んでもよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)またはプラズマディスプレイを用いたものなどのフラットパネルデバイス、投影デバイス、タッチスクリーンなどであってもよい。たとえば、ユーザインターフェイス出力デバイスは、モニタ、プリンタ、スピーカ、ヘッドフォン、自動車ナビゲーションシステム、プロッタ、音声出力デバイスおよびモデムなどの、テキスト、グラフィックスおよび音声/映像情報を視覚的に伝えるさまざまな表示デバイスを含み得るが、それらに限定されない。
【0135】
ストレージサブシステム4118は、コンピュータシステム4100によって使用される情報を格納するためのリポジトリまたはデータストアを備える。ストレージサブシステム4118は、いくつかの例の機能を提供する基本的なプログラミングおよびデータ構成を格納するための有形の非一時的なコンピュータ可読記憶媒体を提供する。処理サブシステム4104によって実行されると上述の機能を提供するソフトウェア(たとえばプログラム、コードモジュール、命令)が、ストレージサブシステム4118に格納されてもよい。ソフトウェアは、処理サブシステム4104の1つ以上の処理ユニットによって実行されてもよい。ストレージサブシステム4118はまた、本開示に従って使用されるデータを格納するためのリポジトリを備えてもよい。
【0136】
ストレージサブシステム4118は、揮発性メモリデバイスおよび不揮発性メモリデバイスを含む1つ以上の非一時的メモリデバイスを含み得る。図41に示すように、ストレージサブシステム4118は、システムメモリ4110およびコンピュータ可読記憶媒体4122を含む。システムメモリ4110は、プログラム実行中に命令およびデータを格納するための揮発性主ランダムアクセスメモリ(RAM)と、固定命令が格納される不揮発性読出専用メモリ(ROM)またはフラッシュメモリとを含む、いくつかのメモリを含み得る。いくつかの実装例において、起動中などにコンピュータシステム4100内の要素間における情報の転送を助ける基本的なルーチンを含むベーシックインプット/アウトプットシステム(basic input/output system)(BIOS)は、典型的には、ROMに
格納されてもよい。典型的に、RAMは、処理サブシステム4104によって現在動作および実行させられているデータおよび/またはプログラムモジュールを含む。いくつかの実装例において、システムメモリ4110は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)などの複数の異なるタイプのメモリを含み得る。
【0137】
一例として、限定を伴うことなく、図41に示されるように、システムメモリ4110は、クライアントアプリケーション、ウェブブラウザ、中間層アプリケーション、リレーショナルデータベース管理システム(RDBMS)などを含み得る実行中のアプリケーションプログラム4112、プログラムデータ4114、およびオペレーティングシステム4116を、ロードしてもよい。一例として、オペレーティングシステム4116は、M
icrosoft Windows(登録商標)、Apple Macintosh(登録商標)および/またはLinuxオペレーティングシステム、市場で入手可能なさまざまなUNIX(登録商標)もしくはUNIX系オペレーティングシステム(さまざまなGNU/Linuxオペレーティングシステム、Google Chrome(登録商標)OSなどを含むがそれらに限定されない)、および/または、モバイルオペレーティングシステム、たとえば、iOS(登録商標)、Windows(登録商標) Phone、Android(登録商標) OS、BlackBerry(登録商標) OS、および、Palm(登録商標) OSオペレーティングシステムなどを含み得る。
【0138】
コンピュータ可読記憶媒体4122は、いくつかの例の機能を提供するプログラミングおよびデータ構成を格納することができる。コンピュータ可読媒体1412は、コンピュータシステム4100のための、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータを格納し得る。処理サブシステム4104によって実行されると上記機能を提供するソフトウェア(プログラム、コードモジュール、命令)は、ストレージサブシステム4118に格納されてもよい。一例として、コンピュータ可読記憶媒体4122は、ハードディスクドライブ、磁気ディスクドライブ、CD ROM、DVD、Blu-Ray(登録商標)ディスクなどの光ディスクドライブ、またはその他の光学媒体のような不揮発性メモリを含み得る。コンピュータ可読記憶媒体1222は、Zip(登録商標)ドライブ、フラッシュメモリカード、ユニバーサルシリアルバス(USB)フラッシュドライブ、セキュアデジタル(SD)カード、DVDディスク、デジタルビデオテープなどを含み得るが、それらに限定されるものではない。コンピュータ可読記憶媒体1222は、フラッシュメモリベースのSSD、エンタープライズフラッシュドライブ、ソリッドステートROMなどの不揮発性メモリに基づくソリッドステートドライブ(SSD)、ソリッドステートRAM、ダイナミックRAM、スタティックRAMのような揮発性メモリに基づくSSD、DRAMベースのSSD、磁気抵抗RAM(MRAM)SSD、およびDRAMとフラッシュメモリベースのSSDとの組合わせを使用するハイブリッドSSDも含み得る。コンピュータ可読記憶媒体4122は、コンピュータシステム4100のためのコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータを格納し得る。
【0139】
いくつかの例では、ストレージサブシステム4118はまた、コンピュータ可読記憶媒体4122にさらに接続可能なコンピュータ可読記憶媒体リーダ4120も含み得る。リーダ4120は、ディスク、フラッシュドライバなどのメモリデバイスからデータを受取り得るとともに、読取るように構成され得る。
【0140】
いくつかの例では、コンピュータシステム4100は、処理リソースおよびメモリリソースの仮想化を含むがこれに限定されない仮想化技術をサポートし得る。たとえば、コンピュータシステム4100は、1つ以上の仮想マシンを実行するためのサポートを提供してもよい。コンピュータシステム4100は、仮想マシンの構成および管理を容易にするハイパーバイザなどのプログラムを実行し得る。各仮想マシンは、概して、他の仮想マシンからは独立して実行される。仮想マシンは、メモリ、計算(たとえばプロセッサ、コア)、I/O、およびネットワーキングリソースを割当てられてもよい。各仮想マシンは、典型的に、コンピュータシステム4100によって実行される他の仮想マシンによって実行されるオペレーティングシステムと同じでも異なっていてもよい、それ自体のオペレーティングシステムを実行する。したがって、複数のオペレーティングシステムが潜在的にはコンピュータシステム4100によって同時に実行され得る。
【0141】
通信サブシステム4124は、他のコンピュータシステムおよびネットワークに対するインターフェイスを提供する。通信サブシステム4124は、他のシステムとコンピュータシステム4100との間のデータの送受のためのインターフェイスとして機能する。た
とえば、通信サブシステム4124は、コンピュータシステム4100が、1つ以上のクライアントコンピューティングデバイスとの間で情報を送受信するために、インターネットを介して1つ以上のクライアントコンピューティングデバイスへの通信チャネルを確立することを可能にし得る。
【0142】
通信サブシステム4124は、有線および/または無線の通信プロトコルの両方をサポートし得る。たとえば、いくつかの例において、通信サブシステム1224は、(たとえば、セルラー電話技術、3G、4GもしくはEDGE(グローバル進化のための高速データレート)などの先進データネットワーク技術、WiFi(IEEE802.11ファミリー規格)、もしくは他のモバイル通信技術、またはそれらのいずれかの組合わせを用いて)無線音声および/もしくはデータネットワークにアクセスするための無線周波数(RF)送受信機コンポーネント、グローバルポジショニングシステム(GPS)受信機コンポーネント、ならびに/または、他のコンポーネントを含み得る。いくつかの例において、通信サブシステム4124は、無線インターフェイスに加えてまたはその代わりに、有線ネットワーク接続(たとえば、Ethernet)を提供することができる。
【0143】
通信サブシステム4124は、さまざまな形式でデータを受取り、送信することができる。たとえば、いくつかの例において、通信サブシステム4124は、構造化データフィードおよび/または非構造化データフィード4126、イベントストリーム4128、イベントアップデート4130などの形式で入力通信を受信し得る。たとえば、通信サブシステム4124は、ソーシャルメディアネットワークのユーザから、ならびに/または、Twitter(登録商標)フィード、Facebook(登録商標)アップデート、Rich Site Summary(RSS)フィードなどのウェブフィードおよび/もしくは1つ以上の第三者情報源からのリアルタイムアップデートなどの他の通信サービスのユーザから、リアルタイムでデータフィード4126を受信(または送信)するように構成されてもよい。
【0144】
いくつかの例では、通信サブシステム4124は、連続データストリームの形式でデータを受信するように構成されてもよく、当該連続データストリームは、明確な終端を持たない、本来は連続的または無限であり得るリアルタイムイベントのイベントストリーム4128および/またはイベントアップデート4130を含み得る。連続データを生成するアプリケーションの例としては、たとえば、センサデータアプリケーション、金融株式相場表示板、ネットワーク性能測定ツール(たとえばネットワーク監視およびトラフィック管理アプリケーション)、クリックストリーム解析ツール、自動車交通モニタリングなどを挙げることができる。
【0145】
通信サブシステム4124は、構造化および/または非構造化データフィード4126、イベントストリーム4128、イベントアップデート4130などを、コンピュータシステム4100に結合された1つ以上のストリーミングデータソースコンピュータと通信し得る1つ以上のデータベースに出力するように構成されてもよい。
【0146】
コンピュータシステム4100は、手持ち式の携帯型デバイス(たとえばiPhone(登録商標)セルラーフォン、iPad(登録商標)コンピューティングタブレット、PDA)、ウェアラブルデバイス(たとえばGoogle Glass(登録商標)頭部装着型ディスプレイ)、パーソナルコンピュータ、ワークステーション、メインフレーム、キオスク、サーバラック、またはその他のデータ処理システムを含む、さまざまなタイプのもののうちの1つであり得る。
【0147】
コンピュータおよびネットワークの性質が常に変化するものであるので、図41に示されるコンピュータシステム4100の記載は、具体例としてのみ意図されている。図41
に示されるシステムよりも多くのコンポーネントまたは少ないコンポーネントを有するその他多くの構成が実現可能である。当業者であれば、本明細書の開示および教示に基づいて、さまざまな例を実現するための他の態様および/または方法を理解するだろう。
【0148】
II.コンテンツ推奨 <サーチ結果のランク付け>
クライアントまたはユーザからの入力に応答して特定のコンテンツ(コンテンツアイテム)を推奨するように構成されたコンテンツ推奨システムの場合、コンテンツアイテムを互いに対して評価およびランク付けするプロセスは推奨全体において重要な役割を果たす。たとえば、ユーザは、1つ以上の検索用語を検索エンジンクエリインターフェイスに入力し得るとともに、推奨システムは、入力された検索用語に最も厳密に一致する1つ以上の関連コンテンツアイテム(たとえば、ウェブページ、文書、画像など)を推奨し得る。他の例では、ユーザは、コンテンツオーサリングシステムを用いて、電子メール、文書、オンライン記事、ブログ投稿などのオリジナルのコンテンツをオーサリングし得る。コンテンツオーサリングシステムは、ユーザによってオーサリングされたコンテンツに関連する可能性がある関係コンテンツアイテムの推奨を行なうように構成され得る。たとえば、上述のように、コンテンツ推奨システムは、オーサーが、所望するのであれば、推奨されるコンテンツアイテムのうちの1つ以上を、ユーザによってオーサリングされているコンテンツに組込むことができるように、関連する画像またはウェブページへのリンク等をユーザに推奨し得る。このような技術のいくつかの例が上記段落に記載されている。これらの例が示すように、特定のコンテンツアイテムのランク付けおよび推奨は、他のプロセスから手動で入力されたユーザ入力および/または自動入力を受取ることに応答して、多くの異なる使用事例に適用され得る。ランク付けおよび/または推奨されるべきコンテンツアイテムは、サーチの際に推奨システムが利用できる画像、ウェブページ、他のメディアファイル、文書、デジタルオブジェクトなどに対応し得る。これらのコンテンツアイテムは、推奨システムにアクセス可能な、専用のリポジトリまたは公共のリポジトリ(たとえば、インターネット)であり得る1つ以上のリポジトリに格納され得る。
【0149】
しかしながら、コンテンツアイテムのランク付けは重要な作業である。たとえば、推奨を実行するためにタグ一致技術を用いる推奨システムについて考察する。このようなシステムでは、推奨システムによって検索するのに利用可能なコンテンツアイテムがタグ付けされ、コンテンツアイテムがタグと共に1つ以上のリポジトリに格納され得る。タグ付けは、コンテンツアイテムタグ付けサービス/アプリケーションによって実行されてもよい。コンテンツアイテムの場合、コンテンツアイテムに関連付けられた1つ以上のタグは、コンテンツアイテムに含まれるコンテンツを示している。値(タグ確率とも称される)はまた、各タグに関連付けられてもよく、その値は、コンテンツアイテムにおいて現われるタグによって示されるコンテンツの尺度(たとえば、確率)を提供する。コンテンツアイテムの推奨がなされることとなるユーザ入力(たとえば、検索用語/句、ユーザによってオーサリングされるコンテンツ)を受取ると、ユーザ入力が分析されて、ユーザ入力に関連付けられるべき1つ以上のタグが識別され得る。次いで、推奨システムは、タグ一致技術を用いて、ユーザ入力に関連付けられたタグと一致する関連付けられたタグを有するコンテンツアイテムのセットを、検索に利用可能なコンテンツアイテムから識別し得る。次いで、推奨システムは、何らかのランク付けアルゴリズムを用いて、識別されたセット内のコンテンツアイテムをランク付けし、その結果をユーザに表示し得る。
【0150】
しかしながら、推奨システムによって用いられるランク付けアルゴリズムの有効性は、特定の使用事例では制限される可能性があり、最適な結果を生成しない可能性がある。たとえば、ユーザ入力に関連付けられた複数のタグが存在する場合について考察する。たとえば、ユーザが単語「コーヒー(coffee)」および「人(human)」を画像検索エンジン
にタイプする場合、タグ「コーヒー」および「人」がユーザ入力に関連付けられ得る。特定の実施形態では、検索用語自体は、ユーザ入力に関連付けられたタグとして扱われても
よい。簡潔にするために、検索に利用可能なコンテンツアイテムの集まりはタグ付き画像を含むと想定する。推奨システムは、これらの2つのタグを用いて、コンテンツアイテム(たとえば、画像)の集まりから、一致するコンテンツアイテムのセットを取出し得る。この場合、コンテンツアイテムに関連付けられた少なくとも1つのタグがユーザ入力に関連付けられたタグと一致する場合、当該コンテンツアイテムは一致していると見なされる。複数の一致するコンテンツアイテムが推奨システムによって取出されており、各コンテンツアイテムに「コーヒー」および「人」タグの両方が関連付けられているシナリオ(事例1)について考察する。これらの取出されたコンテンツアイテムをランク付けする1つの考えられる方法は、(a)一致するコンテンツアイテムごとに、そのコンテンツアイテムについてのタグ「コーヒー」および「人」に関連付けられた値を追加し、次いで、(b)それらの関連付けられた追加合計に基づいてコンテンツアイテムをランク付けすることである。しかしながら、この場合、或る問題が生じる。なぜなら、複数の一致するコンテンツアイテムについて、一致するタグに関連付けられた複数の値が合計されて同じ値になる可能性があるからである。この状況が起こる可能性は非常に高い。なぜなら、大部分のタグ付けサービスが複数の確率を1段階だけで正規化するからである。たとえば、3つの一致する画像は、以下のように関連付けられたタグ値を有し得る。具体的には、画像A((「コーヒー」,0.5),(「人」,0.5));画像B((「コーヒー」,0.2),(「人」,0.8));および画像C((「コーヒー」,0.7),(「人」,0.3))である。以上のように、これらの一致画像の各々についての一致タグの値の合計は「1」であり、このため、従来の加算技術を用いて、これらの画像の一方を他方に対してランク付けする方法はない。したがって、単にそれらの一致するタグ値の加算合計に基づいてこれらの画像をランク付けすることは、画像のランク付けのために用いることができない。
【0151】
上記の例を拡張すると、一致画像のセットは、1つのタグだけ(たとえば、一致した「コーヒー」だけ、または一致した「人」だけ)に一致するとともに関連付けられた同じタグ値を有する複数の画像を含む可能性もある。この場合も、画像をランク付けする際に問題が生じる。たとえば、3つの一致する画像が以下のように関連付けられたタグ値を有する可能性がある場合について考察する。具体的には、画像A((「コーヒー」,0.5))、画像B((「人」,0.5))である。この場合も、従来の技術を用いて、これらの画像の一方を他方に対してランク付けする方法はない。
【0152】
上記状況は、ユーザ入力に関連付けられたタグが3つ以上存在する場合、さらに悪化する。たとえば、ユーザが「コーヒー」、「人」、「カフェ(cafe)」という単語を画像検索エンジンにタイプする場合、ユーザ入力に関連付けられた3つの検索タグ「コーヒー」、「人」、「カフェ」が生じる。推奨システムは、コンテンツアイテム(たとえば、画像)の集まりから一致するコンテンツアイテムのセットを取出し得る。この場合、コンテンツアイテムは、当該コンテンツアイテムに関連付けられた少なくとも1つのタグがユーザ入力に関連付けられたタグと一致する場合、一致していると見なされる。一致するコンテンツアイテムについての一致するタグの数は、わずかに1つ一致タグから複数の一致タグまでとさまざまなであり得る(「コーヒー」、「人」および「カフェ」の例の場合、最大で3つの一致タグがある)。このシナリオでも、一致するコンテンツアイテムが複数ある場合、一致するタグに関連付けられた値は合計して同じ値になり得る。たとえば、3つの一致する画像は、以下のように関連付けられたタグ値を有し得る。具体的には、画像A((「人」,0.8),(「コーヒー」,0.2));画像B((「人」,0.2),(「コーヒー」,0.2),(「カフェ」,0.6));および画像C((「人」,0.5),(「カフェ」,0.5))である。上記のように、これらの一致画像の各々についての一致タグの値の合計は「1」であり、このため、従来の加算技術を用いて、これらの画像の一方を他方に対してランク付けする方法はない。
【0153】
したがって、多くの場合、単純なタグ一致技術は、さまざまな理由で、最適なコンテンツ推奨を返さない可能性がある。たとえば、リポジトリ内の特定の画像(または他のコンテンツアイテム)は、1つまたは2つのコンテンツタグだけでタグ付けされてもよく、他の画像/コンテンツアイテムは、単一のコンテンツアイテムに対して潜在的に数十または数百のタグを含む多数のタグでタグ付けされてもよい。このような場合、従来のタグ一致技術は、高度にタグ付けされたコンテンツアイテムを過度に推奨する可能性があり(たとえば、入力された語に一致する少なくとも1つのタグを含む頻度がより高いからである)、および/または、このようなアイテムを過小に推奨する可能性がある(たとえば、1つ以上のコンテンツタグを一致させるときでも、それらのタグの大部分は依然として入力された語と一致しないからであるからである)。同様に、ユーザまたはクライアントシステムによって提供される入力コンテンツは、受取った入力データに応じて、ほんの数個の入力語(たとえば、より大きな入力テキストから抽出される、明確に入力された検索用語またはトピック)だけを含み得るか、または比較的多数の入力語を含み得る。このような場合、従来のタグ一致技術では、リポジトリ内の特定の関連コンテンツアイテムを識別できない(たとえば、関係するコンテンツアイテムのタグと一致する入力語が少なすぎるために)か、または、より関連性の低いコンテンツアイテムを誤って推奨する可能性がある(たとえば、この関連性の低いコンテンツアイテムが1つ以上の一致タグを含んでいるために)。
【0154】
特定の実施形態において、タグ付けされたコンテンツアイテムを評価し、ランク付けし、推奨するための改善された技術を本明細書で説明する。いくつかの実施形態では、コンテンツ推奨システムは、検索クエリ、新しくオーサリングされたテキスト入力などの入力コンテンツをクライアントデバイスから受取り得る。1つ以上のタグが、クライアントデバイスから受取った入力コンテンツに含まれてもよく、もしくは当該入力コンテンツに関連付けられてもよく、および/または、当該入力コンテンツに対して実行される前処理技術および分析技術に基づいて当該入力コンテンツから判定および抽出されてもよい。加えて、コンテンツ推奨システムは、画像、メディアコンテンツファイル、ウェブページへのリンクおよび/または他の文書などの複数のタグ付きコンテンツアイテムを格納するコンテンツリポジトリにアクセスし得る。場合によっては、コンテンツリポジトリは、タグ付きコンテンツアイテムを識別するデータを格納してもよく、タグ付きコンテンツアイテムごとに、各アイテムについての関連付けられたタグ情報をさらに格納してもよい。この場合、コンテンツアイテムについてのタグ情報は、コンテンツアイテムに関連付けられた1つ以上のタグを識別する情報と関連付けられた各々のタグについてのタグ値とを含む。
【0155】
推奨が行われるべき入力データを受取ったことに応答して、コンテンツ推奨システムは、コンテンツリポジトリからの一致するタグ付きコンテンツアイテムのセットを検索可能なコンテンツアイテムの集まりから取出し得る。この場合、或るコンテンツアイテムは、当該コンテンツアイテムに関連付けられた少なくとも1つのコンテンツタグが入力コンテンツに関連付けられたタグと一致する場合、一致するコンテンツアイテムと見なされる。次いで、コンテンツリポジトリから取出された一致するタグ付きコンテンツアイテムごとに、コンテンツ推奨システムは以下の2つのスコアを算出し得る。(1)入力コンテンツに関連付けられたタグと一致するコンテンツアイテムに関連付けられたタグの数に基づいた第1のスコア(タグカウントスコアとも称される)、および(2)コンテンツアイテムについての一致するタグの各々に対するタグ値に基づいた第2のスコア(タグ値ベースのスコアまたはTVBSとも称される)。次いで、コンテンツ推奨システムは、一致するコンテンツアイテムに関する第1のスコアおよび第2のスコアに基づいて、一致するコンテンツアイテムの各々についての最終ランク付けスコアを算出する。次いで、一致するコンテンツアイテムのセットについて計算された最終ランク付けスコアを用いて、一致するコンテンツアイテムのランク付けリストを生成する。このランク付けリストは、ユーザまたはクライアントシステムに出力されるべき一致コンテンツアイテムの推奨されるサブセッ
トを識別するために用いられる。
【0156】
ここで図42を参照すると、特定の実施形態に従ったユーザまたはクライアントシステム4210から受取った入力コンテンツに応答して、コンテンツリポジトリ4230からのコンテンツアイテムに対する評価およびランク付けを行なうために実装されるコンテンツ推奨システム4220を備えたコンピューティング環境4200のブロック図が示されている。この例では、グラフィカルユーザインターフェイス(graphical user interface:GUI)4215を含め、コンテンツ推奨システム4220内のさまざまなコンポーネントおよびサブシステムも示されている。クライアントシステム4210は、このGUI
4215を介してコンテンツ推奨システム4220と対話して、入力コンテンツを提供するとともに、推奨されるコンテンツアイテムのサブセットを識別するデータを受取り得る。特定の実施形態では、GUI 4215は、コンテンツをオーサリングするためにユーザによって用いられる別個のクライアントアプリケーション4215(たとえば、ウェブブラウザアプリケーション)のGUIであってもよい。この実施形態では、コンテンツ推奨システム4220は、ユーザによって提供されるかまたはオーサリングされたコンテンツをクライアントアプリケーションから受取り得る。コンテンツは、クライアントアプリケーションおよびコンテンツ推奨システム4220が互いに対話して情報を交換することを可能にするアプリケーションプログラミングインターフェイス(application programming interface:API)を用いて、コンテンツ推奨システム4220によって受取ら
れてもよい。
【0157】
図42に示す実施形態は、単なる例にすぎず、主張される実施形態の範囲を過度に限定することを意図するものではない。当業者であれば、実現可能な多くの変更例、代替例および変形例を認識するだろう。たとえば、いくつかの実装例では、コンテンツ推奨システム4220は、図42に示されるものよりも多いかもしくは少ないシステムもしくはサブシステムを有し得るか、2つ以上のシステムを組合わせ得るか、または、異なる構成もしくは配置のシステムを有し得る。コンテンツ推奨システム4220は、いくつかの実施形態では、専用の特化されたハードウェアおよびソフトウェアを備えた独立したコンピューティングインフラストラクチャおよびネットワークインフラストラクチャを用いる別個のシステムを含む1つ以上のコンピューティングシステムとして実装されてもよい。代替的ま付加的には、これらのコンポーネントおよびサブシステムのうちの1つ以上は、別個の機能を実行する単一のシステムに統合されてもよい。図42に示すさまざまなシステム、サブシステムおよびコンポーネントは、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合わせで実装され得る。ソフトウェアは、非一時的記憶媒体上(たとえば、メモリデバイス上)に格納され得る。
【0158】
高レベルでは、コンテンツ推奨システム4220は、ユーザ入力コンテンツを受取るとともに、ユーザ入力コンテンツに応じて、当該ユーザ入力コンテンツに基づいてコンテンツアイテム推奨を行なうように構成される。これらの推奨は、推奨を行なうためにコンテンツ推奨システム4220にとって利用可能かつアクセス可能であるコンテンツアイテムの集まりから行なわれる。コンテンツアイテムの集まりは、画像、さまざまな種類の文書、メディアコンテンツ、デジタルオブジェクト等を含み得る。ユーザ入力コンテンツに関連付けられたタグ情報およびコンテンツアイテムの集まりに関連付けられたタグ情報に基づいて、コンテンツ推奨システム4220は、タグ一致技術を用いて、ユーザ入力コンテンツについて、一致するコンテンツアイテムのセットを識別するように構成されている。次いで、コンテンツ推奨システム4220は、本開示で説明する革新的なランク付け技術を用いて、一致するコンテンツアイテムのセット中のコンテンツアイテムをランク付けするように構成される。ランク付けに基づいて、コンテンツ推奨システム4220は、ユーザまたはクライアントシステムに出力されるべき一致するコンテンツアイテムのサブセッ
トを識別および推奨するように構成される。
【0159】
コンテンツ推奨システム4220は、コンテンツ推奨システム4220による推奨に利用可能なコンテンツアイテムを受取るかまたは取出すように構成されたコンテンツタグ付けサブシステム4222を含む。コンテンツアイテムは、画像、ウェブページ、文書、メディアファイル等を含み得るが、これらに限定されない。コンテンツアイテムは、1つ以上のコンテンツリポジトリ4230から受取られ得るかまたは検索され得る。コンテンツリポジトリ4230は、画像ライブラリ、文書ストア、ウェブベースのリソースのローカルエリアネットワークまたはワイドエリアネットワーク(たとえば、インターネット)等を含む、ライブラリまたはデータベースなどのさまざまな公共または専用のコンテンツリポジトリを含み得る。1つ以上のコンテンツリポジトリ4230は、コンテンツ推奨システム4220にローカルに格納されてもよく、他のコンテンツリポジトリは、コンテンツ推奨システム4220から別個であり遠隔に設けられているとともに1つ以上のコンピュータネットワークを介してコンテンツ推奨システム4220にアクセス可能であってもよい。
【0160】
特定の実施形態では、コンテンツアイテムごとに、コンテンツタグ付けサブシステム4222は、コンテンツアイテムのコンテンツを取出して分析するとともに、コンテンツアイテムに関連付けられるべき1つ以上のコンテンツタグ(タグ)を識別するように構成される。コンテンツアイテムに関連付けられる各タグごとに、コンテンツタグ付け部4222は、タグに関連付けられたタグ値を判定し得る。この場合、この値は、コンテンツアイテムにおいて現われるタグによって示されるコンテンツの尺度(たとえば、確率)を提供する。タグについてのタグ値は、特定のコンテンツタグがそのコンテンツアイテムにどのように適用可能であるかを表わす数値尺度に対応し得る。1つ以上のタグおよび対応するタグ値をコンテンツアイテムに関連付けてもよい。複数の関連付けられたタグおよび対応するタグ値を有するコンテンツアイテムの場合、これらのタグ値は、その画像内のタグによって示される画像トピックまたはテーマの相対的な著名性を表わし得る。たとえば、比較的高いタグ値を有するコンテンツアイテムに関連付けられた第1のタグは、当該第1のタグによって示されるコンテンツまたは特徴がコンテンツアイテムにおいて特に関連性があり著名であることを示し得る。対照的に、より低いタグ値を有する同じコンテンツアイテムに関連付けられた第2のタグは、当該第2のタグによって示されるコンテンツまたは特徴が、第1のコンテンツタグによって示されるコンテンツと比較してコンテンツアイテムにおいてそれほど著名ではないことまたは普及していないことを示し得る。たとえば、画像コンテンツアイテムは、(「人」,0.8),(「コーヒー」,0.2)といった2つの関連付けられたタグおよび値を有し得る。これは、画像がコーヒー(たとえば、コーヒーカップ)および人(たとえば、コーヒーを飲む人)に関係するコンテンツを含むこと、さらに、画像において人の方がコーヒーの描写と比べてより目立つように描写されている(たとえば、画像の大部分が人を描写していてもよく、コーヒーカップは画像のうちわずかな面積を占めていてもよい)ことを示す。タグ値は異なるフォーマットを用いて表現されてもよい。たとえば、いくつかの実装例では、これらのタグ値は、0.1と1.0との間の浮動小数点で表わされてもよい。いくつかの実装例では、特定のコンテンツアイテムに関連付けられたタグについての全てのタグ値の合計は、(たとえば、合計すると1になる)固定された一定値になり得る。
【0161】
いくつかの実施形態では、コンテンツタグ付け部4222は、コンテンツアイテムと関連付けられるべき1つ以上のタグと各タグについてのタグ値とを識別することを含む、コンテンツアイテムに対するタグ付けタスクを実行するために、コンテンツタグ付けサービスのサービスを用い得る。特定の実施形態では、コンテンツタグ付け部4222は、コンテンツアイテムを入力として採用するとともにコンテンツアイテムおよび関連付けられたタグ値についてのタグを予測するようにトレーニングされた1つ以上の予測機械学習モデ
ルを用いて実装される。いくつかの実施形態では、これらのタグは、モデルをトレーニングするために用いられる事前構成されたタグのセットから選択されてもよい。事前トレーニングされた機械学習モデルを用いるさまざまな機械学習技術、および/または、AIベースのテキストもしくは画像分類システム、トピックもしくは特徴抽出を含む他の人工知能ベースのツール、および/または、上述の技術の他の任意の組合わせが、コンテンツアイテムおよび対応するタグ値に関連付けられるべきタグを判定するために用いられてもよい。
【0162】
いくつかの実施形態では、コンテンツリポジトリ4230から取出されたコンテンツアイテムは、関連付けられたコンテンツタグおよびタグ値を既に含み得る。取出されたコンテンツアイテムがタグ情報を含まない場合、および/または、コンテンツ推奨システム4220がコンテンツアイテムについての追加タグを判定するように構成されている場合、コンテンツタグ付け部4222は、取出されたコンテンツアイテムについての新しいタグを更新または生成するために用いられ得る。コンテンツタグ付け部4222は、多種多様な技術を用いて、コンテンツアイテムについてのタグ情報(たとえば、1つ以上のタグおよび関連付けられたタグ値)を生成し得る。たとえば、コンテンツタグ付け部4222は、取出されたコンテンツアイテムを分析してコンテンツタグを判定するために、パーズ、処理、特徴抽出および/または他の分析技術などの前述の技術のいずれかまたは全てを用いてもよい。パーズ、処理、特徴抽出および/または分析のタイプはコンテンツアイテムのタイプに依存し得る。たとえば、ブログ投稿、手紙、電子メール、記事、文書などのテキストベースのコンテンツアイテムの場合、分析は、キーワード抽出および処理ツール(たとえば、ステムミング、同義語検索など)、トピック分析ツールなどを含み得る。コンテンツアイテムが画像である場合、人工知能ベースの画像分類ツールを用いて、特定の画像特徴の識別および/または画像タグの生成を実行し得る。たとえば、画像の分析により複数の画像特徴を識別してもよく、画像がこれらの識別された特徴のそれぞれでタグ付けされてもよい。1つまたは両方のタイプの分析(すなわち、画像からのタグ抽出およびテキストコンテンツからのキーワード/トピック抽出)は、分析、機械学習アルゴリズムおよび/または人工知能(AI)ベースの技術、たとえば、AIベースの認知画像分析サービス、またはテキストコンテンツに用いられる同様のAI/REST認知テキストサービスなどを用いて、RESTベースのサービスまたは他のウェブサービスを介して実行され得る。同様の技術が、映像ファイル、音声ファイル、グラフィックス、またはソーシャルメディア投稿などの他のタイプのコンテンツアイテムのために用いられてもよい。この場合、コンテンツアイテムのメディアタイプに応じて特定の特徴(たとえば、単語、画像/映像内のオブジェクト、顔の表現など)を抽出および分析するために専用のウェブサービスが用いられてもよい。
【0163】
いくつかの実施形態では、コンテンツタグ付け部4222は、トレーニングデータでトレーニングされた1つ以上の機械学習および/または人工知能ベースの事前トレーニング済みモデルを用いて、コンテンツアイテムについてのタグおよびタグ値を判定するのに用いられるコンテンツ特徴を識別および抽出し得る。たとえば、モデルトレーニングシステムは、以前の入力データ(たとえば、テキスト入力、画像など)の或るトレーニングデータセットを含むトレーニングデータセットと、以前の入力データについての対応するタグとに基づいて機械学習アルゴリズムを用いて予めトレーニングされ得る1つ以上のモデルを生成し得る。さまざまな実施形態において、1つ以上の異なる種類のトレーニング済みモデルが用いられてもよく、これには、ナイーブベイズモデル、判定ツリーモデル、ロジスティック回帰モデルもしくは深層学習モデルなどの、教師ありもしくは半教師ありの学習技術を実行する分類システム、または、教師ありもしくは教師なしの学習技術を実行し得る他の任意の機械学習もしくは人工知能ベースの予測システムが含まれる。各機械学習モデルまたはモデルタイプの場合、トレーニング済みモデルは1つ以上のコンピューティングシステムによって実行され得る。この期間中、或るコンテンツアイテムが1つ以上の
モデルへの入力として提供されるとともに、モデルからの出力が当該コンテンツアイテムに関連付けられるべき1つ以上のタグを識別し得るか、または、モデルの出力が、当該コンテンツアイテムに関連付けられるべき1つ以上のタグを識別するために用いられ得る。したがって、コンテンツタグ付け部4222は、多種多様なツールまたは技術、たとえば、キーワード抽出および処理(たとえば、ステムミング、同義語検索など)、トピック分析、画像からの特徴抽出、機械学習およびAIベースのモデリングツールおよびテキストもしくは画像分類システム、ならびに/または、推奨に利用可能な各コンテンツアイテムごとのタグ情報(たとえば、1つ以上のタグおよび関連付けられたタグ値)を判定もしくは生成するための上述の技術の他の任意の組合わせなど、を用い得るが、これらに限定されない。
【0164】
特定の実施形態では、推奨に利用可能なコンテンツアイテムおよびそれらの関連付けられたタグ情報(たとえば、各コンテンツアイテムごとに、コンテンツアイテムに関連付けられた1つ以上のタグおよび対応するタグ値)がデータストア4223に格納され得る。いくつかの実施形態では、コンテンツ/タグ情報データストア4223は、コンテンツリポジトリ4230から取出されたコンテンツアイテムを識別するデータを格納し得る。これは、アイテム自体(たとえば、画像、ウェブページ、文書、メディアファイルなど)を含み得るか、または、付加的/代替的には、アイテムへの参照(たとえば、アイテム識別子、コンテンツアイテムを取出すことができるネットワークアドレス、アイテムの記述、アイテムのサムネイル等)を含み得る。コンテンツ/タグ情報データストア4223に格納され得るデータのタイプを示す例を図45に示し、以下でより詳細に説明する。
【0165】
コンテンツ推奨システム4220はタグ識別子サブシステム4221を含む。タグ識別子サブシステム4221は、デバイス4210からユーザ入力コンテンツを受取るとともに、ユーザコンテンツに関連付けられるべき1つ以上のタグを判定するように構成されている。いくつかの実施形態では、デバイス4210から受取ったユーザコンテンツは、関連付けられたタグを含み得る。いくつかの他の実施形態では、タグ識別子4221は、入力データと関連付けられるべき1つ以上のタグを判定するために入力データを処理するように構成され得る。一例として、タグ識別子4221は、データタグ付けサービスを用いて、入力データに関連付けられるべき1つ以上のタグのセットを識別し得る。次いで、タグ識別子4221は、さらなる処理のために、入力データに(およびいくつかの実装例ではユーザコンテンツにも)関連付けられたタグを、推奨されるコンテンツアイテム識別子およびランク付けサブシステム4224(簡潔にするためにコンテンツアイテムランク付け部4224とも称され得る)に提供し得る。
【0166】
いくつかの実施形態では、タグ識別子4221は、コンテンツタグ付け部4222によって用いられる上述のさまざまな技術を用いて、上述のように、受取ったユーザコンテンツに関連付けられるべき1つ以上のタグを判定し得る。いくつかの実施形態では、タグ識別子4221およびコンテンツタグ付け部4222はともにタグの同じスーパーセットを用い得るが、このタグの同じスーパーセットから、ユーザ入力およびコンテンツアイテムに関連付けられるべきタグが判定される。特定の実施形態では、タグ識別子4221およびコンテンツタグ付け部4222は、ユーザコンテンツおよびコンテンツアイテムにそれぞれ関連付けられるべきタグを識別するために同じデータタグ付けサービスを用いてもよい。さらに他の実施形態では、タグ識別子4221およびコンテンツタグ付け部4222のサブシステムは、リポジトリ4230から受取ったコンテンツアイテムとクライアントシステム4210から受取った入力コンテンツとに対して同様の(または同一の)処理を実行するように構成された単一のサブシステムとして実装され得る。
【0167】
上述のように、コンテンツアイテムがコンテンツタグ付け部4222によってタグ付けされると、各コンテンツアイテムごとに、コンテンツアイテムに関連付けられるべき1つ
以上のタグが、各タグごとにタグ値と共に識別される。ユーザコンテンツのためのタグ付けに関して、いくつかの実施形態では、タグ識別子4221は、関連付けられたタグ値なしで、ユーザ入力に関連付けられるべきタグのみを判定するように構成される。このような実施形態では、各タグには、ユーザ入力に関連付けられたタグに基づいてコンテンツアイテムランク付け部4224によって実行されるランク付けに対して等しい重みが与えられる。いくつかの他の実施形態では、タグおよび関連付けられたタグ値がともに、ユーザコンテンツについて判定され得るともに、コンテンツアイテム推奨をランク付けするためにコンテンツアイテムランク付け部4224によって用いられ得る。
【0168】
上述したように、タグ識別子4221によって受取られて処理されるユーザコンテンツは異なる形態を取り得る。たとえば、ユーザコンテンツは、ユーザによってオーサリングされている文書(たとえば、電子メール、記事、ブログ投稿、文書、ソーシャルメディア投稿、画像など)のコンテンツ、ユーザによって作成または選択されたコンテンツ(たとえば、マルチメディアファイル)などを含み得る。別の例として、ユーザ入力は、ユーザによってアクセスされる文書(たとえば、ウェブページ)であってもよい。さらに別の例として、ユーザコンテンツは、検索を実行するためにユーザによって入力された検索用語(たとえば、ブラウザベースの検索エンジン)であってもよい。特定の実施形態では、たとえば、検索用語については、これらの用語自体がタグとして用いられてもよい。
【0169】
図42に図示して上述したように、コンテンツアイテムランク付け部4224は、タグ識別子4221から、ユーザコンテンツに関連付けられた1つ以上のタグのセットを識別する情報を入力として受取る。ユーザコンテンツについてのこのタグ情報に基づいて、かつ、推奨に利用可能なコンテンツアイテムに基づいて、コンテンツアイテムランク付け部4224は、タグ一致技術を用いて、入力コンテンツに最も関係および/または関連する1つ以上のコンテンツアイテムを識別するように構成される。複数のコンテンツアイテムがユーザ入力に関係するかまたは関連するものとして識別される場合、コンテンツアイテムランク付け部4224はさらに、本明細書で説明する革新的なランク付け技術を用いてコンテンツアイテムをランク付けするように構成される。コンテンツアイテムをスコアリングしてランク付けするためにコンテンツアイテムランク付け部4224によって用いられるさまざまな技術に関係するさらなる詳細について、以下でより詳細に説明する。コンテンツアイテムランク付け部4224は、ユーザのために受取ったユーザ入力に応答して、当該ユーザに推奨されるべきコンテンツアイテムのランク付けリストを生成するように構成される。次いで、コンテンツアイテムのランク付けリストは、さらなる処理のために推奨セレクタサブシステム4225に提供される。
【0170】
推奨セレクタ4225は、コンテンツアイテムランク付け部4224から受取ったコンテンツアイテムのランク付けリストを用いて、クライアントシステム4210から受取った入力コンテンツに応答して、ユーザに推奨されるべき1つ以上の特定のコンテンツアイテムを選択するように構成される。特定のシナリオでは、ランク付けリスト内の全てのコンテンツアイテムが推奨のために選択されてもよい。他のいくつかのシナリオでは、ランク付けされたコンテンツアイテムのサブセットが推奨のために選択されてもよく、この場合、サブセットは、ランク付けリスト内の全てのコンテンツアイテムよりも少ないコンテンツアイテムを含み、当該サブセットに含まれる1つ以上のコンテンツアイテムは、ランク付けリスト内のコンテンツアイテムのランク付けに基づいて選択される。たとえば、推奨セレクタ4225は、推奨のためにランク付けリストから上位「X」までのランク付けされた(たとえば、上位5個まで、上位10個までなどの)コンテンツアイテムを選択し得る。この場合、Xは、ランク付けされたアイテムの数以下の何らかの整数である。特定の実施形態では、推奨セレクタ4225は、ランク付けリスト内のコンテンツアイテムに関連付けられたスコアに基づいて、ユーザに推奨されるべきサブセットに含まれるようにコンテンツアイテムを選択し得る。たとえば、ユーザ設定可能な閾値スコアを上回るスコ
アが関連付けられているコンテンツアイテムのみが、ユーザに推奨されるように選択されてもよい。
【0171】
次いで、推奨セレクタ4225によって推奨すべく選択されたコンテンツアイテムを識別する情報が、コンテンツ推奨システム4220からユーザのユーザクライアントデバイス4210に通信され得る。次いで、推奨コンテンツアイテムに関する情報が、ユーザクライアントデバイスを介してユーザに出力され得る。たとえば、推奨に関する情報は、ユーザクライアントデバイス上に表示されるGUI 4215を介して、またはユーザクライアントデバイスによって実行されるアプリケーション4215を介して出力され得る。たとえば、ユーザ入力が、ユーザデバイスによって実行されるブラウザによって表示されるウェブページを介してユーザによって入力された検索クエリに対応していた場合、推奨に関する情報は、そのウェブページを介して、またはブラウザによって表示される追加のウェブページを介して、ユーザに出力されてもよい。特定の実施形態では、推奨された各コンテンツアイテムごとに、ユーザに出力された情報は、コンテンツアイテムを識別する情報(たとえば、テキスト情報、画像のサムネイル等)、およびコンテンツアイテムにアクセスするための情報を含み得る。たとえば、コンテンツアイテムにアクセスする情報は、リンク(たとえば、URL)の形態であってもよく、ユーザによって(たとえば、マウスクリック動作によって)選択されると、対応するコンテンツアイテムにアクセスされて、ユーザクライアントデバイスを介してユーザに対して表示される。いくつかの実施形態では、コンテンツアイテムを識別する情報とコンテンツアイテムにアクセスするための情報とが組合わされてもよい(たとえば、画像コンテンツアイテムを識別するとともに画像自体にアクセスするためにユーザによって選択され得る推奨された画像のサムネイル表現)。
【0172】
さまざまな実施形態において、コンテンツ推奨システム4220は、その関連付けられたハードウェア/ソフトウェアコンポーネント4221~4225およびサービスを含んでおり、フロントエンドクライアントデバイス4210から離れた所にあるバックエンドサービスとして実装されてもよい。クライアントデバイス4210とコンテンツ推奨システム4220との間の対話は、インターネットベースのウェブブラウジングセッションまたはクライアント・サーバアプリケーションセッションであってもよく、これらセッション中に、ユーザは、クライアントデバイス4210を介してユーザコンテンツ(たとえば、検索用語、オリジナルのオーサリング済みコンテンツなど)を入力し得るとともに、コンテンツ推奨システム4220からコンテンツアイテム推奨を受取り得る。付加的には、または代替的には、コンテンツ推奨システム4220および/またはコンテンツリポジトリ4230ならびに関係するサービスは、クライアントデバイス4210上で直接実行される専用ソフトウェアコンポーネントとして実装されてもよい。
【0173】
いくつかの実施形態では、図42に示すシステム4200は、クラウドベースの多層システムとして実装されてもよく、上位層ユーザデバイス4210は、リソースの基礎となるセット(たとえば、クラウドベース、SaaS、IaaS、PaaSなど)上に展開されて実行されるバックエンドアプリケーションサーバ上に常駐するコンテンツ推奨システム4220を介して、ネットワークベースのリソースおよびサービスへのアクセスを要求してこれを受取り得る。コンテンツ推奨システム4220に関して本明細書で説明する機能の一部または全ては、レプレゼンテーショナル・ステート・トランスファ(REST)サービスおよび/またはシンプルオブジェクトアクセスプロトコル(SOAP)ウェブサービスもしくはAPIを含むウェブサービス、および/または、ハイパーテキスト転送プロトコル(HTTP)もしくはHTTPセキュアプロトコルを介して公開されるウェブコンテンツによって実行され得るか、またはそれらを用いてアクセスされ得る。したがって、追加の詳細とともに示されるコンポーネントを不明瞭にしないために図42には示されていないが、コンピューティング環境4200は、追加のクライアントデバイス、1つ以
上のコンピュータネットワーク、1つ以上のファイアウォール、プロキシサーバ、ルータ、ゲートウェイ、ロードバランサ、および/または他の中間ネットワークデバイスを含み得ることで、クライアントデバイス4210とコンテンツ推奨システム4220とコンテンツリポジトリ4230との間の対話を容易にし得る。
【0174】
さまざまな実装例では、コンピューティング環境4200に示されるシステムは、専用サーバコンピュータ(デスクトップサーバ、UNIXサーバ、ミッドレンジサーバ、メインフレームコンピュータ、ラックマウントサーバなど)、サーバファーム、サーバクラスタ、分散サーバ、または、他の任意の適切な構成および/もしくは組合せのコンピューティングハードウェアを含む、1つ以上のコンピューティングシステムおよび/またはネットワークを用いて実装され得る。たとえば、コンテンツ推奨システム4220は、オペレーティングシステムおよび/またはハイパーテキストトランスポートプロトコル(HTTP)サーバ、ファイル・トランスポート・サービス(File Transport Service:FTP)サーバ、共通ゲートウェイ・インターフェイス(Common Gateway Interface:CGI)サーバ、Java(登録商標)サーバ、データベースサーバ、および他のコンピューティングシステムを含むさまざまな追加のサーバアプリケーションおよび/または中間層アプリケーションを実行し得る。コンテンツ推奨システム4220内のコンポーネントまたはサブシステムのいずれかまたは全ては、少なくとも1つのメモリ、1つ以上の処理ユニット(たとえば、プロセッサ)および/またはストレージを含み得る。コンテンツ推奨システム4220内のサブシステムおよび/またはモジュールは、ハードウェア、ハードウェア上で実行されるソフトウェア(たとえば、プロセッサによって実行可能なプログラムコードもしくは命令)、またはそれらの組合わせで実装され得る。いくつかの例では、ソフトウェアは、メモリ(たとえば、非一時的なコンピュータ可読媒体)、メモリデバイス、または他の何らかの物理メモリに格納され得るとともに、1つ以上の処理ユニット(たとえば、1つ以上のプロセッサ、1つ以上のプロセッサコア、1つ以上のグラフィックスプロセスユニット(Graphics Process Unit:GPU)など)によって実行され得る。処理ユ
ニットのコンピュータ実行可能命令またはファームウェア実装例は、本明細書で説明するさまざまな動作、機能、方法および/またはプロセスを実行し得る任意の適切なプログラミング言語で書かれたコンピュータ実行可能命令または機械実行可能命令を含み得る。メモリは、処理ユニット上でロード可能かつ実行可能なプログラム命令、およびこれらのプログラムの実行中に生成されるデータを格納し得る。メモリは揮発性(ランダムアクセスメモリ(RAM)など)および/または不揮発性(読取り専用メモリ(ROM)など)、フラッシュメモリ等)であり得る。メモリは、コンピュータ可読記憶媒体などの任意のタイプの永続性記憶装置を用いて実装され得る。いくつかの例では、コンピュータ可読記憶媒体は、悪意あるコードを含む電子通信からコンピュータを保護するように構成され得る。
【0175】
図43は、特定の実施形態に従った、ユーザコンテンツに関連するコンテンツアイテムを識別してランク付けするためのコンテンツ推奨システムによって実行される処理を示す簡略化されたフローチャート4300を示す。図43に示される処理は、それぞれのシステムの1つ以上の処理ユニット(たとえば、プロセッサ、コア)によって実行されるソフトウェア(たとえば、コード、命令、プログラム)、ハードウェア、またはそれらの組合わせで実装され得る。ソフトウェアは、非一時的記憶媒体上に(たとえば、メモリデバイス上に)格納され得る。図43に提示される以下に記載の方法は、例示的であるとともに非限定的であることを意図している。図43は、特定のシーケンスまたは順序で行なわれるさまざまな処理ステップを示すが、これは限定を意図するものではない。いくつかの代替的な実施形態では、処理は、何らかの異なる順序で実行されてもよく、または、いくつかのステップが並行して実行されてもよい。図43に示される処理は、コンテンツ推奨システム4220などの、図42に示される1つ以上のシステムによって実行され得る。一例として、図42に示す実施形態の場合、タグ識別子4221によって4302および4
304における処理を実行し、コンテンツアイテムランク付け部4224によって4306から4316における処理を実行し、推奨選択器4225によって4318および4320における処理を実行してもよい。しかしながら、図43に関連付けて説明する技術および機能は、必ずしも図42に示される特定のコンピューティングインフラストラクチャ内の実装例だけに限定されるわけではなく、本明細書で説明する他の互換性のあるコンピューティングインフラストラクチャを用いて実装され得ることを理解されたい。
【0176】
4302において、コンテンツ推奨システム4220は、1つ以上のユーザまたはクライアントシステム4210から入力コンテンツを受取り得る。図42を参照して上述したように、入力コンテンツは、コンテンツ推奨システム4220によって提供されるグラフィカルユーザインターフェイス4215(たとえば、ウェブベースのGUI)を介して、クライアントデバイス4210から受取られてもよい。他の例では、入力コンテンツは、クライアントデバイス4210にインストールされたフロントエンドアプリケーション(たとえば、モバイルアプリケーション)によって送信されるデータに基づいて、コンテンツ推奨システム4220内で実行するウェブサーバまたはバックエンドサービスによって受取られてもよい。
【0177】
いくつかの実施形態では、ステップ4302で受取った入力コンテンツは、ユーザによって検索エンジンユーザインターフェイスに入力される検索用語または句のセットに対応し得る。他の実施形態では、入力コンテンツは、ユーザによってオーサリングされて専用ユーザインターフェイスに入力されるオリジナルのコンテンツに対応し得る。たとえば、新しいオリジナルコンテンツは、オンライン記事、広報、電子メール、ブログ投稿などを含み得るとともに、このようなコンテンツは、ソフトウェアベースのワードプロセッサツール、電子メールクライアントアプリケーション、ウェブ開発ツールなどを介してユーザによって入力され得る。さらに他の例では、ステップ4302で受取られた入力コンテンツは、画像、グラフィック、音声入力、または、クライアントデバイス4310を介してユーザによって生成もしくは選択される他の任意のテキストおよび/もしくはマルチメディアコンテンツであってもよい。
【0178】
図44を簡単に参照すると、ユーザがオリジナルのオーサリング済みコンテンツを入力することを可能にするユーザインターフェイス画面4410を含む例示的なユーザインターフェイス4400が示されている。この例では、ユーザインターフェイス画面4410は「コンテンツオーサリングユーザインターフェイス」と総称されるが、さまざまな実施形態では、ユーザインターフェイス4410は、ワードプロセッサ、記事設計者またはブログ投稿作成者、電子メールクライアントアプリケーションなどのためのインターフェイスに対応し得る。この例では、ユーザインターフェイス4410は、ユーザがオーサリング済みコンテンツのタイトルまたは主題を入力し得る第1のテキストボックス4411と、ユーザが入力コンテンツについての全テキスト(たとえば、記事、電子メール本文、文書など)を入力し得る第2のテキストボックス4412とを含む。加えて、ユーザインターフェイス4410は、新たにオーサリングされたコンテンツに組込まれ得る関連コンテンツアイテム(たとえば、画像、関係する記事など)をユーザが検索し始めることを可能にする選択可能ボタン4413を含む。場合によっては、ボタン4413または同様のユーザインターフェイスコンポーネントを選択することで、ユーザインターフェイス4410を介して受取ったユーザコンテンツ(たとえば、4411および/または4412において入力されたユーザコンテンツ)を最初に分析してコンテンツ推奨システム4220に送信することによって、図43に示されるプロセスを開始させてもよい。他の実施形態では、バックグランドプロセスをフロントエンドユーザインターフェイス内で連続的(または周期的)に実行して、ユーザから受取った新しいテキスト入力(たとえば、4411および/または4412においてユーザによって入力されたコンテンツ)を連続的に(または周期的に)分析し得るとともに、テキスト更新に応答して図43のプロセスを再び開始
し得ることにより、コンテンツアイテム推奨がリアルタイムで連続的または周期的に更新され得ることとなる。
【0179】
再び図43を参照すると、4304において、コンテンツ推奨システム4220は、ステップ4302において受取った入力コンテンツについての1つ以上のタグを判定する。いくつかの実施形態では、4302において受取った入力コンテンツには既にタグが関連付けられているかまたは当該入力コンテンツにタグが埋込まれている可能性があり、タグ識別子4221は、入力コンテンツに関連付けられた予め定められたタグのセットを識別および抽出し得る。ステップ4302において受取った入力コンテンツが検索用語に対応している場合、タグ識別子4221は、単に、ユーザによって入力された検索用語を(たとえば、冠詞、結合語、前置詞、修飾語などの特定の語を除いて)タグとして用いてもよい。元からオーサリングされていたテキストコンテンツの場合、またはコンテンツ推奨システム4220が受取った他の任意のタグ無しの入力コンテンツの場合、タグ識別子4221は、4302において受取った入力コンテンツのさまざまな特徴を分析し、この分析に基づいて、受取った入力コンテンツに関連付けられるべき1つ以上のタグを判定するように構成され得る。前述したように、タグ識別子4221は、多種多様な技術を用いて、4302において受取った入力コンテンツに関連付けられるべき1つ以上のタグを判定し得る。
【0180】
図44に示す例示的なユーザインターフェイス4400を再び参照すると、この例では、4302において受取った入力コンテンツは、主題/トピックボックス4411においてユーザによって入力されたテキスト、すなわち、「Is Coffee Healthier For You Than
Tea?(貴方にとってコーヒーは茶よりも健康に良いものですか?)」と、ボックス4412において入力されたテキストとに対応し得る。4411における主題コンテンツの分析および4411においてオーサリングされた記事の本文と、提供され得る任意の追加の入力コンテンツとに基づいて、コンテンツ推奨システム4220は、4304において、タグ「コーヒー(coffee)」、「茶(tea)」および「人(human)」がユーザコンテンツに関連付けられるべきであると判定し得る。
【0181】
4306において、4302で入力コンテンツについて判定されたタグに基づいて、コンテンツ推奨システム4220は、タグ一致技術を用いて、推奨に利用可能なコンテンツアイテムの集まりから一致するコンテンツアイテムのセットを識別する。この場合、コンテンツアイテムは、当該コンテンツアイテムに関連付けられた少なくとも1つのタグが4304において入力コンテンツについて判定されたタグと一致する場合、4306において一致していると見なされて識別される。4306において識別されたコンテンツアイテムのセットは、コンテンツアイテムの一致セットと称されてもよく、4302で受取った入力コンテンツに応答してユーザに推奨される候補であるコンテンツアイテムを含む。さまざまな実施形態において、ステムミングおよび同義語検索/比較などのデータ処理技術は、一致するタグを識別するために、4306における一致プロセスの一部として用いられてもよい。
【0182】
たとえば、図42に示す実施形態では、推奨に利用可能なコンテンツアイテムの集まりを、それらの関連付けられたタグ情報(たとえば、コンテンツアイテムに関連付けられたタグおよび関連付けられたタグ値)と共に、コンテンツ/タグ情報データストア4223に格納し得る。4306における処理の一部として、コンテンツ推奨システム4220は、4304において判定された1つ以上のタグを、推奨に利用可能なコンテンツアイテムに関連付けられたタグと比較し、それらのコンテンツアイテムを、4304において識別されたタグと一致する少なくとも1つの関連付けられたタグを有する集まりから識別し得る。
【0183】
図44の例を続けて参照して、4302において受取られたユーザ入力コンテンツについて、4304においてタグ「コーヒー」、「人」、および「茶」が判定されたと想定すると、図45の例示的な表4500は、推奨を行なうのに利用可能なコンテンツアイテムの集まりからコンテンツ推奨システム4220によって(たとえば、コンテンツアイテムランク付け部4224によって)識別されたコンテンツアイテムの一致セットを示す。表4500から分かるように、8つの異なる画像コンテンツアイテムは、タグ「コーヒー」、「人」または「茶」のうち少なくとも1つに一致する少なくとも1つの関連付けられたタグを有するものとして識別されていた。この例に示されるように、一致した各画像コンテンツアイテムは、画像識別子4501を用いて識別される。図45に提供される画像の説明4502は、一致した画像の内容の説明であり、実際の画像を示す必要がないように図45において提供されている。一致した画像の各々は1つ以上の関連付けられたタグ4503を有し、タグ値4504は各タグに関連付けられている。表4500の例において、タグ値は、予め定められた範囲(たとえば0.0~1.0)の浮動小数点値であり、各コンテンツアイテムごとのタグ値の合計は同じ総数(たとえば1.0)となる。このような実施形態は付加的な技術的利点を提供するものであって、たとえば、タグカウントスコアとTVBSとの合計が均一であることで、より多くの関連付けられたタグを有するコンテンツアイテムが、より多くの関連付けられたタグに基づいて、意図的に高くランク付けされないこと、または過剰に推奨されないことを確実にし得る。さらに、以下で説明するように、0.0から1.0の範囲のタグ値を有することにより、(たとえば、以下で説明する使用事例において)それらが乗算されたとき、結果として得られる値は、コンテンツアイテムが特定のグループまたはバケット内でランク付けされることを可能にする一方で、1つのグループ内で最も高くランク付けされたコンテンツアイテムが、次により高いグループ内で最も低くランク付けされたコンテンツアイテムよりも高くランク付けされないことを確実にする。
【0184】
図45から、或るコンテンツアイテム(この例では、画像)に関連付けられた少なくとも1つのタグが入力コンテンツに関連付けられたタグと一致する場合、当該コンテンツアイテムが一致していると見なされることが分かる。一致したコンテンツアイテムには、入力コンテンツに関連付けられたタグのうちの1つ以上に一致するタグが関連付けられてもよい。一致したコンテンツアイテムにはまた、入力コンテンツ(たとえば、Image_1、Image_3など)についてのタグとは異なる他のタグが関連付けられていてもよい。
【0185】
4308において、入力コンテンツについて判定されたタグと一致するコンテンツアイテムに関連付けられたタグの数に基づいて、4306で識別された一致するコンテンツアイテムごとにタグカウントスコア(第1のスコア)が計算される。いくつかのシナリオでは、コンテンツアイテムの一致するタグの各々に1の値を与え、このため、或るコンテンツアイテムについて4308で計算されるタグカウントスコアは、入力コンテンツに関連付けられたタグと一致するコンテンツアイテムのタグの数に等しくなる。図45で識別される一致画像の例の場合、図46の表4600では、図45で(および図46でも)識別される一致画像の各々についてそのタグカウントスコア4602を識別する。たとえば、Image_1についてのタグカウントスコアは、当該画像に関連付けられた1つのタグ(「人
」)が入力コンテンツに関連付けられたタグと一致したので、「1」となる。別の例として、Image_2についてのタグカウントスコアは、画像に関連付けられた2つのタグ(「コ
ーヒー」および「人」)が入力コンテンツに関連付けられたタグと一致したので、「2」となる。さらに別の例として、Image_8についてのタグカウントスコアは、画像に関連付
けられた1つのタグ(「コーヒー」)が入力コンテンツに関連付けられたタグと一致したので、「1」となる。
【0186】
4310において、一致するコンテンツアイテムは、4308においてコンテンツアイテムについて計算されたタグカウントスコアに基づいてグループまたはバケットにグルー
プ化(バケット化)される。特定の実施形態では、グループ(またはバケット)は、同じタグカウントスコアを有する全てのコンテンツアイテムを含む。コンテンツアイテムの一致タグの各々に1の値が与えられるシナリオでは、各グループまたは各バケットに含まれるコンテンツアイテムは同数の一致したタグを有する。4310における処理は、任意であってもよく、特定の実施形態では実行されない可能性もある。
【0187】
図46に示される例を続けて参照すると、8つの一致画像は、タグカウントスコアが1であるコンテンツアイテムを含む第1のグループまたはバケットと、タグカウントスコアが2である第2のグループまたはバケットとを含む2つのグループまたはバケットにグループ化され得る。第1のグループは、画像{Image_1, Image_3, Image_6, Image_8}を含むだろう。第2のグループは、画像{Image_2, Image_4, Image_5, Image_7}を含むだろう。なお、本例では、一致した画像はいずれも、入力コンテンツに関連付けられた3つのタグ(「コーヒー」、「人」、「茶」)の全てに一致しなかった。
【0188】
4312において、4310で識別された各グループごとに、タグ値ベースのスコア(第2のスコア)が、そのグループ内の候補コンテンツアイテムの各々について算出される。いくつかの実施形態では、特定のコンテンツアイテムについてのタグ値ベースのスコア(TVBS)は、そのコンテンツアイテムについての一致タグに関連付けられたタグ値に基づいているとともに当該タグ値を用いて算出される。
【0189】
特定の実施形態では、コンテンツアイテムについてのTVBSは、入力コンテンツに関連付けられたタグと一致したコンテンツアイテムのタグに関連付けられたタグ値を乗算することによって算出される。たとえば、以下のとおりである。
【0190】
図46におけるImage_1についてのTVBS=0.93、
図46におけるImage_2についてのTVBS=0.5*0.5=0.25、
図46におけるImage_3についてのTVBS=0.65、
図46におけるImage_4についてのTVBS=0.35*0.60=0.21、など。
【0191】
表4600は、上述の技術を用いてさまざまな一致画像について算出されたTVBS4603を示す。
【0192】
特定の実施形態では、コンテンツアイテムについてのタグ値ベースのスコアを計算するためにナイーブベイズ手法を用いる。たとえば、入力コンテンツについて2つのタグtag1およびtag2が判定されると想定すると、或る画像コンテンツアイテムについてのタグ値ベースのスコア(TVBS)は、以下のように表わすことができる。
【0193】
ImageiについてのTVBS=P(Imagei|tag1, tag2)=タグtag1およびtag2とした場合のImageiの確率
これを「n」のタグに関して拡張すると、以下のとおりとなる。
【0194】
P(Imagei|tag1, tag2 …, tagn)=(タグtag1およびtag2および…tagn)とした場合のImageiの確率
タグtag1,tag2…,tagnが互いに依存していないと想定する。
【0195】
ImageiについてのTVBS = TVBSi = P(Imagei|tag1,tag2 …, tagn)
=P(Imagei|tag1)*P(Imagei|tag2)*…*P(Imagen|tagn)
式1
ここで、単純ナイーブベイズによれば以下の通りとなる(式2)。
【0196】
【数3】
【0197】
この場合、
P(Imagei|tagt)=Imageiについてのtagtの確率
P(Imagei)=全ての画像を固有のものとみなし、この項を破棄または無視することができる
P(tagt)=コンテンツアイテムの集まりにおけるタグの頻度(すなわち、tagtでタグ付けされるとともに推奨に利用可能であるコンテンツアイテムの集まりにおけるコンテンツアイテム(たとえば、画像)の数)。この項が分母にあるので、コンテンツアイテムの集まりにタグが存在する頻度が低いほど(すなわち、この関連付けられたタグを有するコンテンツアイテムの数が少ないほど)、当該タグを有する画像についてのTVBSスコアが高くなるだろう。
【0198】
上記の式は、拡張すると以下の式3となる。
【0199】
【数4】
【0200】
式3における分子は、確率が同程度である場合により高いスコアをもたらすであろう確率を乗算したものである(複数の画像について同じタグが一致したとすると、分母は同じままであるだろう)。
【0201】
以下の例は、コンテンツアイテムについてのTVBSを算出するための式3の適用例を示す。入力コンテンツについて判定されたタグが「人」および「コーヒー」であると想定する。さらに、推奨に利用可能なコンテンツアイテム(画像)の集まりが、以下のタグおよびタグ値を有する3つの画像を含むと想定する。
【0202】
画像A:(「人」,0.5),(「コーヒー」,0.5)
画像B:(「人」,0.1),(「コーヒー」,0.9)
画像C:(「人」,0.8),(「コーヒー」,0.2)
画像Aの場合:
P(human|image)=0.5およびP(coffee|image)=0.5
式3を適用すると、以下のとおりである。
【0203】
【数5】
【0204】
この場合、「Frequency(human)」は、コンテンツアイテムの集まりにおける、推奨に利用可能であるとともに「人(human)」タグが関連付けられているコンテンツアイテム
の数であり、「Frequency(coffee)」は、コンテンツアイテムの集まりにおける、推奨
に利用可能であるとともに「コーヒー(coffee)」タグが関連付けられているコンテンツアイテムの数である。
【0205】
【数6】
【0206】
画像AについてのTVBS=0.028
同様の技術を用いと、以下のとおりである。
【0207】
画像BについてのTVBS=(0.1/3)*(0.9/3)=0.01
画像CについてのTVBS=(0.8/3)*(0.2/3)=0.018
この例から分かるように、頻度が同じであれば、確率が同程度である場合にはTVBSはより高くなる(複数の画像について同じタグが一致したとすると、分母は同じままであるだろう)。
【0208】
式3の拡張例によれば、コンテンツアイテムの集まりのうち特定の関連付けられたタグを有するコンテンツアイテムの頻度は、TVBSを算出するために考慮される(このため、以下に記載するように、総ランク付けスコアにも影響を与える)。特定の関連付けられたタグを有するコンテンツアイテムの数が少ない(すなわち、頻度が低い)ほど、その特定のタグを有する画像についてのTVBSスコアは高くなるだろう。いくつかの実施形態では、これは、タグの頻度が「まれ」であるかまたはより低いこのようなコンテンツアイテムが、より高くランク付けされてタグの頻繁がより高いコンテンツアイテムよりも高くランク付けされる可能性を高め、これにより、これらのコンテンツアイテムをユーザに推奨されるコンテンツアイテムのリストに含める可能性を高めるために、望ましい。したがって、或るコンテンツアイテムについてのTVBSの値は、コンテンツアイテムの集まりに現れる特定のタグの発生頻度(すなわち、当該集まりにおける、関連付けられた特定のタグを有するコンテンツアイテムの数)に反比例する。
【0209】
4314では、総ランク付けスコアは、4308においてコンテンツアイテムについて算出されたタグカウントスコアと4312においてコンテンツアイテムについて算出されたTVBSとに基づいて、4306において識別された一致するコンテンツアイテムごとに算出される。いくつかの実施形態では、候補コンテンツアイテムについての総ランク付
けスコアは、(4308において算出される)タグカウントスコアと、コンテンツアイテムについて算出される(4312において算出される)TVBSとの和として算出され得る。すなわち、画像コンテンツアイテムImageiの場合、以下のとおりである。
【0210】
ランク付けスコア(Imagei)= TagsCountScorei + TVBSi 式4
図46に示される例の場合、列4604は、一致画像ごとに(列4602に示される)その画像についてのタグカウントスコアと(列4603に示される)その画像についてのTVBSとを加算することによって、一致画像ごとに計算される総ランク付けスコアを示す。たとえば、算出した総ランク付けスコアは以下のとおりである。
【0211】
Image_1: 1 + 0.93 = 1.93
Image_2: 2 + 0.25 = 2.25
Image_3: 1 + 0.65 = 1.65
などである。
【0212】
ステップ4316では、コンテンツ推奨システム4220(たとえば、コンテンツ推奨システム4220におけるコンテンツアイテムランク付け部4224)は、4314においてコンテンツアイテムについて計算された総ランク付けスコアに基づいて、一致するコンテンツアイテムのランク付けリストを生成する。このため、図44図46の例を続けて参照すると、一致する画像について計算された(列4604における)総ランク付けスコアに基づいて、画像(Images)が、(1)Image_2、(2)Image_5、(3)Image_4、
(4)Image_7、(5)Image_6、(6)Image_1、(7)Image_8、(8)Image_3、のよ
うに最高ランクから最低ランクにまでランク付けされ得る。
【0213】
タグについてのタグ値が0.0から1.0の範囲内にある特定の実施形態では、(TagCountScore+TVBS)アプローチを用いた総ランク付けスコアの計算は、入力コンテン
ツに関連付けられたタグと一致したより多くの関連付けられたタグを有するコンテンツアイテムが、一致するタグの数がより少ないコンテンツアイテムよりも高くランク付けされることを確実にする。たとえば、図46の例では、(入力コンテンツに関連付けられたタグが一致した画像に関連付けられた2つのタグに対応する)2というタグカウントスコア付きの画像は、常に総ランク付けスコアを有することとなり、このため、(入力コンテンツに関連付けられたタグが一致した画像に関連付けられた2つのタグに対応する)1というタグカウントスコア付きの画像よりも高くランク付けされることとなる。これは、タグ値が0から1の範囲であると想定すると、一致するタグに関連付けられたタグ値を乗算することによって計算される画像についてのTVBSが1を超える可能性がないためである。このことはまた、第1のタグカウントスコアに対応するコンテンツアイテムの第1のグループまたはバケットおよび第2のタグカウントスコアに対応するコンテンツアイテムの第2のグループまたはバケットに関して、第1のタグカウントスコアが第2のタグカウントスコアよりも高い場合、第1のグループ内の各コンテンツアイテムが第2のグループ内のコンテンツアイテムよりも(総ランク付けスコアがより高いために)高くランク付けされるであろうことを示唆している。したがって、入力コンテンツについて3つのタグ(「コーヒー」、「人」および「茶」)が判定された例では、入力コンテンツについてのタグに対して3つのコンテンツタグ一致を有するコンテンツアイテムは、常に、2つの一致するコンテンツタグを有するコンテンツアイテムよりも高いランクとなり、当該2つの一致するコンテンツタグを有するコンテンツアイテムの各々は、常に、1つの一致するコンテンツタグを有するコンテンツアイテよりも高いランクとなる、等である。各グループまたはバケット内では、コンテンツアイテムは、それらのTVBSに基づいてランク付けされてもよく、これは、一致するコンテンツタグについてのより高いパラメータおよびより等しいパラメータの両方にとって有利となる。しかしながら、他の実施形態では、さまざまなコンテンツアイテムランク付けの優先度およびポリシーを実現するために、タグカウン
トスコア、TVBSおよび総ランク付けスコアを算出するためにさまざまな式または論理が用いられ得ることを理解されたい。
【0214】
4318において、コンテンツ推奨システム4220(たとえば、推奨セレクタ4225)は、4316で生成されたランク付けリストを用いて、ユーザに推奨されるべき1つ以上のコンテンツアイテムを選択してもよい。特定のシナリオでは、ランク付けリスト内の全てのコンテンツアイテムを推奨のために選択し得る。いくつかの他のシナリオでは、ランク付けされたコンテンツアイテムのサブセットが推奨のために選択されてもよく、この場合、サブセットはランク付けリスト内のコンテンツアイテムを全て含むわけではなく、サブセットに含まれる1つ以上のコンテンツアイテムがランク付けリスト内のコンテンツアイテムのランク付けに基づいて選択される。たとえば、推奨セレクタ4225は、推奨のために、ランク付けリストから上位「X」位にランク付けされた(たとえば、上位5まで、上位10までなどの)コンテンツアイテムを選択し得る。この場合、Xは、リスト中のランク付けされたアイテムの数以下である何らかの整数である。特定の実施形態では、推奨セレクタ4225は、ランク付けリスト内のコンテンツアイテムに関連付けられた総ランク付けスコアに基づいて、ユーザに推奨されるべきサブセットに含まれるようにコンテンツアイテムを選択し得る。たとえば、ユーザ設定可能な閾値スコアを上回るスコアが関連付けられているコンテンツアイテムのみがユーザに推奨されるように選択されてもよい。
【0215】
4320において、コンテンツ推奨システム4220は、4318において選択されたコンテンツアイテムに関する情報をユーザデバイスに通信し得る。この情報は、ユーザに推奨するべきコンテンツアイテムに関する情報を含んでいるので推奨情報と称されてもよい。4320において通信される推奨情報はまた、ランク付け情報(たとえば、選択されたコンテンツアイテムに関連付けられた総ランク付けスコア)を含み得る。この情報は、推奨されたコンテンツアイテムに関する情報(たとえば、注文)がユーザデバイスを介してユーザにどのように表示されるかを判定するために、ユーザデバイス上で用いられ得る。いくつかの実施形態では、推奨セレクタ4225は、推奨情報の一部として、コンテンツアイテム自体、またはコンテンツアイテムを識別する特定の情報(たとえば、コンテンツアイテム識別子および記述、サムネイル画像、ダウンロードのためのネットワーク経路またはリンクなど)のいずれかをクライアントデバイス4310に送信し得る。ステップ4302において、このクライアントデバイス4310から入力コンテンツが受取られた。
【0216】
次いで、選択された推奨に関する情報がユーザデバイスを介してユーザに出力され得る。たとえば、推奨に関する情報は、ユーザクライアントデバイス上に表示されるGUI 4215を介して、またはユーザクライアントデバイスによって実行されるアプリケーション4215を介して、出力され得る。たとえば、ユーザ入力が、ユーザデバイスによって実行されるブラウザによって表示されるウェブページを介してユーザによって入力された検索クエリに対応している場合、推奨に関する情報は、検索の結果を示すウェブページまたはブラウザによって表示される追加のウェブページを介してユーザに出力されてもよい。特定の実施形態では、推奨されたコンテンツアイテムごとに、ユーザに出力された情報は、コンテンツアイテムを識別する情報(たとえば、テキスト情報、画像のサムネイルなど)およびコンテンツアイテムにアクセスするための情報を含み得る。たとえば、コンテンツアイテムにアクセスする情報は、リンク(たとえば、URL)の形態であってもよく、リンクがユーザによって(たとえば、マウスクリック動作によって)選択されると、対応するコンテンツアイテムにアクセスされて、ユーザクライアントデバイスを介してユーザに対して表示される。いくつかの実施形態では、コンテンツアイテムを識別する情報およびコンテンツアイテムにアクセスするための情報は組合わされてもよい(たとえば、画像コンテンツアイテムを識別するとともに画像自体にアクセスするためにユーザによっ
て選択され得る推奨画像のサムネイル表現)。
【0217】
たとえば、図47を参照すると、推奨された画像に関係する情報を表示する図44のユーザインターフェイス画面4400の更新に対応する例示的なユーザインターフェイス4700が示される。この例では、タイトル/主題4711、本文4712および/または他の任意の入力コンテンツに基づいて、コンテンツ推奨システム4220は、画像のランク付けリストから、ユーザに推奨するべく上位にランク付けされた4つのコンテンツアイテム画像を選択した。これらの上位4つのランク付けされた画像に関係する情報は、コンテンツアイテム推奨を示すためにユーザインターフェイス4700の専用部分4714内にランク順に表示される。特定の実施形態では、推奨された画像のサムネイル表現が4714において表示され得る。ユーザインターフェイス4700は、ドラッグアンドドロップ機能または他の技術をサポートして、ユーザが、4714に表示された提案された画像の1つ以上を、オーサリング済みコンテンツの本文4712に組込むことを可能にする。
【0218】
図43に示される上述の処理は限定することを意図したものではない。さまざまな変形例が異なる実施形態において提供されてもよい。たとえば、図43に示される上述の実施形態の場合、4312、4314および4316における処理が、4306で識別される全ての一致するコンテンツアイテムに対して実行される。特定の変形例では、4308において算出されるタグカウントスコアは、その後の処理から特定のコンテンツアイテムをフィルタリング除去するために用いられてもよい。たとえば、コンテンツアイテムが異なるタグカウントスコアを有する場合、最低のタグカウントスコア(または他の何らかの閾値)を有するコンテンツアイテムは、フローチャート中のその後の処理からフィルタリング除去され得る。他のいくつかの実施形態では、最高のタグカウントスコアを有するコンテンツアイテムのみがその後の処理のために選択され、その後の処理から他のコンテンツアイテムがフィルタリング除去され得る。たとえば、コンテンツアイテムランク付け部4224は、(ステップ4304で判定されるとおり)最高のタグスコアグループについてのTVBSを算出し得るのみであるか、または、最高のタグカウントスコアグループから最低のタグカウントスコアグループまで順々にTVBSを算出してもよく、その間、算出プロセスは、候補コンテンツアイテムの閾値数または閾値タグカウントスコアに達すると停止する可能性もある。このようなフィルタリングにより、処理すべきコンテンツアイテムの数を減らすとともに、より少ない処理リソース(たとえば、プロセッサ、メモリ、ネットワークリソース)を用いて全体的な推奨動作をより高速でより効率的に実行させ得る。
【0219】
図43に示された上述の方法では、4304において入力コンテンツに関連付けられるかまたは入力コンテンツについて判定される各タグは、コンテンツ推奨システム4220によって実行されるランク付けに対して等しい重みが与えられる。この仮定に基づいて、一致するコンテンツアイテムごとのタグスコアが、入力コンテンツのタグに一致するそのコンテンツタグの数として判定された。したがって、或る一致するコンテンツアイテムに関連付けられた一致するコンテンツタグの各々は、タグカウントスコアの判定に対して等しく値付け/重み付けされた。しかしながら、他の実施形態では、入力コンテンツに関連付けられたタグに異なる重みを与えてもよい。たとえば、入力コンテンツについて判定された2つのタグの場合、一方のタグは、他方のタグよりも高い重みが与えられることで、入力コンテンツについて「より重要」と示されてもよい。たとえば、図44図47に示される上述の例の場合、タグ(「人」、「コーヒー」、「茶」)が入力コンテンツについて判定されており、これら3つのタグに等しい重要度を与えるのではなく、これらのタグは、人=1、コーヒー=2、および、茶=4、のように重み付けされる。この重み付けは、入力コンテンツに対するタグの相対的な重要度を示し得る。たとえば、「茶」は「コーヒー」よりも重く重み付けされており、「コーヒー」は「人」よりも重く重み付けされている。特定の実施形態では、各コンテンツアイテムごとにタグカウントスコアを計算する
ために用いられる論理は、入力コンテンツに関してタグに割当てられた異なる重みを考慮するように修正されてもよい。このような1つの修正論理に従うと、コンテンツアイテムの一致するタグの各々の寄与分には、入力コンテンツに関して同じタグに関連付けられた重みが掛けられる。たとえば、入力コンテンツについての(人=1、コーヒー=2、および茶=4)の重み付けを用いると、図45の一致画像に関するタグカウントスコアは以下のとおりとなるだろう。
【0220】
Image_1:
- TagCountScore(重み付けなし)=「人」タグ一致=1
- TagCountScore(重み付けあり)=「人」タグ一致=1*1=1
Image_2:
- TagCountScore(重み付けなし)=「コーヒー」および「人」タグ一致=1+1=

- TagCountScore(重み付けあり)=「コーヒー」および「人」タグ一致=2(1)
+1(1)=3
Image_3:
- TagCountScore(重み付けなし)=「tea」タグ一致=1
- TagCountScore(重み付けあり)=「tea」タグ一致=4(1)=4
Image_4:
- TagCountScore(重み付けなし)=「コーヒー」および「人」タグ一致=1+1=

- TagCountScore(重み付けあり)=「コーヒー」および「人」タグ一致=2(1)
+1(1)=3
Image_5:
- TagCountScore(重み付けなし)=「茶」および「人」タグ一致=1+1=2
- TagCountScore(重み付けあり)=「茶」および「人」タグ一致=4(1)+1(
1)=5
Image_6:
- TagCountScore(重み付けなし)=「コーヒー」タグ一致=1
- TagCountScore(重み付けあり)=「コーヒー」タグ一致=2(1)=2
Image_7:
- TagCountScore(重み付けなし)=「茶」および「人」タグ一致=1+1=2
- TagCountScore(重み付けあり)=「茶」および「人」タグ一致=4(1)+1(
1)=5
Image_8:
- TagCountScore(重み付けなし)=「コーヒー」タグ一致=1
- TagCountScore(重み付けあり)=「コーヒー」タグ一致=2(1)=2
異なるタグカウントスコアの結果として、4310において実行されるコンテンツアイテムのグループ化またはバケット化はさまざまに異なるだろう。したがって、「茶」タグおよび「人」タグの両方に一致するコンテンツタグを有するコンテンツアイテムはともにグループ化されるとともに5のタグスコアを割当てられ、「茶」について一致するコンテンツタグを1つしかもたないコンテンツアイテムはともにグループ化されるとともに4のタグスコアを割当てられ、さらに、「コーヒー」タグおよび「人」タグの両方に一致するコンテンツタグを有するコンテンツアイテムはともにグループ化されるとともに3のタグスコアを割当てられる、等である。したがって、このような実施形態では、候補コンテンツアイテムの総ランク付けは、コンテンツアイテムのタグがいくつ入力コンテンツのタグに一致したかによって影響されるだけでなく、コンテンツアイテムのどの特定のタグが入力コンテンツタグおよびそれらのタグに与えられる相対的重要度の重みに一致しているかによっても影響される。この例では、画像Image_5およびImage_7は、5という最高のタグカウントスコア(茶=4+人=1)に基づけば、最高ランクの総コンテンツアイテムとな
るだろう。
【0221】
特定の実施形態について説明してきたが、さまざまな変形例、変更例、代替構成例、および同等例が実現可能である。本開示に記載される実装例は、いくつかの特定のデータ処理環境内の動作に限定されず、複数のデータ処理環境内で自由に実施することができる。加えて、実装例を特定の一連のトランザクションおよびステップを用いて説明してきたが、これが限定を意図しているのではないことは当業者には明らかとなるはずである。いくつかのフローチャートは動作を逐次的プロセスとして説明しているが、これらの動作のうちの多くは並列または同時に実行できる。加えて、動作の順序は並べ替えられてもよい。プロセスは図に含まれない追加のステップを有することもある。上述の実装例の各種特徴および局面は、個別に用いられてもよく、または共に用いられてもよい。
【0222】
さらに、本開示に記載される実装例をハードウェアとソフトウェアとの特定の組合わせを用いて説明してきたが、ハードウェアとソフトウェアとの他の組合わせも可能であることが理解されるはずである。本明細書で説明するいくつかの実装例は、ハードウェアでのみ、またはソフトウェアでのみ、またはそれらの組み合わせを用いて実装されてもよい。本明細書に記載されたさまざまなプロセスは、同じプロセッサまたは任意の組み合わせの異なるプロセッサ上で実現できる。
【0223】
デバイス、システム、コンポーネントまたはモジュールが特定の動作または機能を実行するように構成されると記載されている場合、そのような構成は、たとえば、動作を実行するように電子回路を設計することにより、動作を実行するようにプログラミング可能な電子回路(マイクロプロセッサなど)をプログラミングすることにより、たとえば、コンピュータ命令もしくはコードを実行することなどにより、または、非一時的なメモリ媒体に格納されたコードもしくは命令またはその任意の組合わせを実行するようにプログラミングされたプロセッサもしくはコアを設計することにより、達成され得る。プロセスは、プロセス間通信のための従来の技術を含むがこれに限定されないさまざまな技術を用いて通信することができ、異なる対のプロセスは異なる技術を用いてもよく、同じ対のプロセスは異なる時間に異なる技術を用いてもよい。
【0224】
実施形態が十分に理解されるように本開示では特定の詳細事項を示している。しかしながら、実施形態はこれらの特定の詳細事項なしでも実施され得る。たとえば、周知の回路、プロセス、アルゴリズム、構造および技術は、実施形態が曖昧にならないようにするために不必要な詳細事項なしで示されている。本記載は例示的な実施形態のみを提供しており、他の実施形態の範囲、適用可能性、または構成を限定することを意図するものではない。むしろ、実施形態の上記説明は、各種実施形態を実現することを可能にする説明を当業者に提供するものである。各種変更は要素の機能および構成の範囲内で行なうことができる。
【0225】
したがって、明細書および添付の図面は、限定的な意味ではなく例示的なものとみなされるべきである。しかしながら、開示されているよりも広範な精神および範囲から逸脱することなく、追加、削減、削除、ならびに他の修正および変更がこれらになされ得ることは明らかであるだろう。このように、特定の実施形態を説明してきたが、これらは限定を意図するものではなく、さまざまな変更例および同等例は開示の範囲に含まれる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46
図47
【手続補正書】
【提出日】2023-11-01
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
コンテンツ推奨システムが、クライアントコンピューティングデバイスから入力コンテンツを受取るステップと、
前記コンテンツ推奨システムが、前記入力コンテンツについて関連付けられた1つ以上のタグのセットを判定するステップと、
前記入力コンテンツについての前記1つ以上のタグのセットに基づいて、前記コンテンツ推奨システムが、複数のコンテンツアイテムから、一致するコンテンツアイテムのセットを識別するステップとを含み、前記複数のコンテンツアイテムからのコンテンツアイテムは、当該コンテンツアイテムに関連付けられた少なくとも1つのタグが前記入力コンテンツについての前記1つ以上のタグ内のタグと一致する場合、前記一致するコンテンツアイテムのセットに含まれており、
前記一致するコンテンツアイテムのセット内の各コンテンツアイテムごとに、
(a)前記コンテンツ推奨システムが、前記コンテンツアイテムについての第1のスコアを算出し、前記第1のスコアは、前記入力コンテンツについての前記1つ以上のタグに一致する前記コンテンツアイテムに関連付けられたコンテンツタグの数に基づいており、
(b)前記コンテンツ推奨システムが、前記コンテンツアイテムについての第2のスコアを算出し、前記第2のスコアは、前記入力コンテンツについての前記1つ以上のタグと一致する前記コンテンツアイテムに関連付けられた1つ以上のタグに対応する1つ以上のタグ値に基づいており、
(c)前記コンテンツ推奨システムが、前記コンテンツアイテムについて算出された前記第1のスコアおよび前記第2のスコアに基づいて、前記コンテンツアイテムについて総アイテムランク付けスコアを算出し、前記方法はさらに、
前記コンテンツ推奨システムが、前記一致するコンテンツアイテムのセットの各々について算出された前記総アイテムランク付けスコアに基づいて、前記一致するコンテンツアイテムのセットからコンテンツアイテムのランク付けリストを生成するステップと、
前記コンテンツ推奨システムが、前記コンテンツアイテムのランク付けリストに基づいて、前記一致するコンテンツアイテムのセットから1つ以上のコンテンツアイテムを選択するステップと、
前記コンテンツ推奨システムが、前記一致するコンテンツアイテムから選択された前記1つ以上のコンテンツアイテムに関する推奨情報を、前記クライアントコンピューティングデバイスに通信するステップとを含み、前記推奨情報は、前記選択された1つ以上のコンテンツアイテムに関する情報が前記クライアントコンピューティングデバイスを用いて出力されることを可能にする、方法。
【請求項2】
重みが、前記入力コンテンツについての前記1つ以上のタグにおける少なくとも1つのタグに関連付けられ、
前記コンテンツアイテムについての前記第1のスコアを算出するステップは、
前記コンテンツアイテムに関連付けられたタグが前記入力コンテンツについての前記1つ以上のタグにおける前記少なくとも1つのタグと一致すると判定するステップと、
前記少なくとも1つのタグに関連付けられた前記重みを用いることによって、前記コンテンツアイテムについての前記第1のスコアを算出するステップとを含む、請求項1に記載の方法。
【請求項3】
前記コンテンツアイテムについての前記第2のスコアを算出するステップは、
前記入力コンテンツについての前記1つ以上のタグと一致するとともに前記コンテンツアイテムに関連付けられた1つ以上のコンテンツタグを識別するステップと、
前記コンテンツアイテムに関連付けられた前記1つ以上のコンテンツタグにおける各タグごとに、前記タグについてのタグ値を判定するステップと、
前記コンテンツアイテムに関連付けられた前記1つ以上のタグについて判定された前記1つ以上のタグ値を乗算することによって、前記コンテンツアイテムについての前記第2のスコアを計算するステップとを含む、請求項1または2に記載の方法。
【請求項4】
前記コンテンツアイテムについての前記第2のスコアを算出するステップは、前記入力コンテンツについての前記1つ以上のタグと一致するとともに前記コンテンツアイテムに関連付けられた1つ以上のタグに対応する前記1つ以上のタグ値に基づいて、ナイーブベイズ技術を用いるステップを含む、請求項1または2に記載の方法。
【請求項5】
前記コンテンツアイテムについての前記第2のスコアを算出するステップは、
前記入力コンテンツについての前記1つ以上のタグと一致するとともに前記コンテンツアイテムに関連付けられた前記1つ以上のタグにおける少なくとも第1のタグについて、前記複数のコンテンツアイテムのうち前記第1のタグに関連付けられたコンテンツアイテムの頻度を判定するステップと、
前記頻度を用いて、前記頻度に反比例する前記第2のスコアを算出するステップとを含む、請求項1または2に記載の方法。
【請求項6】
前記コンテンツアイテムについての前記総アイテムランク付けスコアを算出するステップは、前記コンテンツアイテムについて算出された前記第1のスコアと前記コンテンツアイテムについて算出された前記第2のスコアとを加算するステップを含む、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記複数のコンテンツアイテムにおける各コンテンツアイテムごとに、前記コンテンツアイテムに関連付けられるべき1つ以上のタグのセットと、各タグごとに前記タグについてのタグ値とを判定するステップをさらに含む、請求項1~6のいずれか1項に記載の方法。
【請求項8】
前記クライアントコンピューティングデバイスから受取った前記入力コンテンツは、前記クライアントコンピューティングデバイスのユーザによってオーサリングされるコンテンツ、または、検索エンジンへの入力として提供される1つ以上の検索用語、のうち少なくとも1つを含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記入力コンテンツに関連付けられた前記1つ以上のタグを判定するステップは、
前記入力コンテンツに対してキーワード抽出プロセスを実行するステップと、
前記キーワード抽出プロセスの出力に対してステミングプロセスを実行するステップと、
前記ステミングプロセスの出力に対して同義語検索プロセスを実行するステップとを含む、請求項1~8のいずれか1項に記載の方法。
【請求項10】
請求項1~9のいずれか1項に記載の方法をコンピューティングデバイスに実行させるためのプログラム。
【外国語明細書】