Co-clustering method

The co-clustering method addresses the limitations of single-domain datasets in marketing by combining user and attribute clusters across different domains, enhancing recommendation effectiveness and protecting personal information through anonymization and encryption.

JP7881140B1Active Publication Date: 2026-06-29SOFTBANK CORPORATION +1

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
SOFTBANK CORPORATION
Filing Date
2025-04-25
Publication Date
2026-06-29

Smart Images

  • Figure 0007881140000001_ABST
    Figure 0007881140000001_ABST
Patent Text Reader

Abstract

We provide technology that enables the analysis of cross-disciplinary data without identifying individuals. [Solution] The solution includes an interdisciplinary clustering step in which, for each of the first and second datasets, interdisciplinary clusters are generated as matrices showing the relationship between each user cluster and each attribute cluster; and a dataset generation step in which a third dataset is generated by combining user cluster information showing the users belonging to each cluster obtained by clustering the users of the second dataset and attribute cluster information showing the attributes belonging to each cluster obtained by clustering the attributes of the first dataset, via interdisciplinary clusters. In the interdisciplinary clustering step, clustering is performed for each of the first and second datasets such that the interdisciplinary clusters relating to the first dataset and the interdisciplinary clusters relating to the second dataset are the same matrix.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to co-clustering methods In the law that enable analysis of data across fields without identifying individuals, and to co-clustering methods In the law related thereto.

Background Art

[0002] In conventional marketing, products or services to be recommended are determined for each customer using a dataset of a single domain. For example, the contents of the records included in the dataset are analyzed, and processes such as recommending the same products or services to customers with similar preferences are performed. The domain may indicate, for example, an e-commerce mall, a platform, or the like. On the other hand, if products or services to be recommended can be determined using datasets of different domains, more effective product or service recommendations can be made.

[0003] In Patent Document 1, a technique has been proposed that enables association of anonymized data of the same person even without prior association of data of the same person among different operators.

[0004] However, each of the datasets of different domains does not necessarily contain data related to the same individual. Also, when attempting to share a dataset belonging to another domain between domains, protection of personal information becomes an issue. <​​​​​​​​​​​​​​​​​​​​​A co-clustering method relating to one aspect of this disclosure is: It is executed by one or more information processing devices having an inter-domain clustering execution unit and a dataset generation unit. A co-clustering method for co-clustering a first dataset and a second dataset, wherein the first dataset and the second dataset each record attributes relating to multiple users, The aforementioned inter-domain clustering execution unit, For each of the first and second datasets, the interdisciplinary clusters are defined as matrices showing the relationship between each user cluster and each attribute cluster. generate The interdisciplinary clustering step, The aforementioned dataset generation unit, The process includes a dataset generation step which generates a third dataset by combining user cluster information, which indicates the users belonging to each cluster obtained by clustering the users of the second dataset, and attribute cluster information, which indicates the attributes belonging to each cluster obtained by clustering the attributes of the first dataset, via the interdomain cluster, wherein the interdomain clustering step performs clustering on the first dataset and the second dataset respectively such that the interdomain clusters relating to the first dataset and the interdomain clusters relating to the second dataset form the same matrix.

[0008] Each aspect of the present disclosure may be implemented by a computer, in which case a program causing the computer to perform each step of the above method, and a computer-readable recording medium on which such program is recorded, also fall within the scope of the present disclosure. [Brief explanation of the drawing]

[0009] [Figure 1] This is a diagram illustrating a system according to the first embodiment of this disclosure. [Figure 2] This diagram illustrates an example of a dataset corresponding to dataset A or dataset B. [Figure 3] This figure shows an example of a matrix-like dataset obtained by transforming the dataset in Figure 2. [Figure 4]This diagram illustrates user clustering and attribute clustering. [Figure 5] This diagram illustrates an example of generating a new dataset by multiplying the user cluster matrix, the inter-domain cluster matrix, and the attribute cluster matrix. [Figure 6] This block shows examples of the functional configuration of a server device. [Figure 7] This is a flowchart illustrating an example of the co-clustering process. [Figure 8] This diagram illustrates the integration of records in a matrix-like dataset. [Figure 9] This block diagram shows an example of the functional configuration of a server device when creating an integrated dataset. [Figure 10] This block diagram shows an example of the functional configuration of a server device when encrypting a dataset using a homomorphic encryption algorithm. [Figure 11] This sequence diagram illustrates an example of processing performed between server devices. [Figure 12] This block diagram shows an example of the functional configuration of a server device when encrypting a dataset using a homomorphic encryption algorithm. [Figure 13] Figure 13 is a diagram illustrating a system according to the fifth embodiment of this disclosure. [Figure 14] This is a sequence diagram illustrating an example of the processing related to the first clustering service. [Figure 15] This is a sequence diagram illustrating an example of processing related to the second clustering service. [Figure 16] This is a sequence diagram illustrating an example of processing related to the third clustering service. [Figure 17] This figure shows an example of the information recorded in the Mediator database. [Figure 18] This figure shows another example of the information recorded in Mediator's database. [Figure 19]This is a diagram showing a configuration example of a computer that executes instructions of a program, which is software for realizing each function.

Embodiments for Carrying Out the Invention

[0010] Hereinafter, an embodiment of the present disclosure will be described in detail with reference to the drawings. For ease of understanding, first, the background and problems of the present disclosure will be described, and then the details of the present disclosure will be described.

[0011] In conventional marketing, products or services to be recommended are determined for each customer using a dataset of a single domain. For example, the contents of records included in the dataset are analyzed, and processes such as recommending the same products or services to customers with similar preferences to a certain customer are performed. The domain may also be referred to as a field, and for example, it may indicate a data distribution service, an EC mall, a platform, etc. On the other hand, if products or services to be recommended can be determined using datasets of different domains, more effective product or service recommendations can be made.

[0012] However, each dataset of different domains does not necessarily contain data related to the same individual. For example, a dataset of service contract customers held by an operator providing a movie distribution service includes a list of customers who receive the operator's service, but these customers do not necessarily use an EC mall.

[0013] Also, even if the same person uses a movie distribution service and an EC mall, for example, if the name is written in Chinese characters in one dataset and in alphabet in the other dataset, the identity cannot be easily identified.

[0014] Furthermore, sharing datasets belonging to different domains across domains raises concerns about the protection of personal information. For example, a dataset owned by a movie streaming service provider and a dataset owned by an e-commerce mall operator both contain information that can identify individual customers. Providing either dataset to the other operator without the consent of each individual customer is problematic.

