JP2015130165A - ハイパーグラフソルバーのためのグラフ入力の自動編集 - Google Patents

ハイパーグラフソルバーのためのグラフ入力の自動編集 Download PDF

Info

Publication number
JP2015130165A
JP2015130165A JP2014262065A JP2014262065A JP2015130165A JP 2015130165 A JP2015130165 A JP 2015130165A JP 2014262065 A JP2014262065 A JP 2014262065A JP 2014262065 A JP2014262065 A JP 2014262065A JP 2015130165 A JP2015130165 A JP 2015130165A
Authority
JP
Japan
Prior art keywords
data
product
customer
transaction
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014262065A
Other languages
English (en)
Other versions
JP6438295B2 (ja
Inventor
エリック・ホワン
Huang Eric
ロン・チョウ
Chou Ron
ダニエル・デイヴィス
Davies Daniel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Palo Alto Research Center Inc
Original Assignee
Palo Alto Research Center Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Palo Alto Research Center Inc filed Critical Palo Alto Research Center Inc
Publication of JP2015130165A publication Critical patent/JP2015130165A/ja
Application granted granted Critical
Publication of JP6438295B2 publication Critical patent/JP6438295B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】トランザクションデータをグラフアナリティクスアプリケーションへの入力のためのグラフ表現に変換することによって製品の推薦を生成するためのシステムを提供する。
【解決手段】システムは、トランザクションデータを記憶するためのトランザクションテーブルと、顧客データを記憶するための顧客テーブルと、製品データを記憶するための製品テーブルとを生成し、トポロジーおよびエッジ識別子情報を包含するテーブルと、エッジ属性情報を包含するテーブルとを生成し、顧客テーブルおよび/または製品テーブルおよび/またはエッジ属性情報を包含するテーブルを記述するデータを含むヘッダを生成し、1つ以上のヘッダとテーブルからのデータとを包含するファイルを生成する。その後、システムは、製品の推薦を生成するためにグラフアナリティクスアプリケーションに入力として1つ以上のファイルをサブミットする。
【選択図】図2

Description

本開示は、グラフアナリティクスに関する。より具体的には、この開示は、トランザクションデータをグラフアナリティクスアプリケーションへの入力のためのグラフ表現に変換することによって、効率的な協調フィルタリングの応用を容易にするための方法およびシステムに関する。
ハイパーグラフは、グラフデータへの極めて速いクエリを実行するハイパフォーマンスグラフアナリティクスエンジンである。グラフデータは、グラフによって容易に表現され得るデータである。グラフは、頂点を連結するエッジを有する頂点の集合である。ハイパーグラフは、入力が極めて固有のフォーマットであることを要求するが、整形動作は単一のマシンの典型的なメモリおよびディスク容量を超えるので、多くの実世界のグラフデータセットを整形することは簡単ではない。
1つのアプローチでは、スクリプトおよびUNIX(登録商標)ユーティリティを使用してデータの自動編集および整形が実行され得る。このアプローチは、入力および出力ファイルおよび中間計算が現代的なワークステーションと適合する場合、相対的に満足に機能する。しかしながら、入力グラフデータセットが数百ギガバイトオーダーである場合、要求される時間、ディスクスペース、およびメモリスペースゆえに、標準的なマシンではデータをソートすることさえできない。
本発明の一実施形態は、トランザクションデータをグラフアナリティクスアプリケーションへの入力のためのグラフ表現に変換することによって製品の推薦を生成するためのシステムを提供する。動作中、システムは、トランザクションデータを記憶するためのトランザクションテーブルと、顧客データを記憶するための顧客テーブルと、製品データを記憶するための製品テーブルとを生成する。システムは続いて、トランザクションテーブルからのデータを用いて、トポロジーおよびエッジ識別子情報を包含するテーブルと、エッジ属性情報を包含するテーブルとを生成する。次に、システムは、顧客テーブルおよび/または製品テーブルおよび/またはエッジ属性情報を包含するテーブルを記述するデータを含む1つ以上のヘッダを生成する。その後、システムは、1つ以上のヘッダとテーブルからのデータとを包含する1つ以上のファイルを生成し、データは、トランザクションを表現するエッジと顧客または製品を表現する頂点とを有するグラフを記述する。システムは続いて、製品の推薦を生成するためにグラフアナリティクスアプリケーションに入力として1つ以上のファイルをサブミットする。
この実施形態の変形例において、トランザクションテーブルと、顧客テーブルと、製品テーブルとを生成することは、関係モデルに応じてデータを記憶するテーブルからデータを検索することを含む。
この実施形態の変形例において、トランザクションは、購入トランザクションである。
この実施形態の変形例において、顧客テーブルおよび/または製品テーブルおよび/またはトランザクションテーブルを生成することは、顧客テーブルおよび/または製品テーブルおよび/またはトランザクションテーブルの各行に一意の連続した整数値を割り当てることを含む。
この実施形態の変形例において、システムは、まず顧客ID、続いてエッジの型、続いて製品ID、続いてトランザクションIDによって、トポロジーおよびエッジ識別子情報を包含するテーブルをソートする。
この実施形態の変形例において、方法のすべてのステップは単一のスクリプトによって実行される。
図1は、実施形態に係るグラフ変換システムの例示的なアーキテクチャを示すブロック図である。 図2は、実施形態に係る、グラフを生成するためにメインテーブルからのデータを編集するための処理の概要を示すブロック図である。 図3Aは、実施形態に係る顧客テーブルのための例示的なヘッダを示すブロック図である。 図3Bは、実施形態に係る製品テーブルのための例示的なヘッダを示すブロック図である。 図3Cは、実施形態に係るエッジ属性テーブルのための例示的なヘッダを示すブロック図である。 図3Dは、実施形態に係るサンプル顧客データを有する例示的な顧客テーブルを示すブロック図である。 図3Eは、実施形態に係るサンプル製品データを有する例示的な製品テーブルを示すブロック図である。 図3Fは、実施形態に係るサンプルエッジデータを有する例示的なエッジ属性テーブルを示すブロック図である。 図3Gは、実施形態に係るグラフトポロジーを表現する例示的なエッジデータを有するテーブルを示すブロック図である。 図4Aは、実施形態に係る、グラフアナリティクスアプリケーションのための入力としてのテーブルおよびヘッダを生成するための例示的な処理を示すフローチャートである。 図4Bは、実施形態に係る、グラフアナリティクスアプリケーションのための入力としてのテーブルおよびヘッダを生成するための例示的な処理を示すフローチャートである。 図5は、実施形態に係る、トランザクションデータからグラフ表現を生成するための例示的な装置を示すブロック図である。 図6は、実施形態に係る、トランザクションデータからグラフ表現を生成するための例示的なコンピュータシステムを示す図である。
図面において、同一の参照番号は、同一の図面要素を指す。
以下の説明は、実施形態の製造および使用を任意の当業者に可能にさせるために提示され、特定の応用例およびその要求の文脈において提供される。開示される実施形態に対するさまざまな変更が当業者に容易に理解され、本明細書において定義される一般的な原理は、本開示の精神および範囲から逸脱せずに、他の実施形態および応用例に適用され得る。かくして、本発明は、示される実施形態に限定されるのではなく、本明細書に開示される原理および特徴と一致する最も広い範囲を付与されるべきである。
本発明の実施形態は、データを自動で編集し、データをグラフモデル表現に変換することによって、トランザクションデータをグラフアナリティクスアプリケーションへの入力に適したフォーマットに変換する問題を解決する。グラフ変換システムが、さまざまな型のデータを記憶する関係テーブルのようなデータソースからデータを抽出し得る。システムは、データを処理して中間テーブルに投影し、ヘッダを生成し、続いて、テーブル、ヘッダ、およびグラフトポロジーを記述するデータおよび関連づけられたエッジ属性データを有する追加のテーブルを、適切に整形されたテキストファイルに書き込む。生成されたグラフは、抽出されたデータに見出されるトランザクションリレーションシップを反映する。グラフ変換システムが続いて、生成されたグラフデータを、分析のためにグラフアナリティクスアプリケーション(たとえば、ハイパーグラフ)に入力としてサブミットし得る。1つの例示的な応用例は、ユーザに製品の推薦を提案するために、協調フィルタリングを実行するためにハイパーグラフを用いて購入トランザクションデータを分析することである。
ハイパーグラフエンジンは、その入力が、ある特定の制約および整形の要求を伴う極めて固有の手法で整形されたテキストファイルであることを要求する。入力テキストファイルは、グラフトポロジー、および頂点に関連づけられたデータを含む、グラフの記述子、および他の関連づけられたデータを含むべきである。グラフ構造データは、頂点およびエッジの属性を記述するデータとは分離されるべきである。協調フィルタリングのために、頂点が顧客または製品を表現する一方で、エッジは、購入トランザクションを表現する。
1つの実現において、システムは、Hadoop上に構築されたHiveのようなデータウェアハウジングソフトウェアを利用する。Hiveは、Hadoopのためのデータウェアハウスシステムである。Hiveは、Hadoop互換のファイルシステムによる分散ストレージに存在する大規模データセットの、容易なデータ要約、アドホッククエリ、および分析を容易にする。Hiveは、記憶されたデータにアクセスするためのSQLインターフェースを提供する。Hadoopは、ストレージレイヤである。Hadoopは、マシンおよびCPUのパワーをまとめて、マシンのクラスタにわたる大規模データセットを分散処理するためのフレームワークである。Hadoopは、クラスタにわたるデータのストレージを提供し、単一のサーバから数千ものマシンへのスケーリングを可能にする。それは、クラスタにおけるすべてのノードに及ぶスケーラブルな分散ファイルシステムを提供する。小売業者は、Hadoopのクラスタに数百ギガバイトのデータを記憶し得る。典型的な関係データベーステーブルからのデータをハイパーグラフに適したフォーマットに自動で編集するために、HadoopおよびBashスクリプトとともにHiveが使用され得る。Bashは、Unix(登録商標)シェルである。Bashは、スクリプトファイルからのコマンドを読み取り、スクリプト内のコマンドを実行し得る。
ハイパーグラフへの入力は、Hiveを用いて生成されたテーブルおよびヘッダのセットである。いくつかの実現において、メインテーブルからの顧客、製品、およびトランザクションデータをより小さな中間テーブルに投影するために、HiveにおいてSQLスクリプトが実行され得る。たとえば、小売データベースには、ある列が顧客IDを記憶し、別の列は顧客が行った購入についての製品IDを記憶する、メインテーブルが存在し得る。このメインテーブルにおける他の列は、トランザクションIDおよびそのようなトランザクションの日付を記憶し得る。Hiveによって生成された中間テーブルは、テキストファイルの形式でストレージに書き込まれ得、テキストファイル中の改行によって区切られた各行は、テーブルにおける行を表現する。システムはまた、ヘッダ、グラフのトポロジーを記述するテーブル、およびエッジの属性を記述する別のテーブルを生成し得る。
関係モデルに応じて記憶されたデータをハイパーグラフへの入力のために適切に整形されたグラフ表現に変換するために自動化手順が利用され得る。例示的な実現では、ハイパーグラフへの入力としての役割を果たし得るグラフ表現出力を生み出すために単一のコマンドを有するスクリプトが呼び出され得る。システムは、ハイパーグラフへの入力として、グラフ構造を表現するデータを有するテキストファイルを生成する。システムは、ハイパーグラフによって指定された固有の順序によってこれらのファイルの列をソートし得る。システムは続いて、生成されたグラフをハイパーグラフに入力することによって、トランザクションデータの効率的な分析を容易にし得る。
システムは、顧客に推薦を提供するために、本明細書に開示される技法を利用し得る。小売業者が顧客に製品を販売し得ると、顧客に推薦を提供するために、システムが協調フィルタリングを実行し得る。しかしながら、協調フィルタリングは、購入データを含む顧客トランザクションデータの分析を要求する。システムは、顧客の購入アイテムを調べ、続いて、最初の顧客と同一のアイテムを同じく購入した他の顧客によって行われた購入を決定し得る。システムは続いて、最初の顧客にアイテムを推薦し得る。顧客のトランザクションデータは、他のデータと混ぜられ、関係データベースに(またはハイパーグラフへの直接入力に適さない何らかの他のフォーマットで)記憶され得る。システムは、トランザクションデータをハイパーグラフへの入力に適したフォーマットに変換するために、本明細書において論じられる変換技法を適用し得る。ハイパーグラフは、協調フィルタリングを実行するために、極めて効率的にグラフをトラバースし得る。
協調フィルタリングのために、システムは、小売業者のデータベースから抽出された購入トランザクションデータを用いて2部グラフを生成し得る。2部グラフは、すべてのエッジが集合Uにおける頂点を集合Vにおける頂点と連結するように2つの互いに素な集合UおよびVに分割され得る頂点を有するグラフである。製品を表現する頂点が、2部グラフの1つの集合を構成し、顧客を表現する頂点が、2部グラフの他の集合を構成する。グラフは、トランザクションデータの小売業者のデータベースを表現する。ハイパーグラフが続いて、製品の推薦を生成するために2部グラフをトラバースし得る。
本明細書に開示される変換処理がない場合、関係テーブルからのデータとのデータベース結合が実行される必要があり、それは、特に、大規模な関係テーブルが必要とされる場合、時間のかかる非効率的な処理である、ということに注意すべきである。データベース結合を実行するよりもむしろ、システムは、ハイパーグラフを用いて2部グラフをトラバースする。たとえば、ハイパーグラフは、製品の推薦を生成するために2部グラフをトラバースし得る。製品の推薦を生成するためにグラフのトラバースを実行することは、データベーステーブルとの結合を実行することよりもはるかに速い。
本明細書ではハイパーグラフに関し例が論じられるが、本発明の実施形態は、開示された技法を任意のグラフアナリティクスアプリケーションによって応用することができる。いくつかの実施形態は、Hiveの代わりにHBaseまたはSQLのような関係インターフェースを利用し得る。スクリプトの一部は、C/C++または他のスクリプト言語、またはcat、join、paste、cut、およびsortといった標準的なUNIX(登録商標)スクリプトプログラムで書かれ得る。
図1は、実施形態に係るグラフ変換システム100の例示的なアーキテクチャを示すブロック図を提示する。システム100は、関係モデル(または任意の他のデータモデル)に応じて記憶されたデータを抽出し、グラフを表現する適切なフォーマットにデータを変換し得る。変換されたデータは、グラフアナリティクスアプリケーション(たとえば、ハイパーグラフ)への入力に適するべきである。
システム100は、クラスタ104の一部として実行されるサーバ102A〜102Eのセットを含み得る。サーバ102A〜102Eの各々は、ストレージデバイスに記憶されたソフトウェアおよびデータを含み得る。たとえば、サーバ102Eは、ストレージデバイス106を含み得る。ストレージデバイス106は、グラフアナリティクスアプリケーション108(たとえば、ハイパーグラフ)、トランザクションデータ110、グラフデータ112、およびグラフ変換ソフトウェア114のようなデータおよびソフトウェアを記憶し得る。いくつかの実現はまた、ハイパーグラフに関連づけられたグラフ変換サービスを要求するためにクラスタ104におけるサーバと通信するクライアント116を含み得る。
本発明の異なる実現は任意の数のサーバおよびストレージデバイスを含み得る、ということに注意する。システム100のさまざまな発明態様が、以下においてさらに説明される。
図2は、実施形態に係る、グラフを生成するためにメインテーブルからのデータを編集するための処理の概要を示すブロック図を提示する。図2は、システム100がどのようにしてトランザクションデータをハイパーグラフに適したフォーマットに変換し得るかを示す。システム100が、中間テーブル、関連づけられたヘッダ、およびトポロジーテーブルおよびエッジ属性テーブルを形成するために、メインテーブルからデータを抽出し得る。システム100は続いて、中間テーブル、ヘッダ、および他のテーブルを1つ以上のテキストファイルに書き込み得る。
図2に示すように、グラフアナリティクスアプリケーション108は、パーティショニング/記憶コンポーネント204Aおよび他のコンポーネント204B〜204Cを含む。コンポーネント204B〜204Cは、入力されたグラフの分析を容易にする任意の数のコンポーネントを表現し得る。グラフアナリティクスアプリケーション108は、テキストファイル206を入力として受理し、それは、データベース208に記憶される。テキストファイル206は、メインテーブル210から検索されたデータから生成されたグラフ表現を記述するデータを包含する。実現に依存してテキストファイル206は1つ以上のテキストファイルを表現し得る、ということに注意する。
システム100は、顧客テーブル212、製品テーブル214、購入テーブル216を含む中間テーブルを生成し得る。顧客テーブル212は、顧客を記述するデータを記憶し得る。製品テーブル214は、購入のために入手可能な製品を記述するデータを記憶し得る。購入テーブル216は、顧客による製品の購入を記述するデータを記憶し得るが、異なる実現はまた、このまたは別のトランザクションテーブルにおける他の型のトランザクションを含み得る。システム100は、メインテーブル210からデータを検索し、検索されたデータを、顧客テーブル212、製品テーブル214、および購入テーブル216において記憶する。メインテーブル210は、たとえば、関係モデルに応じてデータを記憶し得る。異なる小売業者は、定義域に依存して記憶されるデータの構造または型が異なるメインテーブルを記憶し得、任意の数のテーブルを含み得る。
例示的な実現において、システム100は、中間テーブルのためのいくつかのヘッダを生成し、中間テーブルおよびヘッダをテキストファイル206に書き込む。システム100はまた、グラフアナリティクスアプリケーション108にサブミットするためのエッジ関連情報を包含する他のテーブルを含み得る。テーブルの1つは、図3Gに示され、グラフのトポロジーを記述する例示的なデータを包含する。別のテーブルは、エッジ属性情報を含み得、その例が図3Fに示されている。システム100は、テキストファイル206にトポロジーおよびエッジ属性のテーブルを含み得る。システム100はまた、図3Gに示すトポロジーテーブルとは異なるようにソートされた列を有する冗長テーブルである別のトポロジーテーブルをテキストファイル206に含み得る。テーブルの例は、図3D〜図3Gに示されている。システム100は続いて、グラフアナリティクスアプリケーション108にテキストファイル206をサブミットする。いくつかの実現は、複数の別個のテキストファイルにヘッダおよびテーブルを書き込み、すべてのテキストファイルをグラフアナリティクスアプリケーション108にサブミットし得る、ということに注意する。
図3A〜図3Gは、顧客データ、製品データ、およびエッジデータのための例示的なヘッダおよびテーブルを示す。システム100は、ベーステーブル210からヘッダおよびテーブルを生成する。ヘッダは、スキーマを記述し、テーブルに関連づけられた他のメタデータを提供する。以下のセクションは、例示的なヘッダおよびテーブルをより詳細に説明する。図3Aは、顧客テーブルのための例示的なヘッダを示し、図3Bは、製品テーブルのための例示的なヘッダを示し、図3Cは、エッジ属性テーブルのための例示的なヘッダを示す。図3Dは、例示的な顧客テーブルを示し、図3Eは、例示的な製品テーブルを示し、図3Fは、例示的なエッジ属性テーブルを示し、図3Gは、例示的なグラフトポロジーテーブルを示す。
図3Aは、実施形態に係る顧客テーブル308のための例示的なヘッダ302を示すブロック図を提示する。ヘッダ302は、スキーマと顧客テーブル308のための他のメタデータとを示す。1つの実現において、ヘッダにおけるtypeフィールドは、テーブルが顧客データを記憶することを示す2の値を有する。別のヘッダフィールドは、顧客テーブル308における列の数を記憶し得、図示した例では3である。識別子フィールドidは、顧客に関連づけられた内部識別番号を記憶する顧客テーブル308における列を示す。顧客識別子フィールドcustomer_idは、小売業者によって割り当てられた顧客識別子を記憶する顧客テーブル308における列を示す。文字列フィールドclassは、氏名、住所、および他の顧客データといった顧客情報を記憶する顧客テーブル308における列を示す。別のヘッダフィールドは、顧客テーブル308における行の数を示し、図示した例では155412である。また、オプションのヘッダフィールドcustomer.attr.v.defは、各々の顧客の追加の属性を示すデータを記憶し得る。システム100は、グラフアナリティクスアプリケーション108への入力のためのグラフを生成することの一部として、テキストファイルのセットにヘッダ302および顧客テーブル308を書き込み得る。これは、顧客データのためのヘッダの一例であり、異なる実現は、異なるフィールドを有する顧客ヘッダを利用し得る、ということに注意する。
図3Bは、実施形態に係る製品テーブルのための例示的なヘッダ304を示すブロック図を提示する。ヘッダ304は、スキーマと、製品のID、製品の記述子、および他のデータを含む製品テーブル310に関連づけられた他のメタデータとを示す。1つの実現において、ヘッダにおけるtypeフィールドは、テーブルが製品データを記憶することを示す1の値を有する。別のヘッダフィールドは、製品テーブル310における列の数を記憶し得、図示した例では3である。識別子フィールドidは、製品に関連づけられた内部識別子を記憶する製品テーブル310における列を示す。製品識別子フィールドproduct_idは、小売業者のための製品識別子を記憶する製品テーブル310における列を示す。文字列フィールドclassは、製品の記述子を記憶する製品テーブル310における列を示す。別のヘッダフィールドは、製品テーブル310における行の数を示し、図示した例では1990412である。また、オプションのヘッダフィールドproduct.attr.v.defは、各々の製品の追加の属性を示すデータを記憶し得る。システム100は、グラフアナリティクスアプリケーション108への入力のためのグラフを生成することの一部として、テキストファイルのセットにヘッダ304および製品テーブル310を書き込み得る。これは、製品データのためのヘッダの一例であり、異なる実現は、異なるフィールドを有する製品ヘッダを利用し得る、ということに注意する。
図3Cは、実施形態に係るエッジ属性テーブルのための例示的なヘッダ306を示すブロック図を提示する。エッジヘッダ306は、購入型トランザクションに関連づけられたエッジ属性情報を包含するエッジ属性テーブル312を記述する。例示的な実現において、ヘッダにおけるtypeフィールドは、テーブルが型1のエッジに関連づけられた属性情報を記憶することを示す1の値を有する。型1のエッジは、購入を表現する。いくつかの実現において、異なる型の値を有する他のエッジは、返金、ウェブページのクリックスルー、または何らかの他の型のトランザクションを表現し得る。本発明の実施形態は、例示したエッジの型に限定されるものではない。エッジのための型の付番体系は頂点のための型の付番体系とは異なる、ということに注意する。異なる応用例は任意の数のエッジの型を有し得るが、この例示的な応用例では購入のための1つのエッジの型のみが存在する。
ヘッダ306における別のフィールドは、エッジ属性テーブル312における列の数を記憶し得る(たとえば、図3Cの図示した例では4である)。内部識別子idは、各々のエッジのための内部識別子を記憶するエッジ属性テーブル312における列を示す。小売業者に固有の識別子purchase_idは、小売業者に固有の購入識別子情報を表現する。price識別子は、製品の小売価格を示し、price_adj識別子は、顧客によって支払われた実際の価格を示す。1つのヘッダフィールドは、エッジ属性テーブル312における行の数を記憶し、図示した例では276380804である。別のフィールドpurchase.attr.v.defは、購入属性情報を記憶し得る。これらのフィールドは例であり、いくつかの実現は、タイムスタンプのような追加のフィールドを含み得る。いくつかの実施形態において、システム100は、列が整数値を記憶する場合、いくつかの列についての最大値および最小値を含み得る、ということに注意する。さらに、これはエッジデータのためのヘッダの一例であり、異なる応用例は、異なるフィールドを有するエッジヘッダを利用し得る。
図3Dは、実施形態に係るサンプル顧客データを有する例示的な顧客テーブル308を示すブロック図を提示する。顧客テーブル308は、図2からの顧客テーブル212の例である。図3Dに示すように、顧客テーブル308は、内部顧客識別子310、顧客識別子312、および記述子314の3列を含み得る。システム100は、グラフアナリティクスアプリケーション108にサブミットするための顧客ヘッダ302を伴う顧客テーブル308を含み得る。顧客テーブル308は、例示的な顧客テーブルにすぎず、異なる実現は、任意の型の値を記憶する任意の数の列を有する顧客テーブルを有し得る、ということに注意する。
図3Eは、実施形態に係るサンプル製品データを有する例示的な製品テーブル310を示すブロック図を提示する。製品テーブル310は、図2からの製品テーブル214の例である。図3Eに示すように、製品テーブル310は、内部製品識別子318、製品識別子320、および記述子322の3列を含み得る。システム100は、グラフアナリティクスアプリケーション108にサブミットするための製品ヘッダ304を伴う製品テーブル310を含み得る。製品テーブル310は、例示的な製品テーブルにすぎず、異なる実現は、任意の型の値を記憶する任意の数の列を有する製品テーブルを有し得る、ということに注意する。
図3Fは、実施形態に係るサンプルエッジデータを有する例示的なエッジ属性テーブル312を示すブロック図を提示する。図3Fにおけるエッジ属性テーブル312は、エッジ属性を記述するデータを包含し、図3Gにおけるテーブル322は、グラフトポロジー情報を包含する。グラフトポロジーデータからエッジ属性データを分離することは、ハイパーグラフがより効率的にグラフを分析することを可能にする。図3Fに示すように、エッジ属性テーブル312は、エッジの型314、内部ID316、小売表示価格318、および支払われた実際の価格320の4列を含み得る。システム100は、グラフアナリティクスアプリケーション108にサブミットするためのエッジヘッダ306を伴うエッジ属性テーブル312を含み得る。エッジ属性テーブル312は例にすぎず、異なる実現は、任意の型の値を記憶する任意の数の列を有するエッジ属性テーブルを有し得る、ということに注意する。
図3Gは、実施形態に係るグラフトポロジーを表現する例示的なエッジデータを有するテーブル322を示すブロック図を提示する。テーブル322の各行は、トランザクションを表現するエッジデータを包含し、列は、顧客ID、エッジの型、トランザクションID、および製品IDを記述するデータを記憶する。顧客IDの列324は、各々のトランザクションに関連づけられた顧客の識別子を記憶する。エッジの型の列326は、各々のトランザクションの型情報を記憶する。図3Gに示すトランザクションの各々のトランザクションは、エッジの型の列326における1の値によって示されるように、購入トランザクションである。トランザクションIDの列328は、各々のトランザクションのための識別子を記憶する。製品IDの列330は、各々のトランザクションに関連づけられた製品のための識別子を記憶する。
システム100は、グラフアナリティクスアプリケーション108の要求に準拠するようにテーブル322の列をソートし得る。たとえば、システム100は、顧客ID、続いてエッジの型、続いて製品ID、続いてトランザクションIDによってソートし得る。テーブル322をテキストファイルに書き込む際に、テーブル322のソート順序がHiveに対し指定され得る。システム100はまた、テーブル322と同一のデータを包含するが異なるようにソート(たとえば、異なる列に応じてソート)された冗長トポロジーファイルを生成し得る。グラフアナリティクスアプリケーション108は、効率的なグラフ分析を容易にするためにこの冗長トポロジーファイルを要求し得る。グラフのメタデータと別個にグラフのトポロジーを記憶することは、必要とされるまでメタデータをロードしないことをシステムに可能にさせることにより、グラフの効率的な処理を容易にする、ということに注意する。
図4Aおよび図4Bは、実施形態に係る、グラフアナリティクスアプリケーションのための入力としてのテーブルおよびヘッダを生成するための例示的な処理を示すフローチャートを提示する。システム100は、メインテーブル210から中間テーブル(たとえば、顧客テーブル212、製品テーブル214、および購入テーブル216)を生成するために、図4Aおよび図4Bの動作を実行する。システム100はまた、頂点間のエッジIDおよび連結情報のみを包含するトポロジーテーブルと、各々のエッジIDに関連づけられたデータを包含するエッジ属性テーブルとを生成する。さらに、システム100は、中間テーブルに関連づけられたヘッダを生成し、中間テーブル、ヘッダ、トポロジーテーブル、およびエッジ属性テーブルをグラフアナリティクスアプリケーション108への入力のためにテキストファイルに記憶する。1つの実現では、システム100は、図4Aおよび図4Bに示す動作を実行するためにスクリプト(たとえば、Bashスクリプト)を実行し得る。
動作中、システム100は最初に、生成されるテーブルの各行に連続したID番号を割り当てるJava(登録商標)プログラムを編集し得る(動作402)。各々の型の頂点(またはエッジデータ)について、システム100は、各々の頂点のテーブル(またはエッジ関連テーブル)を処理(たとえば、生成および/または投入)するステップを順々に実行する(動作404)。システム100は、各々のそれぞれの中間テーブルを生成および投入するために動作406〜416を実行し得る。
システム100が、Java(登録商標)プログラムから次の一意のIDを選択し、1つ以上の頂点(またはエッジ)に関連づけられたデータを選択する(動作406)。たとえば、システム100は、顧客ID/製品ID(またはエッジID)を記憶する列に対しSELECT DISTINCTのようなSQLステートメントを実行することによって、顧客/製品(またはエッジ)についてのデータを抽出し得る。システム100は、顧客(たとえば、顧客テーブル212)に関連するデータまたは製品(たとえば、製品テーブル214)に関連するデータ(またはエッジ、たとえば、購入テーブル216に関連するデータ)を検索する。この動作によって、システム100は、顧客または製品(または購入)中間テーブルに投入するためのすべての行のデータを検索することができ、システム100は、新たなテーブルの各行を各々の追加された行とともに値が増加する一意のIDに関連づける。システム100は続いて、データを検査する(たとえば、フィールドがヌルでないことを確認する)(動作408)。システム100はまた、データを正規化およびリファクタリングし得る。
次に、システム100は、結果として生じたデータを、顧客テーブル212または製品テーブル214(または購入テーブル216)のような新たなテーブルに行として挿入する(動作410)。たとえば、John Smithという顧客について、システム100は、頂点IDを含むデータとJohn Smithに関連づけられたデータとを、すべての他の顧客についてのデータとともに、顧客テーブル308に投影する。いくつかの実現において、メインテーブル210からトランザクションを抽出する際、システム100は、複数の製品を含むトランザクションを、各々のトランザクションが単一の製品を有するように、複数のトランザクションに分離し得る。いくつかの実現において、これらのトランザクションのいくつかは、返金、購入、またはクリックスルーを含み得る。ハイパーグラフは、各行が連続して列挙されることを要求するので、システム100は、各行に連続したID番号を割り当て、たとえば、1から顧客/製品/エッジの合計数までのシーケンス番号を割り当て得る。いくつかの実現では、中間テーブルは、正規化された形式のデータを記憶し得る。
システム100は続いて、(たとえば、Hiveを使用して)割り当てられた最大のIDを計算し得、この最大のIDの値を動作404から開始する次の反復に渡し得る(動作412)。システム100は続いて、それぞれのテーブルのためのヘッダファイルを生成する(動作414)。ヘッダファイルを生成することは、それぞれのテーブルにおける行の数を計算することと、列が文字列か整数かを決定することとを含み得る、ということに注意する。整数の列について、システム100は、最小値および最大値を調べることによって、列が8ビット、16ビット、または32ビットの整数かどうかを決定する。
システム100は、整形されたテーブルを、適切な列によってソートしてローカルファイルシステムに書き込む(動作416)。1つの実現において、システム100は、テーブルのためのディスクスペースを割り振るために、SQLクエリを実行して文字列および他のフィールドのサイズを決定し得る。システム100は、整形されたテーブルを書き込みながらテキストファイル206を生成し得る。
システム100は続いて、元のテーブル(たとえば、メインテーブル210)を、エッジ属性およびグラフ構造のみを包含するより小さなテーブル(たとえば、購入テーブル216)に投影する(動作418)。その後、システム100は、頂点間のエッジIDおよび連結情報のみを包含するトポロジーテーブルを生成し、その例は、図3Gに示されている(動作420)。システム100は、連結およびエッジID情報のみを有するトポロジーテーブルを生成するために、動作406〜416と同様の方法を実行し得る。システム100は続いて、各々のエッジIDについて、そのエッジに関連づけられたデータを包含するエッジ属性テーブルを生成する(動作422)。エッジ属性テーブルの例は、図3Fに示されている。システム100は、エッジ属性テーブルを生成するために動作406〜416と同様の方法を実行し得る。ヘッダおよびテーブルを記憶するテキストファイルの生成後、システム100は、グラフアナリティクスアプリケーション108にテキストファイルをサブミットし得る。
図5は、実施形態に係る、トランザクションデータからグラフ表現を生成するための例示的な装置500を示すブロック図を提示する。装置500は、有線または無線通信チャネルを介して互いに通信し得る複数のモジュールを備え得る。装置500は、1つ以上の集積回路を使用して実現されることができ、図5に示すモジュールより少ないまたは多いモジュールを含み得る。さらに、装置500は、コンピュータシステムに組み込まれることができ、または、他のコンピュータシステムおよび/またはデバイスと通信することができる別個のデバイスとして実現されることができる。特に、装置500は、トランザクションデータ受信モジュール502、グラフアナリティクスアプリケーション108、トランザクションデータ110、グラフデータ112、およびグラフ変換ソフトウェア114を備え得る。装置500はまた、図5に示されていない追加のモジュールを含み得る、ということに注意する。
いくつかの実施形態において、トランザクションデータ受信モジュール502は、購入データのようなトランザクションデータを受信し得る。グラフアナリティクスアプリケーション108(たとえば、ハイパーグラフ)が、生成されたグラフを受信し、購入の推薦の生成を容易にするために、生成されたグラフを分析する。グラフ変換ソフトウェア114は、トランザクションデータ110からグラフデータ112を生成するために、本明細書において説明された変換処理を実行する。
図6は、実施形態に係る、トランザクションデータからグラフ表現を生成するための例示的なコンピュータシステム600を示す。一実施形態において、コンピュータシステム600は、プロセッサ602、メモリ604、およびストレージデバイス606を含む。ストレージデバイス606は、多数のアプリケーション、たとえば、アプリケーション610および612、およびオペレーティングシステム616を記憶する。ストレージデバイス606はまた、トランザクションデータ受信モジュール602、グラフアナリティクスアプリケーション108、トランザクションデータ110、グラフデータ112、およびグラフ変換ソフトウェア114を含み得る、グラフ変換システム100を記憶する。動作中、グラフ変換システム100のような1つ以上のアプリケーションが、ストレージデバイス606からメモリ604にロードされ、続いてプロセッサ602によって実行される。プログラムを実行している間、プロセッサ602は、上述した機能を実行する。コンピュータおよび通信システム600は、光学ディスプレイ617、キーボード618、およびポインティングデバイス620に結合され得る。
この詳細な説明において説明されたデータ構造およびコードは典型的に、コンピュータシステムによる使用のためのコードおよび/またはデータを記憶し得る任意のデバイスまたは媒体であり得るコンピュータ可読記憶媒体に記憶される。コンピュータ可読記憶媒体は、揮発性メモリ、不揮発性メモリ、磁気および光学ストレージデバイス、たとえば、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタル多用途ディスクまたはデジタルビデオディスク)、または、現在知られているまたは後に開発されるコンピュータ可読媒体を記憶することができる他の媒体を含むが、これらに限定されない。
詳細な説明のセクションにおいて説明された方法および処理は、上述したコンピュータ可読記憶媒体に記憶され得るコードおよび/またはデータとして具体化され得る。コンピュータシステムがコンピュータ可読記憶媒体に記憶されたコードおよび/またはデータを読み取り、実行する場合、コンピュータシステムは、データ構造およびコードとして具体化され、コンピュータ可読記憶媒体の中に記憶された、方法および処理を実行する。
さらに、本明細書において説明された方法および処理は、ハードウェアモジュールまたは装置に含まれ得る。これらのモジュールまたは装置は、特定の時間に特定のソフトウェアモジュールまたはコードを実行する、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、専用または共有プロセッサ、および/または、現在知られているまたは後に開発される他のプログラマブルロジックデバイスを含み得るが、これらに限定されない。ハードウェアモジュールまたは装置が活動化されると、それらは、それらの中に含まれる方法および処理を実行する。

