JP7096145B2 - Clustering device, clustering method and clustering program - Google Patents

Clustering device, clustering method and clustering program Download PDF

Info

Publication number
JP7096145B2
JP7096145B2 JP2018232364A JP2018232364A JP7096145B2 JP 7096145 B2 JP7096145 B2 JP 7096145B2 JP 2018232364 A JP2018232364 A JP 2018232364A JP 2018232364 A JP2018232364 A JP 2018232364A JP 7096145 B2 JP7096145 B2 JP 7096145B2
Authority
JP
Japan
Prior art keywords
cluster
record
gravity
center
clusters
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.)
Active
Application number
JP2018232364A
Other languages
Japanese (ja)
Other versions
JP2020095437A (en
Inventor
知明 三本
晋作 清本
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2018232364A priority Critical patent/JP7096145B2/en
Publication of JP2020095437A publication Critical patent/JP2020095437A/en
Application granted granted Critical
Publication of JP7096145B2 publication Critical patent/JP7096145B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号化されたデータセットをクラスタリングする装置、方法及びプログラムに関する。 The present invention relates to devices, methods and programs for clustering encrypted datasets.

従来、データの匿名化手法として、例えば非特許文献1~3に示されるように、k-匿名化のアルゴリズムが数多く提案されてきた。これらの手法は、ユーザが持つデータセットをユーザ自身が匿名化することを想定しているため、全ての演算が平文で処理される。 Conventionally, as a data anonymization method, many k-anonymization algorithms have been proposed, for example, as shown in Non-Patent Documents 1 to 3. Since these methods assume that the user himself anonymizes the data set owned by the user, all operations are processed in plain text.

L. Sweeney, “Achieving k-anonymity privacy protection using generalization and suppression,” in J. Uncertainty, Fuzziness, and Knowledge-Base Systems, vol. 10(5), 2002, pp. 571-588.L. Sweeney, "Achieving k-anonymity privacy promotion using generalization and support," in J. et al. Uncertainty, Fusionss, and Knowledge-Base Systems, vol. 10 (5), 2002, pp. 571-588. K. LeFevre, D. J. DeWitt, and R. Ramakrishnan, “Incognito: Efficient full-domain k-anonymity,” in Proc. of SIGMOD 2005, 2005, pp. 49-60.K. LeFavre, D.I. J. DeWitt, and R. Ramakrishanan, “Incognito: Effective full-domin k-anonymity,” in Proc. of SIGMOD 2005, 2005, pp. 49-60. K. LeFevre et al., “Mondrian multidimensional k-anonymity,” in Proc. of the 22nd International Conference on Data Engineering (ICDE ’06), IEEE, 2006, pp. 25-35.K. LeFavre et al. , “Mondrian multimetrical k-anonymity,” in Proc. of the 22nd International Convention on Data Engineering (ICDE '06), IEEE, 2006, pp. 25-35. Kohlmayer F, Prasser F, Eckert C, Kuhn KA. “A flexible approach to distributed data anonymization,” J Biomed Inform 2013 Dec 12.Kohlmayar F, Presser F, Eckert C, Khun KA. “A flexible applied data anonymization,” J Biomed Information 2013 Dec 12.

匿名化を外部に委託する場合、又は複数機関の持つデータを併せて匿名化する場合は、データは暗号化される必要がある。例えば、非特許文献4の手法では、複数機関で匿名化を行うことを想定しているが、データ保有者がプロトコルに参加する必要がある、確定的暗号を用いる必要があり匿名性が低下する等の課題があった。 When outsourcing anonymization, or when anonymizing data held by multiple institutions together, the data needs to be encrypted. For example, in the method of Non-Patent Document 4, it is assumed that anonymization is performed by a plurality of institutions, but the data holder needs to participate in the protocol, and it is necessary to use deterministic encryption, which reduces anonymity. There were issues such as.

また、前述のk-匿名化アルゴリズムは、平文上では高速に実行できるが、同じアルゴリズムをそのまま暗号化されたデータに対して適用した場合、次の問題がある。
秘密計算では、データを秘匿した状態で加法及び乗法が可能なため、理論上は任意の計算が秘匿した状態で実現可能である。しかし、Garbled Circuit、秘密分散、準同型暗号等、いずれの計算手法を用いた場合でも処理が遅く、大規模なデータに対しては現実的な時間で目的の機能を果たすことが困難であることが知られている。
Further, although the above-mentioned k-anonymization algorithm can be executed at high speed in plain text, when the same algorithm is applied to encrypted data as it is, there are the following problems.
In secret calculation, addition and multiplication can be performed while the data is concealed, so theoretically any calculation can be realized in a concealed state. However, even if any calculation method such as Garbled Circuit, secret sharing, homomorphic encryption, etc. is used, the processing is slow and it is difficult to achieve the desired function in a realistic time for large-scale data. It has been known.

本発明は、暗号化したデータを高速にクラスタリングできるクラスタリング装置、クラスタリング方法及びクラスタリングプログラムを提供することを目的とする。 An object of the present invention is to provide a clustering device, a clustering method, and a clustering program capable of clustering encrypted data at high speed.

本発明に係るクラスタリング装置は、暗号化されたデータセットのレコードを所定数のクラスタに分割する際に、各クラスタに少なくとも1つの初期レコードを割り当てる初期処理部と、前記クラスタそれぞれについて、所属するレコード全体の重心を算出する重心算出部と、前記クラスタ毎に、前記データセットのうち、前記重心との距離が近いレコードから順に当該クラスタに所属させる分割処理を並列に実行する分割処理部と、を備える。 The clustering apparatus according to the present invention has an initial processing unit that allocates at least one initial record to each cluster when dividing a record of an encrypted data set into a predetermined number of clusters, and a record to which each of the clusters belongs. A center of gravity calculation unit that calculates the entire center of gravity, and a division processing unit that executes division processing in parallel for each cluster so that the records that are closest to the center of gravity of the data set belong to the cluster in order. Be prepared.

前記重心算出部は、前記クラスタ毎に、前記分割処理を複数回実行した後に当該クラスタの前記重心を算出してもよい。 The center of gravity calculation unit may calculate the center of gravity of the cluster after executing the division process a plurality of times for each cluster.

前記初期処理部は、前記初期レコードをランダムに選択してもよい。 The initial processing unit may randomly select the initial record.

前記クラスタリング装置は、前記分割処理部による処理結果として、複数のクラスタに重複して所属したレコードがある場合、当該レコード毎に、最も前記重心との距離が近いクラスタのみに所属させる第1調整処理を並列に実行する第1調整部を備えてもよい。 When the clustering apparatus has records that belong to a plurality of clusters in duplicate as a result of processing by the division processing unit, the first adjustment process for each record belongs only to the cluster closest to the center of gravity. May be provided with a first adjusting unit that executes the above in parallel.

前記クラスタリング装置は、前記分割処理部による処理結果として、いずれのクラスタにも所属しなかったレコードがある場合、当該レコード毎に、最も前記重心との距離が近いクラスタに所属させる第2調整処理を並列に実行する第2調整部を備えてもよい。 If there is a record that does not belong to any of the clusters as a result of processing by the division processing unit, the clustering apparatus performs a second adjustment process for each record to belong to the cluster closest to the center of gravity. A second adjustment unit that is executed in parallel may be provided.

前記クラスタリング装置は、前記分割処理部による処理結果として、所定の大きさに満たないクラスタがある場合、当該クラスタ毎に、当該クラスタに所属しているレコードを重心間の距離が最も近いクラスタに所属させる第3調整処理を並列に実行する第3調整部を備えてもよい。 When there are clusters smaller than a predetermined size as a result of processing by the division processing unit, the clustering apparatus belongs to the cluster having the shortest distance between the centers of gravity of the records belonging to the cluster for each cluster. A third adjustment unit may be provided to execute the third adjustment process to be performed in parallel.

本発明に係るクラスタリング方法は、暗号化されたデータセットのレコードを所定数のクラスタに分割する際に、各クラスタに少なくとも1つの初期レコードを割り当てる初期処理ステップと、前記クラスタそれぞれについて、所属するレコード全体の重心を算出する重心算出ステップと、前記クラスタ毎に、前記データセットのうち、前記重心との距離が近いレコードから順に当該クラスタに所属させる分割処理を並列に実行する分割処理ステップと、をコンピュータが実行する。 The clustering method according to the present invention includes an initial processing step of allocating at least one initial record to each cluster when dividing a record of an encrypted data set into a predetermined number of clusters, and a record to which each of the clusters belongs. A center of gravity calculation step for calculating the entire center of gravity and a split processing step of parallelly executing a division process of assigning the data set to the cluster in order from the record having the closest distance to the center of the data set for each cluster. The computer runs.

本発明に係るクラスタリングプログラムは、暗号化されたデータセットのレコードを所定数のクラスタに分割する際に、各クラスタに少なくとも1つの初期レコードを割り当てる初期処理ステップと、前記クラスタそれぞれについて、所属するレコード全体の重心を算出する重心算出ステップと、前記クラスタ毎に、前記データセットのうち、前記重心との距離が近いレコードから順に当該クラスタに所属させる分割処理を並列に実行する分割処理ステップと、をコンピュータに実行させるためのものである。 The clustering program according to the present invention has an initial processing step of allocating at least one initial record to each cluster when dividing a record of an encrypted data set into a predetermined number of clusters, and a record belonging to each of the clusters. A center of gravity calculation step for calculating the entire center of gravity and a splitting process for each cluster in which the splitting process of assigning the data set to the cluster in order from the record closest to the center of gravity is executed in parallel. It's meant to be run by a computer.

本発明によれば、暗号化したデータを高速にクラスタリングできる。 According to the present invention, encrypted data can be clustered at high speed.

実施形態に係るクラスタリング装置の機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the clustering apparatus which concerns on embodiment. 実施形態に係るクラスタリング方法における分割処理のアルゴリズムを例示する図である。It is a figure which illustrates the algorithm of the division processing in the clustering method which concerns on embodiment. 実施形態に係る第1調整処理及び第2調整処理を含むアルゴリズムを例示する図である。It is a figure which illustrates the algorithm which includes the 1st adjustment process and the 2nd adjustment process which concerns on embodiment. 実施形態に係る第3調整処理及び匿名化の処理を含むアルゴリズムを例示する図である。It is a figure which illustrates the algorithm which includes the 3rd adjustment process and the anonymization process which concerns on embodiment.

以下、本発明の実施形態の一例について説明する。
図1は、本実施形態に係るクラスタリング装置1の機能構成を示すブロック図である。
クラスタリング装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
Hereinafter, an example of the embodiment of the present invention will be described.
FIG. 1 is a block diagram showing a functional configuration of the clustering apparatus 1 according to the present embodiment.
The clustering device 1 is an information processing device (computer) such as a server device or a personal computer, and includes a control unit 10 and a storage unit 20, as well as various data input / output devices and communication devices.

制御部10は、クラスタリング装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。 The control unit 10 is a part that controls the entire clustering device 1, and realizes each function in the present embodiment by appropriately reading and executing various programs stored in the storage unit 20. The control unit 10 may be a CPU.

記憶部20は、ハードウェア群をクラスタリング装置1として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスク(HDD)等であってよい。具体的には、記憶部20は、本実施形態の各機能を制御部10に実行させるためのプログラム(クラスタリングプログラム)、及びこのプログラムが処理対象とするデータセット、各種の変数、フラグ等を記憶する。 The storage unit 20 is a storage area for various programs and various data for making the hardware group function as the clustering device 1, and may be a ROM, RAM, flash memory, hard disk (HDD), or the like. Specifically, the storage unit 20 stores a program (clustering program) for causing the control unit 10 to execute each function of the present embodiment, a data set to be processed by this program, various variables, flags, and the like. do.

制御部10は、初期処理部11と、重心算出部12と、分割処理部13と、第1調整部14と、第2調整部15と、第3調整部16とを備える。制御部10は、これらの機能部により、処理対象のデータセットを暗号化されたまま複数のクラスタに分割する。
クラスタリング装置1は、データセットの各レコードをデータ点とし、分割された各クラスタに所属する点を重心等の代表点に変更することでk-匿名化を実現する。
The control unit 10 includes an initial processing unit 11, a center of gravity calculation unit 12, a division processing unit 13, a first adjustment unit 14, a second adjustment unit 15, and a third adjustment unit 16. The control unit 10 divides the data set to be processed into a plurality of clusters while being encrypted by these functional units.
The clustering device 1 realizes k-anonymization by using each record of the data set as a data point and changing the point belonging to each divided cluster to a representative point such as the center of gravity.

初期処理部11は、暗号化されたデータセットの複数のレコードを所定数のクラスタに分割する際に、各クラスタに少なくとも1つの初期レコードを割り当てる。
初期レコードの割当方法は限定されないが、本実施形態では、処理速度を優先し、初期処理部11は、初期レコードをランダムに選択する。
The initial processing unit 11 allocates at least one initial record to each cluster when dividing a plurality of records of the encrypted data set into a predetermined number of clusters.
The method of allocating the initial record is not limited, but in the present embodiment, the processing speed is prioritized, and the initial processing unit 11 randomly selects the initial record.

重心算出部12は、クラスタそれぞれについて、所属するレコード全体の重心を算出する。
クラスタに所属するレコードは、分割処理部13による分割処理の度に増加していく。したがって、重心は分割処理の度に更新されてもよいが、本実施形態では、処理速度を優先し、重心算出部12は、クラスタ毎に、分割処理を複数回実行した後にクラスタの重心を算出して更新する。例えば、重心算出部12は、繰り返し処理中の毎回の更新を省略し、所定回数の分割処理が完了した後に1回、あるいは、所定回数の分割処理が完了するまでに数回、重心を更新してもよい。
The center of gravity calculation unit 12 calculates the center of gravity of the entire record to which the cluster belongs.
The records belonging to the cluster increase every time the division processing unit 13 performs division processing. Therefore, the center of gravity may be updated every time the division process is performed, but in the present embodiment, the processing speed is prioritized, and the center of gravity calculation unit 12 calculates the center of gravity of the cluster after executing the division process a plurality of times for each cluster. And update. For example, the center of gravity calculation unit 12 omits each update during the iterative process, and updates the center of gravity once after the completion of the predetermined number of division processes or several times until the predetermined number of division processes are completed. You may.

分割処理部13は、クラスタ毎に、データセットのうち、重心との距離が近いレコードから順にこのクラスタに所属させる分割処理を並列に所定回数実行する。実行回数は、例えば、k-匿名化におけるクラスタの最小数kに、適宜設定される調整数αを加算したk+α回であってよい。
これにより、分割処理部13は、重心からの距離が近いレコードを探索するという処理を、クラスタの数だけ並列化して実行し、処理速度を向上させる。
The division processing unit 13 executes the division processing for each cluster in parallel a predetermined number of times in order from the record having the closest distance to the center of gravity of the data set. The number of executions may be, for example, k + α times, which is obtained by adding an appropriately set adjustment number α to the minimum number k of clusters in k-anonymization.
As a result, the division processing unit 13 executes the process of searching for records that are close to the center of gravity in parallel by the number of clusters, and improves the processing speed.

第1調整部14は、分割処理部13による処理結果として、複数のクラスタに重複して所属したレコードがある場合、該当するレコード毎に、最も重心との距離が近いクラスタのみに所属させ、他のクラスタへの所属を解除する第1調整処理を並列に実行する。 If there are duplicate records belonging to a plurality of clusters as a result of processing by the division processing unit 13, the first adjusting unit 14 assigns each corresponding record to only the cluster closest to the center of gravity, and the other. The first adjustment process for canceling the affiliation with the cluster is executed in parallel.

第2調整部15は、分割処理部13による処理結果として、いずれのクラスタにも所属しなかったレコードがある場合、該当するレコード毎に、最も重心との距離が近いクラスタに所属させる第2調整処理を並列に実行する。 If there is a record that does not belong to any of the clusters as a result of processing by the division processing unit 13, the second adjustment unit 15 makes the corresponding record belong to the cluster closest to the center of gravity. Execute processing in parallel.

第3調整部16は、分割処理部13による処理結果として、所定の大きさ、すなわちk-匿名化における最小数kに満たないクラスタがある場合、該当するクラスタ毎に、このクラスタに所属しているレコードを、重心間の距離が最も近い他のクラスタに所属させる第3調整処理を並列に実行する。 If there is a cluster of a predetermined size, that is, less than the minimum number k in k-anonymization as a result of processing by the division processing unit 13, the third adjustment unit 16 belongs to this cluster for each corresponding cluster. The third adjustment process of making the existing records belong to another cluster having the shortest distance between the centers of gravity is executed in parallel.

図2は、本実施形態に係るクラスタリング方法における分割処理のアルゴリズムAを例示する図である。
アルゴリズムAでは、暗号化されたデータセットE(D)、k-匿名化におけるパラメータk、及び調整パラメータαが入力される。
FIG. 2 is a diagram illustrating the algorithm A of the division processing in the clustering method according to the present embodiment.
In the algorithm A, the encrypted data set E (D), the parameter k in k-anonymization, and the adjustment parameter α are input.

まず、r[0]を、データセットE(D)のi番目のレコードの値(データ点)とする。さらに、r[j]を、レコードrがj番目のクラスタに所属している(=E(1))か否か(=E(0))を示すフラグとする(ステップ2)。
データセットのレコード数がn、クラスタ数がKのとき、1≦i≦n、1≦j≦Kにおいて、r[j]はE(0)に初期化される(ステップ3)。
First, let r i [0] be the value (data point) of the i-th record of the data set E (D). Further, r i [j] is set as a flag indicating whether or not the record r i belongs to the jth cluster (= E (1)) (= E (0)) (step 2).
When the number of records in the data set is n and the number of clusters is K, ri [j] is initialized to E (0) in 1 ≦ i ≦ n and 1 ≦ j ≦ K (step 3).

また、d[j]を、r[0]とクラスタcの重心g(c)との距離とする(ステップ4)。
1≦i≦n、1≦j≦Kにおいて、d[j]はE(∞)に初期化される(ステップ5)。
Further, let di [j] be the distance between r i [0] and the center of gravity g (c j ) of the cluster c j (step 4).
In 1 ≦ i ≦ n and 1 ≦ j ≦ K, di [j] is initialized to E (∞) (step 5).

次に、データセットE(D)からK=floor(n/k)個のレコードがランダムに選択される(ステップ6)。
i番目のクラスタに対してi番目のレコードが選択されたとすると、r[i]はE(1)に、g(c)はE(r[0])に更新される(ステップ7)。
Next, K = floor (n / k) records are randomly selected from the data set E (D) (step 6).
Assuming that the i-th record is selected for the i-th cluster, ri [ i ] is updated to E (1) and g ( ci ) is updated to E ( ri [0]) (step 7). ).

ステップ9から15において、K個のクラスタ毎に、分割処理がk+α回繰り返される。この分割処理は、クラスタの数と同数に並列化され、ステップ12と13とがクラスタの単位で並列実行される。 In steps 9 to 15, the division process is repeated k + α times for each of K clusters. This division process is parallelized to the same number as the number of clusters, and steps 12 and 13 are executed in parallel in units of clusters.

分割処理部13は、クラスタcに対して、重心g(c)との距離が最小となるレコードi’を、いずれのクラスタにも所属していないレコードの中から選択する(ステップ12)。そして、分割処理部13は、ri’[j]及びdi’[j]を更新する(ステップ13)。 The division processing unit 13 selects the record i'that has the minimum distance from the center of gravity g (c j ) with respect to the cluster c j from the records that do not belong to any of the clusters (step 12). .. Then, the division processing unit 13 updates r i' [j] and di ' [j] (step 13).

k+α回の繰り返し処理が完了すると、クラスタcには、フラグr[j]がE(1)となっているレコードrが所属している。
重心算出部12は、全てのクラスタcについて、重心g(c)を更新する(ステップ17)。
When the iterative processing of k + α times is completed, the record r i in which the flag r i [j] is E (1) belongs to the cluster c j .
The center of gravity calculation unit 12 updates the center of gravity g (c j ) for all the clusters c j (step 17).

なお、繰り返しの回数は、パラメータαにより調整されるが、この回数が多くなるほど、複数のクラスタに重複して所属するレコードが増加し、回数が少なくなるほど、いずれのクラスタにも所属しないレコードが増加する。
パラメータαは、状況に応じて適宜設定されるが、正しくクラスタリングされなかったレコードについては、次の処理により調整される。
The number of repetitions is adjusted by the parameter α, but as the number of repetitions increases, the number of records that belong to multiple clusters increases, and as the number of times decreases, the number of records that do not belong to any cluster increases. do.
The parameter α is appropriately set according to the situation, but the records that are not clustered correctly are adjusted by the following processing.

図3は、本実施形態に係る第1調整処理及び第2調整処理を含むアルゴリズムBを例示する図である。 FIG. 3 is a diagram illustrating an algorithm B including a first adjustment process and a second adjustment process according to the present embodiment.

ステップ23~27の第1調整処理では、複数のクラスタに所属したレコード、すなわち、r[j]の和(1≦j≦K)がE(0)でもE(1)でもないレコードrが調整される。第1調整部14は、これらのレコードを並列に処理する。 In the first adjustment process of steps 23 to 27, the records belonging to a plurality of clusters, that is, the records r i in which the sum (1 ≦ j ≦ K) of r i [j] is neither E (0) nor E (1). Is adjusted. The first adjusting unit 14 processes these records in parallel.

第1調整部14は、各レコードrについて、重心からの距離d[j]が最小のクラスタc’を選択し(ステップ25)、フラグr[j’]をE(1)に、その他のフラグ∀r[j≠j’]をE(0)に更新する(ステップ26)。 The first adjusting unit 14 selects the cluster c'j having the smallest distance di [ j ] from the center of gravity for each record r i (step 25), and sets the flag r i [j'] to E (1). , Other flags ∀ri [j ≠ j'] are updated to E (0) (step 26).

ステップ29~33の第2調整処理では、いずれのクラスタにも所属しないレコード、すなわち、r[j]の和(1≦j≦K)がE(0)のレコードrが調整される。第2調整部15は、これらのレコードを並列に処理する。 In the second adjustment process of steps 29 to 33, a record that does not belong to any of the clusters, that is, a record r i whose sum (1 ≦ j ≦ K) of r i [j] is E (0) is adjusted. The second adjustment unit 15 processes these records in parallel.

第2調整部15は、各レコードrについて、重心からの距離が最小のクラスタc’を選択し(ステップ31)、フラグr[j’]をE(1)に更新する(ステップ32)。 The second adjusting unit 15 selects the cluster c'j having the smallest distance from the center of gravity for each record r i (step 31), and updates the flag r i [j'] to E (1) (step 32). ).