[0015] For the past, technologies have been proposed that allow anonymized data of the same person to be matched with other data from different businesses, even if there is no prior matching of data for the same person between them. However, conventional technologies assume that the matching of the same person includes personally identifiable information (such as name, address, personal identification number, and driver's license number), and there are still problems with providing such data to other businesses without the consent of each customer.

[0016] One aspect of this disclosure aims to provide a technology that enables the analysis of cross-sectoral data without identifying individuals.

[0017] (First Embodiment) A first embodiment of this disclosure is described below.

[0018] (System Configuration) Figure 1 is a diagram illustrating a system according to the first embodiment of this disclosure. In Figure 1, two operators, Operator A and Operator B, are shown. Operators A and B each provide different services to their customers.

[0019] For example, one company might manufacture and sell products while the other distributes music data, or one might be an e-commerce mall specializing in clothing while the other specializes in furniture. Alternatively, one might be a company that provides movie streaming services while the other sells books by mail. In other words, company A and company B operate in different fields.

[0020] Businesses A and B each have server devices that manage data related to, for example, service contracts and product sales. In the example in Figure 1, business A has server device 21, and business B has server device 41. A database 22 is connected to server device 21, and a database 42 is connected to server device 41.

[0021] Furthermore, businesses A and B each possess datasets, such as data related to service contracts and product sales. In the example shown in Figure 1, dataset A is stored in database 22, and dataset B is stored in database 42.

[0022] (Data stored in the dataset) Figure 2 illustrates an example of a dataset corresponding to dataset A or dataset B. The dataset in Figure 2 may be, for example, a dataset relating to subscribers such as a provider of video data distribution services or an internet connection service provider.

[0023] In the example in Figure 2, the dataset is composed of records in which "AGE," "GENDER," and "SEGMENT" are recorded, corresponding to "User_ID."

[0024] "User_ID" is an identification number that identifies an individual. "AGE" and "GENDER" indicate the individual's age and gender, with age shown as a numerical value and gender as 0 for males and 1 for females. This information may be, for example, information entered by the subscriber when signing up for the service.

[0025] "SEGMENT" indicates attributes related to the individual, such as the individual's hobbies and preferences, and places the individual frequently visits. For example, furniture, interior goods, and miscellaneous items represent the individual's hobbies and preferences, while drugstores represent places the individual frequently visits. This information may be information entered by the customer when they contract for a service.

[0026] Furthermore, "SEGMENT" records estimated daytime locations, estimated nighttime locations, and holiday locations. This information may be automatically acquired based on, for example, location information from a mobile device.

[0027] The type of information recorded in "SEGMENT" may differ depending on the "User_ID". For example, the "SEGMENT" of an individual with "User_ID" 1 may include hobbies and preferences, while the "SEGMENT" of an individual with "User_ID" 2 may not include hobbies and preferences. Also, for example, the "SEGMENT" of an individual with "User_ID" 2 may include the frequency and means of returning home, while the "SEGMENT" of an individual with "User_ID" 1 may not include information related to returning home.

[0028] Note that while Figure 2 shows a dataset containing information on three individuals, actual datasets contain information on thousands or even tens of thousands of individuals.

[0029] (A matrix-like dataset) In this embodiment, such a dataset is converted into a matrix dataset as shown in Figure 3, for example, by one-hot encoding. This conversion may be performed by server device 21 or server device 41, or by another device.

[0030] In the dataset shown in Figure 3, one record is generated for each "User_ID," and each record has columns indicating a specific age (age group) and gender (male / female). Then, the number "1" is recorded in each column corresponding to the age group and gender of each individual shown in Figure 2.

[0031] In other words, if the "AGE_20" column contains a 1, it indicates that the individual is in their 20s, and if the "AGE_60" column contains a 1, it indicates that the individual is in their 60s. Similarly, if the "GENDER_Male" column contains a 1, it indicates that the individual is male, and if the "GENDER_Female" column contains a 1, it indicates that the individual is female.

[0032] Furthermore, in the dataset shown in Figure 3, each record has a column indicating a specific attribute. The numerical value "1" is recorded in each column, corresponding to each individual's hobbies and preferences, places they frequently visit, etc., as shown in Figure 2.

[0033] In other words, if the column "SEGMENT_Furniture & Interior" is recorded as 1, it indicates that furniture and interiors are included in the individual's hobbies and preferences. If the column "SEGMENT_Estimated Daytime Location: Shinbashi, Minato-ku, Tokyo" is recorded as 1, it indicates that Shinbashi, Minato-ku, Tokyo is included in the individual's estimated daytime location.

[0034] The types of information recorded in "SEGMENT" can vary depending on, for example, thousands or tens of thousands of "User_IDs," resulting in a massive number of columns in the dataset shown in Figure 3. On the other hand, the number of columns where 1 is recorded per row will be small, so the dataset shown in Figure 3 will actually be a large, sparse matrix.

[0035] Figures 2 and 3 illustrate examples of datasets related to subscribers of video data distribution service providers and internet connection service providers. However, such datasets can also be created for customers who have purchased a particular product, or for graduates of a particular school.

[0036] In other words, for example, in Figure 1, Business Operator A may be a distribution service company and Business Operator B may be a product manufacturer, or Business Operator A may be an internet connection service provider and Business Operator B may be a school. Thus, in this embodiment, datasets owned by at least two businesses in different fields of business are used. Hereafter, such companies, providers, schools, etc. will be collectively referred to as "business operators." Similarly, such subscribers, customers, alumni, etc. will be collectively referred to as "users."

[0037] (Clustering) A dataset like the one shown in Figure 3 can be clustered, for example, by user and by attribute. Here, "attributes" can refer to columns corresponding to the information contained in "SEGMENT" in Figure 2.

[0038] Furthermore, user clustering may be performed, for example, using a machine learning model, so that highly correlated users are grouped into one cluster, generating multiple clusters. It is also acceptable for a single user to be included in multiple clusters as a result of the clustering.

[0039] Similarly, attribute clustering may be performed, for example, using a machine learning model, so that highly correlated attributes are grouped into one cluster, generating multiple clusters. It is also possible that, as a result of clustering, a single attribute may be included in multiple clusters.

[0040] Figure 4 illustrates user clustering and attribute clustering. In Figure 4, the large sparse matrix obtained from dataset A in Figure 1 is represented as dataset DA, and the large sparse matrix obtained from dataset B in Figure 1 is represented as dataset DB. Both dataset DA and dataset DB consist of multiple records, each recording attributes related to multiple users.

[0041] Then, as will be described later, a matrix of K rows and L columns is generated as an interdisciplinary cluster S, and a second user cluster matrix UB is generated showing the users belonging to each of the K clusters obtained by clustering the users of the second dataset by referring to the interdisciplinary cluster S, and a second attribute cluster matrix VB is generated showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the second dataset, and also, by referring to the interdisciplinary cluster S, the K clusters obtained by clustering the users of the first dataset of A first user cluster matrix UA is generated, showing the users belonging to each cluster, and a first attribute cluster matrix VA is generated, showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the first dataset.

[0042] The results of user clustering depend on how each user is separated based on features derived from their attributes. Note that user attributes here may include not only the information contained in "SEGMENT," but also information such as the user's age and gender. In other words, the user cluster matrix UA and user cluster matrix UB can be described as matrices representing users represented by K features. Therefore, the aforementioned K features... of A cluster can also be described as having K features.

[0043] (User cluster matrix) In this embodiment, clustering is performed such that the number of clusters obtained by clustering users in the dataset DA is the same as the number of clusters obtained by clustering users in the dataset DB.

[0044] For example, clustering users in dataset DA generates K clusters, and clustering users in dataset DB generates K clusters.

[0045] Here, the matrices representing the users belonging to each of the K clusters are denoted as user cluster matrix UA and user cluster matrix UB, respectively. In user cluster matrix UA and user cluster matrix UB, each row represents each user and each column represents each cluster. In the example in Figure 4, user cluster matrix UA consists of MA rows (number of users, or rows) and K columns in the dataset DA. User cluster matrix UB consists of MB rows (number of users, or rows) and K columns in the dataset DB.

[0046] For example, a user in a row where the third column of the user cluster matrix UA contains a number greater than 0 belongs to the third cluster. Note that the sum of the numbers recorded in each column of a particular row equals 1.

[0047] (Attribute cluster matrix) Furthermore, in this embodiment, clustering is performed such that the number of clusters obtained by clustering the attributes of the dataset DA is the same as the number of clusters obtained by clustering the attributes of the dataset DB.

[0048] For example, clustering the attributes of dataset DA generates L clusters, and clustering the attributes of dataset DB generates L clusters.

[0049] Here, the matrices representing the attributes belonging to each of the L clusters are denoted as attribute cluster matrix VA and attribute cluster matrix VB, respectively. In attribute cluster matrix VA and attribute cluster matrix VB, each row represents each attribute and each column represents each cluster. In the example in Figure 4, attribute cluster matrix VB consists of NB rows (number of attributes in the dataset DB) and L columns.

[0050] For example, in the attribute cluster matrix VA, an attribute (e.g., hobbies / preferences) in a row where the third column contains a number greater than 0 belongs to the third cluster. Note that the sum of the numbers recorded in each column of a particular row equals 1.

[0051] (Interdisciplinary clusters) Furthermore, performing this type of clustering generates inter-domain clusters S. Inter-domain cluster S is a K x L matrix, and each element of inter-domain cluster S is a numerical value indicating the degree of association between each user cluster and each attribute cluster. For example, the element in the 3rd row and 5th column of the inter-domain cluster represents the probability that a user belonging to the 3rd cluster also possesses an attribute (e.g., hobbies / preferences) belonging to the 5th cluster.

[0052] Thus, when interdisciplinary clusters S are obtained along with the user cluster matrix UA and the attribute cluster matrix VA, the dataset DA can be approximated as a matrix obtained by multiplying the user cluster matrix UA, the interdisciplinary clusters S, and the attribute cluster matrix VA. Similarly, when interdisciplinary clusters S are obtained along with the user cluster matrix UB and the attribute cluster matrix VB, the dataset DB can be approximated as a matrix obtained by multiplying the user cluster matrix UB, the interdisciplinary clusters S, and the attribute cluster matrix VB.

[0053] In this embodiment, clustering is performed such that the interdomain clusters obtained by clustering users and attributes in dataset DA and the interdomain clusters obtained by clustering users and attributes in dataset DB are identical matrices. By performing clustering such that the difference between the matrix obtained by multiplying the user cluster matrix, the interdomain cluster S, and the attribute cluster matrix VA, and the large sparse matrix (DA or DB), the interdomain clusters become identical matrices. Such a clustering algorithm can be expressed by the following equation.

[0054] Argmini S,UA、VA、UB、VB(||DA-UA·S·VA||+||DB-UB·S·VB||) Here, we define clustering optimization as the minimization of (||DA-UA·S·VA||+||DB-UB·S·VB||). Furthermore, by using the user cluster matrix, attribute cluster matrix, and interdomain clusters obtained by optimizing clustering using the algorithm described above, a new dataset can be generated.

[0055] For example, given interdisciplinary clusters, the dataset DA can be decomposed into a user cluster matrix UA and an attribute cluster matrix VA, and the dataset DB can also be decomposed into a user cluster matrix UB and an attribute cluster matrix VB.

[0056] (New dataset) For example, as shown in Figure 5, a new dataset DBA can be generated by multiplying the user cluster matrix UB, the inter-domain cluster S, and the attribute cluster matrix VA. The dataset DBA is a matrix consisting of MB rows and NA columns. Each of the MB rows in the dataset DBA corresponds to a user identified by the "User_ID" in dataset B. Each of the NA columns in the dataset DBA corresponds to an attribute based on the contents of the "SEGMENT" in dataset A.

[0057] Thus, in this embodiment, the first dataset and the second dataset each record attributes relating to multiple users, and for each of the first dataset and the second dataset, a matrix is ​​created showing the relationship between each user cluster and each attribute cluster, called an interdisciplinary cluster (S). generateThen, a third dataset is generated by combining user cluster information, which indicates the users belonging to each cluster obtained by clustering the users of the second dataset, and attribute cluster information, which indicates the attributes belonging to each cluster obtained by clustering the attributes of the first dataset, via interdomain clusters. Clustering is then performed on both the first and second datasets so that the interdomain clusters related to the first dataset and the interdomain clusters related to the second dataset form the same matrix.

[0058] For example, a dataset DBA can obtain information indicating which products from company B a user of company A's services prefers to purchase.

[0059] Furthermore, the new dataset DBA may have NB columns added to it, each corresponding to an attribute based on the "SEGMENT" section of dataset B. In other words, the attribute information originally included in dataset DB may be included directly in the new dataset.

[0060] (Functional configuration of server equipment) The above-described process may be performed, for example, by the server device 41 of business operator B. Figure 6 is a block diagram showing an example of the functional configuration of the server device 41. In this example, the server device 41 has a sparse matrix generation unit 121, an inter-domain clustering execution unit 122, and a dataset generation unit 123.

[0061] The sparse matrix generation unit 121 generates datasets DA and DB, which are large-scale sparse matrices as described with reference to Figure 3, based on datasets A and B, as shown in Figure 2.

[0062] The inter-domain clustering execution unit 122 performs clustering so that the inter-domain clusters obtained by clustering users and attributes in dataset DA and the inter-domain clusters obtained by clustering users and attributes in dataset DB become the same matrix. As a result, the user cluster matrix UA and attribute cluster matrix VA, the user cluster matrix UB and attribute cluster matrix VB, and the inter-domain cluster S are generated.

[0063] The dataset generation unit 123 generates a new dataset by multiplying the user cluster matrix generated as a result of the inter-domain clustering execution unit 122's processing by the inter-domain clusters and the attribute cluster matrix.

[0064] For example, a new dataset DBA can be generated by multiplying the user cluster matrix UB, the inter-domain cluster S, and the attribute cluster matrix VA. Similarly, a new dataset DAB can be generated by multiplying the user cluster matrix UA, the inter-domain cluster S, and the attribute cluster matrix VB.

[0065] Here, we have described an example in which each of the above processes is executed by the server device 41 of business operator B, but it may also be executed by the server device 21 of business operator A. In other words, the functional configuration shown in Figure 6 may be applied to the server device 21.

[0066] Alternatively, some of the processing of the sparse matrix generation unit 121, the inter-domain clustering execution unit 122, and the dataset generation unit 123 may be performed by the server device 21, and the other may be performed by the server device 41.

[0067] Furthermore, for example, both server device 21 and server device 41 may perform the processing related to the sparse matrix generation unit 121, so that server device 21 generates the dataset DA and server device 41 generates the dataset DB.

[0068] Furthermore, for example, both server device 21 and server device 41 may perform the processing related to the dataset generation unit 123, so that server device 21 generates the dataset DAB and server device 41 generates the dataset DBA.

[0069] Alternatively, the processing of the sparse matrix generation unit 121 and the processing of the inter-domain clustering execution unit 122 may be performed by both server device 21 and server device 41.

[0070] (Co-clustering process) Next, the co-clustering process according to this embodiment will be described. Figure 7 is a flowchart illustrating an example of the co-clustering process flow.

[0071] Here, we will assume that data set A is provided from server device 21 to server device 41, and that co-clustering processing is performed by server device 41. In other words, the entity that executes each step of the flowchart in Figure 7 is assumed to be operator B (or server device 41).

[0072] In step S21, the sparse matrix generation unit 121 of the server device 41 generates a matrix-like dataset. This generates, for example, a dataset DA and a dataset DB, which are large-scale sparse matrices as described with reference to Figure 3.

[0073] In step S22, the inter-domain clustering execution unit 122 clusters users in dataset DA and dataset DB.

[0074] In step S23, the inter-domain clustering execution unit 122 clusters attributes in dataset DA and dataset DB.

[0075] In step S24, the inter-domain clustering execution unit 122 generates a user cluster matrix UA, a user cluster matrix UB, an attribute cluster matrix VA, an attribute cluster matrix VB, and an inter-domain cluster S.

[0076] In step S25, the inter-domain clustering execution unit 122 determines whether or not the clustering has been optimized.

[0077] If it is determined in step S25 that the clustering is not optimized, the process returns to step S22. In other words, the processes from step S22 to step S25 are repeatedly executed until it is determined in step S25 that the clustering is optimized.

[0078] If it is determined in step S25 that the clustering has been optimized, the process in step S26 is executed.

[0079] In step S26, the dataset generation unit 123 combines the user cluster matrix and the attribute cluster matrix via interdomain clusters. This generates a new dataset. For example, the user cluster matrix UB, the interdomain cluster S, and the attribute cluster matrix VA are multiplied to generate a new dataset DBA.

[0080] Here, it is assumed that the entity executing the processing for each step is business operator B (or server device 41), but the entity executing all or some of the steps may be business operator A (or server device 21).

[0081] (Effects of the first embodiment) Thus, according to this embodiment, it becomes possible to combine users and attributes across different fields.

[0082] For example, in traditional marketing, a single-field dataset was used to determine which products and services to recommend to each customer. For instance, the content of records in the dataset was analyzed, and the same products or services were recommended to customers with similar preferences. However, if products and services could be recommended using datasets from different fields, more effective recommendations would be possible.

[0083] However, datasets in different fields do not necessarily contain data relating to the same individual. For example, a dataset of service subscribers owned by a movie streaming service provider may include a list of customers who use the service, but these customers do not necessarily use e-commerce malls.

[0084] Furthermore, even if the same person uses both a movie streaming service and an e-commerce mall, if, for example, their name is written in kanji in one dataset and in the other dataset in the Latin alphabet, it would be difficult to easily identify them as the same person.

[0085] In this embodiment, inter-domain clusters can be used to combine the user cluster matrix of one domain with the attribute cluster matrix of another domain. By doing so, for example, information can be obtained that shows which products of business B a user receiving services from business A prefers to purchase.

[0086] Of course, it is not actually known whether users associated with business A have purchased products from business B, but by recommending products and services based on such information, for example, advertising products and services can be conducted more effectively.

[0087] Thus, in this embodiment, data analysis can be performed across different fields without identifying individuals.

[0088] (Second embodiment) Next, a second embodiment of the present disclosure will be described.

[0089] In the first embodiment, the dataset DA and dataset DB are, for example, matrix datasets as shown in Figure 3, where one record is generated for each "User_ID". Here, "User_ID" is an identification number that identifies an individual user.

[0090] In other words, the dataset DA and dataset DB in the first embodiment contain information that can identify an individual, such as hobbies and location. For example, if hobbies or location are unique, it may be possible to estimate the identity of a single person even if their name, age, and gender are unknown.

[0091] For example, if the dataset DA and dataset DB are clustered by the server device 41 of business operator B, there is a possibility that business operator B may identify business operator A's users included in the dataset DA. To make it difficult for business operator B to identify business operator A's users included in the dataset DA, for example, the records of the dataset DA may be consolidated.

[0092] Figure 8 illustrates the merging of records in matrix datasets, such as dataset DA and dataset DB. The matrix shown on the left side of Figure 8 is an example of a matrix dataset before record merging (hereinafter referred to as the original dataset). In this example, the "User_ID" column shows User1, User2, User3, and User4, recording records for four real users. The "Attr1," "Attr2," "Attr3," and "Attr4" columns represent attributes, corresponding to, for example, the "SEGMENT_Furniture / Interior" column and the "SEGMENT_Estimated Daytime Location: Shinbashi, Minato-ku, Tokyo" column in Figure 3.

[0093] When the records from the original dataset are merged, the dataset shown on the right side of Figure 8 (hereinafter referred to as the merged dataset) is generated. In this example, the records for User1 and User2 from the original dataset are merged to generate the record for UserX in the merged dataset. Similarly, the records for User3 and User4 from the original dataset are merged to generate the record for UserY in the merged dataset.

[0094] In UserX's record, for example, the value in the "Attr1" column is 1 (=(1+1) / 2), which is the sum of the "Attr1" column values ​​in User1's record and User2's record, divided by 2. Similarly, in UserY's record, for example, the value in the "Attr4" column is 0.5 (=(0+1) / 2), which is the sum of the "Attr4" column values ​​in User3's record and User4's record, divided by 2.

[0095] Thus, the attribute values ​​of each record in the merged dataset are the average of the attribute values ​​of multiple records included in the original dataset. By merging records in this way, for example, a fictional user, UserX, is generated whose hobbies and preferences are the average of those of User1 and User2. Similarly, a fictional user, UserY, is generated whose hobbies and preferences are the average of those of User3 and User4.

[0096] Figure 9 is a block diagram showing an example of the functional configuration of the server device 41 when creating an integrated dataset in this embodiment. In this example, the server device 41 has a sparse matrix generation unit 121, an inter-domain clustering execution unit 122, and a dataset generation unit 123, in addition to a record integration unit 124.

[0097] The record integration unit 124 integrates the records contained in the original dataset generated by the sparse matrix generation unit 121 to generate the integrated dataset. The functions of the other units are the same as described above with reference to Figure 6. The block diagram in Figure 9 may also be applied as the functional configuration of the server device 21.

[0098] In this embodiment, the first dataset is held by the first processing entity, the second dataset is held by the second processing entity, the first dataset is an integrated record formed by integrating two or more records contained in another dataset, and consists of multiple integrated records, and the interdomain clustering step is performed by the second processing entity.

[0099] For example, if clustering is performed on server device 41 of business operator B, server device 21 of business operator A may integrate the original dataset DA to generate integrated dataset DA / 2, and then provide integrated dataset DA / 2 to server device 41. In this way, it becomes difficult for business operator B to identify business operator A's users included in dataset DA.

[0100] Here, we have described an example in which two records in the original dataset are merged into one record in the merged dataset. The number of records N merged in the original dataset can be any number greater than or equal to 2. On the other hand, in order for the new dataset generated by the dataset generation unit 123 to better reflect the tastes and preferences of business A's users, it is desirable for the number of records N merged to be small, and ideally, N should be 2.

[0101] Furthermore, for example, if the number of records in the original dataset is not divisible by the number of records to be merged (N), the remaining records do not need to be included in the merged dataset.

[0102] Furthermore, it is desirable that the N records to be merged in the original dataset have similar attributes. When the record merging unit 124 extracts the N records to be merged, it may calculate the similarity of the attributes of those records and merge only those records that have a similarity of a certain level or higher.

[0103] For example, in the original dataset shown in Figure 8, when extracting records to merge with User1's record, a four-dimensional vector consisting of the attribute values ​​(Attr1 to Attr4) related to User1 is generated. Similarly, the records of User2 to User4 could be represented as four-dimensional vectors, and the Euclidean distance between User1's vector and the other vectors could be calculated to represent the similarity.

[0104] For example, if the calculated Euclidean distance is greater than or equal to a pre-set threshold, the record corresponding to that vector is excluded from the integration. Then, the record of the vector whose Euclidean distance is less than the threshold and is the smallest of the three can be extracted as the record to be integrated with User1's records.

[0105] Thus, records in the merged dataset are generated by merging two records contained in another dataset. If a multidimensional vector consisting of attribute values ​​related to the user contained in each of the two records is generated, the two records that have a distance between them less than a threshold may be merged.

[0106] Here, we have described an example in which clustering is performed on server device 41 of operator B, and operator A's dataset DA is integrated to generate the integrated dataset DA / 2. However, of course, if clustering is performed on server device 21 of operator A, operator B's dataset DB may also be integrated to generate the integrated dataset DB / 2.

[0107] (Effects of the second embodiment) According to this embodiment, co-clustering is performed using a merged dataset consisting of records obtained by integrating two or more records contained in the original dataset. In this way, for example, it becomes difficult for users of business A included in dataset DA to be identified by business B.

[0108] Therefore, it is possible to improve the confidentiality of datasets held by processing entities different from the processing entity that performs the co-clustering process.

[0109] (Third embodiment) If you want to further enhance the confidentiality of a dataset, you can encrypt it. In this case, the dataset is encrypted using a homomorphic encryption algorithm. A homomorphic encryption algorithm is a public-key cryptographic algorithm that can be computed without decrypting the ciphertext.

[0110] In homomorphic encryption, the encryption algorithm is denoted by e, the decryption algorithm by d, the encryption key by Ke, the decryption key by Kd, and the data by M. Typically, the encryption key Ke is considered the public key, and the decryption key Kd is considered the private key.

[0111] For example, e(M1,Ke) represents encrypting plaintext data M1 using encryption algorithm e with encryption key Ke, and d(e(M1,Ke),Kd) represents decrypting encrypted data using decryption algorithm d with decryption key Kd.

[0112] (Fully homomorphic encryption algorithm) When using the fully homomorphic encryption algorithm, which is one of the homomorphic encryption algorithms, e(M1+M2,Ke) and e(M1×M2,Ke) can be directly calculated from e(M1,Ke) and e(M2,Ke). Also, e(M1+M2,Ke) and e(M1×M2,Ke) can be directly calculated from e(M1,Ke) and the plaintext data M2.

[0113] In this embodiment, for example, the first data set (e.g., data set DA) is encrypted using a public key corresponding to a secret key held by the first processing entity (e.g., server device 21 of business operator A), which is a public key of a fully homomorphic encryption algorithm. The processing by the inter-domain clustering execution unit 122 is then performed by the second processing entity (e.g., server device 41 of business operator B), generating a user cluster matrix (e.g., UA, UB) encrypted with the public key, an attribute cluster matrix (e.g., VA, VB) encrypted with the public key, and an inter-domain cluster S encrypted with the public key.

[0114] Figure 10 is a block diagram showing an example of the functional configuration of the server device 21 when a dataset is encrypted using a homomorphic encryption algorithm in this embodiment. In this example, the server device 21 has a sparse matrix generation unit 121, an inter-domain clustering execution unit 122, a dataset generation unit 123, and a record integration unit 124, in addition to an encryption processing unit 125. Note that the record integration unit 124 may be omitted.

[0115] The encryption processing unit 125 performs encryption or decryption of the data to be processed using a homomorphic encryption algorithm. The functions of the other parts are the same as described above with reference to Figure 6. The block diagram in Figure 10 may also be applied as the functional configuration of the server device 41.

[0116] (Clustering using encrypted data) Figure 11 is a sequence diagram illustrating an example of processing performed between server device 21 and server device 41 according to this embodiment. Here, the processing related to steps S22 to S25 in Figure 7 is assumed to be performed by server device 41. Furthermore, the secret key Sk and public key Pk of the homomorphic encryption algorithm are assumed to be generated by server device 21.

[0117] In step S101, the sparse matrix generation unit 121, the record integration unit 124, and the encryption processing unit 125 of the server device 21 send data e(DA / 2,Pk), which is data obtained by encrypting the integrated dataset DA / 2 with the public key Pk, to the server device 41, and in step S121, the server device 41 receives this data.

[0118] The server device 41 generates a user cluster matrix, an attribute cluster matrix, and interdomain clusters encrypted with the public key Pk by clustering the integrated dataset DA / 2 and the dataset DB encrypted with the public key Pk. Specifically, the user cluster matrix UA and attribute cluster matrix VA related to the integrated dataset DA / 2, and the user cluster matrix UB and attribute cluster matrix VB related to the dataset DB are generated in a state encrypted with the public key Pk. Then, the same interdomain cluster S is generated for both the integrated dataset DA / 2 and the integrated dataset DB in a state encrypted with the public key Pk.

[0119] In step S122, the server device 41 sends data e(UA,Pk), which is the user cluster matrix UA encrypted with the public key Pk; data e(S,Pk), which is the interdomain cluster S encrypted with the public key Pk; data e(VA,Pk), which is the attribute cluster matrix encrypted with the public key Pk; data e(UB,Pk), which is the user cluster matrix UA encrypted with the public key Pk; and data e(VB,Pk), which is the attribute cluster matrix encrypted with the public key Pk, to the server device 21, which receives this in step S102.

[0120] Server device 21 decrypts data e(S,Pk), data e(VA,Pk), and data e(VB,Pk) using the secret key. The figure shows the decrypted data d(e(S,Pk),Sk), data d(e(VA,Pk),Sk), and data d(e(VB,Pk),Sk), which are equivalent to the interdomain cluster S, attribute cluster matrix VA, and attribute cluster matrix VB, respectively.

[0121] In step S103, the server device 21 transmits the inter-domain cluster S, attribute cluster matrix VA, and attribute cluster matrix VB to the server device 41, which receives them in step S123.

[0122] The server device 41 re-clusters the dataset DB using the interdomain cluster S received in step S103 to generate a user cluster matrix UB and an attribute cluster matrix VB. As a result, the server device 41 can generate a new dataset DAB by multiplying the user cluster matrix UB, the interdomain cluster S, and the attribute cluster matrix VA.

[0123] Meanwhile, the server device 21 clusters the dataset DA using the interdomain cluster S obtained by decrypting the data e(S,Pk) with the secret key, and generates a user cluster matrix UA and an attribute cluster matrix VA. As a result, the server device 21 can generate a new dataset DAB by multiplying the user cluster matrix UA, the interdomain cluster S, and the attribute cluster matrix VB.

[0124] Here, we have described an example in which server device 21 sends data e(DA / 2,Pk), which is the integrated dataset DA / 2 encrypted with the public key Pk, to server device 41. However, it is also possible to send data e(DA,Pk), which is the original dataset DA encrypted with the public key Pk, to server device 41.

[0125] (Effects of the third embodiment) According to this embodiment, the dataset is encrypted and co-clustering is performed. This makes it even more difficult, for example, for users of business A included in dataset DA to be identified by business B.

[0126] Therefore, the confidentiality of datasets held by processing entities different from the processing entity that performs the co-clustering process can be further improved.

[0127] Furthermore, according to this embodiment, since the dataset is encrypted, data confidentiality can be enhanced without creating a post-integrated dataset.

[0128] (Fourth embodiment) In the second embodiment, an example of enhancing data confidentiality by using an integrated dataset was described, and in the third embodiment, an example of enhancing data confidentiality by encryption was described. However, data confidentiality may be enhanced by other methods.

[0129] In this embodiment, noise is inserted to enhance data confidentiality. The noise may be, for example, a random value close to zero, and may be added to the values ​​of each element in dataset DA and dataset DB. Noise may also be added to the integrated dataset DA / 2 and integrated dataset DB / 2.

[0130] Furthermore, noise may be added to at least one of the user cluster matrix UA, attribute cluster matrix VA, user cluster matrix UB, and attribute cluster matrix VB. In addition to the above, or separately, noise may be added to the interdomain cluster S.

[0131] For example, the first dataset (e.g., dataset DA) may be held by the first processing entity (e.g., business A), the second dataset (e.g., dataset DB) may be held by the second processing entity (e.g., business B), the inter-domain clustering step may be performed by the second processing entity, and random numbers within a predetermined numerical range may be added as noise to the inter-domain clusters (S) and attribute cluster information (VA).

[0132] Figure 12 is a block diagram showing an example of the functional configuration of the server device 21 when a dataset is encrypted using a homomorphic encryption algorithm in this embodiment. In this example, the server device 21 includes a sparse matrix generation unit 121, an inter-domain clustering execution unit 122, a dataset generation unit 123, a record integration unit 124, and an encryption processing unit 125, in addition to a noise addition unit 126. Note that the record integration unit 124 and the encryption processing unit 125 may be omitted.

[0133] The noise addition unit 126 performs a process of adding a random value close to zero to the value of each element of the matrix data to be processed. The functions of the other parts are the same as described above with reference to Figure 6. The block diagram in Figure 12 may also be applied as the functional configuration of the server device 41.

[0134] According to this embodiment, data confidentiality can be enhanced without encrypting the dataset or creating a post-integrated dataset.

[0135] (Fifth embodiment) In the embodiments described above, it was assumed that the entity executing each step in Figure 7 was either business operator A (or server device 21) or business operator B (or server device 41). However, at least a portion of each step in Figure 7 may be executed by other entities.

[0136] (Mediator) Figure 13 is a diagram illustrating a system according to the fifth embodiment of this disclosure. For example, as shown in Figure 13, a business operator different from both business operator A and business operator B may be the entity that executes the co-clustering process. Here, the business operator different from both business operator A and business operator B will be referred to as the Mediator.

[0137] The Mediator may be, for example, an internet service provider or a data center operator. It is desirable that the Mediator be a different entity from the entity that holds the dataset to be clustered, which contains user-related information. It is also desirable that entities A and B have entered into confidentiality agreements with the Mediator in advance.

[0138] In the example in Figure 13, Mediator has a server device 201, to which a database 202 is connected. In this case, the block diagrams described above, with reference to Figures 6, 9, or 10, may be applied as examples of the functional configuration of server device 201. Note that Mediator's server device 201 may perform all steps of the co-clustering process in Figure 7, or only some of the steps.

[0139] The Mediator server device 201, for example, records the attributes of multiple users in a first dataset (DA) and a second dataset (DB), respectively, and uses a matrix that shows the relationship between each user cluster and each attribute cluster as an interdomain cluster (S). generate It includes an inter-domain clustering execution unit, and the inter-domain clustering execution unit performs the first data set To The information processing device may perform clustering on the first dataset and the second dataset, respectively, such that the interdisciplinary clusters related to the first dataset and the interdisciplinary clusters related to the second dataset form the same matrix.

[0140] (First clustering service) Figure 14 is a sequence diagram illustrating an example of processing related to the first clustering service, which is executed between the server device 21 of business operator A, the server device 41 of business operator B, and the server device 201 of Mediator. Here, for example, it is assumed that Mediator is providing the first clustering service.

[0141] In step S201, the sparse matrix generation unit 121 of the server device 21 generates the integrated dataset DA / 2 and sends it to the server device 201, which is then received by the server device 201 in step S221.

[0142] In step S241, the sparse matrix generation unit 121 of the server device 41 generates the integrated dataset DB / 2 and sends it to the server device 201, which is received by the server device 201 in step S222.

[0143] In step S223, the inter-domain clustering execution unit of the server device 201 clusters the integrated dataset DA / 2 and the integrated dataset DB / 2. This process corresponds, for example, to the processes in steps S22 to S25 in Figure 7, and generates the user cluster matrix UA / 2, the inter-domain cluster S, the attribute cluster matrix VA, the user cluster matrix UB / 2, and the attribute cluster matrix VB.

[0144] In step S224, the server device 201 transmits the inter-domain cluster S and attribute cluster matrix VB obtained as a result of the processing in step S223 to the server device 21, which receives them in step S202.

[0145] The server device 21 generates a user cluster matrix UA and an attribute cluster matrix VA by decomposing the dataset DA using interdomain clusters S. Then, the server device 21 generates a new dataset by multiplying the user cluster matrix UA, the interdomain clusters S, and the attribute cluster matrix VB.

[0146] In step S225, the server device 201 transmits the inter-domain cluster S and attribute cluster matrix VA obtained as a result of the processing in step S223 to the server device 41, which receives them in step S242.

[0147] The server device 41 generates a user cluster matrix UB and an attribute cluster matrix VB by decomposing the dataset DB using interdomain clusters S. Then, the server device 41 generates a new dataset by multiplying the user cluster matrix UB, the interdomain clusters S, and the attribute cluster matrix VA.

[0148] In this way, by using the first clustering service, businesses A and B can, for example, have the computationally intensive step S223 executed using Mediator's server device 201.

[0149] Furthermore, the process described with reference to Figure 14 may be performed with the dataset encrypted.

[0150] (Second clustering service) Figure 15 is a sequence diagram illustrating another example of processing related to the second clustering service, which is executed between the server device 21 of business operator A, the server device 41 of business operator B, and the server device 201 of Mediator. Here, for example, it is assumed that Mediator is providing the second clustering service. Furthermore, it is assumed that business operator B wants to propose products and services to users using the dataset owned by business operator A.

[0151] In step S341, server device 41 sends a request to server device 201 for co-clustering processing using the dataset owned by business operator A, and this request is received by server device 201 in step S321.

[0152] In step S322, server device 201 sends the request received in step S321 to server device 21, which receives it in step S301. At this time, business operator A decides whether or not to accept the request from business operator B. For example, if business operator A believes that proposing products or services to users using the dataset held by business operator B would be effective, business operator A accepts the request from business operator B.

[0153] In step S302, server device 21 sends data approving the request received in step S301 to server device 201, which is received by server device 201 in step S322.

[0154] In step S323, server device 201 sends a message to server device 41 requesting the creation of the integrated dataset DB / 2, which is received by server device 41 in step S342.

[0155] In step S324, server device 201 sends a message to server device 41 requesting the creation of the integrated dataset DA / 2, which is received by server device 41 in step S342.

[0156] In step S304, the record integration unit 124 of the server device 21 creates an integrated dataset DA / 2 from the dataset DA and sends it to the server device 201, which receives it in step S325.

[0157] In step S343, the record integration unit 124 of the server device 41 creates an integrated dataset DB / 2 from the dataset DB and sends it to the server device 201, which receives it in step S326.

[0158] In step S327, the inter-domain clustering execution unit 122 of the server device 201 clusters the integrated dataset DA / 2 and the integrated dataset DB / 2. This process corresponds, for example, to the processes in steps S22 to S25 of Figure 7, and generates the user cluster matrix UA / 2, the inter-domain cluster S, the attribute cluster matrix VA, the user cluster matrix UB / 2, and the attribute cluster matrix VB.

[0159] In step S328, the server device 201 transmits the inter-domain cluster S and attribute cluster matrix VB obtained as a result of the processing in step S327 to the server device 21, which receives them in step S305.

[0160] The server device 21 generates a user cluster matrix UA and an attribute cluster matrix VA by decomposing the dataset DA using interdomain clusters S. Then, the server device 21 generates a new dataset by multiplying the user cluster matrix UA, the interdomain clusters S, and the attribute cluster matrix VB.

[0161] In step S329, the server device 201 transmits the inter-domain cluster S and attribute cluster matrix VA obtained as a result of the processing in step S327 to the server device 41, which receives them in step S344.

[0162] Server device 41 generates a user cluster matrix UB and an attribute cluster matrix VB by decomposing the dataset DB using interdomain clusters S. Then, server device 21 generates a new dataset by multiplying the user cluster matrix UB, the interdomain clusters S, and the attribute cluster matrix VA.

[0163] By using this second clustering service, for example, it becomes possible to have Mediator mediate the execution of clustering processes using both sets of datasets between service provider A and service provider B.

[0164] Furthermore, the process described with reference to Figure 15 may be performed with the dataset encrypted.

[0165] Furthermore, although this example describes a case where the processing related to the second clustering service is performed by one Mediator (server device 201), it may also be performed by multiple Mediators. For example, the processing in steps S321 to S324 may be executed by the information processing device of the first Mediator, and the processing in steps S325 to S329 may be executed by the information processing device of the first Mediator.

[0166] (Third clustering service) Figure 16 is a sequence diagram illustrating yet another example of processing related to the third clustering service, which is executed between the server device 21 of operator A, the server device 41 of operator B, and the server device 201 of Mediator.

[0167] Here, let's assume, for example, that Mediator provides a third clustering service. Let's also assume that business B wants to propose products and services to users using datasets owned by other businesses, and that business A is willing to allow other businesses to use its datasets for a fee.

[0168] In step S401, the record integration unit 124 of the server device 21 creates an integrated dataset DA / 2 from the dataset DA and sends it to the server device 201 along with a message related to pre-registration, which is received by the server device 201 in step S421.

[0169] Here, the message related to pre-registration includes information indicating that the integrated dataset DA / 2 will be made available to other businesses for a fee, and information indicating the fees to be charged when other businesses use it. Upon receiving the message related to pre-registration, server device 201 confirms the contents of the received data and approves the pre-registration of the integrated dataset DA / 2 by business A. Business A, whose pre-registration has been approved, will then be displayed in the clustering service catalog provided by Mediator.

[0170] In step S441, server device 41 selects the integrated dataset DA / 2 of service provider A from the clustering service catalog and sends a request to server device 201 for co-clustering processing using service provider A's dataset, which is received by server device 201 in step S422.

[0171] In step S423, server device 201 sends a message to server device 41 requesting the creation of the integrated dataset DB / 2, which is received by server device 41 in step S442.

[0172] In step S443, the record integration unit 124 of the server device 41 creates an integrated dataset DB / 2 from the dataset DB and sends it to the server device 201, which receives it in step S326.

[0173] In step S425, the inter-domain clustering execution unit 122 of the server device 201 clusters the integrated dataset DA / 2 and the integrated dataset DB / 2. This process corresponds, for example, to the processes in steps S22 to S25 of Figure 7, and generates the user cluster matrix UA / 2, the inter-domain cluster S, the attribute cluster matrix VA, the user cluster matrix UB / 2, and the attribute cluster matrix VB.

[0174] In step S426, the server device 201 transmits the inter-domain cluster S and attribute cluster matrix VA obtained as a result of the processing in step S425 to the server device 41, which receives them in step S444.

[0175] The server device 41 generates a user cluster matrix UB and an attribute cluster matrix VB by decomposing the dataset DA using interdomain clusters S. Then, the server device 41 generates a new dataset by multiplying the user cluster matrix UB, the interdomain clusters S, and the attribute cluster matrix VA.

[0176] In step S445, after service provider B has accepted the results, the payment process for the usage fee is executed. The payment process for the usage fee may be carried out, for example, by interbank transfer. The paid fee is obtained by the Mediator in step S427.

[0177] In step S428, Mediator pays service provider A the fee for using the dataset. The payment process may be carried out by, for example, an interbank transfer. Furthermore, payment of the fee for using the dataset to service provider A does not need to be made each time; for example, the fee for one month may be paid in a lump sum. The paid fee is obtained by service provider A in step S402.

[0178] By using this third clustering service, service provider B can freely select the dataset they wish to use from the datasets of service providers displayed in the catalog, without needing, for example, approval of a request from service provider A. Furthermore, service provider A, which allows service provider B to use the dataset, can collect a fee for the use of the dataset.

[0179] Furthermore, the process described with reference to Figure 16 may be performed with the dataset encrypted.

[0180] Furthermore, although this example describes a case where the processing related to the third clustering service is performed by one Mediator (server device 201), it may also be performed by multiple Mediators. For example, the processing in steps S425 and S426 may be executed by the information processing device of the first Mediator, and the other processing may be executed by the information processing device of the second Mediator.

[0181] (modified version) In the first to third clustering services described above, it was explained that server device 201 performs the transmission and reception of data with server device 21 or server device 41. However, for example, Mediator may have a dedicated device that performs the transmission and reception of data with business operator A or business operator B and controls the acquisition or supply of data. By doing so, for example, the transmission and reception of data with multiple business operators can be made smoother, and the confidentiality of products obtained as a result of (part of) the co-clustering process (e.g., user cluster matrix, attribute cluster matrix) can be enhanced.

[0182] In other words, if the first dataset is held by the first processing entity and the second dataset is held by the second processing entity, the Mediator server device 201 may further include a supply unit that supplies to the second processing entity attribute cluster information indicating the attributes belonging to each of the inter-domain clusters and clusters obtained by clustering the attributes of the first dataset.

[0183] (Sixth Embodiment) Next, a sixth embodiment of the present disclosure will be described. In this embodiment, similar to business operators A and B, business operators C and D each possess datasets C and D, which record information relating to their respective users. In this embodiment, at least some of the steps of the co-clustering process shown in Figure 7 are executed by the Mediator server device 201.

[0184] Furthermore, in this embodiment, the dataset is encrypted and co-clustering is performed, and LWE (Learning With Errors) is used as the fully homomorphic encryption method.

[0185] In LWE, the lattice dimension n, the prime number q, and the error distribution χ are made public. The private key Sk is generated as a random vector on the set of remainders when an integer is divided by q. A matrix A is also generated consisting of points on the set of remainders when an integer is divided by q, and (B,A) is the public key Pk. Here, the error vector e is generated from the error distribution χ, and B = A × Sk + e.

[0186] The public key can be a list (Bi, Ai), for example, Bi = Ai × Sk + ei, where i = 0, 1, 2, ...

[0187] For example, operators A, B, C, and D may encrypt their respective datasets DA, DB, DC, and DD with their public keys and provide them to the Mediator. Alternatively, the merged datasets DA / 2, DB / 2, DC / 2, and DD / 2 may be encrypted with their public keys and provided to the Mediator.

[0188] In such cases, the Mediator database 202 may record information as shown in Figure 17. In the example in Figure 17, for each of the operators A through D, the following are recorded: "Public information for encryption," "Public key list," and "Encrypted dataset."

[0189] The "publicly available information for cryptography" corresponds to the lattice dimension n, prime number q, and error distribution χ mentioned above. Here, the subscripts "a," "b," "c," and "d" are assigned to operators A, B, C, and D, respectively, and the lattice dimension n, prime number q, and error distribution χ are described.

[0190] The "public key list" corresponds to the public key list (Bi, Ai) mentioned above. Here, the public key lists are described with subscripts "a", "b", "c", and "d", corresponding to operative A, operative B, operative C, and operative D, respectively.

[0191] The "encrypted dataset" corresponds to the merged dataset encrypted with the public key mentioned above. Here, the merged datasets DA / 2, DB / 2, DC / 2, and DD / 2, corresponding to businesses A, B, C, and D, are described, each containing data encrypted with the public key. Note that each merged dataset is encrypted using a portion of the public key (Pk) list (referred to as "part of the Pk list").

[0192] Furthermore, Mediator's database 202 may record information such as that shown in Figure 18. In the example in Figure 18, "private key user," "public key user," "product," and "reuse flag" are recorded.

[0193] A "private key user" is, for example, a business that uses a clustering service and possesses the private key. A "private key user" may also be the business that generated the private key. A "public key user" is, for example, a business that uses a clustering service but does not possess the private key. In the second row of Figure 18, the "private key user" is business A and the "public key user" is business B. In the third row of Figure 18, the "private key user" is business B and the "public key user" is business D.

[0194] The "products" are data generated by the clustering service, and may be, for example, interdomain clusters and attribute cluster matrices. In the second row of Figure 18, the interdomain cluster Sab, attribute cluster matrix VA, and attribute cluster matrix VB are described. In the third row of Figure 18, the interdomain cluster Sbd, attribute cluster matrix VB, and attribute cluster matrix VD are described.

[0195] Here, inter-domain cluster Sab refers to the inter-domain cluster obtained by performing the processes in steps S22 to S25 of Figure 7 on the dataset of business A, which is the "private key user," and the dataset of business B, which is the "public key user." Similarly, inter-domain cluster Sbd refers to the inter-domain cluster obtained by performing the processes in steps S22 to S25 of Figure 7 on the dataset of business B, which is the "private key user," and the dataset of business D, which is the "public key user."

[0196] The "reuse flag" indicates whether the product can be reused; "T" indicates that it can be reused, and "F" indicates that it cannot be reused. In the second row of Figure 18, the reuse flag T is set. In the third row of Figure 18, the reuse flag F is set.

[0197] Thus, Mediator's database 202 stores inter-domain clusters, a first attribute cluster matrix, and a second attribute cluster matrix, along with information indicating whether they are reusable.

[0198] Furthermore, each of the businesses A, B, C, and D may record, for example, the private key Sk and error vector e used to generate the "public key list" in Figure 17 in their respective databases.

[0199] (Example of implementation using software) The server devices 21, 41, and 201 described above are programs for making computers function, and can be realized by programs for making computers function as server devices 21, 41, and 201. In this case, the server devices 21, 41, and 201 include a computer having at least one control device (e.g., a processor) and at least one storage device (e.g., memory) as hardware for executing the above programs. An example of such a computer is shown in Figure 19.

[0200] The computer 500 includes at least one processor 501 and at least one memory 502. The memory 502 stores a program 520 that causes the computer 500 to operate as server devices 21, 41, and 201. In the computer 500, the processor 501 reads and executes this program 520 from the memory 502, thereby realizing the functions of the server devices 21, 41, and 201.

[0201] The processor 501 can be, for example, a CPU (Central Processing Unit), a GPU (Graphic Processing Unit), a DSP (Digital Signal Processor), an MPU (Micro Processing Unit), an FPU (Floating Point Number Processing Unit), a PPU (Physics Processing Unit), a microcontroller, or a combination thereof.

[0202] For memory 502, for example, flash memory, HDD (Hard Disk Drive), SSD (Solid State Drive), or a combination of these can be used.

[0203] Furthermore, the computer 500 may also be equipped with RAM (Random Access Memory) for deploying the program 520 at runtime and for temporarily storing various data. The computer 500 may also be equipped with a communication interface for sending and receiving data with other devices. Furthermore, the computer 500 may also be equipped with an input / output interface for connecting input / output devices such as a keyboard, mouse, display, and printer.

[0204] Furthermore, the program 520 for operating the computer 500 as server devices 21, 41, and 201 can be recorded on a non-temporary, tangible recording medium 530 that is readable by the computer 500. Such a recording medium 530 can be, for example, a tape, disk, card, semiconductor memory, or a programmable logic circuit. The computer 500 can retrieve the program 520 via such a recording medium 530.

[0205] Furthermore, the program 520 for operating the computer 500 as server devices 21, 41, and 201 can be transmitted via a transmission medium. Such a transmission medium can be, for example, a communication network or broadcast waves. The computer 500 can also acquire the program 520 via such a transmission medium.

[0206] Furthermore, some or all of the functions of server devices 21, 41, and 201 can also be implemented by logic circuits. For example, an integrated circuit in which logic circuits functioning as the above-mentioned control blocks are formed is also included in the scope of the present invention. In addition, it is also possible to implement the functions of the above-mentioned control blocks using, for example, a quantum computer.

[0207] According to each aspect of this disclosure described above, the effects described above can contribute to achieving Sustainable Development Goal (SDG) 9, "Build resilient infrastructure, promote inclusive and sustainable industrialization and foster technological innovation."

[0208] This disclosure is not limited to the embodiments described above, and various modifications are possible within the scope of the claims. Embodiments obtained by appropriately combining the technical means disclosed in different embodiments are also included in the technical scope of this disclosure.

[0209] 〔summary〕 A co-clustering method according to aspect 1 of the present disclosure is a co-clustering method for co-clustering a first dataset and a second dataset, wherein the first dataset and the second dataset each record attributes relating to a plurality of users, and for each of the first dataset and the second dataset, a matrix is ​​used to show the relationship between each user cluster and each attribute cluster, representing inter-domain clusters. generateThe process includes an interdisciplinary clustering step, a data set generation step which generates a third data set by combining user cluster information indicating the users belonging to each cluster obtained by clustering the users of the second data set, and attribute cluster information indicating the attributes belonging to each cluster obtained by clustering the attributes of the first data set, via the interdisciplinary clusters, wherein the interdisciplinary clustering step is performed on the first data set and the second data set respectively such that the interdisciplinary clusters relating to the first data set and the interdisciplinary clusters relating to the second data set are the same matrix.

[0210] The co-clustering method according to aspect 2 of the present disclosure is as follows: In aspect 1 above, the first dataset and the second dataset consist of a plurality of records each recording attributes relating to a plurality of users; in the inter-domain clustering step, a matrix of K rows and L columns is generated as the inter-domain cluster; a second user cluster matrix is ​​generated showing the users belonging to each of the K clusters obtained by clustering the users of the second dataset by referring to the inter-domain cluster; and a second attribute cluster matrix is ​​generated showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the second dataset by referring to the inter-domain cluster; and K clusters are generated by clustering the users of the first dataset by referring to the inter-domain cluster. of A first user cluster matrix is ​​generated, showing the users belonging to each cluster, and a first attribute cluster matrix is ​​generated, showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the first dataset. In the dataset generation step, the second user cluster matrix, the inter-domain clusters, and the first attribute cluster matrix are multiplied to generate the third dataset, which consists of multiple records, each recording the attributes of multiple users.

[0211] The co-clustering method according to aspect 3 of the present disclosure is characterized in that, in aspect 1 above, the first dataset is held by a first processing entity, the second dataset is held by a second processing entity, the first dataset is an integrated record formed by integrating two or more records contained in another dataset, and consists of a plurality of integrated records, and the inter-domain clustering step is performed by the second processing entity.

[0212] The co-clustering method according to aspect 4 of the present disclosure, in aspect 3 above, is generated by merging two records included in another dataset, and when a multidimensional vector consisting of attribute values ​​relating to the user included in each of the two records is generated, two records whose distance from the two multidimensional vectors is less than a threshold are merged.

[0213] The co-clustering method according to aspect 5 of the present disclosure, in any of aspects 1 to 4 above, wherein the first dataset is held by a first processing entity, the second dataset is held by a second processing entity, and further includes an encryption step of encrypting the first dataset using a public key corresponding to a secret key held by the first processing entity, which is a public key of a fully homomorphic encryption algorithm, the inter-domain clustering step is performed by the second processing entity, and the inter-domain clustering step generates user cluster information encrypted with the public key, attribute cluster information encrypted with the public key, and inter-domain clusters encrypted with the public key.

[0214] The co-clustering method according to aspect 6 of the present disclosure is characterized in that, in any of aspects 1 to 5 above, the first dataset is held by the first processing entity, the second dataset is held by the second processing entity, the inter-domain clustering step is performed by the second processing entity, and random numbers within a predetermined numerical range are added as noise to the inter-domain cluster and the attribute cluster information.

[0215] The information processing device according to aspect 7 of this disclosure records, for each of the first and second datasets, each containing attributes relating to multiple users, a matrix representing the relationship between each user cluster and each attribute cluster is used to show inter-domain clusters. generate It includes an inter-domain clustering execution unit, and the inter-domain clustering execution unit performs the first data set To Clustering is performed on the first dataset and the second dataset, respectively, so that the interdisciplinary clusters relating to the first dataset and the interdisciplinary clusters relating to the second dataset form the same matrix.

[0216] The information processing device according to aspect 8 of the present disclosure, in aspect 7 above, the first dataset and the second dataset each consist of a plurality of records in which attributes relating to a plurality of users are recorded, the inter-domain clustering execution unit generates a matrix of K rows and L columns as the inter-domain cluster, and by referring to the inter-domain cluster, generates a second user cluster matrix showing the users belonging to each of the K clusters obtained by clustering the users of the second dataset, and a second attribute cluster matrix showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the second dataset, and by referring to the inter-domain cluster, generates K clusters obtained by clustering the users of the first dataset of A first user cluster matrix is ​​generated, showing the users belonging to each cluster, and a first attribute cluster matrix is ​​generated, showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the first dataset.

[0217] The information processing device according to aspect 9 of the present disclosure is a storage unit that stores the inter-domain cluster, the first attribute cluster matrix, and the second attribute cluster matrix together with information indicating whether they can be reused, in the above aspect 8. of Prepare further.

[0218] The information processing device according to aspect 10 of the present disclosure, in any of aspects 7 to 9 above, further comprises a supply unit that supplies to the second processing unit attribute cluster information indicating the attributes belonging to each of the inter-domain clusters and clusters obtained by clustering the attributes of the first dataset, wherein the first dataset is held by the first processing execution entity, and the second dataset is held by the second processing execution entity.

[0219] The information processing device according to aspect 11 of the present disclosure, in aspect 10 described above, encrypts the first dataset using a public key corresponding to a secret key held by the first processing execution entity, which is a public key of a fully homomorphic encryption algorithm, and the inter-domain clustering execution unit generates user cluster information encrypted with the public key, attribute cluster information encrypted with the public key, and inter-domain clusters encrypted with the public key.

[0220] The information processing device according to aspect 12 of the present disclosure, in aspect 11 above, further comprises a storage unit that stores cryptographic information including a grid dimension, prime numbers, and error distribution corresponding to the first processing execution entity, the public key list, and the encrypted first dataset, wherein the fully homomorphic cryptographic algorithm is LWE (Learning With Errors).

[0221] The program according to aspect 13 of this disclosure uses a computer to represent interdisciplinary clusters as a matrix showing the relationship between each user cluster and each attribute cluster, for each of the first and second datasets, each of which records attributes relating to multiple users. generate It includes an inter-domain clustering execution unit, and the inter-domain clustering execution unit performs the first data set To The information processing device is configured to perform clustering on the first dataset and the second dataset, respectively, so that the inter-domain clusters and the inter-domain clusters relating to the second dataset form the same matrix. [Explanation of Symbols]

[0222] 21 Server equipment 41 Server equipment 121 Sparse matrix generator 122 Interdisciplinary Clustering Execution Unit 123 Dataset Generation Unit 124 Record Integration Unit 125 Encryption Processing Unit 126 Noise Addition Section

Claims

1. A co-clustering method for co-clustering a first dataset and a second dataset, which is performed by one or more information processing devices having an inter-domain clustering execution unit and a dataset generation unit, The first dataset and the second dataset each record attributes relating to multiple users, The inter-domain clustering execution unit performs an inter-domain clustering step in which it generates inter-domain clusters as matrices showing the relationship between each user cluster and each attribute cluster for each of the first and second datasets, The dataset generation unit includes a dataset generation step in which it generates a third dataset by combining user cluster information, which indicates the users belonging to each cluster obtained by clustering the users of the second dataset, and attribute cluster information, which indicates the attributes belonging to each cluster obtained by clustering the attributes of the first dataset, via the inter-domain cluster. The aforementioned inter-domain clustering step is: Clustering is performed on the first dataset and the second dataset respectively such that the interdisciplinary clusters for the first dataset and the interdisciplinary clusters for the second dataset form the same matrix. Co-clustering method.

2. The first dataset and the second dataset consist of multiple records, each containing attributes relating to multiple users. In the aforementioned inter-domain clustering step, A matrix of K rows and L columns is generated as the inter-domain cluster, Referring to the inter-domain clusters, a second user cluster matrix is ​​generated showing the users belonging to each of the K clusters obtained by clustering the users of the second dataset, and a second attribute cluster matrix is ​​generated showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the second dataset, and, By referring to the inter-domain clusters, a first user cluster matrix is ​​generated showing the users belonging to each of the K clusters obtained by clustering the users of the first dataset, and a first attribute cluster matrix is ​​generated showing the attributes belonging to each of the L clusters obtained by clustering the attributes of the first dataset. In the aforementioned dataset generation step, By multiplying the second user cluster matrix, the inter-domain clusters, and the first attribute cluster matrix, a third dataset is generated, consisting of multiple records, each recording attributes related to multiple users. The co-clustering method according to claim 1.

3. The first dataset is held by the first processing entity, and the second dataset is held by the second processing entity. The first dataset described above is a combined record formed by integrating two or more records contained in another dataset, and consists of multiple combined records. The co-clustering method according to claim 1, wherein the inter-domain clustering step is executed by the inter-domain clustering execution unit of the information processing device owned by the second processing execution entity.

4. The aforementioned integrated record is generated by merging two records contained in a separate dataset. If a multidimensional vector is generated in each of the two records, consisting of the values ​​of the user attribute included in the record, then two records whose distance from the two multidimensional vectors is less than a threshold are merged. The co-clustering method according to claim 3.

5. The first dataset is held by the first processing entity, and the second dataset is held by the second processing entity. The first processing entity holds a public key corresponding to that public key, and further includes an encryption step of encrypting the first dataset using the public key of a fully homomorphic encryption algorithm, The inter-domain clustering step is performed by the second processing execution entity, In the inter-domain clustering step described above, user cluster information encrypted with the public key, attribute cluster information encrypted with the public key, and inter-domain clusters encrypted with the public key are generated. The co-clustering method according to claim 1.

6. The first dataset is held by the first processing entity, and the second dataset is held by the second processing entity. The inter-domain clustering step is executed by the inter-domain clustering execution unit of the information processing device owned by the second processing execution entity, Random numbers within a predetermined numerical range are added as noise to the aforementioned inter-domain clusters and attribute cluster information. The co-clustering method according to claim 1.