Claims (6)

  1. トランザクションデータをグラフアナリティクスアプリケーションへの入力のためのグラフ表現に変換することによって製品の推薦を生成するためのコンピューティングシステムであって、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサによって実行された場合に、前記1つ以上のプロセッサに、
    トランザクションデータを記憶するためのトランザクションテーブルと、顧客データを記憶するための顧客テーブルと、製品データを記憶するための製品テーブルとを生成することと、
    前記トランザクションテーブルからのデータを用いて、トポロジーおよびエッジ識別子情報を包含するテーブルと、エッジ属性情報を包含するテーブルとを生成することと、
    前記顧客テーブルおよび/または前記製品テーブルおよび/または前記エッジ属性情報を包含するテーブルを記述するデータを含む1つ以上のヘッダを生成することと、
    前記1つ以上のヘッダと前記テーブルからのデータとを包含する1つ以上のファイルを生成することであって、前記データはトランザクションを表現するエッジと顧客または製品を表現する頂点とを有するグラフを記述する、生成することと、
    製品の推薦を生成するために前記グラフアナリティクスアプリケーションに入力として前記1つ以上のファイルをサブミットすることと
    を備える動作を実行させる命令を記憶した、前記1つ以上のプロセッサに結合されたコンピュータ可読記憶媒体と
    を備えるコンピューティングシステム。
  2. トランザクションテーブルと、顧客テーブルと、製品テーブルとを生成することは、
    関係モデルに応じてデータを記憶するテーブルからデータを検索すること
    を備える、請求項1に記載のコンピューティングシステム。
  3. 前記トランザクションは、購入トランザクションである、請求項1に記載のコンピューティングシステム。
  4. 顧客テーブルおよび/または製品テーブルおよび/またはトランザクションテーブルを生成することはさらに、顧客テーブルおよび/または製品テーブルおよび/またはトランザクションテーブルの各行に一意の連続した整数値を割り当てることを備える、請求項1に記載のコンピューティングシステム。
  5. 前記コンピュータ可読記憶媒体は、実行された場合に、前記1つ以上のプロセッサに、
    まず顧客ID、続いてエッジの型、続いて製品ID、続いてトランザクションIDによって、前記トポロジーおよびエッジ識別子情報を包含するテーブルをソートすること
    を備える追加のステップを実行させる追加の命令を記憶する、請求項1に記載のコンピューティングシステム。
  6. 方法のすべてのステップが単一のスクリプトによって実行される、請求項1に記載のコンピューティングシステム。