第1調整処理及び第2調整処理が終了すると、全てのクラスタcについて、重心g(c)が更新される(ステップ34)。 When the first adjustment process and the second adjustment process are completed, the center of gravity g (c j ) is updated for all the clusters c j (step 34).

図4は、本実施形態に係る第3調整処理及び匿名化の処理を含むアルゴリズムCを例示する図である。 FIG. 4 is a diagram illustrating an algorithm C including a third adjustment process and an anonymization process according to the present embodiment.

ステップ43~47の第3調整処理では、クラスタに所属するレコードの数がkより小さい、すなわちr[j]の和(1≦i≦n)がE(k)より小さいクラスタcが調整される。第3調整部16は、これらのクラスタを並列に処理する。 In the third adjustment process of steps 43 to 47, the cluster c j in which the number of records belonging to the cluster is smaller than k, that is, the sum of r i [j] (1 ≦ i ≦ n) is smaller than E (k) is adjusted. Will be done. The third coordinating unit 16 processes these clusters in parallel.

第3調整部16は、調整対象のクラスタcについて、重心間の距離が最小の他のクラスタc’を選択し(ステップ45)、クラスタcの全レコードをクラスタc’に所属させるため、フラグr[h’]をE(1)に、フラグr[j]をE(0)に更新する(ステップ46)。 The third adjustment unit 16 selects another cluster c'h with the minimum distance between the centers of gravity for the cluster c j to be adjusted (step 45), and makes all the records of the cluster c j belong to the cluster c'h . Therefore, the flag r i [h'] is updated to E (1), and the flag r i [j] is updated to E (0) (step 46).

続いて、制御部10は、k-匿名化のため、全レコードの値r[0]を、所属するクラスタcの重心g(c)に更新する(ステップ48~50)。
そして、制御部10は、r[0]の集合を、クラスタリングされたデータセットE(D’)として出力する(ステップ51)。
Subsequently, the control unit 10 updates the value r i [0] of all the records to the center of gravity g (c j ) of the cluster c j to which the control unit 10 belongs for k-anonymization (steps 48 to 50).
Then, the control unit 10 outputs the set of ri [ 0 ] as a clustered data set E (D') (step 51).

本実施形態によれば、クラスタリング装置1は、暗号化されたデータセットのレコードをクラスタに分割する際に、はじめから分割するクラスタの数を決定し、各クラスタに少なくとも1つの初期レコードを割り当てた後、クラスタ毎に、重心との距離が近いレコードから順にこのクラスタに所属させる分割処理を並列に実行する。 According to the present embodiment, when the clustering apparatus 1 divides the records of the encrypted data set into clusters, the number of clusters to be divided is determined from the beginning, and at least one initial record is assigned to each cluster. After that, for each cluster, the division processing to belong to this cluster is executed in parallel in order from the record closest to the center of gravity.

従来のクラスタリング手法では、全てのレコードに対してどのクラスタに属するかの判定(Argmin)処理が必要となる。例えば、各レコードとクラスタとの距離を計算した上で所属するクラスタを決定し、クラスタの更新を行うという処理が全てのレコードに対して行われるが、このアルゴリズムは並列処理が困難であり、少なくともレコードの数だけArgmin又はArgmaxの処理が必要であった。
一方、クラスタリング装置1は、各クラスタからレコードまでの距離を計算し、その後クラスタの重心を更新するため、クラスタの数と同数の並列化処理が可能となる。したがって、重心との距離が近いレコードを探索するという重い処理を並列化することで、暗号文上でもデータセットのクラスタリング(例えば、k-匿名化)を高速に実行できる。
In the conventional clustering method, it is necessary to determine (Argmin) which cluster belongs to all the records. For example, the process of calculating the distance between each record and the cluster, determining the cluster to which it belongs, and updating the cluster is performed for all records, but this algorithm is difficult to process in parallel, and at least Argmin or Argmax processing was required for the number of records.
On the other hand, since the clustering apparatus 1 calculates the distance from each cluster to the record and then updates the center of gravity of the cluster, the same number of parallel processing as the number of clusters can be performed. Therefore, by parallelizing the heavy process of searching for records that are close to the center of gravity, data set clustering (for example, k-anonymization) can be executed at high speed even on the ciphertext.

クラスタリング装置1は、クラスタの重心を再計算する頻度を、クラスタが更新される頻度よりも減らすことで、処理を高速化できる。なお、再計算の頻度は、クラスタリングの精度とのトレードオフにより、適宜設定されてよい。
また、クラスタリング装置1は、各クラスタの初期レコードをランダムに選択することで、処理を高速化できる。
The clustering device 1 can speed up the processing by reducing the frequency of recalculating the center of gravity of the cluster less than the frequency of updating the cluster. The frequency of recalculation may be appropriately set depending on the trade-off with the accuracy of clustering.
Further, the clustering apparatus 1 can speed up the processing by randomly selecting the initial record of each cluster.

クラスタリング装置1は、分割処理の結果、複数のクラスタに重複して所属したレコードがある場合、これらのレコード毎に、最も重心との距離が近いクラスタのみに所属させる第1調整処理を並列に実行する。
また、クラスタリング装置1は、分割処理の結果、いずれのクラスタにも所属しなかったレコードがある場合、これらのレコード毎に、最も重心との距離が近いクラスタに所属させる第2調整処理を並列に実行する。
さらに、クラスタリング装置1は、分割処理の結果、所定の大きさに満たないクラスタがある場合、これらのクラスタ毎に、所属しているレコードを重心間の距離が最も近い他のクラスタに所属させる第3調整処理を並列に実行する。
したがって、クラスタリング装置1は、分割処理によりクラスタリングが十分にできなかった部分を調整でき、さらに、これらの各種調整処理を並列化することで高速に実行できる。
When the clustering apparatus 1 has duplicate records belonging to a plurality of clusters as a result of the division processing, the clustering apparatus 1 executes the first adjustment processing in parallel for each of these records so that the records belong only to the cluster closest to the center of gravity. do.
Further, if there are records that do not belong to any of the clusters as a result of the division processing, the clustering apparatus 1 performs a second adjustment process in parallel for each of these records so that the records belong to the cluster closest to the center of gravity. Run.
Further, when the clustering apparatus 1 has clusters smaller than a predetermined size as a result of the division processing, the clustering apparatus 1 makes the records to which the clusters belong belong to the other cluster having the shortest distance between the centers of gravity. 3 The adjustment process is executed in parallel.
Therefore, the clustering apparatus 1 can adjust the portion where the clustering cannot be sufficiently performed by the division processing, and can execute the various adjustment processes at high speed by parallelizing them.

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Moreover, the effects described in the above-described embodiments are merely a list of the most suitable effects resulting from the present invention, and the effects according to the present invention are not limited to those described in the embodiments.

クラスタリング装置1によるクラスタリング方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。 The clustering method by the clustering device 1 is realized by software. When realized by software, the programs that make up this software are installed in the information processing device (computer). Further, these programs may be recorded on a removable medium such as a CD-ROM and distributed to the user, or may be distributed by being downloaded to the user's computer via a network. Further, these programs may be provided to the user's computer as a Web service via a network without being downloaded.

1 クラスタリング装置
10 制御部
11 初期処理部
12 重心算出部
13 分割処理部
14 第1調整部
15 第2調整部
16 第3調整部
20 記憶部
1 Clustering device 10 Control unit 11 Initial processing unit 12 Center of gravity calculation unit 13 Division processing unit 14 1st adjustment unit 15 2nd adjustment unit 16 3rd adjustment unit 20 Storage unit

Claims (8)

暗号化されたデータセットのレコードを所定数のクラスタに分割する際に、各クラスタに少なくとも1つの初期レコードを割り当てる初期処理部と、
前記クラスタそれぞれについて、所属するレコード全体の重心を暗号文上で算出する重心算出部と、
前記クラスタ毎に、前記データセットのうち、暗号文上で算出した前記重心との距離が近いレコードから順に当該クラスタに所属させる分割処理を、前記クラスタの数と同数に並列化して実行する分割処理部と、を備えるクラスタリング装置。
An initial processing unit that allocates at least one initial record to each cluster when dividing the records of the encrypted data set into a predetermined number of clusters.
For each of the clusters, a center of gravity calculation unit that calculates the center of gravity of the entire record to which it belongs on the ciphertext ,
For each cluster, the division process of assigning the data set to the cluster in order from the record calculated on the ciphertext and having the closest distance to the center of gravity is executed in parallel with the same number of clusters. A clustering device that includes a unit.
前記重心算出部は、前記クラスタ毎に、前記分割処理を複数回実行した後に当該クラスタの前記重心を算出する請求項1に記載のクラスタリング装置。 The clustering apparatus according to claim 1, wherein the center of gravity calculation unit calculates the center of gravity of the cluster after executing the division process a plurality of times for each cluster. 前記初期処理部は、前記初期レコードをランダムに選択する請求項1又は請求項2に記載のクラスタリング装置。 The clustering apparatus according to claim 1 or 2, wherein the initial processing unit randomly selects the initial record. 前記分割処理部による処理結果として、複数のクラスタに重複して所属したレコードがある場合、当該レコード毎に、最も前記重心との距離が近いクラスタのみに所属させる第1調整処理を並列に実行する第1調整部を備える請求項1から請求項3のいずれかに記載のクラスタリング装置。 If there are duplicate records belonging to a plurality of clusters as a processing result by the division processing unit, the first adjustment process of making each record belong only to the cluster closest to the center of gravity is executed in parallel. The clustering apparatus according to any one of claims 1 to 3, further comprising a first adjusting unit. 前記分割処理部による処理結果として、いずれのクラスタにも所属しなかったレコードがある場合、当該レコード毎に、最も前記重心との距離が近いクラスタに所属させる第2調整処理を並列に実行する第2調整部を備える請求項1から請求項4のいずれかに記載のクラスタリング装置。 If there is a record that does not belong to any cluster as a processing result by the division processing unit, the second adjustment process of making the record belong to the cluster closest to the center of gravity is executed in parallel for each record. 2. The clustering apparatus according to any one of claims 1 to 4, further comprising an adjusting unit. 前記分割処理部による処理結果として、所定の大きさに満たないクラスタがある場合、当該クラスタ毎に、当該クラスタに所属しているレコードを重心間の距離が最も近いクラスタに所属させる第3調整処理を並列に実行する第3調整部を備える請求項1から請求項5のいずれかに記載のクラスタリング装置。 If there are clusters smaller than a predetermined size as a result of processing by the division processing unit, the third adjustment process of making the records belonging to the cluster belong to the cluster having the shortest distance between the centers of gravity for each cluster. The clustering apparatus according to any one of claims 1 to 5, further comprising a third adjusting unit for executing the above in parallel. 暗号化されたデータセットのレコードを所定数のクラスタに分割する際に、各クラスタに少なくとも1つの初期レコードを割り当てる初期処理ステップと、
前記クラスタそれぞれについて、所属するレコード全体の重心を暗号文上で算出する重心算出ステップと、
前記クラスタ毎に、前記データセットのうち、暗号文上で算出した前記重心との距離が近いレコードから順に当該クラスタに所属させる分割処理を、前記クラスタの数と同数に並列化して実行する分割処理ステップと、をコンピュータが実行するクラスタリング方法。
An initial processing step that allocates at least one initial record to each cluster when dividing records in an encrypted dataset into a predetermined number of clusters.
For each of the clusters, a center of gravity calculation step for calculating the center of gravity of the entire record to which the record belongs on the ciphertext , and
For each cluster, the division process of assigning the data set to the cluster in order from the record calculated on the ciphertext and having the closest distance to the center of gravity is executed in parallel with the same number of clusters. Steps and how the computer performs the clustering method.
暗号化されたデータセットのレコードを所定数のクラスタに分割する際に、各クラスタに少なくとも1つの初期レコードを割り当てる初期処理ステップと、
前記クラスタそれぞれについて、所属するレコード全体の重心を暗号文上で算出する重心算出ステップと、
前記クラスタ毎に、前記データセットのうち、暗号文上で算出した前記重心との距離が近いレコードから順に当該クラスタに所属させる分割処理を、前記クラスタの数と同数に並列化して実行する分割処理ステップと、をコンピュータに実行させるためのクラスタリングプログラム。
An initial processing step that allocates at least one initial record to each cluster when dividing records in an encrypted dataset into a predetermined number of clusters.
For each of the clusters, a center of gravity calculation step for calculating the center of gravity of the entire record to which the record belongs on the ciphertext , and
For each cluster, the division process of assigning the data set to the cluster in order from the record calculated on the cryptographic text and having the closest distance to the center of gravity is executed in parallel with the same number of clusters. A clustering program that lets your computer perform steps and.
JP2018232364A 2018-12-12 2018-12-12 Clustering device, clustering method and clustering program Active JP7096145B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018232364A JP7096145B2 (en) 2018-12-12 2018-12-12 Clustering device, clustering method and clustering program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018232364A JP7096145B2 (en) 2018-12-12 2018-12-12 Clustering device, clustering method and clustering program

Publications (2)

Publication Number Publication Date
JP2020095437A JP2020095437A (en) 2020-06-18
JP7096145B2 true JP7096145B2 (en) 2022-07-05

Family

ID=71084969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018232364A Active JP7096145B2 (en) 2018-12-12 2018-12-12 Clustering device, clustering method and clustering program

Country Status (1)

Country Link
JP (1) JP7096145B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2020472129B2 (en) * 2020-10-16 2023-12-07 Nippon Telegraph And Telephone Corporation Secret grouping device, secret grouping system, secret grouping method, and program

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015151155A1 (en) 2014-03-31 2015-10-08 株式会社日立国際電気 Personal safety verification system and similarity search method for data encrypted for confidentiality
JP2016149099A (en) 2015-02-13 2016-08-18 ソフトバンク株式会社 Anonymity processing method, anonymity processing program and anonymity processing device
JP2018055610A (en) 2016-09-30 2018-04-05 日本電信電話株式会社 Anonymization device, anonymization method and program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015151155A1 (en) 2014-03-31 2015-10-08 株式会社日立国際電気 Personal safety verification system and similarity search method for data encrypted for confidentiality
JP2016149099A (en) 2015-02-13 2016-08-18 ソフトバンク株式会社 Anonymity processing method, anonymity processing program and anonymity processing device
JP2018055610A (en) 2016-09-30 2018-04-05 日本電信電話株式会社 Anonymization device, anonymization method and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ソレム ジャン・エリク,実践 コンピュータビジョン,第1版,株式会社オライリー・ジャパン ,2013年03月21日,p.131

Also Published As

Publication number Publication date
JP2020095437A (en) 2020-06-18

Similar Documents

Publication Publication Date Title
US20200403778A1 (en) Dynamic blockchain system and method for providing efficient and secure distributed data access, data storage and data transport
US9916394B2 (en) Vectorized graph processing
US20210165913A1 (en) Controlling access to de-identified data sets based on a risk of re- identification
US8515956B2 (en) Method and system for clustering datasets
JP6940239B2 (en) Methods and systems for anonymizing data stock
US20180114028A1 (en) Secure multi-party information retrieval
Mestre et al. Improving load balancing for mapreduce-based entity matching
WO2018233051A1 (en) Data release method and device, and server and storage medium
WO2014108768A1 (en) Computing regression models
TW201730788A (en) Method and device for feature data processing
WO2017118335A1 (en) Mapping method and device
CN109241193B (en) Distributed database processing method and device, and server cluster
Primault et al. Adaptive location privacy with alp
US10749910B1 (en) Multidimensional vectors for analyzing and visually displaying identity permissions
JP7096145B2 (en) Clustering device, clustering method and clustering program
Qu et al. Privacy preserving in big data sets through multiple shuffle
US20230409968A1 (en) Multi-party machine learning using a database cleanroom
Ye et al. GCplace: geo-cloud based correlation aware data replica placement
Benjamas et al. Impact of I/O and execution scheduling strategies on large scale parallel data mining
JP7283583B2 (en) Control method, control program, and information processing device
Tomašić et al. Using Hadoop MapReduce in a multicluster environment
JP6000175B2 (en) Anonymization system, anonymization device, user device, anonymization method, and program
US11170000B2 (en) Parallel map and reduce on hash chains
CN115668234A (en) Efficient privacy enhancement of servers in federated learning
CN112417478A (en) Data processing method, device, equipment and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220113

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: 20220607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220623

R150 Certificate of patent or registration of utility model

Ref document number: 7096145

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150