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

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

▶ テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッドの特許一覧

特許7504290グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム
<>
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図1
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図2
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図3
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図4
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図5
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図6
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図7
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図8
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図9
  • 特許-グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-13
(45)【発行日】2024-06-21
(54)【発明の名称】グラフデータ処理方法、装置、コンピュータ機器及びコンピュータプログラム
(51)【国際特許分類】
   G06F 16/9032 20190101AFI20240614BHJP
   G06Q 40/03 20230101ALI20240614BHJP
【FI】
G06F16/9032
G06Q40/03
【請求項の数】 15
(21)【出願番号】P 2023518909
(86)(22)【出願日】2021-10-12
(65)【公表番号】
(43)【公表日】2023-11-01
(86)【国際出願番号】 CN2021123265
(87)【国際公開番号】W WO2022116689
(87)【国際公開日】2022-06-09
【審査請求日】2023-04-19
(31)【優先権主張番号】202011394355.5
(32)【優先日】2020-12-03
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】514187420
【氏名又は名称】テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュー,ジエ
(72)【発明者】
【氏名】リー,シャオセン
(72)【発明者】
【氏名】オウヤン,ウェン
(72)【発明者】
【氏名】シャオ,ピン
(72)【発明者】
【氏名】タオ,ヤンユー
【審査官】原 秀人
(56)【参考文献】
【文献】特開2007-323385(JP,A)
【文献】米国特許出願公開第2014/0354649(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 40/03
(57)【特許請求の範囲】
【請求項1】
コンピュータ機器によって実行されるグラフデータ処理方法であって、
ネットワークグラフにおける各ノードの関連度を取得するステップと、
所定の閾値及び前記各ノードの関連度に基づいて密集サブグラフを前記ネットワークグラフから分割するステップと、
前記密集サブグラフに基づいて、前記ネットワークグラフにおける安定ノード、及び前記安定ノードのコア数を決定するステップであり、前記安定ノードのコア数は、前記所定の閾値よりも大きい、ステップと、
前記ネットワークグラフにおける、前記安定ノードを除いた残りノード、及び前記残りノードの間の接続エッジに基づいて、前記ネットワークグラフにおけるスパースサブグラフを取得するステップと、
前記スパースサブグラフ及び前記安定ノードに基づいて、前記スパースサブグラフにおける各ノードのコア数を決定するステップと、を含み、
決定された前記コア数は、該当するノードに対応する特徴ベクトルを生成するために用いられる、
方法。
【請求項2】
前記ネットワークグラフにおける各ノードの関連度を取得するステップは、
前記ネットワークグラフを取得するステップと、
前記ネットワークグラフにおける各ノードの近傍ノードの数を決定するステップと、
前記近傍ノードの数を該当するノードの関連度とするステップと、を含む、
ことを特徴とする、請求項1に記載の方法。
【請求項3】
前記方法は、さらに、
ユーザー識別子に対応する支払い記録を取得するステップと、
前記支払い記録に基づいて、前記ユーザー識別子の間の支払いインタラクションデータを取得するステップと、
前記支払いインタラクションデータに基づいて、支払い関係ネットワークグラフを生成するステップと、
を含み、
前記支払い関係ネットワークグラフのノードはユーザー識別子を示し、
前記支払い関係ネットワークグラフにおける2つのノードの間の接続エッジは、該当する2つのユーザー識別子の間に支払いインタラクションイベントが存在することを示す、
ことを特徴とする、請求項1に記載の方法。
【請求項4】
前記所定の閾値及び前記各ノードの関連度に基づいて密集サブグラフを前記ネットワークグラフから分割するステップは、
所定の閾値を取得するステップと、
前記関連度が前記所定の閾値以下であるノード及び前記ノードが所在する接続エッジを、前記ネットワークグラフから除去し、前記ネットワークグラフにおける残りノード及び前記残りノードの間の接続エッジに基づいて、前記密集サブグラフを取得するステップと、を含む、
ことを特徴とする、請求項1に記載の方法。
【請求項5】
前記密集サブグラフに基づいて、前記ネットワークグラフにおける安定ノード及び前記安定ノードのコア数を決定するステップは、
前記密集サブグラフにおける各ノードの近傍ノードの数に基づいて、前記密集サブグラフにおける各ノードの関連度を取得し、前記密集サブグラフにおける関連度を該当するノードの初期の現在コア数とするステップと、
前記密集サブグラフにおける各ノードに対して、前記密集サブグラフにおける前記ノードの近傍ノードの現在コア数に基づいて、前記ノードに対応するコア指数を計算するステップと、
前記コア指数が所定の閾値以下である場合、前記ノードを前記密集サブグラフから除去するステップと、
前記コア指数が前記閾値より大きく且つ前記ノードの現在コア数より小さい場合、前記ノードのコア指数に基づいて、前記ノードの現在コア数を更新するステップと、を反復的に実行し、
今回の反復過程で前記密集サブグラフにおける各ノードの現在コア数は何れも更新されていないまで、反復を停止するステップと、
反復停止時に取得された密集サブグラフにおけるノードを前記安定ノードとし、反復停止時に前記安定ノードの現在コア数を前記安定ノードに対応するコア数とするステップと、を含む、
ことを特徴とする、請求項1に記載の方法。
【請求項6】
前記方法は、さらに、
今回の反復が終了すると、今回の反復過程で現在コア数が更新されたノードを記録するステップであり、記録されたノードは、次回の反復開始時に前記密集サブグラフにおける前記記録されたノードの近傍ノードを次回の反復過程でコア指数を改めて計算するターゲットノードとすると指示するステップ、を含み、
前記密集サブグラフにおける各ノードに対して、前記密集サブグラフにおける前記ノードの近傍ノードの現在コア数に基づいて、前記ノードの対応するコア指数を計算するステップは、
前記密集サブグラフにおけるターゲットノードに対して、前記密集サブグラフにおける前記ターゲットノードの近傍ノードの現在コア数に基づいて、前記ターゲットノードに対応するコア指数を計算するステップ、を含む、
ことを特徴とする、請求項5に記載の方法。
【請求項7】
前記ネットワークグラフにおける前記安定ノードを除いた残りノード及び前記残りノードの間の接続エッジに基づいて、前記ネットワークグラフにおけるスパースサブグラフを取得するステップは、
前記安定ノードを前記ネットワークグラフから除去するステップと、
前記安定ノードを除去した後、前記残りノード及び前記残りノードの間の接続エッジに基づいて、前記スパースサブグラフを取得するステップと、を含む、
ことを特徴とする、請求項1に記載の方法。
【請求項8】
前記スパースサブグラフ及び前記安定ノードに基づいて、前記スパースサブグラフにおける各ノードのコア数を決定するステップは、
前記スパースサブグラフにおける各ノードのオリジナルの前記ネットワークグラフにおける近傍ノードの数に基づいて、前記スパースサブグラフにおける各ノードの現在コア数を初期化するステップと、
前記スパースサブグラフにおける各ノードに対して、前記ネットワークグラフにおける前記ノードの近傍ノードの現在コア数に基づいて、前記ノードの対応するコア指数を計算するステップと、前記コア指数が前記ノードの現在コア数よりも小さい場合、前記ノードのコア指数に基づいて、前記ノードの現在コア数を更新するステップと、を反復的に実行し、
今回の反復過程で前記スパースサブグラフにおける各ノードの現在コア数は何れも更新されていないまで、反復を停止するステップと、
反復停止時に前記ノードの現在コア数を前記ノードに対応するコア数とするステップと、を含む、
ことを特徴とする、請求項1に記載の方法。
【請求項9】
前記方法は、さらに、
今回の反復が終了すると、今回の反復過程で現在コア数が更新されたノードを記録するステップであり、
記録されたノードは、次回の反復開始時に前記スパースサブグラフにおける前記記録されたノードの近傍ノードを、次回の反復過程でコア指数を改めて計算するターゲットノードとすると指示するステップ、を含み、
前記スパースサブグラフにおける各ノードに対して、前記ネットワークグラフにおける前記ノードの近傍ノードの現在コア数に基づいて、前記ノードに対応するコア指数を計算するステップは、
前記スパースサブグラフにおけるターゲットノードに対して、前記ネットワークグラフにおける前記ターゲットノードの近傍ノードの現在コア数に基づいて、前記ターゲットノードに対応するコア指数を計算するステップ、を含む、
ことを特徴とする、請求項8に記載の方法。
【請求項10】
前記ノードに対応するコア指数を計算するステップは、
前記ノードは、近傍ノードのうち現在コア数がh以上であるh個の近傍ノードが存在することを満たしており、且つ、現在コア数がh+1以上であるh+1個の近傍ノードが存在していることを満たしていない場合、
前記ノードに対応するコア指数をhに決定するステップ、を含み、
hは正の整数である、
ことを特徴とする、請求項5又は8に記載の方法。
【請求項11】
前記方法は、さらに、
今回の反復過程開始時、ノード更新数をゼロに初期化するステップであり、
前記ノード更新数は今回の反復過程で現在コア数が更新されたノードの数を記録するステップと、
今回の反復過程で現在コア数が更新されたノードの数を統計するステップと、
前記数に基づいて、前記ノードの更新数を更新するステップと、
今回の反復過程が終了した場合、前記ノード更新数は非ゼロであると、次回の反復過程を続けるステップと、
今回の反復過程が終了した場合、前記ノード更新数はゼロであると、反復を停止するステップと、を含む、
ことを特徴とする、請求項5又は8に記載の方法。
【請求項12】
前記ネットワークグラフは支払い関係ネットワークグラフであり、
前記支払い関係ネットワークグラフにおけるノードはユーザー識別子を示し、
前記支払い関係ネットワークグラフにおける2つのノードの間の接続エッジは、該当する2つのユーザー識別子の間に支払いインタラクションイベントが存在することを示し、
前記方法は、さらに、
前記支払い関係ネットワークグラフにおける各ノードのコア数に基づいて、前記ノードで示されるユーザー識別子に対応する特徴ベクトルを生成するステップと、
事前訓練された分類モデルによって、前記特徴ベクトルに基づいて、前記ユーザー識別子に対応する支払いタイプを予測するステップと、を含む、
ことを特徴とする、請求項1~9の何れか1項に記載の方法。
【請求項13】
グラフデータ処理装置であって、
ネットワークグラフにおける各ノードの関連度を取得するネットワークグラフ取得モジュールと、
所定の閾値及び前記各ノードの関連度に基づいて、密集サブグラフを前記ネットワークグラフから分割する密集サブグラフ取得モジュールと、
前記密集サブグラフに基づいて、前記ネットワークグラフにおける安定ノード、及び前記安定ノードのコア数を決定する第1の決定モジュールであり、前記安定ノードのコア数は前記所定の閾値よりも大きい、第1の決定モジュールと、
前記ネットワークグラフにおける、前記安定ノードを除いた残りノード及び前記残りノードの間の接続エッジに基づいて、前記ネットワークグラフにおけるスパースサブグラフを取得するスパースサブグラフ取得モジュールと、
前記スパースサブグラフ及び前記安定ノードに基づいて、前記スパースサブグラフにおける各ノードのコア数を決定する第2の決定モジュールであり、決定された前記コア数は該当するノードの対応する特徴ベクトルを生成する第2の決定モジュールと、
を含む、装置。
【請求項14】
コンピュータプログラムが記憶されているメモリ及び1つ又は複数のプロセッサーを含むコンピュータ機器であって、
前記コンピュータプログラムは複数のコンピュータ可読命令を含み、
前記コンピュータ可読命令が前記1つ又は複数のプロセッサーにより実行されると、前記1つ又は複数のプロセッサーに、請求項1~12の何れか1項に記載の方法のステップを実現させる、
ことを特徴とする、コンピュータ機器。
【請求項15】
複数のコンピュータ可読命令を含むコンピュータプログラムであって、
前記複数のコンピュータ可読命令がプロセッサーによって実行されると、前記プロセッサーに、請求項1~12の何れか1項に記載の方法のステップを実現させる、
ことを特徴とする、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年12月03日に中国特許庁に提出され、出願番号が202011394355.5であり、出願名称が「グラフデータ処理方法、装置、コンピュータ機器及び記憶媒体」である中国特許出願について優先権を主張するものであり、その全ての内容は、本出願に援用されている。
【0002】
本出願は、ビッグデータの技術分野に関し、特には、グラフデータ処理方法、装置、コンピュータ機器、及び記憶媒体に関する。
【背景技術】
【0003】
インターネット技術の継続的な向上及び普及に連れて、ますます多くのユーザーは、各種のネットワークプラットフォームに加入して、大規模なネットワークを形成する。これらの大規模なネットワークに隠された情報に対する分析及びマイニングは、研究する価値が高い。
【0004】
K―Coreアルゴリズムは、サブグラフマイニングアルゴリズムであり、緊密に関連するサブグラフを複雑なネットワークからマイニングし、例えば、買い方又は売り方の間の行為が異常である一団をトレーディングネットワークからマイニングして、さらに、トレーディングネットワーク全体において中核的な位置にある買い方又は売り方を探し出す。
【発明の概要】
【発明が解決しようとする課題】
【0005】
現在のK―coreマイニングアルゴリズムは、主に再帰的なプルーニング方法を採用しており、つまり、k=1から各ネットワークにおける各ノードのコア数を絶えず反復的に決定する。ところが、このような再帰的なプルーニング方法は、core値が1、2、…、kであるように、上へマイニングし、非重要なノードで多くの反復時間及びコンピューティングリソースを消費するため、全体的なコンピューティング時間が長すぎて、超大規模なネットワークに対するマイニング性能が悪い。
【課題を解決するための手段】
【0006】
コンピュータ機器によって実行されるグラフデータ処理方法であって、
ネットワークグラフにおける各ノードの関連度を取得するステップと、
所定の閾値及び前記各ノードの関連度に基づいて密集サブグラフを前記ネットワークグラフから分割するステップと、
前記密集サブグラフに基づいて、前記ネットワークグラフにおける安定ノード及び前記安定ノードのコア数を決定するステップであり、前記安定ノードのコア数は前記所定の閾値よりも大きいステップと、
前記ネットワークグラフにおける、前記安定ノードを除いた残りノード及び前記残りノードの間の接続エッジに基づいて、前記ネットワークグラフにおけるスパースサブグラフを取得するステップと、
前記スパースサブグラフ及び前記安定ノードに基づいて、前記スパースサブグラフにおける各ノードのコア数を決定するステップであり、決定された前記コア数は該当するノードに対応する特徴ベクトルを生成するステップと、を含む。
【0007】
グラフデータ処理装置であって、
ネットワークグラフにおける各ノードの関連度を取得するネットワークグラフ取得モジュールと、
所定の閾値及び前記各ノードの関連度に基づいて密集サブグラフを前記ネットワークグラフから分割する密集サブグラフ取得モジュールと、
前記密集サブグラフに基づいて、前記ネットワークグラフにおける安定ノード及び前記安定ノードのコア数を決定する第1の決定モジュールであり、前記安定ノードのコア数は前記所定の閾値よりも大きい第1の決定モジュールと、
前記ネットワークグラフにおける、前記安定ノードを除いた残りノード及び前記残りノードの間の接続エッジに基づいて、前記ネットワークグラフにおけるスパースサブグラフを取得するスパースサブグラフ取得モジュールと、
前記スパースサブグラフ及び前記安定ノードに基づいて、前記スパースサブグラフにおける各ノードのコア数を決定する第2の決定モジュールであり、決定された前記コア数は該当するノードに対応する特徴ベクトルを生成する第2の決定モジュールと、を含む。
【0008】
コンピュータプログラムが記憶されるメモリ及び1つ又は複数のプロセッサーを含むコンピュータ機器であって、前記コンピュータ可読命令は、前記1つ又は複数のプロセッサーにより実行されると、前記1つ又は複数のプロセッサーに、上記のグラフデータ処理方法のステップを実現させる。
【0009】
1つ又は複数のコンピュータ可読命令が記憶される不揮発性コンピュータ可読記憶媒体であって、前記コンピュータ可読命令プログラムは、1つ又は複数のプロセッサーによって実行されると、前記1つ又は複数のプロセッサーに、上記のグラフデータ処理方法のステップを実現させる。
【0010】
コンピュータプログラムであって、前記コンピュータプログラムは、コンピュータ指令を含み、前記コンピュータ指令は、コンピュータ可読記憶媒体に記憶されている。コンピュータ機器のプロセッサーは、前記コンピュータ指令を前記コンピュータ可読記憶媒体から読み取って、前記プロセッサーは、前記コンピュータ指令を実行することで、前記コンピュータ機器に、上記のグラフデータ処理方法におけるステップを実行させる。
【図面の簡単な説明】
【0011】
本出願の実施例における技術案をより明らかに説明するために、以下で、実施例の記載の必要な図面を簡単に紹介する。明らかに、以下に記載の図面は、単に本出願のいくつかの実施例であり、当業者にとって、進歩性に値する労働を必要としないことを前提として、これらの図面に基づいて、他の図面を取得できる。
図1】1つの実施例における、グラフデータ処理方法の応用環境図である。
図2】1つの実施例における、グラフデータ処理方法のフロー概略図である。
図3】1つの実施例において、ネットワークグラフに対して3コアサブグラフ分割を行う概略図である。
図4】1つの実施例において、ネットワークグラフに対してk―coreによる分解及び閾値による分割をそれぞれ行う概略図である。
図5】1つの実施例において、密集サブグラフに基づいて、ネットワークグラフにおける安定ノードを決定するフロー概略図である。
図6】1つの実施例において、スパースサブグラフに基づいて、ネットワークグラフにおけるノードのコア数を決定するフロー概略図である。
図7】1つの実施例における、グラフデータ処理方法の概略図である。
図8】1つの具体的な実施例における、グラフデータ処理方法のフロー概略図である。
図9】1つの実施例における、グラフデータ処理装置の構造ブロック図である。
図10】1つの実施例における、コンピュータ機器の内部構造図である。
【発明を実施するための形態】
【0012】
本出願の目的、技術案、及び利点をより明らかにするために、以下で、図面及び実施例を結合して、本出願をさらに詳しく説明する。ここに記載の具体的な実施例は、本出願を限定するものではなく、単に本出願を解釈するためのものである。
【0013】
本出願が提供するグラフデータ処理方法は、図1の応用環境に適用されてもよい。端末102は、ネットワークを介してサーバー104と通信する。端末102と端末102との間は、サーバーを介してインタラクションを行って、サーバー104は、端末102がネットワークでインタラクションを行う時、形成したインタラクションデータを取得し、インタラクションデータに基づいて、ネットワークグラフを生成する。1つの実施例において、サーバー104は、ネットワークグラフにおける各ノードの関連度を取得し、所定の閾値及び各ノードの関連度に基づいて、密集サブグラフをネットワークグラフから分割し、密集サブグラフに基づいて、ネットワークグラフにおける安定ノード及び安定ノードのコア数を決定する。安定ノードのコア数は、所定の閾値よりも大きく、ネットワークグラフにおける安定ノードを除いた残りノード及び残りノードの間の接続エッジに基づいて、ネットワークグラフにおけるスパースサブグラフを取得し、スパースサブグラフ及び安定ノードに基づいて、スパースサブグラフにおける各ノードのコア数を決定する。
【0014】
端末102は、各種のパソコン、スマートフォン、タブレット、ノートパソコン、デスクトップパソコン、スマートスピーカー、スマートウォッチなどであってもよいが、これらに限定されない。サーバー104は、独立の物理サーバーであってもよく、複数の物理サーバーからなるサーバークラスタ又は分散システムであってもよく、さらに、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメイン名サービス、セキュリティーサービス、CDN(Content Delivery Network、コンテンツデリバリーネットワーク)、ビッグデータ、及び人工知能プラットフォームなどの基本的なクラウドコンピューティングサービスを提供するクラウドサーバーであってもよい。端末102とサーバー104とは、有線又は無線通信方式で直接又は間接的に接続されてもよく、これに対して、本出願は限定していない。
【0015】
本出願の実施例が提供するグラフデータ処理方法について、当該グラフデータ処理方法の実行本体は、本出願の実施例が提供するグラフデータ処理装置、又は当該グラフデータ処理装置が集積されたコンピュータ機器であってもよく、当該グラフデータ処理装置は、ハードウェア又はソフトウェアの方式で実現される。コンピュータ機器は、上記の端末102又はサーバー104であってもよい。
【0016】
本出願の実施例が提供するグラフデータ処理方法によれば、ネットワークグラフにおける各ノードのコア数を取得した後、ノードのコア数は、さらに、コア数に基づいて、ノードの対応する特徴ベクトルを生成し、特徴ベクトルは、特徴ベクトルに基づいて、ノードを分類する。例えば、機械学習(Machine Learning、ML)アルゴリズムの入力として、特徴ベクトルは、当該ノードに対する分類を実現する。
【0017】
1つの実施例において、図2に示すように、グラフデータ処理方法を提供し、当該方法が、図1のコンピュータ機器(端末102又はサーバー104)に適用されることを例として説明しており、以下のステップを含む。
ステップ202:ネットワークグラフにおける各ノードの関連度を取得する。
【0018】
グラフ(Graph)は、事物の間の関連をモデリングするデータ構造であり、グラフは、一連のノード及びノードを接続する接続エッジを含み、ノードは、頂点と呼ばれてもよい。2つのノードの間に接続エッジが存在すると、当該2つのノードの間には関連が存在することを示す。2つのノードの間の接続エッジは、重みを有してもよい。ノードの関連度は、当該ノードに接続されたエッジの本数を指し、当該ノードに隣接する近傍ノードの数でもあり、近傍ノードは、当該ノードと接続エッジを有するノードを指す。
【0019】
ネットワークグラフは、インターネットによるネットワークインタラクションデータに基づいて生成されたグラフである。ネットワークインタラクションデータは、例えば、支払いインタラクションデータ、インスタントメッセージングインタラクションデータ、オンラインショッピングインタラクションデータなどであってもよく、該当するネットワークグラフは、例えば、支払い関係ネットワークグラフ、インスタントメッセージング関係ネットワークグラフ及びオンラインショッピング関係ネットワークグラフなどであってもよい。
【0020】
具体的には、複雑なネットワークにおける有用な情報に対するマイニングを実現するために、コンピュータ機器は、当該ネットワークにおける大量のインタラクションデータに基づいて、ネットワークグラフを生成して、ネットワークグラフにおける各ノードの関連度を取得し、これによって、当該ネットワークグラフ及びその中の各ノードの関連度に基づいて、当該ネットワークグラフに対するグラフマイニングを実現する。グラフマイニング(graph mining)は、いくつかのアルゴリズムを使用して、グラフから潜在的且つ有用な情報をマイニングする過程を指し、グラフマイニングは、グラフの分類、グラフの距離、サブグラフに対するマイニング、などを含む。本出願の実施例においては、主に当該ネットワークグラフにおける各ノードのコア数をマイニングして、各ノードのコア数を取得した後、所定のコア数に合うノードのセットをネットワークグラフから検索する上に、各ノードのコア数に基づいて、該当する特徴ベクトルを他の機械学習アルゴリズムの入力として生成する。
【0021】
1つの実施例において、ネットワークグラフは、支払い関係ネットワークグラフであってもよく、支払い関係ネットワークグラフの生成ステップは、ユーザー識別子に対応する支払い記録を取得するステップと、支払い記録に基づいて、各ユーザー識別子の間の支払いインタラクションデータを取得するステップと、支払いインタラクションデータに基づいて、支払い関係ネットワークグラフを生成するステップと、を含む。支払い関係ネットワークグラフのノードは、ユーザー識別子を示し、支払い関係ネットワークグラフにおける2つのノードの間の接続エッジは、該当する2つのユーザー識別子の間には支払いインタラクションイベントが存在することを示す。
【0022】
支払いインタラクションイベントは、送金、年玉送り、借金、バーコードスキャン支払い、などのトレーディングイベントのうちの少なくとも1つである。本実施例において、1つのユーザーは、1つのノードであり、2つのユーザーの間に、支払いインタラクションイベントが存在すると、当該2つのユーザーの間には、1本の接続エッジが形成される。例えば、ユーザーaがユーザーbに送金すると、ユーザーaとユーザーbとの間には、1本の接続エッジが形成される。ここで、ユーザー数が多い場合、これらのユーザーの間に形成された接続エッジの数は、超大規模であり、このように、生成された支払いネットワーク関係グラフは、超大規模である。例えば、ウィーチャットペイのシナリオでは、ノードの数は、20億に達しており、当該20億のノードの間に形成された接続エッジの本数は、数千億の超大規模に達することができる。
【0023】
1つの実施例において、ネットワークグラフは、ソーシャル関係ネットワークグラフであってもよく、ソーシャル関係ネットワークグラフの生成ステップは、ユーザー識別子の履歴会話データを取得するステップと、履歴会話データに基づいて、ソーシャル関係ネットワークグラフを生成するステップと、を含む。ソーシャル関係ネットワークグラフのノードは、ユーザー識別子を示し、ソーシャル関係ネットワークグラフにおける2つのノードの間の接続エッジは、該当する2つのユーザー識別子の間には履歴会話が存在することを示す。
【0024】
本実施例において、1つのユーザーは、1つのノードである。2つのユーザーの間に履歴会話が存在すると、当該2つのユーザーの間には、1本の接続エッジが形成される。別の実施例において、2つのユーザーの間は、友人関係を互いに追加した場合、当該2つのユーザーの間には1本の接続エッジが形成される。同様に、ユーザーの数が多い場合、形成されたソーシャル関係ネットワークグラフも非常に複雑である。
【0025】
1つの実施例において、ネットワークグラフにおける各ノードの関連度を取得するステップは、ネットワークグラフを取得するステップと、ネットワークグラフにおける各ノードの近傍ノードの数を決定するステップと、近傍ノードの数を該当するノードの関連度とするステップと、を含む。
【0026】
グラフは、隣接行列又は隣接リストで示され、隣接リストにおいて、グラフにおける各ノードに対して、当該ノードから始まった1つのエッジのリストが記憶される。例えば、ノードAは、B、C、及びDにそれぞれ接続された3本のエッジを有すると、Aのリストには、3本のエッジがある。隣接行列において、行及び列は、何れもノードを示し、2つのノードによって决定された行列における対応要素は、当該2つのノードが接続されるかどうかを示し、接続されると、当該対応要素の値は、当該2つのノードの間の接続エッジの重みを示す。
【0027】
コンピュータ機器は、ネットワークグラフに対応する隣接リスト又は隣接行列を取得し、当該ネットワークグラフにおける各ノードの隣接ノードの数を隣接リスト又は隣接行列からトラバースし、近傍ノードの数を該当するノードの関連度としてもよい。
【0028】
支払いシナリオでは、支払い関係ネットワークグラフにおける、あるノードの関連度は、当該ノードとトレーディング行為を有するノードの数と見なされてもよい。ソーシャルシナリオでは、ソーシャル関係ネットワークグラフにおける、あるノードの関連度は、当該ノードと履歴会話が存在するノードの数と見なされてもよい。
【0029】
ステップ204:所定の閾値及び各ノードの関連度に基づいて、密集サブグラフをネットワークグラフから分割する。
【0030】
本実施例においては、主にネットワークグラフにおける各ノードのコア数をマイニングする。コア数(coreness)は、ネットワークグラフ全体におけるノードの重要性を判定する指標の1つである。1つのグラフのkコアサブグラフは、関連度がk以下であるノードを当該グラフから繰り返して除去した後、残りのサブグラフを指す。つまり、グラフGにおける、関連度がkより小さい頂点を全部的に除去して、サブグラフG'を取得し、グラフG'における、関連度がkより小さい頂点を全部的に除去して、新たなサブグラフG''を取得し…、このように類推して、残りのサブグラフにおける各ノードの関連度が何れもkより大きくなるまで停止し、当該グラフGのkコアサブグラフを取得する。ノードのコア数は、当該ノードが所在する最大コアサブグラフとして定義され、即ち、1つのノードは、Mコアサブグラフに存在し、(M+1)コアサブグラフから除去されると、当該ノードのコア数は、Mである。
【0031】
例えば、2コアサブグラフは、まず、関連度が2より小さい全てのノードをグラフから除去してから、関連度が2より小さいノードを残りのグラフから除去し、順に類推して、除去できなくなるまで、2コアサブグラフを取得する。3コアは、まず、関連度が3より小さい全てのノードをグラフから除去してから、関連度が3より小さいノードを残りのグラフから除去し、順に類推して、除去できなくなるまで、当該グラフの3コアサブグラフを取得する。1つのノードは、6コアサブグラフではなく、せいぜい5コアサブグラフに位置すると、当該ノードのコア数は、5である。図3に示すように、3コアサブグラフの分割過程の概略図である。図3を参照して分かるように、関連度が3より小さいノードをグラフから2回除去した後、最終的な3コアサブグラフを取得する。
【0032】
以上の分析から分かるように、コア数がkより大きいノードの関連度は、必然的にkより大きい。従って、本出願の実施例において、コンピュータ機器は、1つの閾値を設置し、各ノードの関連度及び当該閾値に基づいて、元のネットワークグラフを密集サブグラフ及びスパースサブグラフという2つの部分に分割して、各ノードのコア数を順にマイニングする。閾値によって密集サブグラフをネットワークグラフから分割することで、密集サブグラフを直接的にマイニングし、コア数が閾値より小さい非重要ノードに多くの反復時間及びコンピューティングリソースを浪費することを回避し、超大規模なネットワークのコア数のマイニングにとって非常に重要である。ここで、密集サブグラフにおける各ノードの関連度は、必然的に当該閾値より大きいが、ネットワークグラフにおいて、関連度が当該閾値より大きいノードは、必ずしも当該密集サブグラフに存在するわけではない。
【0033】
所定の閾値は、実際ニーズに基づいて設置される。好ましくは、具体的な業務シナリオのニーズに基づいて、所定の閾値を決定する。例えば、過去の経験に基づいて、コア数が300より大きいノードは、ネットワークグラフにおいて大きな作用を発揮すれば、コンピュータ機器は、所定の閾値を300に設置する。好ましくは、コンピューティングリソースの制限に基づいて、所定の閾値を決定してもよい。なぜならば、閾値を小さく設置するほど、ネットワークグラフから分割される密集サブグラフに含まれたノード数が大きく、密集サブグラフが大きく、必要なコンピューティングリソースも多く、これに対して、閾値を大きく設置するほど、ネットワークグラフから分割される密集サブグラフが小さく、必要なコンピューティングリソースも少ないためである。好ましくは、当該ネットワークグラフにおける各ノード関連度の分布に基づいて、閾値の大きさを設置してもよい。例えば、ネットワークグラフにおける大部分のノードの関連度が何れもある値より小さいと、当該閾値を当該値に設置すればよい。
【0034】
1つの実施例において、各ノードの関連度及び所定の閾値に基づいて、密集サブグラフをネットワークグラフから分割するステップは、所定の閾値を取得するステップと、関連度が閾値以下であるノード及びノードが所在する接続エッジをネットワークグラフから除去し、ネットワークグラフにおける残りノード及び残りノードの間の接続エッジに基づいて、密集サブグラフを取得するステップと、を含む。
【0035】
具体的には、所定の閾値に基づいて、コンピュータ機器は、関連度が当該閾値以下であるノードを元グラフからフィルタリングすると、密集サブグラフを得て、取得された当該密集サブグラフにおける全てのノードの関連度は、何れも当該閾値より大きい。このように、閾値を大きく設置するほど、取得された密集サブグラフが小さく、必要なコンピューティングリソースも少ない。
【0036】
図4に示すように、1つの実施例において、ネットワークグラフに対してk―coreによる分解及び閾値による分割をそれぞれ行う概略図である。図4の左側を参照すると、k―coreアルゴリズムによって、k=1、k=2、k=3…に従って、下から上へネットワークグラフにおける各ノードのコア数を順にマイニングする概略図である。即ち、k=1から、関連度がk以下であるノードを繰り返し除去し、k=1に対して、コンピュータ機器は2回反復し、k=2に対して、コンピュータ機器は2回反復し、k=3に対して、コンピュータ機器は2回反復し、k=4に対して、コンピュータ機器は2回反復し、関連度が5より大きいノードが存在していないため、k=5に対して、コンピュータ機器は1回反復する。つまり、コンピュータ機器は、合計で、9回反復した場合に限り、当該グラフにおける各ノードのコア数を決定して、コア数が同様であるノードからなるサブグラフを取得する。図4の右側を参照すると、関連度が所定の閾値よりも小さいノードを直接的に元グラフから反復的に除去する。閾値が2であり、元グラフを密集サブグラフ及びスパースサブグラフに分割することを例として、コンピュータ機器は、関連度が2以下であるノードを反復的にフィルタリングし、合計で、2回反復すれば、密集サブグラフ及びスパースサブグラフをオリジナルのネットワークグラフから決定できる。反復計算のスパース性のため、以降の反復過程において、多くのノードのコア数は、決定された後、更新されていない。
【0037】
ステップ206:密集サブグラフに基づいて、ネットワークグラフにおける安定ノード及び安定ノードのコア数を決定し、安定ノードのコア数は、所定の閾値よりも大きい。
【0038】
安定ノードは、密集サブグラフからマイニングされた、コア数が所定の閾値よりも大きいノードである。密集サブグラフをネットワークグラフから分割した後、コンピュータ機器は、まず、密集サブグラフをマイニングして、その安定ノード及び安定ノードのコア数を決定し、分割統治の第1のステップを実現する。
【0039】
具体的には、スパースサブグラフにおける各ノードの関連度は、所定の閾値よりも小さいため、スパースサブグラフにおける各ノードは、密集サブグラフにおける各ノードのコア数に影響していない。そうすれば、コンピュータ機器は、直接的に密集サブグラフに切り込んで、密集サブグラフをマイニングし、密集サブグラフにおける各ノードの関連度に基づいて、各ノードのコア数を決定し、コア数が所定の閾値よりも大きいノードをネットワークグラフにおける安定ノードとする。
【0040】
1つの実施例において、コンピュータ機器は、k―coreアルゴリズムによって、密集サブグラフに対してk―coreマイニングを直接的に行って、コア数が所定の閾値よりも大きい安定ノードを密集サブグラフからマイニングする。具体的には、k=1、k=2、…に従って、kは所定の閾値に等しく、関連度がk以下であるノードを当該密集サブグラフから繰り返し除去し、kコアサブグラフを取得し、密集サブグラフにおける各ノードが所在する最大コア数のサブグラフを決定して、さらに、各ノードのコア数を決定し、コア数が所定の閾値よりも大きいノードを安定ノードとする。
【0041】
1つの実施例において、コンピュータ機器は、密集サブグラフに対して反復を行う場合、今回の反復過程で、ノードの前回の反復後、各近傍ノードのコア指数によって、該当するノードの今回の反復過程のコア数を更新する。そして、1つのノードは、コア数が当該ノードより大きい他のノードのコア数の計算に影響していないため、今回、各ノードのコア数を反復して更新した後、コンピュータ機器は、さらに、更新後のコア数が所定の閾値よりも大きいノードを次回の反復に継続的に参加させ、更新後のコア数が所定の閾値以下であるノードを次回の反復に参加させていない。これによって、密集サブグラフにおけるコア数が所定の閾値よりも大きいノードをマイニングできる。
【0042】
1つの実施例において、ノードの全ての近傍ノードのコア指数は、H指数であってもよく、1つのノードのH指数がhであれば、当該ノードは、少なくともh個の近傍ノードを有し、当該h個の近傍ノードの関連度は、何れもh以上である。つまり、ノードは、近傍ノードに現在コア数がh以上であるh個の近傍ノードが存在することを満たしているとともに、現在コア数がh+1以上であるh+1個の近傍ノードが存在することを満たしていないと、ノードの対応するコア指数をhに決定する。hは正の整数である。
【0043】
1つの実施例において、図5に示すように、密集サブグラフに基づいて、ネットワークグラフにおける安定ノード及び安定ノードのコア数を決定するステップは、以下のステップを含む。
ステップ502:密集サブグラフにおける各ノードの近傍ノードの数に基づいて、密集サブグラフにおける各ノードの関連度を取得し、密集サブグラフにおける関連度を該当するノードの初期の現在コア数とする。
【0044】
具体的に、密集サブグラフをマイニングする場合、コンピュータ機器は、密集サブグラフにおける各ノードの当該密集サブグラフにおける関連度によって、各ノードのコア数を最初の現在コア数として初期化する。
【0045】
ここで、本実施例における「現在コア数」は、動的に変化し、前回の反復後、各ノードの更新されたコア数を指し、「前回の反復過程」、「今回の反復過程」も動的に変化し、次回の反復の際、「今回の反復過程」は、「前回の反復過程」になって、次回の反復は「今回の反復過程」になる。
【0046】
ステップ504:密集サブグラフにおける各ノードに対して、密集サブグラフにおけるノードの近傍ノードの現在コア数に基づいて、ノードに対応するコア指数を計算するステップと、コア指数が所定の閾値以下である場合、ノードを密集サブグラフから除去するステップと、コア指数が閾値よりも大きく、且つ、ノードの現在コア数よりも小さいと、ノードのコア指数に基づいて、ノードの現在コア数を更新するステップとを反復的に実行する。今回の反復過程で、密集サブグラフにおける各ノードの現在コア数は、何れも更新されていないまで、反復を停止する。
【0047】
具体的に、各回の反復過程で、コンピュータ機器は、密集サブグラフにおける各ノードニーズを何れも処理する必要がある。密集サブグラフにおける各ノードに対して、その近傍ノードの現在コア数、即ち、前のラウンドの反復過程の後、全ての近傍ノードのコア数に基づいて、当該ノードの対応するコア指数を計算する。ノードのコア指数は、所定の閾値の以下であれば、当該ノードは、コア数が当該ノードの他のノードのコア数より大きな計算に影響していない。そうすれば、当該ノードは、以降の反復過程に参加する必要がなく、当該ノードを密集サブグラフから除去してもよい。ノードのコア指数は、所定の閾値よりも大きく且つノードの現在コア数より小さいと、当該コア指数によって当該ノードの現在コア数を更新して、当該ノードは、以降の反復過程に参加し続ける。今回の反復過程における各ノードのコア数は、当該ノードの全ての近傍の、前回の反復過程におけるコア数に基づいて決定されて、ローカル性を有するため、容易に分散並列コンピューティングのロジックに拡張され、全体のマイニング過程を速める。
【0048】
反復停止条件は、今回の反復過程で、密集サブグラフにおける全ての残りノードの現在コア数は何れも変化していない。つまり、前回反復におけるノードの近傍ノードのコア数に基づいて、計算して得られたコア指数は、当該ノードの現在コア数と一致すると、当該ノードのコア数は更新されず、密集サブグラフにおける全ての残りノードの現在コア数が今回の反復過程で何れも更新されていないと、反復を停止する。
【0049】
ここで、各回の反復過程では、密集サブグラフにおけるコア指数が所定の閾値以下であるノードを除去するため、反復過程で、密集サブグラフも動的に変化し、さらに、密集サブグラフにおける各ノードの近傍ノードも変化し続けるため、各ノードの近傍ノードの現在コア数に基づいて、そのコア指数を計算する場合、最初の密集サブグラフにおける当該ノードの近傍ノードの現在コア数ではなく、当該ノードの、現在の密集サブグラフにおける近傍ノードの現在コア数に基づいて計算し、計算量をさらに減少させる。
【0050】
1つの実施例において、今回の反復後、計算して得られたノードのコア指数が所定の閾値以下であれば、コンピュータ機器は、当該ノードを不安定状態に表して、不安定状態として表されるノードは、次回の反復過程に参加していない。
【0051】
1つの実施例において、上記の方法は、今回の反復が終了した後、今回の反復過程で現在コア数が更新されたノードを記録するステップであって、記録されたノードは、次回の反復開始時、記録されたノードの密集サブグラフにおける近傍ノードを次回の反復過程でコア指数を改めて計算するターゲットノードとすると指示するステップをさらに含む。密集サブグラフにおける各ノードに対して、密集サブグラフにおけるノードの近傍ノードの現在コア数に基づいて、ノードの対応するコア指数を計算するステップは、密集サブグラフにおけるターゲットノードに対して、密集サブグラフにおけるターゲットノードの近傍ノードの現在コア数に基づいて、ターゲットノードに対応するコア指数を計算するステップを含む。
【0052】
本実施例において、今回の反復過程で現在コア数が更新されたノードを記録することで、次回の反復過程でコア数を改めて計算するノードを直接的に決定できる。あるノードのコア数が更新された後、当該ノードは、その近傍ノードのコア数の決定に影響し、従って、今回の反復過程が終了した後、これらのコア数が更新されたノードを記録し、次回の反復開始時、次回の反復過程でコア数を改めて計算するノードとして、これらのノードの近傍ノードを密集サブグラフにおける残りノードからトラバースすることで、密集サブグラフにおける全てのノードに対してコア数を改めて計算することを回避して、マイニング効率を向上させる。ここで、これらの現在コア数が更新されたノードの近傍ノードには、密集サブグラフから除去されたノードが含まれていない。
【0053】
1つの実施例において、上記の方法は、今回の反復過程開始時、ノード更新数をゼロに初期化するステップであって、ノード更新数は今回の反復過程で現在コア数が更新されたノードの数を記録するステップと、今回の反復過程で現在コア数が更新されたノードの数を統計するステップと、数に基づいて、ノードの更新数を更新するステップと、今回の反復過程が終了した場合、ノード更新数は非ゼロであると、次回の反復過程を続けるステップと、今回の反復過程が終了した場合、ノード更新数はゼロであると、反復を停止するステップと、をさらに含む。
【0054】
本実施例においては、密集サブグラフのマイニング過程で、今回の反復過程で現在コア数が更新されたノードの数を1つの記号で記録する。コンピュータ機器は、各ラウンドの反復過程で現在コア数が更新されたノードの数を記録する記号を設置し、今回の反復過程開始時、当該記号を0にして、今回の反復に参加するノードに対して、1つのノードのコア数が更新された場合、当該記号を1増加する。そうすれば、今回の反復が終了した後、当該記号が0ではないと、今回の反復過程にはコア数が更新されたノードが存在することを示し、反復し続けて、当該記号が0であると、今回の反復過程全体にはコア数が更新されたノードが存在していなく、反復過程全体が終了する。
【0055】
ステップ506:反復停止時に取得された密集サブグラフにおけるノードを安定ノードとし、反復停止時に安定ノードの現在コア数を安定ノードの対応するコア数とする。
【0056】
反復が終了した後、密集サブグラフにおける残りのノードのコア数は、何れも所定の閾値よりも大きいため、これらのノードは、安定ノードと呼ばれる。安定ノードのコア数は、当該ノードのオリジナルのネットワークグラフ全体におけるコア数である。
【0057】
1つの具体的な実施例において、密集サブグラフにおける各ノードのコア数を決定する過程は以下の通りである。即ち、
1.各ノードの当該密集サブグラフにおける近傍ノードの数に基づいて、密集サブグラフにおける各ノードの関連度を計算し、各ノードの現在コア数を関連度で初期化する。
2.numMsgsをゼロで初期化し、numMsgsは各ラウンドの反復中、コア数が更新されたノードの数を示す。
3.密集サブグラフにおける各ノードに対して、その近傍ノードの現在コア数に基づいて、コア指数を計算し、当該ノードの近傍ノード、は当該ノードの密集サブグラフに位置して、nonActive状態がフィルタリングされたノードである。コア指数が所定の閾値以下である場合、当該ノードをnonActive状態として表し、コア指数が所定の閾値よりも大きく且つノードの現在コア数より小さい場合、コア指数に基づいて、当該ノードの現在コア数を更新して、numMsgsを1だけ増加する。
4.numMsgsが0ではないと、第2~3ステップを繰り返し、さもなければ、反復を終了させる。この場合、密集サブグラフにおける、状態がnonActiveとして表されていないノードの現在コア数は、オリジナルのネットワークグラフ全体における当該ノードのコア数であり、nonActiveとして表されていないノードは、当該ネットワークグラフにおける安定ノードである。
【0058】
本実施例において、コア指数に基づいて、密集サブグラフにおける各ノードのコア数を計算し、各回の反復計算によって得られたコア数と所定の閾値とを比較し、反復計算されたコア数が閾値よりも大きい場合に限り、当該ノードに対して反復を続けて、これに対して、以降の反復に参加していなく、密集サブグラフに対するマイニング効率を向上させる。
【0059】
ステップ208:ネットワークグラフにおける安定ノードを除いた残りノード及び残りノードの間の接続エッジに基づいて、ネットワークグラフにおけるスパースサブグラフを取得する。
【0060】
具体的に、コンピュータ機器がネットワークグラフにおける安定ノードを決定した後、ネットワークグラフにおける、安定ノードを除いた残りノードのコア数は、所定の閾値以下であり、これらの残りノード及びその間で構成された接続エッジはスパースサブグラフと呼ばれる。
【0061】
1つの実施例において、ネットワークグラフにおける安定ノードを除いた残りノード及び残りノードの間の接続エッジに基づいて、ネットワークグラフにおけるスパースサブグラフを取得するステップは、安定ノードをネットワークグラフから除去するステップと、安定ノードを除去した後、残りノード及び残りノードの間の接続エッジに基づいて、スパースサブグラフを取得するステップと、を含む。
【0062】
以上に言及されたように、グラフは、隣接行列又は隣接リストの形態で記憶され、ネットワークグラフにおける安定ノードを決定した後、コンピュータ機器は、隣接行列又は隣接リストからトラバースして、安定ノードを除去した後、残りノード及残りノードの間の接続関係を取得して、スパースサブグラフを得る。
【0063】
ステップ210:スパースサブグラフ及び安定ノードに基づいて、スパースサブグラフにおける各ノードのコア数を決定する。
【0064】
スパースサブグラフにおける各ノードのコア数の計算は、同じように、上記のコア指数反復の方法に従うが、安定ノードは、スパースサブグラフにおける各ノードのコア数の計算に影響するため、反復過程で、さらに、スパースサブグラフにおける安定ノードのノードのコア数に対する増幅を配慮しなければならない。ネットワークグラフにおけるスパースサブグラフ及び安定ノードを取得した後、コンピュータ機器は、当該スパースサブグラフ及び安定ノードに基づいて、当該スパースサブグラフにおける各ノードのコア数を決定して、分割統治の第2のステップを実現する。
【0065】
1つの実施例において、コンピュータ機器は、k―coreアルゴリズムを使用して、スパースサブグラフに対してk―coreマイニングを行って、各ノードのコア数をスパースサブグラフからマイニングする。具体的に、k=1、k=2、…に従って、kは所定の閾値に等しく、関連度がk以下であるノードを当該スパースサブグラフから繰り返し除去して、kコアサブグラフを取得し、スパースサブグラフにおける各ノードが所在する最大コア数のサブグラフを決定し、各ノードのコア数を決定する。
【0066】
1つの実施例において、スパースサブグラフに対して反復を行う時、今回の反復過程で、コンピュータ機器は、ノードの前回反復後、当該ノードのネットワークグラフにおける各近傍ノードのコア指数によって、該当するノードの今回の反復過程のコア数を更新する。
【0067】
1つの実施例において、ノードの全ての近傍ノードのコア指数は、H指数であってもよく、1つのノードのH指数がhであれば、当該ノードは、少なくともh個の近傍ノードを有し、当該h個の近傍ノードの関連度は、何れもh以上である。つまり、ノードは、近傍ノードには、現在コア数がh以上であるh個の近傍ノードが存在することを満たしているとともに、現在コア数がh+1以上であるh+1個の近傍ノードが存在することを満たしていないと、ノードの対応するコア指数をhに決定し、hは正の整数である。
【0068】
1つの実施例において、図6に示すように、スパースサブグラフ及び安定ノードに基づいて、スパースサブグラフにおける各ノードのコア数を決定するステップは、以下のステップを含む。即ち、
ステップ602:オリジナルのネットワークグラフにおける、スパースサブグラフにおける各ノードの近傍ノードの数に基づいて、スパースサブグラフにおける各ノードの現在コア数を初期化する。
【0069】
具体的に、スパースサブグラフをマイニングする時、コンピュータ機器は、オリジナルのネットワークグラフにおける、スパースサブグラフにおける各ノードの関連度によって、各ノードのコア数を最初の現在コア数として初期化する。
【0070】
つまり、スパースサブグラフにおける各ノードのコア数を計算する時、各回の反復過程で、スパースサブグラフにおけるノードによる影響だけではなく、安定ノードによる影響も配慮しなければならないため、安定ノードのその関連度に対する増幅を配慮する。つまり、ノードのスパースサブグラフにおける関連度と、当該ノードと安定ノードとの接続数との和によって当該ノードの現在コア数を初期化し、実際には、オリジナルのネットワークグラフにおける当該ノードの関連度でもある。
【0071】
1つの実施例において、前のステップに基づいて、安定ノードのコア数は既に決定され、安定ノードのコア数は何れも所定の閾値よりも大きく、スパースサブグラフにおける各ノードのコア数は何れも所定の閾値以下であるため、スパースサブグラフにおける各ノードのコア数を計算する時、安定ノードのコア数を使用しようとすると、メモリを低減させるために、安定ノードのコア数を何れも所定の閾値に設置してもよく、所定の閾値よりも大きな任意の値に設置してもよく、上記ステップに従って決定された安定ノードのコア数を直接的に使用してもよい。上記の異なる方式の設置は、スパースサブグラフにおける各ノードのコア数に対する計算結果に影響していない。
【0072】
ステップ604:スパースサブグラフにおける各ノードに対して、ネットワークグラフにおけるノードの近傍ノードの現在コア数に基づいて、ノードに対応するコア指数を計算するステップと、コア指数がノードの現在コア数よりも小さいと、ノードのコア指数に基づいて、ノードの現在コア数を更新するステップとを反復的に実行して、今回の反復過程でスパースサブグラフにおける各ノードの現在コア数は何れも更新されていないまで、反復を停止する。
【0073】
具体的に、各回の反復過程で、コンピュータ機器は、スパースサブグラフにおける各ノードを何れも処理する。スパースサブグラフにおける各ノードに対して、ネットワークグラフにおける近傍ノードの現在コア数、即ち、前のラウンドの反復過程後、全ての近傍ノードのコア数に基づいて、当該ノードの対応するコア指数を計算する。ここで、近傍ノードは安定ノードを含み、安定ノードのコア数は上記ステップにおいて既に決定されたため、スパースサブグラフの反復過程で、安定ノードのコア数は何れも更新に参加していない。ノードのコア指数がノードの現在コア数より小さいと、当該コア指数によって当該ノードの現在コア数を更新する。各ノードの今回の反復過程でのコア数は、当該ノードの全ての近傍ノードの前回反復過程でのコア数に基づいて決定され、ローカル性を有するため、容易に分散並列コンピューティングのロジックに拡張され、全体のマイニング過程を速める。
【0074】
反復停止条件は、今回の反復過程で、スパースサブグラフにおける全てのノードの現在コア数は何れも変化していない。つまり、ノードの近傍ノードの前回反復でのコア数に基づいて、計算して得られたコア指数が当該ノードの現在コア数と一致すると、当該ノードのコア数は更新されず、スパースサブグラフにおける全てのノードの現在コア数が今回の反復過程で何れも更新されていないと、反復を停止する。
【0075】
1つの実施例において、上記の方法は、今回の反復が終了すると、今回の反復過程で現在コア数が更新されたノードを記録するステップであって、記録されたノードは、次回の反復開始時にスパースサブグラフにおける記録されたノードの近傍ノードを、次回の反復過程でコア指数を改めて計算するターゲットノードとすると指示するステップをさらに含む。スパースサブグラフにおける各ノードに対して、ネットワークグラフにおけるノードの近傍ノードの現在コア数に基づいて、ノードに対応するコア指数を計算するステップは、スパースサブグラフにおけるターゲットノードに対して、ネットワークグラフにおけるターゲットノードの近傍ノードの現在コア数に基づいて、ターゲットノードに対応するコア指数を計算する。
【0076】
本実施例において、今回の反復過程で現在コア数が更新されたノードを記録することで、次回の反復過程でコア数を改めて計算するノードを直接的に決定できる。あるノードのコア数が更新された後、当該ノードは、その近傍ノードのコア数の決定に影響し、従って、今回の反復過程が終了した後、これらのコア数が更新されたノードを記録し、次回の反復開始時、次回の反復過程でコア数を改めて計算するノードとして、これらのノードの近傍ノードをスパースサブグラフからトラバースする。これによって、スパースサブグラフにおける全てのノードに対してコア数を改めて計算することを回避し、マイニング効率を向上させる。ここで、現在コア数が更新されたノードの近傍ノードを決定した後、近傍ノードには安定ノードが含まれると、安定ノードに対してコア数を改めて計算する必要がない。
【0077】
1つの実施例において、上記の方法は、今回の反復過程開始時、ノード更新数をゼロに初期化するステップであって、ノード更新数は今回の反復過程で現在コア数が更新されたノードの数を記録するステップと、今回の反復過程で現在コア数が更新されたノードの数を統計するステップと、数に基づいて、ノードの更新数を更新するステップと、今回の反復過程が終了した場合、ノード更新数は非ゼロであると、次回の反復過程を続けるステップと、今回の反復過程が終了した場合、ノード更新数はゼロであると、反復を停止するステップと、を含む。
【0078】
本実施例において、スパースサブグラフのマイニング過程で、今回の反復過程で現在コア数が更新されたノードの数を1つの記号で記録する。コンピュータ機器は、各ラウンドの反復過程で現在コア数が更新されたノードの数を記録する記号を設置して、今回の反復過程開始時、当該記号を0にして、今回の反復に参加するノードに対して、1つのノードのコア数が更新された場合、当該記号を1だけ増加する。そうすれば、今回の反復が終了した後、当該記号が0ではないと、今回の反復過程にはコア数が更新されたノードが存在し、反復し続け、当該記号が0であると、今回の反復過程全体には何れもコア数が更新されたノードが存在していなく、反復過程全体が終了する。
【0079】
ステップ606:反復停止時にノードの現在コア数をノードに対応するコア数とする。
【0080】
反復が終了した後、スパースサブグラフにおける各ノードのコア数は、当該ノードのオリジナルのネットワークグラフ全体におけるコア数である。
【0081】
1つの具体的な実施例において、スパースサブグラフにおける各ノードのコア数を決定する過程は、以下の通りである。
1.スパースサブグラフにおける各ノードの関連度を計算する。
2.スパースサブグラフにおける各ノードに対して、安定ノードに接続された数qを統計し、当該ノードの現在コア数をq値とその関連度との和で初期化する。
3.numMsgsをゼロで初期化し、numMsgsは各ラウンドの反復においてコア数が更新されたノードの数を示す。
4.スパースサブグラフにおける各ノードに対して、その近傍ノードの現在コア数に基づいて、コア指数を計算する。ここで、近傍セットは、オリジナルのネットワークグラフにおけるノードの近傍ノードを指し、つまり、近傍ノードは、スパースサブグラフにおけるノードだけではなく、安定ノードも含む。コア指数がノードの現在コア数より小さいと、コア指数に基づいて当該ノードの現在コア数を更新し、且つ、numMsgsを1だけ増加する。
5.numMsgsが0ではないと、第3~4ステップを繰り返し、さもなければ、反復を終了させ、この場合、スパースサブグラフにおける各ノードのコア数は、各ノードのオリジナルのネットワークグラフ全体におけるコア数である。
【0082】
上記のグラフデータ処理方法において、ネットワークグラフにおける各ノードの関連度を取得した後、分割統治の思想に基づいて、ネットワークグラフに対して分割統治を行って、これによって、超大規模なネットワークのサブグラフマイニングをサポートできる。つまり、各ノードの関連度に基づいて、完全なネットワークグラフを密集サブグラフ及びスパースサブグラフという2つの部分に分けてマイニングすることで、メモリの占用を大幅に低減させ、直接的に密集サブグラフに切り込むことができるため、非重要なノードに多くの反復時間及びコンピューティングリソースを浪費することを回避し、マイニング性能を向上させる。
【0083】
スパースサブグラフにおける各ノードは、密集サブグラフにおけるノードに影響することがないため、密集サブグラフに対して、その安定ノード及び安定ノードの対応するコア数を直接的に決定してから、ネットワークグラフにおける当該安定ノード及び安定ノードの間の接続エッジを除いた残りの部分をスパースサブグラフとして形成する。密集サブグラフにおける安定ノードは、その中のノードに影響するため、当該スパースサブグラフに対して、スパースサブグラフ自体及び密集サブグラフにおける安定ノードに基づいて、当該スパースサブグラフにおける各ノードのコア数を決定する。ネットワークグラフにおける各ノードのコア数をマイニングした後、コア数が該当するノードの特徴として、該当する特徴ベクトルを生成して、他のダウンストリームタスクに入力する。
【0084】
Parameter Serverは、機械学習分野に適用され、パラメータを分散的に記憶又は更新する超大規模なパラメータサーバーであり、Angelは、パラメータサーバー理念に基づいて開発された、高性能分散機械学習プラットフォームであり、Sparkは、大規模データ処理のために設計された迅速且つ汎用のコンピューティングエンジンであり、Spark on Angelは、Angelの強力なパラメータサーバー機能とSparkの大規模データ処理能力とを結合した高性能分散計算プラットフォームである。
【0085】
1つの実施例において、コンピュータ機器は、Spark on Angelで上記のグラフデータ処理方法の反復過程を実現する。
【0086】
具体的には、まず、前のラウンドの反復過程でコア数が更新されたノードをパラメータサーバーから抽出する。ノードのコア数は、その近傍ノードのコア数によって决定され、近傍ノードのコア数値が変化すると、当該ノードコア数に影響するため、今回の反復において、コア数を改めて計算するノードを推定できる。そして、コア数を改めて計算するノード及びその近傍ノードのコア数をパラメータサーバーから抽出する。そして、コア指数に基づいて、今回の反復においてこれらのノードのコア数を計算し、計算によるコア数によって、前のコア数を更新しようとすると、更新後のコア数をパラメータサーバーに記憶して、反復過程に用いる。
【0087】
図7に示すように、1つの実施例におけるグラフデータ処理方法の概略図である。図7を参照すると、Spark on Angelプラットフォームで上記のグラフデータ処理方法を実現するフローを示している。パラメータサーバーには、全てのノードの現在コア数、各ラウンドの反復、前のラウンドの反復において更新されたノード及びそのコア数、が記憶されており、反復サーバーには隣接リストが記憶される。各反復サーバーにとって、各回の反復は、主に以下のいくつかのステップを有している。
1.前のラウンド反復において更新されたノードをパラメータサーバーのReadMessageから抽出して、当該ラウンドの反復でコア数を改めて計算するノードを推定する。ここで、ノードのコア数は、その近傍ノードのコア数によって决定され、近傍ノードのコア数が変化すると、当該ノードのコア数に影響することを根拠とする。
2.計算を必要とするノード及びその近傍ノードのコア数をパラメータサーバーのCorenessから抽出する。
3.当該ラウンドの反復におけるノードのコア数を計算する。
4.パラメータサーバーWriteMessage及びCorenessに記憶されたコア数を第3ステップで得られたコア数によって更新する。
【0088】
全ての反復サーバーは1回計算した後で、WriteMessageによってReadMessageを更新して、WriteMessageをリセットする。ReadMessageが空であるかどうかを判定し、空であれば、全てのノードのコア数は何れも更新されていないことを示し、反復を終了させ、サモンナイト、反復を続ける。
【0089】
本実施例においては、Sparkプラットフォームの効率的なデータ並行処理能力によってコア数を更新する反復計算を行うことで、データ処理効率を向上させる。Angelの強力なパラメータサーバーの記憶能力によってコア数を抽出又は更新することで、SparkにおけるシングルDriverのネットワーク制約を除去して、超大規模な関係ネットワークのk―coreマイニングをサポートできる。k―coreマイニング自体の特典によって、深く反復することに連れて、大部分のノードは更新されず、安定に維持され、計算過程は一定のスパース性を備えるため、分割統治の思想に基づいて1つの閾値を設定することで、完全なグラフ構造を密集サブグラフ及びスパースサブグラフという2つのステップに分けてマイニングし、メモリの占用を大幅に低減させ、計算量を減少させ、運転速度がより速くなって、リソース消費もより低くなる。そして、直接的に密集サブグラフに切り込むことができるため、コア数が1、2、…である、などの非重要なノードには、多くの反復時間及びコンピューティングリソースを浪費することを回避する。これは、超大規模ネットワークのk―coreマイニングに対しても非常に重要である。
【0090】
1つの具体的な実施例においては、図8に示すように、上記のグラフデータ処理方法は、以下のいくつかのステップを含む。
ステップ802:ネットワークグラフを取得する。
ステップ804:ネットワークグラフにおける各ノードの近傍ノードの数を決定する。
ステップ806:近傍ノードの数を該当するノードの関連度とする。
ステップ808:所定の閾値を取得する。
ステップ810:関連度が閾値以下であるノード及びノードの所在している接続エッジをネットワークグラフから除去し、ネットワークグラフにおける残りノード及び残りノードの間の接続エッジに基づいて、密集サブグラフを取得する。
ステップ812:密集サブグラフにおける各ノードの近傍ノードの数に基づいて、密集サブグラフにおける各ノードの関連度を取得し、密集サブグラフにおける関連度を該当するノードの初期の現在コア数とする。
ステップ814:密集サブグラフにおける各ノードに対して、密集サブグラフにおけるノードの近傍ノードの現在コア数に基づいて、ノードに対応するコア指数を計算するステップと、コア指数が所定の閾値以下である場合、ノードを密集サブグラフから除去するステップと、コア指数が閾値よりも大きく、且つノードの現在コア数よりも小さいと、ノードのコア指数に基づいて、ノードの現在コア数を更新するステップとを反復的に実行し、今回の反復過程で、密集サブグラフにおける各ノードの現在コア数が何れも更新されていないまで、反復を停止する。
ステップ816:反復停止時に取得された密集サブグラフにおけるノードを安定ノードとし、反復停止時に安定ノードの現在コア数を安定ノードの対応するコア数とする。
ステップ818:安定ノードをネットワークグラフから除去する。
ステップ820:安定ノードを除去した後、残りノード及び残りノードの間の接続エッジに基づいて、スパースサブグラフを取得する。
ステップ822:オリジナルのネットワークグラフにおける、スパースサブグラフにおける各ノードの近傍ノードの数に基づいて、スパースサブグラフにおける各ノードの現在コア数を初期化する。
ステップ824:スパースサブグラフにおける各ノードに対して、ネットワークグラフにおけるノードの近傍ノードの現在コア数に基づいて、ノードに対応するコア指数を計算するステップと、コア指数がノードの現在コア数よりも小さいと、ノードのコア指数に基づいて、ノードの現在コア数を更新するステップとを反復的に実行し、今回の反復過程でスパースサブグラフにおける各ノードの現在コア数が何れも更新されていないまで、反復を停止する。
ステップ826:反復停止時にノードの現在コア数をノードに対応するコア数とする。
ステップ828:各ノードのコア数に基づいて、ノードに対応する特徴ベクトルを生成する。
ステップ830:ノードの特徴ベクトルに基づいて、ノードを分類する。
【0091】
1つの実施例において、ノードのコア数は、コア数に基づいて、ノードの対応する特徴ベクトルを生成し、特徴ベクトルに基づいて、ノードを分類する。具体的に、ノードのコア数は、特徴として機械学習アルゴリズムに入力され、ノードの分類を実現する。例えば、商工業者のビジネスモードのマイニングに適用され、超大支払い規模なネットワークにおける消費者及び商工業者を分類する。さらに、金融リスク管理製品に適用され、違法信用貸付仲介、現金化、マルチプラットフォームローン、賭博などの異常を分類する。
【0092】
1つの実施例において、ネットワークグラフは、支払い関係ネットワークグラフであり、支払い関係ネットワークグラフにおけるノードは、ユーザー識別子を示し、支払い関係ネットワークグラフにおける2つのノードの間の接続エッジは、該当する2つのユーザー識別子の間には支払いインタラクションイベントが存在することを示す。上記の方法は、支払い関係ネットワークグラフにおける各ノードのコア数に基づいて、ノードで示されるユーザー識別子に対応する特徴ベクトルを生成するステップと、事前訓練された分類モデルによって、特徴ベクトルに基づいて、ユーザー識別子に対応する支払いタイプを予測するステップと、をさらに含む。
【0093】
1つの具体的な適用シナリオにおいて、コンピュータ機器は、ユーザー識別子に対応する支払い記録を取得し、支払い記録に基づいて、各ユーザー識別子の間の支払いインタラクションデータを取得し、支払いインタラクションデータに基づいて、支払い関係ネットワークグラフを生成する。そして、本出願の実施例が提供するグラフデータ処理方法を使用して、当該支払い関係ネットワークグラフを処理し、各ノードのコア数を取得し、各ノードのコア数に基づいて、対応する特徴ベクトルを生成し、機械学習による分類アルゴリズムによってノードを分類することで、各ノードが、商工業者であるか、又は消費者であるかを区別する。
【0094】
ここでは、矢印の指示に従って、図2図5図6図8のフローチャートにおける各ステップを順に示しているが、これらのステップは、必ずしも矢印が指示する順序に従って、順に実行されるわけではない。本明細書において明らかに説明されていない限り、これらのステップの実行は、厳しい順序限定を具備するものではなく、他の順序に従って実行されてもよい。そして、以上の図面における少なくとも一部のステップは、複数のステップ又は複数の段階を含んでもよい。これらのステップ又は段階は、必ずしも同一タイミングで実行されて完成されるわけではなく、異なるタイミングで実行されてもよく、これらのステップ又は段階の実行順序も、必ずしも順に行われるわけではなく、他のステップ又は他のステップにおけるステップ又は段階の少なくとも一部と順番又は交互に実行されてもよい。
【0095】
1つの実施例においては、図9に示すように、グラフデータ処理装置900を提供する。当該装置は、ソフトウェアモジュール又はハードウェアモジュール、或いは、両者の結合を採用してコンピュータ機器の一部になって、当該装置は、具体的に、
ネットワークグラフにおける各ノードの関連度を取得する、ネットワークグラフ取得モジュール902と、
所定の閾値及び各ノードの関連度に基づいて、密集サブグラフをネットワークグラフから分割する、密集サブグラフ取得モジュール904と、
密集サブグラフに基づいて、ネットワークグラフにおける安定ノード及び安定ノードのコア数を決定する、第1の決定モジュール906であって、前記安定ノードのコア数は前記所定の閾値よりも大きい第1の決定モジュール906と、
ネットワークグラフにおける安定ノードを除いた残りノード及び残りノードの間の接続エッジに基づいて、ネットワークグラフにおけるスパースサブグラフを取得する、スパースサブグラフ取得モジュール908と、
スパースサブグラフ及び安定ノードに基づいて、スパースサブグラフにおける各ノードのコア数を決定する、第2の決定モジュール910であって、ノードのコア数はノードの対応する特徴ベクトルを生成する第2の決定モジュール910と、を含む。
【0096】
1つの実施例において、ネットワークグラフ取得モジュール902は、さらに、ネットワークグラフを取得し、ネットワークグラフにおける各ノードの近傍ノードの数を決定し、近傍ノードの数を該当するノードの関連度とする。
【0097】
1つの実施例において、ネットワークグラフ取得モジュール902は、さらに、ユーザー識別子に対応する支払い記録を取得し、支払い記録に基づいて、各ユーザー識別子の間の支払いインタラクションデータを取得し、支払いインタラクションデータに基づいて、支払い関係ネットワークグラフを生成する。支払い関係ネットワークグラフのノードは、ユーザー識別子を示し、支払い関係ネットワークグラフにおける2つのノードの間の接続エッジは、該当する2つのユーザー識別子の間には支払いインタラクションイベントが存在することを示す。
【0098】
1つの実施例において、密集サブグラフ取得モジュール904は、さらに、所定の閾値を取得し、関連度が閾値以下である、ノード及びノードが所在する接続エッジをネットワークグラフから除去し、ネットワークグラフにおける残りノード及び残りノードの間の接続エッジに基づいて、密集サブグラフを取得する。
【0099】
1つの実施例において、第1の決定モジュール906は、さらに、密集サブグラフにおける各ノードの近傍ノードの数に基づいて、密集サブグラフにおける各ノードの関連度を取得し、密集サブグラフにおける関連度を該当するノードの初期の現在コア数とし、密集サブグラフにおける各ノードに対して、密集サブグラフにおけるノードの近傍ノードの現在コア数に基づいて、ノードに対応するコア指数を計算するステップと、コア指数が所定の閾値以下である場合、ノードを密集サブグラフから除去するステップと、コア指数が閾値よりも大きく、且つ、ノードの現在コア数より小さいと、ノードのコア指数に基づいて、ノードの現在コア数を更新するステップとを反復的に実行する。今回の反復過程で、密集サブグラフにおける各ノードの現在コア数が何れも更新されていないまで、反復を停止し、反復停止時に、取得された密集サブグラフにおけるノードを安定ノードとし、反復停止時に、安定ノードの現在コア数を安定ノードの対応するコア数とする。
【0100】
1つの実施例において、第1の決定モジュール906は、さらに、今回の反復が終了した後、今回の反復過程で現在コア数が更新されたノードを記録する。記録されたノードは、次回の反復開始時に、記録されたノードの密集サブグラフにおける近傍ノードを、次回の反復過程でコア指数を改めて計算するターゲットノードとすると指示し、密集サブグラフにおけるターゲットノードに対して、密集サブグラフにおけるターゲットノードの近傍ノードの現在コア数に基づいて、ターゲットノードに対応するコア指数を計算する。
【0101】
1つの実施例において、第1の決定モジュール906は、さらに、ノードは、近傍ノードのち現在コア数がh以上であるh個の近傍ノードが存在することを満たしており、且つ、現在コア数がh+1以上であるh+1個の近傍ノードが存在していることを満たしていない場合、ノードに対応するコア指数をhに決定する。hは正の整数である。
【0102】
1つの実施例において、第1の決定モジュール906は、さらに、今回の反復過程開始時に、ノード更新数をゼロに初期化し、ノード更新数は今回の反復過程で現在コア数が更新されたノードの数を記録し、今回の反復過程で現在コア数が更新されたノードの数を統計し、数に基づいて、ノードの更新数を更新する。今回の反復過程が終了した場合、ノード更新数が非ゼロであると、次回の反復過程を続け、今回の反復過程が終了した場合、ノード更新数がゼロであると、反復を停止する。
【0103】
1つの実施例において、スパースサブグラフ取得モジュール908は、さらに、安定ノードをネットワークグラフから除去し、安定ノードを除去した後、残りノード及び残りノードの間の接続エッジに基づいて、スパースサブグラフを取得する。
【0104】
1つの実施例において、第2の決定モジュール910は、さらに、今回の反復が終了した後、今回の反復過程で現在コア数が更新されたノードを記録する。記録されたノードは、次回の反復開始時に、スパースサブグラフにおける記録されたノードの近傍ノードを、次回の反復過程でコア指数を改めて計算するターゲットノードとすると指示し、スパースサブグラフにおけるターゲットノードに対して、ネットワークグラフにおけるターゲットノードの近傍ノードの現在コア数に基づいて、ターゲットノードに対応するコア指数を計算する。
【0105】
1つの実施例において、第2の決定モジュール910は、さらに、ノードは、近傍ノードのうち現在コア数がh以上であるh個の近傍ノードが存在することを満たしており、且つ、現在コア数がh+1以上であるh+1個の近傍ノードが存在していることを満たしていない場合、ノードの対応するコア指数をhに決定する。hは正の整数である。
【0106】
1つの実施例において、第2の決定モジュール910は、さらに、今回の反復過程開始時に、ノード更新数をゼロに初期化し、ノード更新数は今回の反復過程で現在コア数が更新されたノードの数を記録し、今回の反復過程で現在コア数が更新されたノードの数を統計し、数に基づいて、ノードの更新数を更新する。今回の反復過程が終了した場合、ノード更新数が非ゼロであると、次回の反復過程を続け、今回の反復過程が終了した場合、ノード更新数がゼロであると、反復を停止する。
【0107】
1つの実施例において、ネットワークグラフは、支払い関係ネットワークグラフであり、支払い関係ネットワークグラフにおけるノードは、ユーザー識別子を示し、支払い関係ネットワークグラフにおける2つのノードの間の接続エッジは、該当する2つのユーザー識別子の間には支払いインタラクションイベントが存在することを示す。上記の装置は、支払い関係ネットワークグラフにおける各ノードのコア数に基づいて、ノードで示されるユーザー識別子に対応する特徴ベクトルを生成する分類モジュールを、さらに含み、事前訓練された分類モデルによって、特徴ベクトルに基づいて、ユーザー識別子に対応する支払いタイプを予測する。
【0108】
上記のグラフデータ処理装置によれば、ネットワークグラフにおける各ノードの関連度を取得した後、分割統治の思想に基づいて、ネットワークグラフに対して分割統治を行って、これによって、超大規模なネットワークのサブグラフマイニングをサポートできる。つまり、各ノードの関連度に基づいて、完全なネットワークグラフを密集サブグラフ及びスパースサブグラフという2つの部分に分けてマイニングすることで、メモリの占有を大幅に低減させ、直接的に密集サブグラフに切り込むことができるため、非重要なノードには多くの反復時間及びコンピューティングリソースを浪費することを回避し、マイニング性能を向上させる。
【0109】
スパースサブグラフにおける各ノードは、密集サブグラフにおけるノードに影響することがないため、密集サブグラフに対して、その安定ノード及び安定ノードの対応するコア数を直接的に決定してから、ネットワークグラフにおける、当該安定ノード及び安定ノードの間の接続エッジを除いた残りの部分をスパースサブグラフとして形成する。密集サブグラフにおける安定ノードは、その中のノードに影響するため、当該スパースサブグラフに対して、スパースサブグラフ自体及び密集サブグラフにおける安定ノードに基づいて、当該スパースサブグラフにおける各ノードのコア数を決定する。ネットワークグラフにおける各ノードのコア数をマイニングした後、コア数は、該当するノードの特徴として、該当する特徴ベクトルを生成して、他のダウンストリームタスクに入力する。
【0110】
グラフデータ処理装置の具体的な限定については、以上の、グラフデータ処理方法に対する限定を参照すればよく、ここでは、贅言していない。上記のグラフデータ処理装置における各モジュールは、全部又は部分的にソフトウェア、ハードウェア、及びその組み合わせで実現されてもよい。上記の各モジュールは、ハードウェア形態でコンピュータ機器におけるプロセッサーに埋め込まれ、又は、それと独立してもよいし、ソフトウェア形態でコンピュータ機器におけるメモリに記憶されることで、プロセッサーは、以上の各モジュールに対応する操作を呼び出して実行する。
【0111】
1つの実施例においては、コンピュータ機器を提供し、当該コンピュータ機器は、サーバーであってもよく、その内部構造図は図10に示されている。当該コンピュータ機器は、システムバスによって接続されたプロセッサー、メモリ、及びネットワークインターフェースを含む。当該コンピュータ機器のプロセッサーは、コンピューティング及び制御機能を提供する。当該コンピュータ機器のメモリには、不揮発性記憶媒体、内蔵メモリが含まれる。当該不揮発性記憶媒体には、オペレーティングシステム及びコンピュータ可読命令が記憶される。当該内蔵メモリは、不揮発性記憶媒体におけるオペレーティングシステム及びコンピュータ可読命令の運転に対して環境を提供する。当該コンピュータ機器のネットワークインターフェースは、ネットワークを介して、外部の端末と連結して通信する。当該コンピュータ可読命令は、プロセッサーによって実行されると、グラフデータ処理方法を実現する。
【0112】
当業者であれば理解できるように、図10の構造は、本出願の解決策を適用したコンピュータ機器を限定するものではなく、ただ単に本出願の解決策に関連する一部の構造のブロック図であり、具体的なコンピュータ機器は、図面より多い又は少ない部材を含んでもよく、又は、いくつかの部材を組み合わせてもよく、或いは、異なる部材配置を具備してもよい。
【0113】
1つの実施例においては、コンピュータ機器をさらに提供し、メモリ及びプロセッサーを含み、メモリには、コンピュータ可読命令が記憶され、当該プロセッサーは、コンピュータ可読命令を実行すると、上記の各方法実施例におけるステップを実現する。
【0114】
1つの実施例においては、コンピュータ可読記憶媒体を提供し、コンピュータ可読命令が記憶され、当該コンピュータ可読命令は、プロセッサーによって実行されると、上記の各方法実施例におけるステップを実現する。
【0115】
1つの実施例においては、コンピュータプログラム製品又はコンピュータプログラムを提供し、当該コンピュータプログラム製品又はコンピュータプログラムは、コンピュータ指令を含み、当該コンピュータ指令は、コンピュータ可読記憶媒体に記憶されている。コンピュータ機器のプロセッサーは、当該コンピュータ指令をコンピュータ可読記憶媒体から読み取って、プロセッサーは、当該コンピュータ指令を実行することで、当該コンピュータ機器に上記の各方法実施例におけるステップを実行させる。
【0116】
当業者であれば理解できるように、上記の実施例方法における全て又は一部のフローの実現は、コンピュータ可読命令によって、関連のハードウェアに命令することで完成される。前記コンピュータ可読命令は、不揮発性コンピュータ可読記憶媒体に記憶され、当該コンピュータ可読命令が実行される場合、上記の各方法の実施例のフローを含む。本出願が提供する各実施例で使用されるメモリ、ストレージ、データベース、又は他の媒体に対する何れかの援用は、何れも、不揮発性及び揮発性メモリのうちの少なくとも1つを含む。不揮発性メモリは、読み取り専用メモリ(Read―Only Memory、ROM)、磁気テープ、フレキシブルディスク、フラッシュメモリ、又は光メモリなどを含む。揮発性メモリは、ランダムアクセスメモリ(Random Access Memory、RAM)又は、外部キャッシュメモリを含む。限定ではなく説明として、RAMは、多種の形態、例えば、スタティックランダムアクセスメモリ(Static Random Access Memory、SRAM)、又はダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、DRAM)、などであってもよい。
【0117】
以上の実施例の各技術特徴に対して任意の組み合わせを行ってもよい。記載を簡潔にするために、上記の実施例における各技術特徴の全ての可能な組み合わせを何れも記載していないが、これらの技術特徴の組み合わせに矛盾が存在しないと、何れも本明細書の記載範囲と見なされる。
【0118】
以上の実施例は、本出願のいくつかの実施形態のみを表現し、その記載は。具体的且つ詳細であるが、発明特許範囲を限定していない。ここでは、当業者にとって、本出願の構想から逸脱しないことを前提として、いくつかの変形及び改善を行うことができ、これらは、何れも本出願の保護範囲に属している。従って、本出願特許の保護範囲は、添付の請求項を基準とする。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10