JP2014262065A 2014-01-06 2014-12-25 ハイパーグラフソルバーのためのグラフ入力の自動編集 Expired - Fee Related JP6438295B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/148,435 US20150193854A1 (en) 2014-01-06 2014-01-06 Automated compilation of graph input for the hipergraph solver
US14/148,435 2014-01-06

Publications (2)

Publication Number Publication Date
JP2015130165A true JP2015130165A (ja) 2015-07-16
JP6438295B2 JP6438295B2 (ja) 2018-12-12

Family

ID=52102571

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014262065A Expired - Fee Related JP6438295B2 (ja) 2014-01-06 2014-12-25 ハイパーグラフソルバーのためのグラフ入力の自動編集

Country Status (3)

Country Link
US (1) US20150193854A1 (ja)
EP (1) EP2892018A1 (ja)
JP (1) JP6438295B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107145541B (zh) * 2017-04-24 2020-07-28 安徽师范大学 基于超图结构的社交网络推荐模型构建方法
US11113741B2 (en) * 2018-11-04 2021-09-07 International Business Machines Corporation Arranging content on a user interface of a computing device
US11645695B2 (en) * 2020-03-12 2023-05-09 Intuit Inc. Computing personalized recommendations by modeling interactions as a bipartite graph

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457792A (en) * 1991-11-07 1995-10-10 Hughes Aircraft Company System for using task tables and technical data from a relational database to produce a parsed file of format instruction and a standardized document
JP2012098845A (ja) * 2010-10-29 2012-05-24 Rakuten Inc 情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法
US20140122228A1 (en) * 2012-10-30 2014-05-01 Kelly Joseph Wical Method and system for emergent data processing
JP2014232346A (ja) * 2013-05-28 2014-12-11 日本電信電話株式会社 情報推薦装置、情報推薦方法及び情報推薦プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008017044A1 (en) * 2006-08-02 2008-02-07 Watt Systems Technologies, Inc. Object oriented system and method of graphically displaying and analyzing complex systems
US20080082644A1 (en) * 2006-09-29 2008-04-03 Microsoft Corporation Distributed parallel computing
FI20085399A0 (fi) * 2007-12-14 2008-04-30 Xtract Oy Menetelmä ja järjestely asiakkaiden segmentoimiseksi asiakkaiden hallintajärjestelmässä
US8954422B2 (en) * 2010-07-30 2015-02-10 Ebay Inc. Query suggestion for E-commerce sites

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5457792A (en) * 1991-11-07 1995-10-10 Hughes Aircraft Company System for using task tables and technical data from a relational database to produce a parsed file of format instruction and a standardized document
JP2012098845A (ja) * 2010-10-29 2012-05-24 Rakuten Inc 情報処理装置、情報処理システム、情報処理プログラム、情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体、及び情報処理方法
US20140122228A1 (en) * 2012-10-30 2014-05-01 Kelly Joseph Wical Method and system for emergent data processing
JP2014232346A (ja) * 2013-05-28 2014-12-11 日本電信電話株式会社 情報推薦装置、情報推薦方法及び情報推薦プログラム

