(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】データ処理方法、装置、電子機器、及びコンピュータプログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20240729BHJP
【FI】
G06F9/50 150E
(21)【出願番号】P 2023521789
(86)(22)【出願日】2021-11-23
(86)【国際出願番号】 CN2021132221
(87)【国際公開番号】W WO2022142859
(87)【国際公開日】2022-07-07
【審査請求日】2023-04-10
(31)【優先権主張番号】202011626906.6
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】李 ▲曉▼森
(72)【発明者】
【氏名】▲許▼ 杰
(72)【発明者】
【氏名】欧▲陽▼ 文
(72)【発明者】
【氏名】陶 ▲陽▼宇
(72)【発明者】
【氏名】肖 品
【審査官】三坂 敏夫
(56)【参考文献】
【文献】特開2008-181333(JP,A)
【文献】米国特許出願公開第2011/0188405(US,A1)
【文献】米国特許出願公開第2014/0365503(US,A1)
【文献】塩川 浩昭 他,ノードの逐次集約による大規模グラフクラスタリングの高速化,第4回データ工学と情報マネジメントに関するフォーラム論文集 (第10回日本データベース学会年次大会),電子情報通信学会データ工学研究専門委員会 日本データベース学会 情報処理学会データベースシステム研究会,2013年03月04日,第1頁-第7頁
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455-9/54
G06F 16/182
(57)【特許請求の範囲】
【請求項1】
電子機器が実行するデータ処理方法であって、
インタラクションオブジェクトを表すためのノードと、複数のインタラクションオブジェクト間のインタラクション関係を表すためのエッジとを含む関係グラフネットワークを取得するステップと、
複数のコンピューティングデバイスを含むデバイスクラスタによって、前記関係グラフネットワークに対してコア次数マイニングを行うことで、前記関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新するステップと、
前記ノードコア次数に基づいて
収束ノードを特定し、前記関係グラフネットワーク
の前記収束ノードに対してプルーニング処理を行うことで、前記関係グラフネットワーク内の一部のノードおよび一部のエッジを除去するステップと、
前記関係グラフネットワークのネットワーク規模が所定のネットワーク圧縮条件を満たす場合、前記デバイスクラスタに対して圧縮処理を行うことで、前記デバイスクラスタにおける一部のコンピューティングデバイスを除去するステップと、を含む、
データ処理方法。
【請求項2】
前記デバイスクラスタに対して圧縮処理を行うことで、前記デバイスクラスタにおける一部のコンピューティングデバイスを除去するステップは、
前記関係グラフ
ネットワークに対してスタンドアロンコンピューティングを行うためのターゲットデバイスとして、前記デバイスクラスタから1つのコンピューティングデバイスを選択し、前記デバイスクラスタから前記ターゲットデバイス以外の他のコンピューティングデバイスを除去するステップを含む、
請求項1に記載のデータ処理方法。
【請求項3】
複数のコンピューティングデバイスを含むデバイスクラスタによって、前記関係グラフネットワークに対してコア次数マイニングを行うことで、前記関係グラフネットワーク内の各ノードのノードコア次数を反復的に更新するステップは、
前記関係グラフネットワークに対して分割処理を実行することで、前記関係グラフネットワーク内の一部のノード及び一部のエッジからなるパーティショングラフネットワークを得るステップと、
前記パーティショングラフネットワークを、複数のコンピューティングデバイスを含むデバイスクラスタに割り当て、前記パーティショングラフネットワークに対してコア次数マイニングを行うためのコンピューティングデバイスを決定するステップと、
割り当てられたコンピューティングデバイスによって、前記パーティショングラフネットワークに対してコア次数マイニングを行うことで、前記パーティショングラフネットワーク内の各ノードのノードコア次数を反復的に更新するステップと、を含む、
請求項1に記載のデータ処理方法。
【請求項4】
前記パーティショングラフネットワークに対してコア次数マイニングを行うことで、前記パーティショングラフネットワーク内の各ノードのノードコア次数を反復的に更新するステップは、
前記パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択し、前記コンピューティングノードと隣接関係がある隣接ノードを決定するステップと、
現在の反復ラウンドにおける前記コンピューティングノード及び前記隣接ノードの現在のノードコア次数を取得するステップと、
前記隣接ノードの現在のノードコア次数に基づいて、前記コンピューティングノードの一時ノードコア次数を決定し、前記コンピューティングノードの一時ノードコア次数が前記コンピューティングノードの現在のノードコア次数よりも小さいかどうかを判断し、前記コンピューティングノードの現在のノードコア次数よりも小さいと判断されると、前記コンピューティングノードをアクティブノードとしてラベル付けするステップと、
前記一時ノードコア次数に基づいて前記アクティブノードの現在のノードコア次数を更新し、前記アクティブノード及び前記アクティブノードと隣接関係がある隣接ノードを、次の反復ラウンドでコア次数マイニングを行うコンピューティングノードとして決定するステップと、を含む、
請求項3に記載のデータ処理方法。
【請求項5】
前記隣接ノードの現在のノードコア次数に基づいて、前記コンピューティングノードの一時ノードコア次数を決定するステップは、
前記隣接ノードの現在のノードコア次数に基づいて、前記コンピューティングノードのhインデックスを決定し、前記hインデックスを前記コンピューティングノードの一時ノードコア次数とするステップであって、前記hインデックスは、前記コンピューティングノードのすべての隣接ノードに現在のノードコア次数がh以上である最大h個の隣接ノードを含むことを表すために使用されるステップを含む、
請求項4に記載のデータ処理方法。
【請求項6】
前記隣接ノードの現在のノードコア次数に基づいて、前記コンピューティングノードのhインデックスを決定するステップは、
前記コンピューティングノードのすべての隣接ノードを、前記現在のノードコア次数の高い順にシーケンシングし、0から前記隣接ノードごとに配列シーケンス番号を割り当てるステップと、
各隣接ノードの配列シーケンス番号と現在のノードコア次数とをそれぞれ比較し、比較結果に基づいて、配列シーケンス番号が現在のノードコア次数以上である隣接ノードをフィルタリングするステップと、
フィルタリングされた隣接ノードのうち、配列シーケンス番号が最も小さい隣接ノードの現在のノードコア次数を、前記コンピューティングノードのhインデックスとして決定するステップと、を含む、
請求項5に記載のデータ処理方法。
【請求項7】
前記パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択するステップは、
第1の記憶空間から更新すべきノードのノード識別子を読み取り、前記更新すべきノードは、前の反復ラウンドでノードコア次数が更新されたアクティブノードと、前記アクティブノードと隣接関係がある隣接ノードとを含むステップと、
前記更新すべきノードのノード識別子に基づいて、前記パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択するステップと、を含む、
請求項4に記載のデータ処理方法。
【請求項8】
前記一時ノードコア次数に基づいて、前記アクティブノードの現在のノードコア次数を更新した後に、
更新された前記アクティブノードの現在のノードコア次数を第2の記憶空間に書き込むステップであって、前記第2の記憶空間は、前記関係グラフネットワーク内のすべてのノードのノードコア次数を記憶するために使用されるステップと、
前記アクティブノードのノード識別子、及び前記アクティブノードの隣接ノードのノード識別子を取得し、取得した前記ノード識別子を第3の記憶空間に書き込むステップであって、前記第3の記憶空間は、次の反復ラウンドでコア次数マイニングを行うコンピューティングノードのノード識別子を記憶するために使用されるステップと、
現在の反復ラウンドですべてのパーティショングラフネットワークのコア次数マイニングが完了した後、第1の記憶空間におけるデータを前記第3の記憶空間におけるデータで上書きし、前記第3の記憶空間をリセットするステップと、をさらに含む、
請求項7に記載のデータ処理方法。
【請求項9】
現在の反復ラウンドにおける前記コンピューティングノード及び前記隣接ノードの現在のノードコア次数を取得するステップは、
第2の記憶空間から現在の反復ラウンドにおける前記コンピューティングノード及び前記隣接ノードの現在のノードコア次数を読み取るステップであって、前記第2の記憶空間は、前記関係グラフネットワーク内のすべてのノードのノードコア次数を記憶するために使用されるステップを含む、
請求項4に記載のデータ処理方法。
【請求項10】
前記ノードコア次数に基づいて
収束ノードを特定し、前記関係グラフネットワーク
の前記収束ノードに対してプルーニング処理を行うことで、前記関係グラフネットワーク内の一部のノードおよび一部のエッジを除去するステップは、
現在の反復ラウンドにおけるアクティブノードの最小コア次数、及び前の反復ラウンドにおけるアクティブノードの最小コア次数を取得するステップと、
前記現在の反復ラウンドにおけるアクティブノードの最小コア次数が前記前の反復ラウンドにおけるアクティブノードの最小コア次数よりも大きい場合、前記前の反復ラウンドにおけるアクティブノードの最小コア次数に基づいて、前記関係グラフネットワーク内の
前記収束ノードをフィルタリングするステップであって、前記収束ノードは、ノードコア次数が前記前の反復ラウンドにおけるアクティブノードの最小コア次数以下のノードであるステップと、
前記関係グラフネットワークから、前記収束ノード及び前記収束ノードに接続されるエッジを除去するステップと、を含む、
請求項1に記載のデータ処理方法。
【請求項11】
前記ネットワーク圧縮条件は、前記関係グラフネットワーク内のエッジの数が所定の数量閾値よりも小さいことを含む、
請求項1に記載のデータ処理方法。
【請求項12】
複数のコンピューティングデバイスを含むデバイスクラスタによって、前記関係グラフネットワークに対してコア次数マイニングを行う前に、
前記関係グラフネットワークにおいて、ノードごとに、前記ノードと隣接関係がある隣接ノードのノード数を取得するステップと、
ノードごとに、前記ノードと隣接関係がある隣接ノードのノード数に基づいて、前記ノードのノードコア次数を初期化するステップと、をさらに含む、
請求項1に記載のデータ処理方法。
【請求項13】
インタラクションオブジェクトを表すためのノードと、複数のインタラクションオブジェクト間のインタラクション関係を表すためのエッジとを含む関係グラフネットワークを取得するように構成されるグラフネットワーク取得モジュールと、
複数のコンピューティングデバイスを含むデバイスクラスタによって、前記関係グラフネットワークに対してコア次数マイニングを行うことで、前記関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新するように構成されるコア次数マイニングモジュールと、
前記ノードコア次数に基づいて
収束ノードを特定し、前記関係グラフネットワーク
の前記収束ノードに対してプルーニング処理を行うことで、前記関係グラフネットワーク内の一部のノードおよび一部のエッジを除去するように構成されるネットワークプルーニングモジュールと、
前記関係グラフネットワークのネットワーク規模が所定のネットワーク圧縮条件を満たす場合、前記デバイスクラスタに対して圧縮処理を行うことで、前記デバイスクラスタにおける一部のコンピューティングデバイスを除去するように構成されるクラスタ圧縮モジュールと、を含む、
データ処理装置。
【請求項14】
プロセッサと、
前記プロセッサの実行可能な命令を記憶するためのメモリと、を含み、
前記プロセッサは、前記実行可能な命令を実行することで、請求項1~12のいずれか1項に記載のデータ処理方法を実行するように構成される、
電子機器。
【請求項15】
コンピュータで実行されると、請求項1~12のいずれか1項に記載のデータ処理方法をコンピュータに実現させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年12月31日に中国特許局へ提出された、出願番号が2020116269066であって、発明の名称が「データ処理方法、装置、コンピュータ可読媒体及び電子機器」である中国特許出願の優先権を主張し、その内容全体が援用により本明細書に組み込まれる。
【0002】
本出願は、人工知能の技術分野に関し、具体的に、データ処理技術に関する。
【背景技術】
【0003】
コンピュータ及びネットワーク技術の発展につれて、ネットワークプラットフォームで提供されるビジネスサービスを基として、ユーザ同士間に様々なインタラクション関係を築くことができる。たとえば、ユーザはソーシャルネットワークプラットフォーム上で他のユーザとソーシャル関係を築いてもよいし、オンライン決済プラットフォーム上で他のユーザと取引関係を築いてもよい。それに基づいて、ネットワークプラットフォームは、ユーザがネットワークプラットフォームを使用する際に生成されるユーザ自身の属性に関連するデータや、異なるユーザ間でインタラクション関係を築くことによって生成されるインタラクションデータを含む、大量のユーザデータを収集するようになる。
【0004】
ユーザデータを合理的に整理してマイニングすることによって、ネットワークプラットフォームはユーザの特性をまとめ、さらに、ユーザの特性に合わせて、便利で効率的なプラットフォームサービスをユーザに提供することができる。しかしながら、ユーザデータが継続的に蓄積されると、増加し続けるデータ規模はデータ処理の負荷を増加させる可能性があり、ネットワークプラットフォームはユーザデータの分析処理操作を実行するためにより多くのコンピューティングリソースや時間を費やす必要がある。そのため、ビッグデータの分析効率をいかに向上させ、関連するコストを削減するかは喫緊の課題となっている。
【発明の概要】
【課題を解決するための手段】
【0005】
本出願の実施例は、ビッグデータ分析における高コンピューティングリソース消費、低データ処理効率などの技術的問題をある程度解決することができるデータ処理方法、データ処理装置、コンピュータ可読媒体、電子機器及びコンピュータプログラム製品を提供する。
【0006】
本出願の他の特性及び利点は、以下の詳細な記述から明らかになり、又は、部分的に本出願の実践によって習得される。
【0007】
本出願の実施例の一局面によれば、電子機器が実行するデータ処理方法を提供し、前記方法は、インタラクションオブジェクトを表すためのノードと、複数のインタラクションオブジェクト間のインタラクション関係を表すためのエッジとを含む関係グラフネットワークを取得するステップと、複数のコンピューティングデバイスを含むデバイスクラスタによって、前記関係グラフネットワークに対してコア次数マイニングを行うことで、前記関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新するステップと、前記ノードコア次数に基づいて、前記関係グラフネットワークに対してプルーニング処理を行うことで、前記関係グラフネットワーク内の一部のノードおよび一部のエッジを除去するステップと、前記関係グラフネットワークのネットワーク規模が所定のネットワーク圧縮条件を満たす場合、前記デバイスクラスタに対して圧縮処理を行うことで、前記デバイスクラスタにおける一部のコンピューティングデバイスを除去するステップと、を含む。
【0008】
本出願の実施例の一局面によれば、データ処理装置を提供し、当該装置は、インタラクションオブジェクトを表すためのノードと、複数のインタラクションオブジェクト間のインタラクション関係を表すためのエッジとを含む関係グラフネットワークを取得するように構成されるグラフネットワーク取得モジュールと、複数のコンピューティングデバイスを含むデバイスクラスタによって、前記関係グラフネットワークに対してコア次数マイニングを行うことで、前記関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新するように構成されるコア次数マイニングモジュールと、前記ノードコア次数に基づいて、前記関係グラフネットワークに対してプルーニング処理を行うことで、前記関係グラフネットワーク内の一部のノードおよび一部のエッジを除去するように構成されるネットワークプルーニングモジュールと、前記関係グラフネットワークのネットワーク規模が所定のネットワーク圧縮条件を満たす場合、前記デバイスクラスタに対して圧縮処理を行うことで、前記デバイスクラスタにおける一部のコンピューティングデバイスを除去するように構成されるクラスタ圧縮モジュールと、を含む。
【0009】
本出願の実施例の一局面によれば、前記コンピュータプログラムがプロセッサによって実行されると、上記の技術案におけるデータ処理方法を実現させるコンピュータプログラムを記憶しているコンピュータ可読媒体を提供する。
【0010】
本出願の実施例の一局面によれば、電子機器を提供し、当該電子機器は、プロセッサと、前記プロセッサの実行可能な命令を記憶するためのメモリと、を含み、前記プロセッサは、前記実行可能な命令を実行することで、上記の技術案におけるデータ処理方法を実行するように構成される。
【0011】
本出願の実施例の一局面によれば、コンピュータ可読記憶媒体に記憶されているコンピュータ命令を含むコンピュータプログラム製品又はコンピュータプログラムを提供する。コンピュータ機器のプロセッサはコンピュータ可読記憶媒体から当該コンピュータ命令を読み取り、プロセッサは当該コンピュータ命令を実行することによって、上記の技術案におけるデータ処理方法を当該コンピュータ機器に実行させる。
【0012】
本出願の実施例による技術案では、インタラクションオブジェクト間のインタラクション関係に関するビジネスデータに基づいて関係グラフネットワークを確立し、関係グラフネットワークの構造特性とスパース性を利用して、デバイスクラスタによって分散コンピューティングを行い、コア次数マイニングを領域別に行うことができる。ノードコア次数の継続的な反復更新につれて、関係グラフネットワークに対してプルーニング処理を行い、反復収束したノード及び対応するエッジを「除去する」ことによって、関係グラフネットワークがノードコア次数の反復更新につれて継続的に圧縮され小さくなり、コンピューティングリソースの消費が削減される。これに基づいて、関係グラフネットワークが適切なサイズに圧縮されると、コア次数マイニングを行うためのデバイスクラスタに対して圧縮処理をさらに行うことができる。こうすれば、大量のコンピューティングリソースを解放するだけでなく、並行計算によるデータ配信などの追加の時間コストを削減し、データ処理効率を向上させることができる。
【0013】
以上の一般的な説明及び以下の詳細な説明は、例示的及び解釈的なものに過ぎず、本出願を制限するものではないことが理解されるべきであろう。
【図面の簡単な説明】
【0014】
ここでの図面は明細書に組み込まれ本明細書の一部を構成し、本出願を満たす実施例を示し、明細書と共に本出願の原理を説明するために用いられる。明らかに、以下の説明における図面は本出願のいくつかの実施例に過ぎず、当業者にとって、創造的な労力を要することなく、これらの図面に基づいて他の図面を取得することができる。
【0015】
【
図1】本出願の技術案を適用するデータ処理システムのアーキテクチャブロック図を示す。
【
図2】本出願の一実施例におけるデータ処理方法のステップフローチャートを示す。
【
図3】本出願の一実施例における分散コンピューティングに基づくコア次数マイニング方法のステップフローチャートを示す。
【
図4】本出願の一実施例におけるパーティショングラフネットワークに対してコア次数マイニングを行うステップフローチャートを示す。
【
図5】本出願の一実施例におけるコンピューティングノードを選択するステップフローチャートを示す。
【
図6】本出願の一実施例におけるコンピューティングノードのhインデックスを決定するステップフローチャートを示す。
【
図7】本出願の一実施例におけるパーティショングラフネットワークのノードコア次数マイニング結果をまとめるステップフローチャートを示す。
【
図8】本出願の一実施例におけるノードコア次数の反復更新に基づいて関係グラフネットワークに対して圧縮プルーニングを行うプロセスの模式図を示す。
【
図9】本出願の実施例によるアプリケーションシナリオにおけるk-coreマイニングの全体的なアーキテクチャおよび処理フローチャートを示す。
【
図10】本出願の実施例で提供されるデータ処理装置の構造ブロック図を模式的に示す。
【
図11】本出願の実施例に係る電子機器を実現するのに適するコンピュータシステムの構造ブロック図を模式的に示す。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら、例示的な実施形態をより包括的に説明する。しかしながら、例示の実施形態を、多様な形態で実施することができ、本明細書の範例に限定されるものであると理解すべきではなく、むしろ、これらの実施形態の提供により、本出願がより包括的かつ完全なものになり、例示の実施形態の構想を包括的に当業者に伝達することができる。
【0017】
さらに、記述された特徴、構造又は特性は、任意の適切な方法で1つ又は複数の実施例に組み込まれてもよい。以下の記述では、本出願の実施例を十分理解させるために、多くの詳細を提供する。しかしながら、当業者は、特定の詳細のうちの1つ又は複数の詳細なしに、又は、他の方法、構成要素、装置、ステップなどを採用して本出願の技術案を実施できることを認識できるだろう。他の場合では、本出願の各態様の曖昧さを回避するために、周知の方法、装置、実現又は操作を詳細に表示又は記述しない。
【0018】
図面に示すブロック図は機能エンティティに過ぎず、必ずしも物理的に独立したエンティティに対応するものである必要がない。即ち、ソフトウェアの形態を採用してこれらの機能エンティティを実現してもよいし、1つ又は複数のハードウェアモジュール若しくは集積回路にこれらの機能エンティティを実現してもよく、または、異なるネットワーク及び/又はプロセッサ装置及び/又はマイクロコントローラ装置にこれらの機能エンティティを実現してもよい。
【0019】
図面に示すフローチャートは例示的な説明に過ぎず、必ずしもコンテンツ及び操作/ステップを全部含む必要がなく、必ずしも記述された順序に従って実行される必要もない。たとえば、分解できる操作/ステップがある一方、統合するか又は部分的に統合することができる操作/ステップがあるため、実際に実行する順序は、実際の状況に応じて変更されてもよい。
【0020】
図1は、本出願の実施例の技術案を適用できるデータ処理システムのアーキテクチャブロック図を示す。
【0021】
図1に示すように、データ処理システム100は、端末デバイス110、ネットワーク120及びサーバ130を含むことができる。
【0022】
端末デバイス110はスマートフォン、タブレットパソコン、ノートパソコン、デスクトップパソコン、スマートスピーカー、スマートウォッチ、スマートメガネ、車載端末などの様々な電子機器を含むことができる。端末デバイス110は、ユーザがアプリケーションプログラムのクライアントに基づいて対応するアプリケーションサービスを利用するように、ビデオアプリケーションクライアント、音楽アプリケーションクライアント、ソーシャルアプリケーションクライアント、決済アプリケーションクライアントなどの様々なアプリケーションクライアントがインストールすることができる。
【0023】
サーバ130は独立した物理サーバであってもよく、複数の物理サーバからなるサーバクラスタ又は分散システムであってもよく、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウド記憶、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメイン名サービス、セキュリティサービス、CDN、ビッグデータ及び人工知能プラットフォームなどの基本的なクラウドコンピューティングサービスを提供するクラウドサーバーであってもよい。ネットワーク120は、端末デバイス110とサーバ130との間で通信リンクを提供可能な様々な接続タイプの通信媒体であってもよく、たとえば有線通信リンク又は無線通信リンクであってもよい。
【0024】
実現の必要に応じて、本出願の実施例におけるシステムアーキテクチャは、任意数の端末デバイス、ネットワーク及びサーバを具備してもよい。たとえば、サーバ130は複数のサーバデバイスからなるサーバグループであってもよい。また、本出願の実施例で提供される技術案は、端末デバイス110又はサーバ130に適用されてもよく、または、端末デバイス110及びサーバ130によって共同で実現されてもよく、本出願の実施例では特に限定しない。
【0025】
たとえば、ユーザは、端末デバイス110上でソーシャルアプリケーションプログラムを使用する場合、ソーシャルネットワークプラットフォーム上で他のユーザと互いに情報を送ったり、音声会話やビデオ会話などのソーシャルネットワーキング行動を行ったりすることができ、それに基づいて他のユーザとソーシャル関係を築くことができ、これと同時にソーシャルネットワークプラットフォーム上で相応するソーシャルビジネスデータを生成することができる。また、例えば、ユーザは、端末デバイス110上で決済アプリケーションプログラムを使用する場合、オンライン決済プラットフォーム上で他のユーザに対して支払ったりお金を受け取ったりする行動を行うことができ、それに基づいて他のユーザと取引関係を築くことができ、これと同時にオンライン決済プラットフォーム上で相応する取引ビジネスデータを生成することができる。
【0026】
ソーシャルビジネスデータや取引ビジネスデータなどの関連するユーザデータが収集された後、本出願の実施例では、ユーザデータに対応するインタラクション関係に基づいてグラフネットワークモデルを構築し、当該グラフネットワークモデルに対してデータマイニングを行うことによって、インタラクション関係におけるユーザのサービス属性を得ることができる。取引アプリケーションシナリオを例にとると、事業者と消費者の間の取引関係を反映するためのグラフネットワークモデルでは、ノードは事業者または消費者を表し、エッジは2つのノード間に取引関係があることを表す。一般的に、事業者ノードはネットワークの中心に位置することが多く、ノードのコア次数(cоre値)はトポロジー特徴として下流の機械学習タスクに入力することによって、ビジネスモードマイニングタスクを実現し、グラフネットワークモデルにおけるノードが事業者か消費者かを識別することができる。さらに、決済ビジネスのリスク管理シナリオでは、グラフネットワークモードに基づいてデータマイニングを行い、あるノード(またはエッジ)上に異常な取引行動があるかどうかを検出することによって、違法な信用仲介、キャッシュアウト、多重債務、ギャンブルなどの異常な取引行動などの検出タスクを実行することもできる。
【0027】
ビッグデータの分析及びマイニング効率を向上させるために、本出願の実施例では、クラウドテクノロジーを使用して分散コンピューティングを実行することができる。
【0028】
クラウドテクノロジー(cloud technology)とは、ワイドエリアネットワーク又はローカルエリアネットワークにハードウェア、ソフトウェア、ネットワークなどの一連のリソースを統合して、データの計算、保存、処理及び共有を実現するホスティング技術を意味する。クラウドテクノロジーは、クラウドコンピューティングビジネスモードが応用するネットワーク技術、情報技術、統合技術、管理プラットフォーム技術、応用技術などに係り、必要に応じて柔軟かつ便利に利用できるリソースプールを構成してもよい。テクノロジーネットワークシステムのバックエンドサービスには、ビデオウェブサイト、画像ウェブサイト及び他のポータルウェブサイトなどの大量のコンピューティング及びストレージリソースが必要である。インターネット産業の急速な発展と応用に伴い、将来的には、各アイテムに独自の識別子を持つ可能性があり、論理処理のためにバックエンドシステムに伝送する必要がある。異なるレベルのデータは個別に処理され、様々な業界データは強力なシステムのサポートを必要とし、クラウドコンピューティングでしか実現できない。
【0029】
クラウドコンピューティング(cloud computing)は、大量のコンピュータで構成されるリソースプールにコンピューティングタスクを分散するコンピューティングモードであり、様々なアプリケーションシステムが必要に応じて計算力、記憶空間、および情報サービスを取得できるようにする。リソースを提供するネットワークは「クラウド」と呼ばれる。「クラウド」におけるリソースは使用者から見れば無限に拡張することができ、且つ随時取得し、必要に応じて使用し、随時拡張し、使用に応じて課金することができる。
【0030】
クラウドコンピューティングの基本機能プロバイダーとして、クラウドコンピューティングリソースプール(略してクラウドプラットフォーム、一般的に、IaaS(Infrastructure as a Service)と呼ばれる)プラットフォームを構築し、リソースプールには、クライアントの選択と使用のために多種類の仮想リソースを配置する。クラウドコンピューティングリソースプールには、主にコンピューティングデバイス(オペレーティングシステムを含む仮想マシン)、記憶デバイス、およびネットワークデバイスが含まれる。
【0031】
論理的機能ごとに分けると、IaaS層上に(Platform as a Service)層を配置でき、PaaS層上にSaaS(Software as a Service)層をさらに配置でき、SaaSをIaaS上に直接配置してもよい。PaaSは、データベース、Webコンテナーなどのソフトウェアが実行されるプラットフォームである。SaaSは、Webポータル、マステキスティングデバイスなど様々なビジネスソフトウェアである。一般的に、SaaSとPaaSはIaaSの上位層である。
【0032】
ビッグデータ(Big data)とは、従来のソフトウェアツールで一定期間内にキャプチャ、管理及び処理できないデータの集合を指し、より強力な意思特定力、洞察発見力及びプロセス最適化機能を備えた新たな処理モードでなければ、大容量で、高成長率で、多様な情報資産(即ち、ビッグデータ)を処理することができない。クラウド時代の到来と伴い、ビッグデータもますます多くの注目を集めており、ビッグデータは、大量のデータを効果的に処理するために、特殊な技術を必要としている。ビッグデータに適用する技術は、大規模な並行処理データベースと、データマイニングと、分散ファイルシステムと、分散データベースと、クラウド計算プラットフォームと、インターネットと、拡張可能な記憶システムとを含む。
【0033】
人工知能クラウドサービスは、一般的に、AIaaS(AI as a Service、中国語は「AI即服務」である))とも称される。これは、現在の主流の人工知能プラットフォームのサービス方式であり、具体的には、AIaaSプラットフォームは、幾つかのタイプの一般的なAIサービスを分割し、そして、クラウドで独立した又はパッケージ化されたサービスを提供することができる。このようなサービスモードは、1つのA1テーマショッピングモールを開いたことと類似しており、全ての開発者は、APIインターフェースによって、プラットフォームにより提供された1つ又は複数の人工知能サービスにアクセスすることができ、一部のベテラン開発者は、プラットフォームにより提供されたA1フレームワークとAIインフラを用いて独自のクラウド人工知能サービスを配備し、運営維持することもできる。
【0034】
人工知能(Artificial Intelligence、AI)は、デジタルコンピュータ又はデジタルコンピュータにより制御される機械シミュレーションを利用して、人の知能を延長・拡張し、環境を感知し、知識を取得し利用して最適な結果としての理論、方法、技術、及びアプリケーションシステムを取得する。言い換えると、人工知能はコンピュータ科学の総合技術であり、知能の実質を了解して、人間の知能に類似する方式で反応できる新たなスマートマシンを生成しようとする。人工知能は、各種のスマートマシンの設計原理及び実現方法を研究して、マシンに感知、推理及び決定の機能を具備させる。
【0035】
人工知能技術は総合学科であり、幅広い分野に関わり、ハードウェア層面の技術もあれば、ソフトウェア層面の技術もある。人工知能の基礎技術は、一般的に、センサ、専用人工知能チップ、クラウドコンピューティング、分布式記憶、ビッグデータ処理技術、操作/インタラクションシステム、メカトロニクスなどの技術を含む。人工知能ソフトウェア技術は、主に、コンピュータビジョン技術、音声処理技術、自然言語処理技術及び機械学習/深層学習などのいくつかの方向を含む。
【0036】
人工知能技術の研究及び進歩に伴い、人工知能技術は、通常のスマートホーム、スマートウェアラブルデバイス、仮想アシスタント、スマートスピーカー、スマートマーケティング、無人運転、自動運転、ドローン、ロボット、スマート医療、スマートカスタマーサービスなど、複数の分野において研究及び応用が展開されており、技術の発展に伴い、人工知能技術は、より多くの分野に適用され、ますます重要な価値を発揮するだろう。
【0037】
以下で、具体的な実施形態と結合して、本出願の実施例で提供されるデータ処理方法、データ処理装置、コンピュータ可読媒体、電子機器及びコンピュータプログラム製品などの技術案について詳細に説明する。
【0038】
図2は、本出願の一実施例におけるデータ処理方法のステップフローチャートを示す。当該データ処理方法は電子機器によって実行されることができ、たとえば、
図1に示す端末デバイス110上で実行されてもよく、
図1に示すサーバ130上で実行されてもよく、または端末デバイス110およびサーバ130によって共同で実行されてもよい。
図2に示すように、当該データ処理方法は、主に、以下のステップS210からステップS240を含むことができる。
【0039】
ステップS210において、インタラクションオブジェクトを表すためのノードと、複数のインタラクションオブジェクト間のインタラクション関係を表すためのエッジとを含む関係グラフネットワークを取得する。
【0040】
ステップS220において、複数のコンピューティングデバイスを含むデバイスクラスタによって、関係グラフネットワークに対してコア次数マイニングを行うことで、関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新する。
【0041】
ステップS230において、ノードコア次数に基づいて、関係グラフネットワークに対してプルーニング処理を行うことで、関係グラフネットワーク内の一部のノードおよび一部のエッジを除去する。
【0042】
ステップS240において、関係グラフネットワークのネットワーク規模が所定のネットワーク圧縮条件を満たす場合、デバイスクラスタに対して圧縮処理を行うことで、デバイスクラスタにおける一部のコンピューティングデバイスを除去する。
【0043】
本出願の実施例で提供されるデータ処理方法では、インタラクションオブジェクト間のインタラクション関係に関するビジネスデータに基づいて関係グラフネットワークを確立し、関係グラフネットワークの構造特性とスパース性を利用して、デバイスクラスタによって分散コンピューティングを行い、コア次数マイニングを領域別に行うことができる。ノードコア次数の継続的な反復更新につれて、関係グラフネットワークに対してプルーニング処理を行い、反復収束したノード及び対応するエッジを「除去する」ことによって、関係グラフネットワークがノードコア次数の反復更新につれて継続的に圧縮され小さくなり、コンピューティングリソースの消費が削減される。これに基づいて、関係グラフネットワークが適切なサイズに圧縮されると、コア次数マイニングを行うためのデバイスクラスタに対して圧縮処理をさらに行うことができる。こうすれば、大量のコンピューティングリソースを解放するだけでなく、並行計算によるデータ配信などの追加の時間コストを削減し、データ処理効率を向上させることができる。
【0044】
以下、上記の実施例におけるデータ処理方法の各方法ステップについて詳細に説明する。
【0045】
ステップS210において、インタラクションオブジェクトを表すためのノードと、複数のインタラクションオブジェクト間のインタラクション関係を表すためのエッジとを含む関係グラフネットワークを取得する。
【0046】
インタラクションオブジェクトは、ネットワークサービスプラットフォーム上でサービスインタラクションを行うユーザオブジェクトであり得る。たとえば、商品取引に関するオンライン決済シナリオでは、インタラクションオブジェクトは、オンライン決済を開始する消費者と、決済を受け取る事業者を含んでもよく、インタラクションオブジェクト間のインタラクション関係は、決済イベントに基づいて消費者と事業者との間に確立されたネットワーク取引関係である。
【0047】
本出願の実施例では、複数のインタラクションオブジェクト間のビジネス取引中に生成されるビジネスデータを収集することで、複数のインタラクションオブジェクトおよびこれらのインタラクションオブジェクト間のインタラクション関係を抽出することができ、それによって、ノード(Nоde)とエッジ(Edge)とで構成される関係グラフネットワークを確立することができる。ここで、各ノードは1つのインタラクションオブジェクトを表し、2つのノードを接続するエッジは、2つのノードのそれぞれに対応するインタラクションオブジェクト間のインタラクション関係を表すことができる。
【0048】
ステップS220において、複数のコンピューティングデバイスを含むデバイスクラスタによって、関係グラフネットワークに対してコア次数マイニングを行うことで、関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新する。
【0049】
ノードコア次数は、グラフネットワークにおける各ノードの重要度を測るためのパラメータである。本出願の実施例では、グラフネットワークのkコア分解(k-cоre decоmpоsitiоn)により定められた各ノードのコアネス(cоreness)を用いて、ノードのノードコア次数を表すことができる。1つのグラフのkコア(k-core)とは、次数がk以下のノードを繰り返して除去した後に残ったサブグラフを指す。なお、ノードの次数は、当該ノードと直接隣接関係がある隣接ノードの数に等しい。一般的に、ノードの次数は、グラフネットワークのローカルエリアにおける当該ノードの重要度をある程度で反映することができ、ノードのコアネスをマイニングすることによって、当該ノードの重要度をグローバル範囲内でより効果的に測ることができる。
【0050】
あるノードがk-coreに存在し、(k+1)-coreから除去された場合、当該ノードのコアネスはkである。k-coreマイニングは、グラフネットワーク内のすべてのノードのコアネスを計算するアルゴリズムである。たとえば、原始のグラフネットワークは0コアのグラフであり、1コアは、グラフネットワークからすべての孤立点を削除したグラフであり、2コアは、グラフネットワークから次数が2よりも小さいすべてのノードを除去し、次に残りのグラフから次数が2よりも小さいノードを除去し、このように除去できなくなるまで繰り返したものであり、3コアは、グラフネットワークから次数が3よりも小さいすべてのノードを除去し、次に残りのグラフから次数が3よりも小さいノードを削除し、このように除去できなくなるまで繰り返したものであり、……あるノードのコアネスは、当該ノードが所在する最大コアの次数として定義される。たとえば、あるノードが最大5コアに存在し、6コアに存在しない場合、当該ノードのコアネスは5となる。
【0051】
図3は、本出願の一実施例における分散コンピューティングに基づくコア次数マイニング方法のステップフローチャートを示す。
図3に示すように、上記の実施例に基づいて、ステップS220において、複数のコンピューティングデバイスを含むデバイスクラスタによって、関係グラフネットワークに対してコア次数マイニングを行うことで、関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新するステップは、以下のステップS310からステップS330を含むことができる。
【0052】
ステップS310において、関係グラフネットワークに対して分割処理を行うことで、関係グラフネットワーク内の一部のノード及び一部のエッジからなるパーティショングラフネットワークを得る。
【0053】
比較的大きなネットワーク規模の関係グラフネットワークを分割処理することによって、比較的小さな規模の複数のパーティショングラフネットワークを得ることができる。本出願の一実施例では、関係グラフネットワークに対して分割処理を実行する方法は、まず、所定の分割数に従って、関係グラフネットワークにおいて複数の分割中心点を選択し、次に、分割中心点をクラスタリング中心とし、関係グラフネットワーク内のすべてのノードに対してクラスタリング処理を実行することによって、各ノードをそれに最も近い分割中心点に割り当て、最後に、ノードのクラスタリング結果に従って、関係グラフネットワークを複数のパーティショングラフネットワークに分割することを含み得る。分割中心点は、関係グラフネットワークにおいて所定のルールに従って選択されたノード、またはランダムに選択されたノードであり得る。
【0054】
本出願の一実施例では、隣接する2つのパーティショングラフネットワーク間に特定の重複領域があることができ、2つのパーティショングラフネットワークは重複領域において一部のノードおよび一部のエッジを共有することで、一定の計算冗長を生成し、パーティショングラフネットワークごとのコア次数マイニングの信頼性を向上させることができる。
【0055】
ステップS320において、パーティショングラフネットワークを、複数のコンピューティングデバイスを含むデバイスクラスタに割り当て、パーティショングラフネットワークに対してコア次数マイニングを行うためのコンピューティングデバイスを決定する。
【0056】
複数のパーティショングラフネットワークを異なるコンピューティングデバイスにそれぞれ割り当てることは、コンピューティングデバイスから構成されるデバイスクラスタによりコア次数マイニングの分散コンピューティングを実現し、データ処理効率を向上させることができる。
【0057】
本出願の一実施例では、関係グラフネットワークに対して分割処理を実行する場合、関係グラフネットワークは、デバイスクラスタ内の利用可能なコンピューティングデバイスの数に基づいて、対応する数のパーティショングラフネットワークに分割され得る。たとえば、分散コンピューティングを行うデバイスクラスタがM個のコンピューティングデバイスを含むと仮定すると、それに対応して、関係グラフネットワークをM個のパーティショングラフネットワークに分割し得る。
【0058】
本出願の別の実施例では、単一のコンピューティングデバイスのコンピューティング能力に基づいて、関係グラフネットワークを、複数の規模の近いパーティショングラフネットワークに分割し、そして、各パーティショングラフネットワークを、同じ数のコンピューティングデバイスに割り当てることもできる。たとえば、関係グラフネットワークがN個のノードを含むと仮定すると、関係グラフネットワークを、N/T個のパーティショングラフネットワークに分割し得る。ここで、Tは、単一のコンピューティングデバイスのコンピューティング能力に基づいて決定される、処理できる単一のパーティショングラフネットワークのノード数である。関係グラフネットワークの規模が大きく、パーティショングラフネットワークの数が多い場合、各パーティショングラフネットワークに含まれるノードは、当該ノード数にほぼ等しい。関係グラフネットワークの分割が完了したら、デバイスクラスタからN/T個のコンピューティングデバイスを選択し、各コンピューティングデバイスに1つのパーティショングラフネットワークを割り当てる。デバイスクラスタにおけるデバイス数がN/Tよりも小さいと、コンピューティングデバイスのコンピューティング能力及び動作状態に応じて、複数のパーティショングラフネットワークを一部またはすべてのコンピューティングデバイスに割り当てることができる。
【0059】
ステップS330において、割り当てられたコンピューティングデバイスによって、パーティショングラフネットワークに対してコア次数マイニングを行うことで、パーティショングラフネットワーク内の各ノードのノードコア次数を反復的に更新する。
【0060】
本出願の一実施例では、所定のルールに従って、関係グラフネットワーク内の各ノードのノードコア次数に対して初期化割り当てを行い、次に、各反復ラウンドで各ノードのノードコア次数を反復的に更新することができる。
【0061】
いくつかの選択可能な実施形態では、ノードの次数に基づいて、ノードコア次数を初期化することができる。具体的には、関係グラフネットワークでは、ノードごとに、当該ノードと隣接関係がある隣接ノードのノード数を取得し、次に、ノードごとに、当該ノードと隣接関係がある隣接ノードの数に応じて、当該ノードのノードコア次数を初期化する。ノードの次数は、1つのノードと隣接関係がある隣接ノードのノード数を表す。他のいくつかの実施形態では、ノード自体の属性と結合して重み情報を決定し、そして、ノードの次数と重み情報の両方に基づいてノードコア次数に対して初期化割り当てを行うことができる。
【0062】
図4は、本出願の一実施例におけるパーティショングラフネットワークに対してコア次数マイニングを行うステップのフローチャートを示す。
図4に示すように、上記の実施例に基づいて、ステップS330において、パーティショングラフネットワークに対してコア次数マイニングを行うことで、パーティショングラフネットワーク内の各ノードのノードコア次数を反復的に更新するステップは、以下のステップS410からステップS440を含むことができる。
【0063】
ステップS410において、パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択し、コンピューティングノードと隣接関係がある隣接ノードを決定する。
【0064】
ノードコア次数に対して初期化割り当てを行った後の1回目の反復ラウンドにおいて、パーティショングラフネットワーク内のすべてのノードをコンピューティングノードとして決定することができる。コンピューティングノードは、現在の反復ラウンドにおけるコア次数マイニングコンピューティングを必要とするノードであり、マイニング結果に従って、各ノードのノードコア次数を更新するかどうかを決定することができる。
【0065】
コア次数マイニングを行う各反復ラウンドにおいて、前の反復ラウンドのコア次数マイニング結果およびノードコア次数の更新結果に基づいて、現在の反復ラウンドにおけるコア次数マイニングを必要とするコンピューティングノードを決定することができる。これらのコンピューティングノードのうちの一部またはすべてのノードは、現在の反復ラウンドでノードコア次数が更新される。コンピューティングノード以外の他のノードは、現在の反復ラウンドでコア次数マイニングが実行されず、もちろん、ノードコア次数も更新されない。
【0066】
本出願の実施例における隣接ノードとは、1つのノードと直接接続関係がある他のノードを指す。各ノードのノードコア次数はその隣接ノードからの影響を受けるため、反復が続くと、現在の反復ラウンドでノードコア次数が更新されていないノードは、後続の反復でコンピューティングノードとして選択される可能性もある。
【0067】
図5は、本出願の一実施例におけるコンピューティングノードを選択するステップフローチャートを示す。
図5に示すように、ステップS410において、パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択するステップは、以下のステップS510からステップS520を含むことができる。
【0068】
ステップS510において、第1の記憶空間から更新すべきノードのノード識別子を読み取り、更新すべきノードは、前の反復ラウンドにおけるノードコア次数が更新されたアクティブノード、及びアクティブノードと隣接関係がある隣接ノード含む。
【0069】
関係グラフネットワークを構成するパーティショングラフネットワークは、異なるコンピューティングデバイス上で分散的に処理されるが、互いに隣接する2つのパーティショングラフネットワークのエッジ領域に関係グラフネットワーク内で元々隣接していたノードが含まれる場合があり、かつこれら2つのノードコア次数は引き続き互いに影響し合うことがある。従って、分散コンピューティングの中に、各パーティショングラフネットワーク内のノードコア次数更新の同期性と一貫性を保つために、本出願の実施例では、システムには、関係グラフネットワーク内のすべての更新すべきノードのノード識別子を保存するための第1の記憶空間を割り当てる。
【0070】
1つの反復ラウンドにおいて、あるパーティショングラフネットワーク内のノードはコア次数マイニング結果に従ってそのノードコア次数が更新されると、そのノードをアクティブノードとしてラベル付けし得る。アクティブノードとアクティブノードの隣接ノードは更新すべきノードとされ、更新すべきノードのノード識別子は第1の記憶空間内に書き込まれる。
【0071】
ステップS520において、更新すべきノードのノード識別子に基づいて、パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択する。
【0072】
1つの反復ラウンドが開始すると、各コンピューティングデバイスは、第1の記憶空間から更新すべきノードのノード識別子を読み取ることができ、さらに読み取られた更新すべきノードのノード識別子に基づいて、当該コンピューティングデバイスに割り当てられたパーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択することができる。
【0073】
上述のようなステップS510からステップS520を実行することによって、第1の記憶空間を通じて、反復ラウンドが完了するたびに関係グラフネットワーク内のすべての更新すべきノードのノード識別子をまとめ、新しい反復ラウンドが開始する際に、すべての更新すべきノードのノード識別子を異なるコンピューティングデバイスに割り当てることができ、これによって、各コンピューティングデバイスは、それらによって保守されるパーティショングラフネットワークからコンピューティングノードを選択することができるようになる。
【0074】
ステップS420において、現在の反復ラウンドにおけるコンピューティングノード及びコンピューティングノードの隣接ノードの現在のノードコア次数を取得する。
【0075】
本出願の実施例では、各反復ラウンドにおけるコア次数マイニング結果に従って、ノードのノードコア次数をリアルタイムで監視および更新することができる。現在の反復ラウンドにおける各ノードの現在のノードコア次数は、前の反復ラウンドで決定された最新のノードコア次数である。
【0076】
選択可能な実施形態では、本出願の実施例は、システム内に、関係グラフネットワーク内のすべてのノードのノードコア次数を記憶するための第2の記憶空間を割り当てることができる。コンピューティングデバイスは既存のコア次数データに基づいてコア次数マイニングおよび更新を行う必要がある場合、第2の記憶空間から現在の反復ラウンドにおけるコンピューティングノード及びその隣接ノードの現在のノードコア次数を読み取ることができる。
【0077】
ステップS430において、隣接ノードの現在のノードコア次数に基づいて、コンピューティングノードの一時ノードコア次数を決定し、当該コンピューティングノードの一時ノードコア次数が当該コンピューティングノードの現在のノードコア次数よりも小さいかどうかを判断し、当該コンピューティングノードの現在のノードコア次数よりも小さいと判断されると、当該コンピューティングノードをアクティブノードとしてラベル付けする。
【0078】
コアネス(coreness)をコア次数とする例を挙げると、本出願の関連技術では、k-coreの定義に基づいて、再帰的プルーニング法を使用して関係グラフネットワークに対してコア次数マイニングを行うことができる。具体的には、k=1から始まり、残りのグラフ内のすべてのノードの次数がkよりも大きくなるまで、次数がk以下のノードとその接続エッジをグラフから連続的に削除することができる。再帰的プルーニングは「タマネギの皮をむく」ように、k回目のラウンドにおける剥かれたすべてのノードのcore値はkである。しかしながら、この方法では、グラフネットワーク全体を外から内へ徐々に減縮することでコアネスを算出するため、グラフネットワーク全体のデータを集中計算でシリアルに処理するしかなく、分散並列処理はほとんど適用できない。超大規模(100億/1000オーダー)の関係グラフネットワークの場合、計算時間が長すぎたり、計算パフォーマンスが低下したりするなどの問題がある。
【0079】
この問題を解消するために、本出願の一実施例では、hインデックスに基づく反復法を使用してコア次数マイニングを行うことができる。具体的には、本出願の実施例では、隣接ノードの現在のノードコア次数に基づいてコンピューティングノードのhインデックスを決定し、hインデックスをコンピューティングノードの一時ノードコア次数とすることができ、hインデックスは、コンピューティングノードのすべての隣接ノードに現在のノードコア次数がh以上である最大h個の隣接ノードを含むことを表すために使用される。
【0080】
たとえば、あるコンピューティングノードは5つの隣接ノードを有し、これらの5つの隣接ノードの現在のノードコア次数はそれぞれ2、3、4、5および6である。ノードコア次数が小さい順から、当該コンピューティングノードの5つの隣接ノードには、現在のノードコア次数が1以上である5つの隣接ノードを含み、現在のノードコア次数が2以上である5つの隣接ノードを含み、現在のノードコア次数が3以上である4つの隣接ノードを含み、現在のノードコア次数が4以上である3つの隣接ノードを含み、現在のノードコア次数が5以上である2つの隣接ノードを含み、現在のノードコア次数が6以上である1つの隣接ノードを含む。このように、当該コンピューティングノードのすべての隣接ノードに、現在のノードコア次数が3以上である最大3つの隣接ノードを含むため、当該コンピューティングノードのhインデックスは3であり、さらに、当該コンピューティングノードの一時ノードコア次数は3であると決定され得る。
【0081】
図6は、本出願の一実施例におけるコンピューティングノードのhインデックスを決定するステップフローチャートを示す。
図6に示すように、上記の実施例に基にして、隣接ノードの現在のノードコア次数に基づいて、コンピューティングノードのhインデックスを決定する方法は、以下のステップS610からステップS630を含むことができる。
【0082】
ステップS610において、コンピューティングノードのすべての隣接ノードを、現在のノードコア次数の高い順にシーケンシングし、0から各隣接ノードに配列シーケンス番号を割り当てる。
【0083】
ステップS620において、各隣接ノードの配列シーケンス番号と現在のノードコア次数をそれぞれに比較し、比較結果に基づいて、配列シーケンス番号が現在のノードコア次数以上である隣接ノードをフィルタリングする。
【0084】
ステップS630において、フィルタリングされた隣接ノードのうち、配列シーケンス番号が最も小さい隣接ノードの現在のノードコア次数を、コンピューティングノードのhインデックスとして決定する。
【0085】
本出願の実施例では、シーケンシング及びフィルタリングによって、コンピューティングノードのhインデックスを迅速かつ効率的に決定することができ、特に、コンピューティングノード数の規模が比較的大きい場合に適用する。
【0086】
ステップS440において、一時ノードコア次数に基づいて、アクティブノードの現在のノードコア次数を更新し、アクティブノード及びアクティブノードと隣接関係がある隣接ノードを、次の反復ラウンドでコア次数マイニングを行うコンピューティングノードとして決定する。
【0087】
アクティブノードの一時ノードコア次数が得られた後、当該アクティブノードの一時ノードコア次数と当該アクティブノードの現在のノードコア次数の大きさを比較することができ、一時ノードコア次数が現在のノードコア次数よりも小さいと、現在のノードコア次数を、当該一時ノードコア次数に置き換えることができる。両者が同じであると、現在の反復ラウンドにおいて当該コンピューティングノードを更新する必要がないことを意味する。
【0088】
本出願の一実施例では、一時ノードコア次数に基づいてアクティブノードの現在のノードコア次数を更新し後、各パーティショングラフネットワークにおけるノードコア次数の更新結果に従って、関係グラフネットワークにおける更新結果全体をまとめることができ、さらに、次の反復ラウンドにおけるコア次数マイニングの基礎を提供することができる。
【0089】
図7は、本出願の一実施例におけるパーティショングラフネットワークのノードコア次数マイニング結果をまとめるステップフローチャートを示す。
図7に示すように、上記の実施例に基づいて、各パーティショングラフネットワークのノードコア次数マイニング結果をまとめるための方法は、以下のステップS710からステップS730を含むことができる。
【0090】
ステップS710において、更新されたアクティブノードの現在のノードコア次数を第2の記憶空間に書き込み、第2の記憶空間は、関係グラフネットワーク内のすべてのノードのノードコア次数を記憶するために使用される。
【0091】
ステップS720において、アクティブノードのノード識別子とアクティブノードの隣接ノードのノード識別子を取得し、取得したノード識別子を第3の記憶空間に書き込み、第3の記憶空間は、次の反復ラウンドでコア次数マイニングを行うコンピューティングノードのノード識別子を記憶するために使用される。
【0092】
ステップS730において、現在の反復ラウンドにおけるすべてのパーティショングラフネットワークのコア次数マイニングが完了した後、第1の記憶空間におけるデータを第3の記憶空間におけるデータで上書きし、第3の記憶空間をリセットする。
【0093】
本出願の実施例では、第3の記憶空間を配置し、各反復ラウンドにおける第3の記憶空間の更新およびリセットに基づいて、パーティショングラフネットワークのノードコア次数マイニング結果をまとめて配信することを実現するため、分散コンピューティングを利用してデータ処理効率を向上させる上で、データ処理の安定性及び信頼性を確保する。
【0094】
ステップS230において、ノードコア次数に基づいて、関係グラフネットワークに対してプルーニング処理を行うことで、関係グラフネットワーク内の一部のノードおよび一部のエッジを除去する。
【0095】
ノードコア次数のマイニングと反復更新に伴い、グラフネットワークのノードとエッジは徐々に収束し安定状態になり、以降の反復でノードコア次数を更新せず、他のノードのコア次数マイニング結果に影響することもない。関係グラフネットワーク及びパーティショングラフネットワークのデータ規模を小さくするために、これらの収束したノードについて、プルーニングで除去することができる。
【0096】
選択可能な実施形態では、本出願の実施例は、現在の反復ラウンドにおけるアクティブノードの最小コア次数と、前の反復ラウンドにおけるアクティブノードの最小コア次数を取得することができる。現在の反復ラウンドにおけるアクティブノードの最小コア次数が、前の反復ラウンドにおけるアクティブノードの最小コア次数よりも大きいと、前の反復ラウンドにおけるアクティブノードの最小コア次数に基づいて、関係グラフネットワーク内の収束ノードをフィルタリングする。収束ノードは、ノードコア次数が前の反復ラウンドにおけるアクティブノードの最小コア次数以下のノードである。関係グラフネットワークから収束ノード及び収束ノードに接続されるエッジを除去する。
【0097】
図8は、本出願の一実施例におけるノードコア次数の反復更新に基づいて関係グラフネットワークに対して圧縮プルーニングを行うプロセスの模式図を示す。
【0098】
圧縮プルーニング方法の鍵は、各反復ラウンドにおけるノードのcоre値の変化を分析することである。
【数1】
は、t回目の反復ラウンドにおけるノードvのcоre値を表し、minCore
(t)は、t回目の反復ラウンドにおけるcоre値が更新されたノードの最小cоre値を表す。
【数2】
【0099】
1つのノードのcоre値が更新されると、更新されたcоre値は元のcоre値よりも小さくなる。ノードのcоre値が各反復ラウンドの進行につれて漸減するというルールに従って、minCore(t)>minCore(t-1)の場合、cоre値がminCore(t-1)以下のノードのすべては収束し後で更新されないことを意味する。k-coreマイニングの特徴によれば、cоre値が小さいノードはcоre値が大きいノードの反復に影響を与えないため、各反復ラウンドにおける収束したノードとそれに対応するエッジを「除去」でき、これにより、反復が進むにつれて、グラフネットワークは徐々に圧縮され小さくなることがわかる。
【0100】
図8に示されるように、初期化されたcоre値に基づいて、初期最小cоre値がminCore
(0)=1であると決定することができる。1回目の反復ラウンドの後、そのうちの一部のノードのcоre値が更新され、これらのcоre値が更新されたノードの中で、最小cоre値はminCore
(1)=1である。そして2回目の反復ラウンドの後、そのうち別の一部のノードのcоre値が更新され、これらのcоre値が更新されたノードの中で、最小cоre値はminCore
(2)=1である。
【0101】
minCore(2)>minCore(1)であるため、関係グラフネットワークのプルーニング処理をトリガーし、その中のcоre値が1であるノードを除去することによって、関係グラフネットワークを圧縮するという目的を達成することができる。
【0102】
ステップS240において、関係グラフネットワークのネットワーク規模が所定のネットワーク圧縮条件を満たす場合、デバイスクラスタに対して圧縮処理を行うことで、デバイスクラスタにおける一部のコンピューティングデバイスを除去する。
【0103】
関係グラフネットワークのネットワーク規模が次第に圧縮され小さくなるにつれて、それに対してノードコア次数マイニングを行うのに必要なコンピューティングリソースも徐々に減少し、この場合、反復の進行につれて、一部のコンピューティングリソースを解放して、リソースの消費を削減することができる。
【0104】
本出願の一実施例では、ネットワーク圧縮条件は、関係グラフネットワーク内のエッジの数が所定の数量閾値よりも小さいことを含むことができる。デバイスクラスタを圧縮処理する方法として、プルーニング処理された関係グラフネットワークのネットワーク規模に応じて、関係グラフネットワークを再分割することで、数が減少したパーティショングラフネットワークを得るとともに、減少後のグラフネットワークの数に応じて、比較的少ないコンピューティングデバイスを呼び出すことができる。
【0105】
本出願の一実施例では、圧縮された関係グラフネットワークのネットワーク規模が一定の条件を満たす場合、当該関係グラフモデルに対してスタンドアロンコンピューティングを行うためのターゲットデバイスとして、デバイスクラスタから1つのコンピューティングデバイスを選択し、デバイスクラスタから、ターゲットデバイス以外の他のコンピューティングデバイスを除去することができる。これによって、複数のコンピューティングデバイスによる分散コンピューティングモードから単一のコンピューティングデバイスによる集中型コンピューティングモードへの変換を実現することができる。
【0106】
ここで、添付の図面において特定の順序で本出願の実施例における方法の各ステップを記載したが、当該特定の順序に従ってこれらのステップを実行しなければならないわけでなく、又は示した全てのステップを実行しなければ、期待結果を実現できないわけでもない。付加的又は選択的に、いくつかのステップを省略して、複数のステップを1つのステップに合併して実行してもよいし、及び/又は1つのステップを複数のステップに分解して実行してもよい。
【0107】
上記の実施例におけるデータ処理方法の説明に基づいて分かるように、本出願の実施例で提供されるデータ処理方法は、圧縮プルーニングの考え方に基づくk-cоreマイニングの方法に関する。いくつかの選択可能な実施形態では、当該方法はhインデックスの反復更新に依存して行われることができ、指定された条件を満たす場合にグラフネットワークの圧縮プルーニングを自動的に実行することができる。本出願の実施例で提供されるデータ処理方法のアプリケーションシナリオでの方法の流れは、以下のステップを含むことができる。
【0108】
(1)関係グラフネットワークG(V,E)内の各ノードvに対して、ノード次数を使用してそのcоre値を初期化し、
【数3】
である。その中、deg(v)はノード次数、即ちノードの隣接ノードの個数を表す。最小ノード次数でminCoreを初期化し、即ち、
【数4】
である。
【0109】
(2)numMsgsパラメータをセットし、各反復ラウンドでcore値が変化したノードの個数を表し、numMsgsは0で初期化される。
【0110】
(3)G(V,E)内のノードごとに、その隣接ノードのcоre値に基づいてhインデックス(即ち、h-inde値)を算出し、今回の反復ラウンドにおけるcоre値
【数5】
とし、
【数6】
である。ここで、N(v)はノードvの隣接ノードの集合を表す。
【数7】
の場合、当該ノードのcоre値を更新し、numMsgを1だけ増加させるとともに、今回更新されたノードの最小cоre値minCore
(t)を算出し、
【数8】
である。
【0111】
(4)numMsgsが0であるかどうかを判断する。numMsgsが0の場合は、すべてのノードのcоre値が更新されなくなり、反復が停止することを表す。そうでない場合は、ステップ(5)を実行する。
【0112】
(5)minCore(t)>minCore(t-1)が成立するかどうかを判断し、成立すると、圧縮プルーニングポリシーを実行し、即ち、cоre値がminCore(t-1)以下のノード及び対応するcоre値を保存し、これと同時にこれらのノード及び対応する接続エッジを、G(V,E)反復グラフから除去することで、圧縮されたサブグラフG’(V,E)を得る。G’(V,E)に対してステップ3~5の反復を実行し続ける。minCore(t)>minCore(t-1)を満足しないと、元のグラフに対してステップ3~5の反復を実行し続ける。
【0113】
大規模なグラフネットワークのk-coreマイニングの場合、上記の反復ステップでは、最初に分散並列コンピューティングの方式で展開する。圧縮されたサブグラフG’(V,E)の規模が所定の条件を満たす(たとえば、エッジ数が3000万未満)場合は、分散コンピューティングからスタンドアロンコンピューティングモードに変換することができる。スタンドアロンコンピューティングモードは、大量のコンピューティングリソースを解放できるだけでなく、並列コンピューティングによるデータ配信などの追加の時間コストを削減することができる。特に、長鎖構造を含むグラフネットワークの場合は、反復の後期で通常、長鎖ノードの更新に焦点が置かれるため、この際、スタンドアロンコンピューティングモードを使用する方がより適切である。
【0114】
本出願の実施例におけるk-coreマイニングアルゴリズムは、Spark on Angelプラットフォーム上で分散コンピューティングを実現することができる。ここで、Sparkは大規模なデータ処理用に設計された高速で汎用的なコンピューティングエンジンであり、Angelはパラメータサーバ(Parameter Server、PS)の概念に基づいて設計および開発された高性能分散型機械学習プラットフォームである。Spark on Angelプラットフォームは、Angelの強力なパラメータサーバ機能とSparkの大規模データ処理機能を組み合わせた高性能分散型コンピューティングプラットフォームであり、従来の機械学習、深層学習、および様々なグラフアルゴリズムをサポートする。
【0115】
図9は、本出願の実施例に係るアプリケーションシナリオでk-coreマイニングを実行する全体的なアーキテクチャおよび処理を示すフローチャートである。
図9に示すように、Spark Driverによって駆動され、各Executоrは、隣接リストパーティションデータ(つまり、パーティショングラフネットワークGraphPartiоnのネットワークデータ)を記憶し、h-index値を計算し、圧縮プルーニング操作を実行する役割を担う。Angel Parameter Serverは、ノードのcоre値、即ち、
図9におけるcоrenessベクトルを記憶および更新する役割を担う。k-coreマイニングのスパース性を利用して反復収束を高速化するために、PSには現在の反復ラウンドと次の反復ラウンドとで計算される必要のあるノードが同時に記憶され、それぞれ、
図9におけるReadMessageベクトルとWriteMessageベクトルである。今回の反復ラウンドで更新されたノードは、アクティブノードと呼ばれ、ノードのcоre値は、その隣接ノードによって決定されるという特性によれば、アクティブノードのコア値の変化は、その隣接ノードのcоre値に影響することとなるため、その隣接ノードは次の反復ラウンドで計算される必要がある。そのため、WriteMessageにリアルタイムに格納されるものは、現在の反復ラウンドにおけるアクティブノードの隣接ノードである。
【0116】
ExecutоrとPSは、反復ラウンドごとに以下のインタラクション方式でデータ処理を実行する。
【0117】
(1)ExecutоrでminCore(t)=minCore(t-1)を初期化するとともに、現在の反復ラウンドに対してchangedCoreとkeys2calcの2つのベクトル空間を作成し、それぞれに現在の反復ラウンドにおける更新されたノードと次の反復ラウンドにおける計算される必要のあるノードを記憶する。
【0118】
(2)PSのReadMessageから、今回の反復ラウンドで計算される必要のあるノード(以下、コンピューティングノードという)を引き出し、1回目の反復であればすべてのノードを引き出す。
【0119】
(3)ステップ2にて得られたコンピューティングノードに従って、現在の反復ラウンドにおける計算に関するすべてのノード(コンピューティングノードとそれに対応する隣接ノード)を決定し、対応するcоre値をPSのcоrenessから引き出す。
【0120】
(4)コンピューティングノードの各ノードvについて、その隣接ノードのcоre値のh-index値を算出し、当該ノードの新しいラウンドにおけるcоre値
【数9】
とする。
【数10】
の場合、
【数11】
をchangedCoreに書き込むとともに、ノードvのcоre値がminCore
(t-1)よりも大きい隣接ノードをkeys2calcに書き込み、minCore
(t)を決定し、
【数12】
である。
【0121】
(5)PSのcоrenessベクトルをchangedCoreで更新し、PS上のWriteMessageベクトルをkeys2calcで更新する。
【0122】
最後に、すべてのパーティションデータに対する反復ラウンドが完了したら、PSでReadMessageをWriteMessageに置き換え、WriteMessageをリセットし、次のラウンドのPSの読み取り・書き込みを用意する。すべてのデータパーティションをまとめてローバルなminCore(t)を得た後、minCore(t)>minCore(t-1)が成立するかどうかを判断する。成立する場合は、すべてのデータパーティションに対して上記の圧縮プルーニング方法を実行する。
【0123】
本出願の実施例で提供される圧縮の考え方に基づくk-coreマイニング方法によれば、超大規模ネットワーク中のk-coreマイニングに起因してリソースコストが高くなったり時間が長く掛かったりする問題を解決することができる。k-coreマイニングの反復特性に従って、反復の進行につれて一部のコンピューティングリソースを解放することが可能なリアルタイム圧縮法を設計し、分散並列コンピューティングとスタンドアロンコンピューティングの利点を組み合わせてk-coreマイニング性能を向上させることができる。Spark on Angel高性能グラフコンピューティングプラットフォームで圧縮の考え方に基づくk-coreマイニング方法を実現し、数百億/数千億のエッジを持つ超大規模ネットワークをサポートでき、リソースコストが小さくかつパフォーマンスが高くなる。
【0124】
以下で、本出願の前記実施例におけるデータ処理方法を実行できる本出願の装置の実施例について説明する。
図10は、本出願の実施例で提供されるデータ処理装置の構造ブロック図を模式的に示す。
図10に示すように、データ処理装置1000は、主に、インタラクションオブジェクトを表すためのノードと、複数のインタラクションオブジェクト間のインタラクション関係を表すためのエッジとを含む関係グラフネットワークを取得するように構成されるグラフネットワーク取得モジュール1010と、複数のコンピューティングデバイスを含むデバイスクラスタによって、前記関係グラフネットワークに対してコア次数マイニングを行うことで、前記関係グラフネットワーク内のすべてのノードまたは一部のノードのノードコア次数を反復的に更新するように構成されるコア次数マイニングモジュール1020と、前記ノードコア次数に基づいて、前記関係グラフネットワークに対してプルーニング処理を行うことで、前記関係グラフネットワーク内の一部のノードおよび一部のエッジを除去するように構成されるネットワークプルーニングモジュール1030と、前記関係グラフネットワークのネットワーク規模が所定のネットワーク圧縮条件を満たす場合、前記デバイスクラスタに対して圧縮処理を行うことで、前記デバイスクラスタにおける一部のコンピューティングデバイスを除去するように構成されるクラスタ圧縮モジュール1040と、を含むことができる。
【0125】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記クラスタ圧縮モジュール1040は、前記関係グラフモデルに対してスタンドアロンコンピューティングを行うためのターゲットデバイスとして、前記デバイスクラスタから1つのコンピューティングデバイスを選択し、前記デバイスクラスタから、前記ターゲットデバイス以外の他のコンピューティングデバイスを除去するように構成されるスタンドアロン計算ユニットを含む。
【0126】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記コア次数マイニングモジュール1020は、前記関係グラフネットワークに対して分割処理を行うことで、前記関係グラフネットワーク内の一部のノード及び一部のエッジからなるパーティショングラフネットワークを得るように構成されるネットワーク分割ユニットと、前記パーティショングラフネットワークを複数のコンピューティングデバイスを含むデバイスクラスタに割り当て、前記パーティショングラフネットワークに対してコア次数マイニングを行うためのコンピューティングデバイスを決定するように構成されるネットワーク割当ユニットと、割り当てられたコンピューティングデバイスによって、前記パーティショングラフネットワークに対してコア次数マイニングを行うことで、前記パーティショングラフネットワーク内の各ノードのノードコア次数を反復的に更新するように構成されるパーティションマイニングユニットと、を含む。
【0127】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記パーティションマイニングユニットは、前記パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択し、前記コンピューティングノードと隣接関係がある隣接ノードを決定するように構成されるノード選択サブユニットと、現在の反復ラウンドにおける前記コンピューティングノード及び前記隣接ノードの現在のノードコア次数を取得するように構成されるコア次数取得サブユニットと、前記隣接ノードの現在のノードコア次数に基づいて、前記コンピューティングノードの一時ノードコア次数を決定し、前記コンピューティングノードの一時ノードコア次数が前記コンピューティングノードの現在のノードコア次数よりも小さいかどうかを判断し、前記コンピューティングノードの現在のノードコア次数よりも小さいと判断されると、前記コンピューティングノードをアクティブノードとしてラベル付けするように構成されるコア次数計算サブユニットと、前記一時ノードコア次数に基づいて、前記アクティブノードの現在のノードコア次数を更新し、前記アクティブノード及び前記アクティブノードと隣接関係がある隣接ノードを、次の反復ラウンドでコア次数マイニングを行うコンピューティングノードとして決定するように構成されるコア次数更新サブユニットと、を含む。
【0128】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記コア次数計算サブユニットは、前記隣接ノードの現在のノードコア次数に基づいて、前記コンピューティングノードのhインデックスを決定し、前記hインデックスを前記コンピューティングノードの一時ノードコア次数とするように構成され、前記hインデックスは、前記コンピューティングノードのすべての隣接ノードに現在のノードコア次数がh以上である最大h個の隣接ノードを含むことを表すために使用される。
【0129】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記hインデックス計算サブユニットは、前記コンピューティングノードのすべての隣接ノードを、前記現在のノードコア次数の高い順にシーケンシングし、0から前記隣接ノードごとに配列シーケンス番号を割り当てるように構成されるノードシーケンシングサブユニットと、各隣接ノードの配列シーケンス番号と現在のノードコア次数とをそれぞれ比較し、比較結果に基づいて、配列シーケンス番号が現在のノードコア次数以上である隣接ノードをフィルタリングするように構成されるノードフィルタリングサブユニットと、フィルタリングされた隣接ノードのうち、配列シーケンス番号が最も小さい隣接ノードの現在のノードコア次数を、前記コンピューティングノードのhインデックスとして決定するように構成されるhインデックス特定サブユニットと、を含む。
【0130】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記ノード選択サブユニットは、第1の記憶空間から、更新すべきノードのノード識別子を読み取むように構成され、前記更新すべきノードは、前の反復ラウンドでノードコア次数が更新されたアクティブノードと、前記アクティブノードと隣接関係がある隣接ノードとを含む識別子読み取りユニットと、前記更新すべきノードのノード識別子に基づいて、前記パーティショングラフネットワークから、現在の反復ラウンドでコア次数マイニングを行うコンピューティングノードを選択するように構成される識別子選択サブユニットと、を含む。
【0131】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記データ処理装置は、更新されたアクティブノードの現在のノードコア次数を第2の記憶空間に書き込むように構成され、前記第2の記憶空間は前記関係グラフネットワーク内のすべてのノードのノードコア次数を記憶するために使用されるコア次数書き込みモジュールと、前記アクティブノードのノード識別子と前記アクティブノードの隣接ノードのノード識別子を取得するとともに、取得された前記ノード識別子を第3の記憶空間に書き込むように構成され、前記第3の記憶空間は次の反復ラウンドでコア次数マイニングを行うコンピューティングノードのノード識別子を記憶するために使用される識別子書き込みモジュールと、現在の反復ラウンドですべてのパーティショングラフネットワークのコア次数マイニングが完了した後、第1の記憶空間におけるデータを前記第3の記憶空間におけるデータで上書きし、前記第3の記憶空間をリセットするように構成される空間上書モジュールと、をさらに含む。
【0132】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記コア次数取得サブユニットは、第2の記憶空間から現在の反復ラウンドにおける前記コンピューティングノード及び前記隣接ノードの現在のノードコア次数を読み取るように構成され、前記第2の記憶空間は、前記関係グラフネットワーク内のすべてのノードのノードコア次数を記憶するために使用されるコア次数読み取りユニットを含む。
【0133】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記ネットワークプルーニングモジュール1030は、現在の反復ラウンドにおけるアクティブノードの最小コア次数と、前の反復ラウンドにおけるアクティブノードの最小コア次数を取得するように構成される最小コア次数取得ユニットと、現在の反復ラウンドにおけるアクティブノードの前記最小コア次数が前の反復ラウンドにおけるアクティブノードの前記最小コア次数よりも大きい場合、前の反復ラウンドにおけるアクティブノードの前記最小コア次数に基づいて、前記関係グラフネットワーク内の収束ノードをフィルタリングするように構成され、前記収束ノードは、ノードコア次数が前の反復ラウンドにおけるアクティブノードの前記最小コア次数以下のノードである収束ノードフィルタリングユニットと、前記関係グラフネットワークから前記収束ノード及び前記収束ノードに接続されるエッジを除去するように構成される収束ノード取除ユニットと、を含む。
【0134】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記ネットワーク圧縮条件は、前記関係グラフネットワーク内のエッジの数が所定の数量閾値よりも小さいことを含む。
【0135】
本出願のいくつかの実施例では、上記の各実施例に基づいて、前記装置は、コア次数初期化モジュールをさらに含み、前記コア次数初期化モジュールは、前記関係グラフネットワークにおいて、ノードごとに、前記ノードと隣接関係がある隣接ノードのノード数を取得し、ノードごとに、前記ノードと隣接関係がある隣接ノードのノード数に基づいて、前記ノードのノードコア次数を初期化するように構成される。
【0136】
本出願の各実施例で提供される情報処理装置の具体的な詳細について、対応する方法実施例において詳しく記載したため、ここで贅言しない。
【0137】
図11は、本出願の実施例による電子機器を実現するためのコンピュータシステムの構造ブロック図を概略的に示す。
【0138】
ここで、
図11に示す電子機器のコンピュータシステム1100は、1つの例示に過ぎず、本出願の実施例の機能及び使用範囲に対して何らかの限定もないものである。
【0139】
図11に示すように、コンピュータシステム1100は、読み取り専用メモリ(Read-Only Memory、ROM)1102に記憶されるプログラム、又は記憶部1108からランダムアクセスメモリ(Random Access Memory、RAM)1103に読み込んだプログラムに基づき、各種の適切な動作及び処理を実行できる中央処理ユニット(Central Processing Unit、CPU)1101を含む。RAM1103には、システム操作に必要な様々なプログラム及びデータがさらに記憶される。中央処理ユニット1101、読み取り専用メモリ1102及びランダムアクセスメモリ1103はバス1104によって互いに接続される。入力/出力インターフェース(Input/Output、I/Oインターフェース)1105もバス1104に接続される。
【0140】
キーボード、マウスなどを含む入力部1106、たとえば、陰極線管(Cathode Ray Tube、CRT)、液晶ディスプレイ(Liquid Crystal Display、LCD)、及びスピーカなどを含む出力部1107、ハードディスクなどを含む記憶部1108、及び、たとえばLAN(Local Area Network、ローカルネットワーク)カード、変調復調器などのネットワークインターフェースカードを含む通信部1109という構成要素はI/Oインターフェース1105に接続される。通信部1109は、インターネットのようなネットワークによって通信処理を実行する。ドライブ1110も必要に応じてI/Oインターフェース1105に接続される。取り外し可能な媒体1111、たとえば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどは、必要に応じてドライブ1110に搭載されることで、その中から読み出されたコンピュータプログラムは、必要に応じて記憶部1108にインストールされる。
【0141】
特に、本出願の実施例によれば、各方法のフローチャートに記載のプロセスをコンピュータソフトウェアプログラムとして実現できる。たとえば、本出願の実施例は、コンピュータ可読記憶媒体にキャリアされるコンピュータプログラムが含まれるコンピュータプログラム製品を含み、当該コンピュータプログラムは、フローチャートの方法を実行するためのプログラムコードを含む。このような実施例において、当該コンピュータプログラムは通信部1109を介してネットワークからダウンロードされてインストールされ、及び/又は取り外し可能な媒体1111からインストールされる。当該コンピュータプログラムは中央処理ユニット1101に実行される場合、本出願のシステムに限定される様々な機能を実行する。
【0142】
ここで、本出願の実施例に示すコンピュータ可読記憶媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体、或いは上記の両者の任意の組み合わせであり得る。コンピュータ可読記憶媒体は、たとえば電気、磁気、光、電磁、赤外線、又は半導体のシステム、装置若しくはデバイス、或いは以上の任意の組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体の例は、1つ又は複数のリード線を有する電気接続、ポータブルコンピュータ磁気ディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能なプログラマブル読み取り専用メモリ(Erasable Programmable Read-Only Memory、EPROM)、フラッシュメモリ、光ファイバ、ポータブルコンパクト磁気ディスク読み取り専用メモリ(Compact Disc Read-Only Memory、CD-ROM)、光メモリ、磁気メモリ、又は上記の任意の適切な組み合わせを含んでもよいが、これらに限定されない。本出願において、コンピュータ可読記憶媒体はプログラムを包含するか、又は記憶する任意の有形媒体であってもよく、当該プログラムは、命令実行システム、装置又はデバイスに使用されてもよく、又は結合されて使用されてもよい。また本出願において、コンピュータ可読信号媒体は、ベースバンド、又はキャリアの一部として伝播されるデータ信号を含み、コンピュータ可読プログラムコードがキャリアされる。このように伝播されるデータ信号は、多種の形態を採用でき、電磁信号、光信号又は上記の任意の適切な組み合わせを含んでもよいが、これらに限定されない。コンピュータ可読信号媒体は、さらにコンピュータ可読記憶媒体以外の、任意のコンピュータ可読記憶媒体であってもよく、当該コンピュータ可読記憶媒体は、命令実行システム、装置又はデバイスに使用され、又は結合されて使用されるプログラムを送信、伝播又は伝送し得る。コンピュータ可読記憶媒体に含まれるプログラムコードは任意の適切な媒体で伝送されてもよく、無線、有線など、又は上記の任意の適切な組み合わせを含んでもよいが、これらに限定されない。
【0143】
図面のフローチャート及びブロック図は、本出願の各種実施例によるシステム、方法及びコンピュータプログラム製品の実現可能なシステムアーキテクチャ、機能及び操作を示す。これについて、フローチャート又はブロック図における各ブロックは、1つのモジュール、プログラムセグメント、又はコードの一部を代表でき、上記のモジュール、プログラムセグメント、又はコードの一部は、規定の論理機能を実現するための1つ又は複数の実行可能な命令を含む。ここで、置換としてのいくつかの実現において、ブロックに明記される機能を図面と異なる順序で発生させてもよい。たとえば、連続的に示した2つのブロックは、実際、基本的に並行実行されてもよく、逆の順序に従って実行されてもよく、係る機能に基づき決定される。また、ブロック図又はフローチャートにおける各ブロック、及びブロック図又はフローチャートにおけるブロックの組み合わせは、ハードウェアによる、規定の機能又は操作を実行するための専用システムを利用して実現されてもよいし、専用ハードウェアとコンピュータ命令との組み合わせを利用して実現されてもよい。
【0144】
ここで、以上の詳細な記載において、動作実行のための装置のいくつかのモジュール又はユニットを言及したが、このような分割は強制的なものではない。実際に、本出願の実施形態によれば、1つのモジュール又はユニットにおいて、以上記載された2つ又は複数のモジュール又はユニットの特徴及び機能を具体化できる。一方、複数のモジュール又はユニットにより具体化するように、以上記載された1つモジュール又はユニットの特徴及び機能を分割してもよい。
【0145】
以上の実施形態の記載によって、ここに記載の例示的な実施形態はソフトウェアによって実現されてもよく、ソフトウェアに必要なハードウェアを結合する方式で実現されてもよいことは、当業者に理解されやすいだろう。従って、本出願の実施形態による技術案はソフトウェア製品の形態として体現され、当該ソフトウェア製品は非揮発性記憶媒体(CD-ROM、Uディスク、モバイルハードディスクなど)、又はネットワークに記憶されて、1台のコンピューティングデバイス(パーソナルコンピュータ、サーバ、タッチ制御端末、又はネットワークデバイスなど)に、本出願の実施形態による方法を実行させるための若干の命令を含むことができる。
【0146】
当業者は、明細書を考慮しここに開示の発明を実践した後、本出願の他の実施手法を容易に想到し得る。本出願は、本出願の任意の変形、用途又は適切な変更をカバーするように意図され、これらの変形、用途又は適切な変更は、本出願の一般的な原理に従うとともに、本出願が開示していない当分野の公知常識又は慣用の技術手段も含む。
【0147】
ここで、本出願は、以上に記載され図示された精確な構成に限定されず、その範囲から逸脱しない場合、様々な修正や変更を行うことができることは理解されるべきであろう。本出願の範囲は、添付の請求項のみに限定される。
【符号の説明】
【0148】
1000 データ処理装置
1010 グラフネットワーク取得モジュール
1020 コア次数マイニングモジュール
1030 ネットワークプルーニングモジュール
1040 クラスタ圧縮モジュール
1105 I/Oインターフェース
1106 入力部
1107 出力部
1108 記憶部
1109 通信部
1110 ドライバ
1111 取り外し可能な媒体