Also Published As

Publication number Publication date
EP2892018A1 (en) 2015-07-08
US20150193854A1 (en) 2015-07-09
JP6438295B2 (ja) 2018-12-12

Similar Documents

Publication Publication Date Title
US11941016B2 (en) Using specified performance attributes to configure machine learning pipepline stages for an ETL job
US20220342875A1 (en) Data preparation context navigation
JP5298117B2 (ja) 分散コンピューティングにおけるデータマージング
US9256665B2 (en) Creation of inverted index system, and data processing method and apparatus
US20210073188A1 (en) System and method for automatic inference of a cube schema from a tabular data for use in a multidimensional database environment
CN107451225B (zh) 用于半结构化数据的可缩放分析平台
CN104573124B (zh) 一种基于并行化关联规则算法的教育云应用统计方法
CN107408114B (zh) 基于事务访问模式识别联结关系
JP7089605B2 (ja) データ変形システムおよび方法
US11853279B2 (en) Data storage using vectors of vectors
US20180357278A1 (en) Processing aggregate queries in a graph database
JP6438295B2 (ja) ハイパーグラフソルバーのためのグラフ入力の自動編集
CN112912870A (zh) 租户标识符的转换
CN114297204A (zh) 一种异构数据源的数据存储、检索方法及装置
US20230385308A1 (en) Conversion and migration of key-value store to relational model
US20070282804A1 (en) Apparatus and method for extracting database information from a report
WO2016119508A1 (zh) 基于Spark系统的大规模对象识别方法
JP6457290B2 (ja) グラフを剪定する方法、前記グラフを剪定する方法をコンピュータに行なわせる命令を記録している非一時的なコンピュータ可読記憶媒体、及びグラフの剪定を行うためのコンピュータシステム
US11663189B1 (en) Generating relational table structures from NoSQL datastore and migrating data
McClean et al. A comparison of mapreduce and parallel database management systems
CN115114297A (zh) 数据轻量存储及查找方法、装置、电子设备及存储介质
JP2018109898A (ja) データマイグレーションシステム
US20180004814A1 (en) Result set output criteria
Gupta et al. Provenance in context of Hadoop as a Service (HaaS)-State of the Art and Research Directions
Naureen Big Data Analytics with Hadoop

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171128

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180919

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20181106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181116

R150 Certificate of patent or registration of utility model

Ref document number: 6438295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees