WO2019221113A1 - 情報処理装置、システム、情報処理方法及びプログラム - Google Patents

情報処理装置、システム、情報処理方法及びプログラム Download PDF

Info

Publication number
WO2019221113A1
WO2019221113A1 PCT/JP2019/019103 JP2019019103W WO2019221113A1 WO 2019221113 A1 WO2019221113 A1 WO 2019221113A1 JP 2019019103 W JP2019019103 W JP 2019019103W WO 2019221113 A1 WO2019221113 A1 WO 2019221113A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
data
array
user
corrected
Prior art date
Application number
PCT/JP2019/019103
Other languages
English (en)
French (fr)
Inventor
卓磨 波多野
正典 大坪
Original Assignee
日鉄ソリューションズ株式会社
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 日鉄ソリューションズ株式会社 filed Critical 日鉄ソリューションズ株式会社
Priority to CN201980031631.0A priority Critical patent/CN112106045B/zh
Publication of WO2019221113A1 publication Critical patent/WO2019221113A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Definitions

  • the present invention relates to an information processing apparatus, system, information processing method, and program.
  • Non-Patent Document 1 discloses k-anonymization, which is a technique for anonymizing data by converting the data so that there are k or more data having the same attribute value.
  • an object of the present invention is to support the improvement of data security while suppressing a decrease in usefulness of data.
  • the information processing apparatus uses, as first correspondence information, information of a plurality of dimensions indicating a predetermined item value corresponding to a combination of a plurality of items as the first correspondence information.
  • FIG. 1 is a diagram for explaining an outline of an example of processing of the information processing apparatus.
  • FIG. 2 is a diagram for explaining an example of an item-User matrix generation process.
  • FIG. 3 is a diagram for explaining an example of the generation process of the similarity matrix.
  • FIG. 4 is a diagram for explaining an example of a prediction evaluation value determination process.
  • FIG. 5 is a diagram illustrating an example of a hardware configuration of the information processing apparatus.
  • FIG. 6 is a diagram illustrating an example of a functional configuration of the information processing apparatus.
  • FIG. 7 is a flowchart illustrating an example of processing of the information processing apparatus.
  • FIG. 8 is a diagram illustrating an example of element replacement processing.
  • FIG. 9 is a diagram for explaining an example of element replacement processing.
  • FIG. 1 is a diagram illustrating an outline of an example of processing according to the present embodiment.
  • the processing subject of the present embodiment is an information processing apparatus 500 described later with reference to FIG.
  • purchase history data 100 which is a set of product purchase history data for each of a plurality of users, is prepared in advance.
  • the purchase history data 100 is, for example, a collection of data indicating when, who, what and how much.
  • original data a set of accumulated data used for analysis like the purchase history data 100 is referred to as original data.
  • Original data such as purchase history data 100 is an example of a first data set.
  • the purchase history data 100 is data that can be used for analysis such as determination of a predicted evaluation value, which will be described later with reference to FIGS. 3 and 4, and is useful for specific analysis.
  • the purchase history data 100 includes user information, personal information that can identify an individual or information about the individual may be included. Therefore, if the purchase history data 100 is held as it is, there is a problem that personal information or the like may be leaked. Further, if the purchase history data 100 is anonymized by the k-anonymization technique described in Non-Patent Document 1, the usefulness of the purchase history data 100 may be significantly reduced. Therefore, in the present embodiment, the information processing apparatus 500 processes the purchase history data 100 so as to make it difficult to identify individuals while preventing the purchase history data 100 from deteriorating in usefulness. Perform the process.
  • the information processing apparatus 500 first aggregates data in the purchase history data 100 and generates an item-User matrix 101 that is matrix information indicating the number of products purchased corresponding to the combination of the product and the user.
  • FIG. 2 is a diagram for explaining an example of the process for generating the item-User matrix 101.
  • the data in the purchase history data 100 stores 45,000 pieces of data indicating when, what, and how much.
  • the information processing apparatus 500 aggregates the 45000 pieces of data and specifies who purchased what products (items) in total.
  • the information processing apparatus 500 generates a 3000 ⁇ 500 matrix as the item-User matrix 101. That is, each row of the item-User matrix 101 corresponds to each product, and each column of the item-User matrix 101 corresponds to each user.
  • the value of the element in the i-th row and j-th column of the item-User matrix 101 indicates the number of purchases that the user corresponding to the j-th column purchased the product corresponding to the i-th row.
  • the information processing apparatus 500 performs singular value decomposition on the item-User matrix 101.
  • the information processing apparatus 500 uses a matrix having a singular value obtained by singular value decomposition for the item-User matrix 101 as a component, and values of some elements selected from those having a small absolute value among the elements of the matrix Modify to reduce.
  • the information processing apparatus 500 approximates the item-User matrix 101 using the corrected matrix. More specifically, the information processing apparatus 500 selects a matrix whose components are singular values obtained by singular value decomposition on the item-User matrix 101 from among the elements of the matrix having a small absolute value.
  • the item-User matrix 101 is approximated with a low rank.
  • the information processing apparatus 500 generates the approximate item-User matrix 102 that approximates the item-User matrix 101 by approximating the item-User matrix 101 with low rank in this way.
  • correspondence information information indicating predetermined item values corresponding to a combination of a plurality of items such as the item-User matrix 101 and the approximate item-User matrix 102 is referred to as correspondence information.
  • the item-User matrix 101 is an example of first correspondence information.
  • the approximate item-User matrix 102 is an example of second correspondence information.
  • the approximate item-User matrix 102 is a low-rank approximation of the item-User matrix 101, has the characteristic components of the item-User matrix 101, and can be regarded as a matrix excluding fine components.
  • the purchase history information of the product by the user indicates that the quantity of purchased items is small. The impact may be considered minor.
  • a third party can determine which purchase history is based on the information that a small amount of that item was purchased at that time.
  • a third party who knows a person who purchased a small amount of the product at that time may infer that the purchase history is information on the person, and information on a specific user may be leaked. is there.
  • the information processing apparatus 500 generates the approximate item-User matrix 102 to leave characteristic components and exclude fine components from the item-User matrix 101. Based on the generated approximate item-User matrix 102, the information processing apparatus 500 performs, for example, an anonymized purchase history data 100 by performing a process opposite to the process for generating the item-User matrix 101. Anonymized purchase history data 103 is generated. Anonymized purchase history data 103 is an example of anonymized data that is anonymized original data.
  • the processing of the information processing apparatus 500 of the present embodiment can be regarded as the following processing, for example. That is, by converting the purchase history data 100 into an item-User matrix 101 that is a format used for a specific analysis, the converted item-User matrix 101 leaves characteristic components and excludes fine components.
  • An anonymized purchase history data 103 that is anonymized purchase history data 100 is generated by generating an approximate item-User matrix 102 and generating data that approximates the purchase history data 100 from the generated approximate item-User matrix 102. Is a process for generating
  • FIG. 3 is a diagram illustrating an example of a process for generating the inter-item similarity matrix 104 indicating the similarity between commodities.
  • the information processing apparatus 500 generates an inter-item similarity matrix 104 indicating the similarity between commodities based on the item-user matrix 101.
  • Each row of the item-user matrix 101 is a row made up of elements indicating how much each user has purchased the corresponding product.
  • Vi be the vector in which the elements of i rows of the item-user matrix 101 are arranged. Vi can be regarded as a vector indicating how much each user has purchased the product corresponding to the i-th row.
  • Wij Vi ⁇ Vj / (
  • the information processing apparatus 500 obtains Wij for all the combinations of i and j using Equation 1.
  • the information processing apparatus 500 determines the matrix represented by Wij as the inter-item similarity matrix 104.
  • FIG. 4 is a diagram for explaining an example of a prediction evaluation value determination process.
  • an item evaluation vector 401 that is a vector including an evaluation value of each product for a certain user is prepared.
  • the information processing apparatus 500 multiplies the item similarity matrix 104 by the item evaluation vector 401 for the product evaluated by the user, and obtains the i-th element of the obtained vector in the i-th row of the similarity matrix.
  • a prediction evaluation vector 402 that is a vector including a prediction evaluation value when the user purchases a certain product is generated.
  • Each row of the predicted evaluation vector 402 stores a predicted value of the user's evaluation value for the product corresponding to the row.
  • ruj The user u's evaluation value for the product corresponding to the j-th row is ruj
  • the set of items that the user u has been evaluated is Yu
  • the prediction value of the user u's evaluation value for the product corresponding to the y-th row is r'uy.
  • the information processing apparatus 500 identifies a row that is equal to or greater than a predetermined threshold among the rows of the prediction evaluation vector 402, and identifies a product corresponding to the identified row as a product that the user will evaluate more. To do. Then, the information processing apparatus 500 may present the identified product to the user as a recommended product for the user. For example, the purchase history data 100 is used for analysis by the above processing.
  • FIG. 5 is a diagram illustrating an example of a hardware configuration of the information processing apparatus 500.
  • the information processing device 500 is, for example, a personal computer (PC), a server device, a tablet device, or the like.
  • the information processing apparatus 500 includes a CPU 501, a main storage device 502, an auxiliary storage device 503, an input I / F 504, an output I / F 505, and a network I / F 506. Each element is connected to be communicable with each other via a system bus 507.
  • the CPU 501 is a central processing unit that controls the information processing apparatus 500.
  • the main storage device 502 is a storage device such as a random access memory (RAM) that functions as a work area for the CPU 501 or a temporary storage area for data.
  • the main storage device 502 is an example of a storage medium.
  • the auxiliary storage device 503 is a storage device that stores various programs, various setting information, original data such as the purchase history data 100, various information generated from the original data, and the like.
  • the auxiliary storage device 503 is, for example, a read only memory (ROM), a hard disk drive (HDD), a solid state drive (SSD), or the like.
  • the auxiliary storage device 503 is an example of a storage medium.
  • the input I / F 504 is an interface used for connection with an input device such as a mouse, a keyboard, or a touch panel.
  • the CPU 501 receives input of information from the input device via the input I / F 504.
  • An output I / F 505 is an interface used for connection with an output device such as a monitor, a display unit of a touch panel, or a speaker.
  • the CPU 501 outputs information to the output device via the output I / F 505.
  • a network I / F 506 is an interface used for communication with an external device via a network.
  • the CPU 501 performs communication between external device cities via the network I / F 506.
  • FIG. 6 is a diagram illustrating an example of a functional configuration of the information processing apparatus 500.
  • the information processing apparatus 500 includes a data acquisition unit 601, a data generation unit 602, a determination unit 603, an update unit 604, and an output unit 605.
  • the data acquisition unit 601 acquires original data from the auxiliary storage device 503 and, based on the acquired original data, correspondence that is multi-dimensional array information indicating values of specific items corresponding to a combination of a plurality of items Get information.
  • the data generation unit 602 decomposes the correspondence information acquired by the data acquisition unit 601 as a product of a plurality of multi-dimensional array information.
  • the data generation unit 602 corrects information that is multiplied by each of the other pieces of information obtained by the decomposition so as to reduce the values of some of the included elements.
  • compatible information is set as arrangement
  • the array information modified so as to reduce the values of some of the included elements is referred to as modified array information.
  • the data generation unit 602 regenerates the correspondence information by approximating the correspondence information based on the corrected corrected arrangement information.
  • the correspondence information generated based on the corrected arrangement information is referred to as approximate correspondence information.
  • the data generation unit 602 generates anonymized data that is anonymized original data based on the generated approximate correspondence information.
  • the generated anonymized data is an example of a second data set.
  • the determination unit 603 determines whether to adopt the anonymized data generated by the data generation unit 602 as a final result.
  • the update unit 604 updates the parameter values used for generating the approximate correspondence information by the data generation unit 602.
  • the data generation unit 602 After updating the parameters by the update unit 604, the data generation unit 602 generates the approximate correspondence information and the anonymized data again based on the updated parameters.
  • the output unit 605 outputs the anonymized data generated by the data generation unit 602.
  • FIG. 7 is a flowchart illustrating an example of processing of the information processing apparatus 500.
  • the data acquisition unit 601 acquires original data from the auxiliary storage device 503, for example.
  • the data acquisition unit 601 acquires the purchase history data 100 as the original data from the auxiliary storage device 503.
  • the data acquisition unit 601 generates correspondence information indicating predetermined item values corresponding to a combination of a plurality of items specified in advance based on the original data acquired in step S701. In the present embodiment, it is assumed that a user item and a product item are designated in advance as the plurality of items.
  • the data acquisition unit 601 adds up the data in the original data to specify how much each user has purchased each product, and uses Item- as correspondence information in a two-dimensional array. A user matrix 101 is generated.
  • the data generation unit 602 acquires the singular value of the correspondence information by performing singular value decomposition on the two-dimensional array of correspondence information acquired in S702.
  • A U ⁇ V is obtained by performing singular value decomposition on A. That is, A is represented by multiplication of three matrices.
  • the matrix ⁇ is a matrix having diagonal components as singular values of correspondence information.
  • the data generation unit 602 acquires the singular value of the correspondence information by acquiring the value of each element of the diagonal component of the matrix ⁇ .
  • the matrix ⁇ is an example of array information because it is multiplied with other matrices U and V obtained by singular value decomposition.
  • the matrix U is not multiplied with the matrix V, and the matrix V is not multiplied with the matrix U. Therefore, the matrices U and V are not array information.
  • the data generation unit 602 selects some of the acquired singular values from those having a small value. For example, the data generation unit 602 selects all singular values that are less than or equal to a predetermined threshold among the acquired singular values. In addition, the data generation unit 602 may select a predetermined number of singular values in order from the smallest value among the acquired singular values. In addition, the data generation unit 602 may select singular values in order from the smallest value so that the ratio of the total of the selected singular values to the total of all singular values is equal to or less than a predetermined threshold. .
  • the data generation unit 602 corrects the matrix ⁇ so that the element corresponding to the selected singular value among the diagonal components is set to zero.
  • the corrected matrix be ⁇ '.
  • ⁇ ′ is an example of corrected sequence information.
  • the data generation unit 602 obtains U ⁇ ′V based on the matrix ⁇ ′, the matrix U, and the matrix V, thereby approximating the correspondence information by low rank, and generates approximate correspondence information. That is, in the present embodiment, the data generation unit 602 generates the approximate Item-User matrix 102 that is approximate correspondence information by performing low rank approximation on the Item-User matrix 101 that is correspondence information.
  • the data generation unit 602 may adjust the value of each element by performing fraction processing such as rounding off, rounding down, and rounding up for each element of the generated approximate correspondence information.
  • the fractional part of the data is a fine value, which causes an increase in the burden of calculation processing during processing such as data analysis.
  • the data generation unit 602 can reduce the cause of the burden of calculation processing by performing fraction processing on each element of the generated approximate correspondence information.
  • the number of products purchased by a certain user shown in the approximate correspondence information is a value with a fractional part
  • anonymized data is generated based on this approximate correspondence information, May include data that the user has purchased the product by the number of values with a fractional part (for example, 0.5).
  • the data generation unit 602 can reduce the possibility that the anonymized data becomes unnatural data by performing fraction processing on each element of the approximate correspondence information.
  • the data generation unit 602 may replace the element vectors of the arrays in the generated approximate correspondence information.
  • the data generation unit 602 includes each element in the j1 column, each element in the j2 column, each element in the j3 column, and (j1 ⁇ j2, j1 ⁇ j3, j2 ⁇ j3) in the generated approximate correspondence information. )) May be replaced.
  • the data generation unit 602 uses each element in the j1 column in the approximate correspondence information as each element in the original j3 column, each element in the j2 column as each element in the original j1 column, and j3 column.
  • Each element of the eyes may be each element of the original j2 column.
  • the data generation part 602 is good also as replacing the users corresponding to each column in the produced
  • the j1 column corresponds to the user A
  • the j2 column corresponds to the user B
  • the data generation unit 602 corrects the j1 column in the approximate correspondence information as a column corresponding to the user C, the j2 column as a column corresponding to the user A, and the j3 column as the user B. It may be corrected as a column corresponding to. Thereby, the data generation unit 602 can process the data included in the approximate correspondence information so that it is difficult to specify what kind of data, and as a result, the anonymized data generated in S704 is further anonymized. Will be able to.
  • the data generation unit 602 generates anonymized data that is anonymized original data based on the approximate correspondence information generated in S703.
  • the data generation unit 602 generates the anonymized purchase history data 103.
  • correspondence information indicating who purchased what and how much is generated by aggregating data in the original data, which is a set of data indicating who, what, and how much. It was. Then, the correspondence information is approximated to a low rank, and approximate correspondence information, which is information indicating who purchased what and how much, was obtained.
  • the data generation unit 602 generates anonymized data by processing the original data. First, the data generation unit 602 identifies the same element as the correspondence information and the different element among the elements of the approximate correspondence information.
  • the data generation unit 602 identifies a user and a product corresponding to an element identified as identical to the correspondence information. The data generation unit 602 determines not to process the information corresponding to the specified user and the product in the original data. The data generation unit 602 identifies a user and a product corresponding to an element identified as not corresponding to the correspondence information. The data generation unit 602 determines the data corresponding to the specified user and the product among the original data as data to be processed. For each data corresponding to a certain user determined to be processed and a certain commodity, the data generation unit 602 calculates the value of the item of the number of purchases of the corresponding commodity as the sum of the user and the commodity in the approximate correspondence information. Adjust to be the value of the element corresponding to.
  • the data corresponding to the user A and the product ⁇ included in the original data are “data (1) indicating that the user A purchased a product ⁇ on January 10,” and “1 Data (2) indicating that user A purchased b products ⁇ on month 20 and “user A purchased c products ⁇ on January 30”. It is assumed that the data is (3). In this case, the value of the element corresponding to the user A and the product ⁇ in the correspondence information is a + b + c. Further, it is assumed that the value of the element corresponding to the user A and the product ⁇ in the approximate correspondence information is a + b + c ⁇ 1.
  • the data generation unit 602 adjusts the number of purchased products for each of the data (1) to (3) so that the sum is a + b + c ⁇ 1. For example, the data generation unit 602 processes the data so that the number of purchases of any of the data (1) to (3) is reduced by one. For example, when processing the data (1), the data generation unit 602 converts the data (1) into data indicating that “User A purchased a-1 products ⁇ on January 10”. Process. The data generation unit 602 generates anonymized data by adjusting the value of the number of items purchased for each data determined as a processing target.
  • the value of an element corresponding to a user and a product in the correspondence information may be 1 or more, and the value of an element corresponding to the user and the product in the approximate correspondence information may be 0. That is, the information that the user purchased the product has been deleted because it does not contribute much to the usefulness.
  • the data generation unit 602 deletes data corresponding to the product and the user in the original data. Further, the data generation unit 602, for example, stores data corresponding to the user and the product in the original data in order to leave information that the user purchased the product. It is good also as correcting to the data which shows that it purchased "0".
  • the data generation unit 602 may further perform processing as described below. It is assumed that the process of replacing the columns corresponding to the user A, the user B, and the user C (respectively j1, column j2, and column j3) is performed on the approximate correspondence information.
  • the data generation unit 602 uses each element in the j1 column in the approximate correspondence information as each element in the original j3 column, each element in the j2 column as each element in the original j1 column, Assume that each element is an element in the original j2 column.
  • the data corresponding to the user A included in the original data includes data indicating that “the user A purchased a product ⁇ on January 10” and “the user A on January 20 It is assumed that the data indicates that “the product ⁇ has been purchased b”. Further, the data corresponding to the user B included in the original data includes data indicating that “the user B purchased c products ⁇ on February 10”, and “user B on February 20 Is data indicating that “d products ⁇ have been purchased”. Further, the data corresponding to the user C included in the original data includes data indicating that “the user C purchased e products ⁇ on March 10” and “user C on March 20”. Is data indicating that “f products ⁇ have been purchased”.
  • the number of purchases corresponding to the user A and the product ⁇ is a.
  • the number of purchases corresponding to the user A and the product ⁇ is b.
  • the number of purchases corresponding to the user B and the product ⁇ is c.
  • the number of purchases corresponding to the user B and the product ⁇ is d.
  • the number of purchases corresponding to the user C and the product ⁇ is e.
  • the number of purchases corresponding to the user C and the product ⁇ is f. It is assumed that these values are as follows in the approximate correspondence information before element replacement.
  • the number of purchases corresponding to user A and product ⁇ is a-1.
  • the number of purchases corresponding to the user A and the product ⁇ is b.
  • the number of purchases corresponding to the user B and the product ⁇ is c ⁇ 1. Further, the number of purchases corresponding to the user B and the product ⁇ is d. Further, the number of purchases corresponding to the user C and the product ⁇ is e ⁇ 1. Further, the number of purchases corresponding to the user C and the product ⁇ is f. In the approximate correspondence information after the elements are replaced, the number of purchases corresponding to the user A and the product ⁇ is e ⁇ 1. Further, the number of purchases corresponding to the user A and the product ⁇ is 0. Further, the number of purchases corresponding to the user A and the product ⁇ is f. Further, the number of purchases corresponding to the user B and the product ⁇ is a-1.
  • the number of purchases corresponding to the user B and the product ⁇ is b. Further, the number of purchases corresponding to the user B and the product ⁇ is 0. Further, the number of purchases corresponding to the user C and the product ⁇ is 0. Further, the number of purchases corresponding to the user C and the product ⁇ is c ⁇ 1. The number of purchases corresponding to the user C and the product ⁇ is d.
  • the data generation unit 602 refers to each element in the j1 column of the approximate correspondence information, so that the user A has purchased e-1 products ⁇ and f products ⁇ . Grasp that. Then, the data generation unit 602 adjusts the data corresponding to the user A in the original data so as to match the grasped contents.
  • the column corresponding to the user A in the approximate correspondence information is originally a column corresponding to the user C. This can be interpreted as a change of users in each data included in the original data.
  • the data generation unit 602 includes data indicating that “the user C purchased e products ⁇ on March 10”, which is data corresponding to the user C included in the original data, and “March On the 20th, the user C is corrected to replace the user C with the data indicating that the user C has purchased f products ⁇ .
  • data indicating that “User A purchased e products ⁇ on March 10” and “User A purchased f products ⁇ on March 20”. Is generated. Since the approximate correspondence information indicates that the user A has purchased e-1 products ⁇ and f products ⁇ , the data generation unit 602 generates the data “March 10 , The number of purchases in the data indicating that “product ⁇ was purchased” was modified so as to be combined with the approximate correspondence information.
  • the data generation unit 602 may correct the number of purchases in the data corresponding to each user without correcting the users in the data corresponding to each user included in the original data. For example, the data generation unit 602 corrects the number of purchases for data indicating that “User A has purchased a product ⁇ on January 10,” Has changed to data indicating that “product ⁇ has been purchased e ⁇ 1”, and the data indicating that “User A has purchased b items ⁇ on January 20” has been purchased. And the number of purchases may be modified and changed to data indicating that “User A purchased f products ⁇ on January 20”.
  • the data generation unit 602 grasps that the user B has purchased a-1 products ⁇ and b products ⁇ . To do. Then, the data generation unit 602 adjusts the data corresponding to the user B in the original data so as to match the grasped contents.
  • the column corresponding to the user B in the approximate correspondence information is originally a column corresponding to the user A. Therefore, the data generation unit 602 includes data indicating that “User A has purchased a product ⁇ on January 10,” which is data corresponding to user A included in the original data, and “January. On the 20th, the user A is corrected to replace the user A with the data indicating that the user A has purchased b products ⁇ .
  • the data generation unit 602 grasps that the user C has purchased c-1 products ⁇ and d products ⁇ . To do. Then, the data generation unit 602 adjusts the data corresponding to the user C in the original data so as to match the grasped contents.
  • the column corresponding to the user C in the approximate correspondence information is originally a column corresponding to the user B. Therefore, the data generation unit 602 includes data indicating that “User B purchased c products ⁇ on February 10”, which is data corresponding to User B included in the original data, and “February On the 20th, the user B is corrected to replace the user B with the data indicating that the user B has purchased d products ⁇ .
  • the data generation unit 602 generates anonymized data from the approximate correspondence information in which the elements are exchanged.
  • the information processing apparatus 500 can make it more difficult to understand who each data is related to by generating anonymized data based on the approximate correspondence information in which elements are replaced. , Security can be improved. Further, when the analysis described with reference to FIGS. 3 and 4 is performed, there is no influence on who the user has purchased each product. Therefore, the information processing apparatus 500 can maintain the usefulness of data for a specific analysis even when such elements are replaced.
  • step S ⁇ b> 705 the determination unit 603 determines whether to adopt the anonymized data generated in step S ⁇ b> 704 as a final result.
  • the determination unit 603, for example, inputs the anonymized data generated in S704 to an evaluation application that evaluates the degree of anonymization and usefulness of the data set, and finally determines based on the obtained evaluation result. It is determined whether or not to adopt as a result. If it is determined that the anonymized data generated in S704 is adopted as the final result, the determination unit 603 proceeds to the process of S706, and if it is determined not to be adopted as the final result, the determination unit 603 proceeds to the process of S707.
  • the determination unit 603 displays anonymized data on a monitor connected to the output I / F 505, and instructs the user through the input device connected to the input I / F 504 to confirm the displayed anonymized data. Based on this, it may be determined whether or not the anonymized data generated in S704 is adopted as a final result.
  • step S706 the output unit 605 outputs the anonymized data generated in step S704 by storing the anonymized data in a predetermined storage destination (for example, the auxiliary storage device 503).
  • the output unit 605 may output the anonymized data generated in S704 by transmitting it to a predetermined transmission destination such as an external device.
  • the output unit 605 may output the anonymized data generated in S704 by displaying it on a monitor or the like connected to the output I / F 505.
  • step S ⁇ b> 707 the update unit 604 updates parameters related to the generation of anonymized data (for example, the number of elements selected from the elements of the array information, a threshold value used when selecting an element from the elements of the array information, and the like). .
  • the update unit 604 updates this parameter to a value designated by the user via the input device connected to the input I / F 504, for example. Thereafter, the information processing apparatus 500 generates anonymized data again using the updated parameters.
  • the information processing apparatus 500 generates anonymized data from the original data by the processing of this embodiment.
  • the generated anonymized data is processed from the original data, and it is difficult to specify who each internal data is related to, and security is improved.
  • the approximate correspondence information can be restored by aggregating the anonymized data.
  • the approximate correspondence information is information obtained by approximating correspondence information useful for a specific analysis on the original data while leaving main components, and is also useful for this specific analysis. That is, information useful for specific analysis can be generated from the anonymized data. Therefore, the anonymized data is less useful than the original data. In this way, the information processing apparatus 500 can improve the security of the original data while suppressing a decrease in usefulness of the original data.
  • the information processing apparatus 500 may perform the process up to generating the approximate correspondence information, and the other apparatus may execute the process of generating the anonymized data from the approximate correspondence information. Moreover, it is good also as a person determining how to use anonymization data from approximate correspondence information, and inputting the information of the anonymization data determined by the person to the information processing apparatus 500 grade
  • the information processing apparatus 500 corrects the array information so that the values of some elements are set to 0, and acquires the corrected array information.
  • the information processing apparatus 500 may acquire the corrected array information by performing other corrections on the array information such that the values of some elements are smaller than the current values.
  • the information processing apparatus 500 corrects the values of some elements of the array information so as to reduce the values at a predetermined ratio (for example, 1/10, 1/100, etc.) of the current value.
  • the corrected sequence information may be acquired.
  • the information processing apparatus 500 corrects the array information so as to reduce the values of some elements selected from the smallest of the elements of the array information. This is synonymous with the information processing apparatus 500 correcting the array information so as to reduce the values of elements other than a part of the elements of the array information selected from the larger elements.
  • the data acquisition unit 601 obtains correspondence information in a two-dimensional array indicating the value of a predetermined item corresponding to the combination of two designated items based on the original data in S702. It was decided to generate. However, the data acquisition unit 601 may generate three-dimensional or more array-like correspondence information indicating values of predetermined items corresponding to combinations of three or more designated items. For example, the data acquisition unit 601 is a three-dimensional array indicating the value of the number of items purchased corresponding to the combination of the user item, the item of the item, and the item of purchase month, which are the three specified items. Correspondence information may be generated. In this case, each element of the correspondence information indicates the number of products corresponding to the element purchased in the month corresponding to the element by the user corresponding to the element.
  • the correspondence information can be expressed as a tensor of the third floor or higher.
  • the data generation unit 602 performs tensor decomposition such as Tucker decomposition on the correspondence information, so that the correspondence information can be expressed as a product of a plurality of multi-dimensional array information.
  • the data generation unit 602 extracts a part of the elements of the core tensor, which is information (array information) to be multiplied with each of other pieces of information in the multi-dimensional array information, from the one having a small value. select.
  • the data generation unit 602 selects all elements that are equal to or less than a predetermined threshold among the acquired elements.
  • the data generation unit 602 may select a predetermined number of elements in order from the smallest value among the acquired elements.
  • the data generation unit 602 may select elements in order from the smallest value so that the ratio of the total value of the selected elements to the total value of all elements is equal to or less than a predetermined threshold value.
  • the data generation unit 602 corrects the core tensor so that the value of the selected element among the elements is reduced (for example, 0, 1/10, 1/100, etc.).
  • the data generation unit 602 approximates the correspondence information by multiplying, for example, the corrected core tensor and multi-dimensional array information other than the core tensor obtained by the tensor decomposition on the correspondence information. Information will be generated.
  • the information processing apparatus 500 may perform element replacement on the approximate correspondence information.
  • the number of purchases made by each user whose elements in the approximate correspondence information are replaced is two.
  • the number of purchases made for each user may differ. It may be desired to store the number of times a user has made a purchase.
  • FIG. 8 is a diagram illustrating an example of data included in the approximate correspondence information.
  • the element corresponding to the user i and the product J3 in the approximate correspondence information is 20, which indicates that “the user i has purchased 20 products J3”.
  • the original data includes data indicating that “user j purchased 50 products T-800 on May 25”, and “user j purchased 150 products T-1000 on October 30”. ”Is included.
  • the number of types of products purchased by user i is less than the number of purchases made by user j.
  • the data generation unit 602 indicates that the user j has purchased 20 items of the product J3.
  • Data indicating that “50 items T-800 have been purchased on the 25th of the month” and data indicating that “user j has purchased 150 items of the product T-1000 on 30th of October” are corrected.
  • the data generation unit 602 uses these data as data indicating that “user j purchased five products J3 on May 25”, and “user j purchased 15 products J3 on October 30. It is corrected to the data indicating “What has been done”. As described above, when the number of types of products purchased by the user i is smaller than the number of purchases made by the user j, the data generation unit 602 seems to be consistent with the user j purchasing twice. In addition, the data corresponding to the user i can be replaced as the data corresponding to the user j.
  • FIG. 9 is a diagram illustrating an example of data included in the approximate correspondence information.
  • the element corresponding to the user i and the product J1 in the approximate correspondence information is 1, the element corresponding to the user i and the product J2 is 5, and the user i and the product J3
  • the corresponding element is 25, which indicates that “the user i has purchased 1 product J1, 5 products J2, and 25 products J3”.
  • the original data includes data indicating that “user j purchased 50 products T-800 on May 25”, and “user j purchased 150 products T-1000 on October 30”. ”Is included.
  • the number of types of products purchased by user i is greater than the number of purchases made by user j.
  • the data generation unit 602 should be consistent with the fact that the user j has purchased twice. There arises a problem that data cannot be exchanged. This is because there are three types of merchandise purchased by the user i and cannot be converted into data of two purchases. In the present embodiment, a purchase history is generated for each product, and purchase data of a plurality of products is not included in one purchase history.
  • the information processing apparatus 500 may be configured as follows.
  • the information processing apparatus 500 decomposes the correspondence information in S703 and approximates the correspondence information using some of the obtained parameters (for example, singular values). Then, the information processing apparatus 500 can increase the number of elements having a value of 0 in the approximate correspondence information by performing the fraction processing for truncating the decimal part of each element value of the approximate correspondence information. Thereby, the information processing apparatus 500 can reduce the types of products purchased by each user indicated by the approximate correspondence information. Further, the information processing apparatus 500 may change the value of each element of the approximate correspondence information to 0, which is a value equal to or less than a predetermined threshold.
  • the information processing apparatus 500 uses, as the original data, the purchase history data 100 that is a set of data indicating when, what, and how much purchased as the original data.
  • the original data in the present embodiment can be regarded as information on purchased products corresponding to the user. That is, there is a has-a relationship between the user and the product. Even if the original data is data different from the data described in the present embodiment, the information processing apparatus 500, when the original data is data related to a plurality of data having a has-a relationship, displays the correspondence information based on the original data. Can be generated.
  • the information processing apparatus 500 When the original data includes data of A and B having a relationship of A has B, the information processing apparatus 500, for example, counts and analyzes the number, ratio, frequency, and the like of B included in A, and Can be generated.
  • the information processing apparatus 500 may use a set of other data such as a set of text data such as ticket data in a task management system and text uploaded to a text upload application as original data.
  • the original data can be regarded as information of an appearing word corresponding to the text data, and a has-a relationship exists between the text data and the word.
  • the information processing apparatus 500 can generate correspondence information indicating the appearance frequency of a specified word in each text based on the original data.
  • each column in the correspondence information indicates identification information of each text, and each row indicates a word.
  • Each element of the correspondence information is information indicating the appearance frequency of the word corresponding to the element in the text corresponding to the element.
  • the information processing apparatus 500 generates approximate correspondence information from the correspondence information and generates anonymized data from the generated approximate correspondence information in the same processing as the processing described in the present embodiment.
  • the information processing apparatus 500 is a single information processing apparatus.
  • the information processing apparatus 500 may be configured as a system including a plurality of information processing apparatuses connected to each other via a network (LAN or the Internet).
  • the CPU of each of the plurality of information processing devices included in the information processing device 500 executes the processing in cooperation with each other based on the program stored in the auxiliary storage device of each information processing device.
  • the process of the flowchart of FIG. 7 etc. are implement
  • a part or all of the functional configuration of the information processing apparatus 500 described above may be implemented in the information processing apparatus 500 as hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Complex Calculations (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第1の対応情報として、第1の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる複数の情報のうち複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得し、取得された修正配列情報に基づいて、複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報である第2の対応情報を生成する。

Description

情報処理装置、システム、情報処理方法及びプログラム
 本発明は、情報処理装置、システム、情報処理方法及びプログラムに関する。
 個人情報等の流出の防止等のセキュリティの向上を目的として、データに対して加工を施す匿名化技術等の技術がある。
 非特許文献1には、同じ属性値を持つデータがk件以上存在するようにデータを変換することで、データの匿名化を行う手法であるk-匿名化が開示されている。
"k-匿名化技術と実用化に向けた取り組み" 情報処理 Vol.54 No.11 竹之内 隆夫 [平成30年3月22日検索]、インターネット <URL https://ipsj.ixsq.nii.ac.jp/ej/index.php?active_action=repository_view_main_item_detail&page_id=13&block_id=8&item_id=95382&item_no=1>
 しかし、データを加工することで、データの有用性が低下する場合がある。例えば、非特許文献1に開示されているk-匿名化では、同じ属性を持つデータがk件以上存在するようにデータが加工されることとなる。これにより、セキュリティは向上するが、データが加工されることにより、元のデータが有していた情報の一部が消失することとなり、データの有用性は低下する。同じ属性となるように加工されるデータが特定の分析に重要な情報であると、k-匿名化により、データの有用性が顕著に低下することとなる。
 そこで、本発明は、データの有用性の低下を抑えつつ、データのセキュリティを向上させることを支援することを目的とする。
 そこで、本発明の情報処理装置は、複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第1の対応情報として、前記第1の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得手段と、前記取得手段により取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第2の対応情報を生成する第1の生成手段と、を有する。
 本発明によれば、データの有用性の低下を抑えつつ、データのセキュリティを向上させることを支援することができる。
図1は、情報処理装置の処理の一例の概要を説明する図である。 図2は、item-User行列の生成処理の一例を説明する図である。 図3は、類似度間行列の生成処理の一例を説明する図である。 図4は、予測評価値の決定処理の一例を説明する図である。 図5は、情報処理装置のハードウェア構成の一例を示す図である。 図6は、情報処理装置の機能構成の一例を示す図である。 図7は、情報処理装置の処理の一例を示すフローチャートである。 図8は、要素の入れ替え処理の一例を説明する図である。 図9は、要素の入れ替え処理の一例を説明する図である。
 以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
(本実施形態の処理の概要)
 図1は、本実施形態の処理の一例の概要を説明する図である。本実施形態の処理の主体は、図5で後述する情報処理装置500であるとする。
 本実施形態では、予め、複数のユーザそれぞれについての商品の購買履歴のデータの集合である購買履歴データ100が用意されているとする。購買履歴データ100は、例えば、何時、誰が、何を、どれだけ購買したかを示すデータの集合である。以下では、購買履歴データ100のように、分析に用いられる蓄積されたデータの集合を、元データとする。購買履歴データ100のような元データは、第1のデータ集合の一例である。購買履歴データ100は、図3、4で後述する予測評価値の決定等の分析に用いることができるデータであり、特定の分析に対して有用性を有するデータである。しかし、購買履歴データ100には、ユーザの情報が含まれるため、個人の識別ができる情報である個人情報や、個人に関する情報が含まれる場合がある。そのため、購買履歴データ100をそのまま保持していると、個人情報等の漏洩の可能性があるという問題がある。また、購買履歴データ100を非特許文献1に記載のk-匿名化の技術で匿名化すると購買履歴データ100の有用性が顕著に低下してしまう場合がある。
 そこで、本実施形態では、情報処理装置500は、購買履歴データ100を、購買履歴データ100を有用性の低下を防ぎつつ、購買履歴データ100内のデータを個人の特定を困難にするように加工する処理を行う。
 情報処理装置500は、まず、購買履歴データ100内のデータを集計し、商品とユーザとの組み合わせに対応する商品の購買数を示す行列状の情報であるitem-User行列101を生成する。図2は、item-User行列101の生成処理の一例を説明する図である。図2の例では、購買履歴データ100内のデータには、何時、誰が、何を、どれだけ購買したかを示すデータが45000個保存されている。
 情報処理装置500は、この45000個のデータを集計し、誰が、どの商品(アイテム)を合計でいくつ購買したかを特定する。図2の例では、ユーザは500人存在して、ユーザにより購買され得る商品は、3000種類存在する。そのため、図2の例では、情報処理装置500は、item-User行列101として、3000×500の行列を生成する。即ち、item-User行列101の各行が、商品それぞれに対応し、item-User行列101の各列が、ユーザそれぞれに対応することとなる。item-User行列101のi行j列目の要素の値は、j列目に対応するユーザが、i行目に対応する商品を購買した購買数を示す。
 そして、情報処理装置500は、item-User行列101を、特異値分解する。情報処理装置500は、item-User行列101に対する特異値分解により得られた特異値を成分とする行列を、その行列の要素のうち、絶対値の小さなものから選択された一部の要素の値を減ずるように、修正する。そして、情報処理装置500は、修正した行列を用いて、item-User行列101を近似する。より具体的には、情報処理装置500は、item-User行列101に対する特異値分解により得られた特異値を成分とする行列を、その行列の要素のうち、絶対値の小さなものから選択された一部の要素の値を0に減ずるように修正し、特異値分解で得られた各行列の掛け合わせの式を、各要素がその行列の特異値となる行列の代わりに、修正されたその行列を用いて計算することで、item-User行列101を低ランク近似する。情報処理装置500は、このようにitem-User行列101を低ランク近似することで、item-User行列101に近似する近似item-User行列102を生成する。以下では、item-User行列101、近似item-User行列102のように複数の項目の組み合わせに対応する予め定められた項目の値を示す情報を、対応情報とする。item-User行列101は、第1の対応情報の一例である。近似item-User行列102は、第2の対応情報の一例である。
 近似item-User行列102は、item-User行列101の低ランク近似であり、item-User行列101の特徴的な成分を有し、微細な成分を除外した行列であるとみなせる。
 例えば、あるユーザがある時刻にある商品を少量(例えば1個、2個等)購買した場合、そのユーザによるその商品の購買履歴の情報は、購買された商品の数量が少量なので、分析への影響は、軽微であるとみなせる場合がある。また、あるユーザがある商品をある時刻に少量(例えば1個、2個等)購買した場合、その時刻に少量のその商品を購買したという情報から、誰の購買履歴なのかを第3者に類推されてしまう可能性がある。例えば、その時刻に少量のその商品を購買した人物を知っている第3者は、その購買履歴がその人物の情報であると類推する場合があり、特定のユーザの情報が漏れてしまう場合がある。このように有用性にはあまり寄与しないデータであっても、個人の特定に利用されてしまう場合がある。
 そこで、情報処理装置500は、近似item-User行列102を生成することで、item-User行列101から、特徴的な成分を残し、微細な成分を除外することとした。
 情報処理装置500は、生成した近似item-User行列102に基づいて、例えば、item-User行列101を生成する際の処理と逆の処理を行うことで、匿名化された購買履歴データ100である匿名化購買履歴データ103を生成する。匿名化購買履歴データ103は、匿名化された元データである匿名化データの一例である。
 以上が、本実施形態の情報処理装置500の処理の概要である。
 本実施形態の情報処理装置500の処理は、例えば、以下のような処理と見なせる。即ち、購買履歴データ100を特定の分析に用いられる形式であるitem-User行列101に変換して、変換したitem-User行列101を、特徴的な成分を残し、微細な成分を除外することで近似item-User行列102を生成し、生成した近似item-User行列102から、購買履歴データ100に近似するデータを生成することで、匿名化された購買履歴データ100である匿名化購買履歴データ103を生成する処理である。
 (購買履歴データ100の分析の一例)
 図3、図4を用いて、購買履歴データ100を用いた分析処理の一例として、あるユーザがある商品を購入したり、評価したりしたある商品を購入したりした際に、そのユーザが他の商品について、どの程度の評価をするかを予測する処理を説明する。より具体的には、予測の結果として、予測された評価の度合いを示す指標である予測評価値を求める処理について説明する。
 図3は、商品同士の類似度を示すitem間類似度行列104を生成する処理の一例を説明する図である。情報処理装置500は、例えば、item-user行列101に基づいて、商品間の類似度を示すitem間類似度行列104を生成する。item-user行列101の各行は、対応する商品を各ユーザがどれだけ購買したかを示す要素で構成された行となる。ここで、item-user行列101のi行の各要素を並べたベクトルを、Viとする。Viは、i行目に対応する商品を各ユーザがどれだけ購買したかを示すベクトルとみなすことができる。ここで、i行目に対応する商品と、j行目に対応する商品と、の類似度を以下の式1で表されるWijとして定義する。
 Wij=Vi・Vj/(|Vi||Vj|)   (式1)
 情報処理装置500は、例えば、式1を用いて、全てのi、jの組について、Wijを求める。そして、情報処理装置500は、Wijが表す行列を、item間類似度行列104として決定する。
 図4は、予測評価値の決定処理の一例を説明する図である。
 図4の例では、あるユーザについての各商品の評価値を含むベクトルであるitem評価ベクトル401が用意されているとする。情報処理装置500は、例えば、そのユーザが評価済みの商品について、item間類似度行列104に、item評価ベクトル401を掛け、得られたベクトルの第i要素を、類似度行列のi行目の行絶対値和で割ることで、そのユーザがある商品を購買した際の予測評価値を含むベクトルである予測評価ベクトル402を生成する。予測評価ベクトル402の各行には、その行に対応する商品についてのそのユーザの評価値の予測値が格納されることとなる。j行目に対応する商品についてのユーザuの評価値をruj、ユーザuが評価済みのアイテムの集合をYu、y行目に対応する商品についてのユーザuの評価値の予測値をr’uyとすると、r’uyは以下の式2で表されることになる。
Figure JPOXMLDOC01-appb-M000001
 情報処理装置500は、例えば、予測評価ベクトル402の各行のうち、予め定められた閾値以上の行を特定し、特定した行に対応する商品を、そのユーザがより評価するであろう商品として特定する。そして、情報処理装置500は、例えば、特定した商品をそのユーザに対するお勧めの商品として、そのユーザに提示することとしてもよい。
 例えば、以上のような処理で、購買履歴データ100が分析に用いられることとなる。
(情報処理装置500のハードウェア構成)
 図5は、情報処理装置500のハードウェア構成の一例を示す図である。情報処理装置500は、例えば、パーソナルコンピュータ(PC)、サーバ装置、タブレット装置等である。
 情報処理装置500は、CPU501、主記憶装置502、補助記憶装置503、入力I/F504、出力I/F505、ネットワークI/F506を含む。各要素は、システムバス507を介して、相互に通信可能に接続されている。
 CPU501は、情報処理装置500を制御する中央演算装置である。主記憶装置502は、CPU501のワークエリアやデータの一時的な記憶領域として機能するRandom Access Memory(RAM)等の記憶装置である。主記憶装置502は、記憶媒体の一例である。補助記憶装置503は、各種プログラム、各種設定情報、購買履歴データ100等の元データ、元データから生成される各種情報等を記憶する記憶装置である。補助記憶装置503は、例えば、Read Only Memory(ROM)、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)等である。補助記憶装置503は、記憶媒体の一例である。
 入力I/F504は、マウス、キーボード、タッチパネル等の入力装置との接続に用いられるインターフェースである。CPU501は、入力I/F504を介して、入力装置からの情報の入力を受付ける。出力I/F505は、モニタ、タッチパネルの表示部、スピーカ等の出力装置との接続に用いられるインターフェースである。CPU501は、出力I/F505を介して、出力装置へ情報を出力する。ネットワークI/F506は、ネットワークを介した外部の装置との間での通信に用いられるインターフェースである。CPU501は、ネットワークI/F506を介して、外部の装置都の間で通信を行う。
 CPU501が、補助記憶装置503等に記憶されたプログラムにしたがって処理を実行することで、図6で後述する情報処理装置500の機能、図7で後述するフローチャートの処理等が実現される。
(情報処理装置500の機能構成)
 図6は、情報処理装置500の機能構成の一例を示す図である。情報処理装置500は、データ取得部601、データ生成部602、判定部603、更新部604、出力部605を含む。
 データ取得部601は、補助記憶装置503から元データを取得し、取得した元データに基づいて、複数の項目の組み合わせに対応する特定の項目の値を示す複数次元の配列状の情報である対応情報を取得する。
 データ生成部602は、データ取得部601により取得された対応情報を、複数の複数次元の配列状の情報の掛け合わせとして分解する。そして、データ生成部602は、分解により得られた情報のうち、他の情報それぞれと掛け合わされる情報について、含まれる要素のうちの一部の要素の値を減ずるように修正する。以下では、対応情報の分解により得られた情報のうち、他の情報それぞれと掛け合わされる情報を、配列情報とする。また、以下では、含まれる要素のうちの一部の要素の値を減ずるように修正された配列情報は、修正配列情報とする。そして、データ生成部602は、修正した修正配列情報に基づいて、対応情報を近似することで、対応情報を生成しなおす。以下では、修正配列情報に基づいて、生成された対応情報を、近似対応情報とする。またデータ生成部602は、生成した近似対応情報に基づいて、匿名化された元データである匿名化データを生成する。生成された匿名化データは、第2のデータ集合の一例である。
 判定部603は、データ生成部602により生成された匿名化データを、最終的な結果として採用するか否かを判定する。
 更新部604は、判定部603によりデータ生成部602により生成された匿名化データを採用しないと判定された場合、データ生成部602による近似対応情報の生成に用いられるパラメータの値を更新する。更新部604によるパラメータの更新後に、データ生成部602は、改めて、更新されたパラメータに基づいて、近似対応情報、及び匿名化データを生成する。
 出力部605は、データ生成部602により生成された匿名化データを出力する。
(情報処理装置500の処理)
 図7は、情報処理装置500の処理の一例を示すフローチャートである。
 S701において、データ取得部601は、例えば、補助記憶装置503から、元データを取得する。図7の例では、データ取得部601は、補助記憶装置503から、元データとして、購買履歴データ100を取得することとする。
 S702において、データ取得部601は、S701で取得した元データに基づいて、予め指定された複数の項目の組み合わせに対応する予め定められた項目の値を示す対応情報を生成する。本実施形態では、この複数の項目として、予め、ユーザの項目と商品の項目とが指定されているとする。また、この複数の項目の組み合わせに対応する項目として、商品の購買数が指定されているとする。図7の例では、データ取得部601は、元データ内のデータを集計することで、各ユーザが各商品をどれだけ購買したかを特定し、2次元の配列状の対応情報として、Item-User行列101を生成する。
 S703において、データ生成部602は、S702で取得された2次元の配列状の対応情報を特異値分解することで、対応情報の特異値を取得する。ここで、対応情報を、Aとおくと、Aを特異値分解することで、A=UΣVが得られる。即ち、Aが3つの行列の掛け合わせで表されることとなる。行列Σは、対角成分を対応情報の特異値とする行列である。データ生成部602は、例えば、行列Σの対角成分の各要素の値を取得することで、対応情報の特異値を取得する。行列Σは、特異値分解により得られた他の行列U、Vとそれぞれ掛け合わされるため、配列情報の一例となる。行列Uは、行列Vとは掛け合わされず、行列Vは、行列Uとは掛け合わされない。そのため、行列U、Vは、配列情報ではない。
 データ生成部602は、取得した特異値のうち値の小さなものから一部を選択する。データ生成部602は、例えば、取得した特異値のうち、予め定められた閾値以下の特異値を全て選択する。また、データ生成部602は、取得した特異値のうち、値の小さなものから順に予め定められた個数だけ特異値を選択してもよい。また、データ生成部602は、選択した特異値の合計の全ての特異値の合計に対する割合が、予め定められた閾値以下となるように、値の小さなものから順に特異値を選択してもよい。
 そして、データ生成部602は、行列Σについて、対角成分のうち、選択した特異値に対応する要素を0にするように修正する。修正後の行列をΣ’とする。Σ’は、修正配列情報の一例である。データ生成部602は、例えば、行列Σ’と、行列Uと、行列Vと、に基づいて、UΣ’Vを求めることで、対応情報を低ランク近似し、近似対応情報を生成する。即ち、本実施形態では、データ生成部602は、対応情報であるItem-User行列101を低ランク近似することで、近似対応情報である近似Item-User行列102を生成する。
 また、データ生成部602は、生成した近似対応情報の各要素について、小数点以下について、四捨五入、切捨て、切上げ等の端数処理を行うことで、各要素の値を調整することとしてもよい。データの端数部分は、細かい値であり、データの分析等の処理の際に計算処理の負担が増大する原因となる。データ生成部602は、生成した近似対応情報の各要素について端数処理を行うことで、計算処理の負担の原因を低減できる。
 また、近似対応情報に示されるあるユーザがある商品を購買した個数が、小数点以下の端数がある値である場合、この近似対応情報に基づいて匿名化データが生成されると、匿名化データには、そのユーザがその商品を小数点以下の端数がある値の個数(例えば、0.5個)だけ購入したというデータが含まれることとなり得る。商品を購買した個数は、整数であるため、このような匿名化データは、不自然なデータとなってしまう。データ生成部602は、近似対応情報の各要素について端数処理を行うことで、匿名化データが不自然なデータとなる可能性を低減できる。
 また、データ生成部602は、生成した近似対応情報における配列の要素ベクトル同士を入れ替えることとしてもよい。例えば、データ生成部602は、生成した近似対応情報におけるj1列目の各要素と、j2列目の各要素と、j3列目の各要素と、(j1≠j2、j1≠j3、j2≠j3、)を入れ替えることとしてもよい。例えば、データ生成部602は、近似対応情報におけるj1列目の各要素を、元のj3列目の各要素として、j2列目の各要素を、元のj1列目の各要素として、j3列目の各要素を、元のj2列目の各要素としてもよい。
 また、データ生成部602は、生成した近似対応情報における各列に対応するユーザ同士を入れ替えることとしてもよい。例えば、近似対応情報において、j1列目がユーザAに対応し、j2列目がユーザBに対応し、j3列目がユーザCに対応するとする。この場合、データ生成部602は、例えば、近似対応情報におけるj1列目を、ユーザCに対応する列として修正し、j2列目をユーザAに対応する列として修正し、j3列目をユーザBに対応する列として修正してもよい。
 これにより、データ生成部602は、近似対応情報に含まれるデータがどのようなデータかを特定しにくいように加工することができ、結果的に、S704で生成する匿名化データを更に匿名化することができるようになる。
 S704において、データ生成部602は、S703で生成した近似対応情報に基づいて、匿名化された元データである匿名化データを生成する。本実施形態では、データ生成部602は、匿名化購買履歴データ103を生成するとする。
 本実施形態では、何時、誰が、何を、どれだけ購買したかを示すデータの集合である元データ内のデータを集計することで、誰が何をどれだけ購買したかを示す対応情報が生成された。そして、対応情報が低ランク近似されることで、誰が何をどれだけ購買したかを示す情報である近似対応情報が得られた。
 データ生成部602が匿名化データを生成する処理の一例について説明する。データ生成部602は、元データを加工することで、匿名化データを生成することとする。データ生成部602は、まず、近似対応情報の各要素のうち、対応情報と同一の要素と、異なる要素と、を特定する。
 データ生成部602は、対応情報と同一と特定した要素に対応するユーザと、商品と、を特定する。データ生成部602は、元データのうち、特定したユーザと、商品と、に対応する情報については、加工を加えないことを決定する。
 データ生成部602は、対応情報と同一でないと特定した要素に対応するユーザと、商品と、を特定する。データ生成部602は、元データのうち、特定したユーザと、商品と、に対応するデータについては、加工する対象のデータとして決定する。データ生成部602は、加工する対象として決定したあるユーザとある商品とに対応するデータそれぞれについて、対応する商品の購買数の項目の値を、合計が、近似対応情報におけるそのユーザとその商品とに対応する要素の値となるように、調整する。
 例えば、元データに含まれるユーザAと商品αとに対応するデータが、「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータ(1)と、「1月20日に、ユーザAが、商品αを、b個購買した」ことを示すデータ(2)と、「1月30日に、ユーザAが、商品αを、c個購買した」ことを示すデータ(3)であるとする。この場合、対応情報におけるユーザAと商品αとに対応する要素の値は、a+b+cとなる。また、近似対応情報におけるユーザAと商品αとに対応する要素の値がa+b+c-1となったとする。この場合、データ生成部602は、データ(1)~(3)それぞれについて、商品を購買した数の部分を合計がa+b+c-1となるように調整する。データ生成部602は、例えば、データ(1)~(3)の何れかについて、購買した数を、1だけ減ずるようにデータを加工する。例えば、データ(1)を加工する場合、データ生成部602は、データ(1)を、「1月10日に、ユーザAが、商品αを、a-1個購買した」ことを示すデータに加工する。
 データ生成部602は、加工対象として決定したデータそれぞれについて、購買した数の項目の値を調整することで、匿名化データを生成する。
 また、対応情報におけるあるユーザとある商品とに対応する要素の値が1以上であり、近似対応情報におけるそのユーザとその商品とに対応する要素の値が0である場合がある。即ち、そのユーザがその商品を購入した情報が、有用性にあまり寄与しないとして削除されてしまった場合である。このような場合、データ生成部602は、例えば、匿名化データを生成する際に、元データにおけるその商品とそのユーザとに対応するデータを削除する。
 また、データ生成部602は、例えば、そのユーザがその商品を購買したという情報を残すために、元データにおけるそのユーザとその商品とに対応するデータを、「ある時点で、そのユーザがその商品を0個購買した」ことを示すデータに修正することとしてもよい。
 また、近似対応情報に対して、要素の入れ替えが行われている場合、データ生成部602は、更に、以下で説明するような処理を行うこととしてもよい。
 近似対応情報に対して、ユーザAとユーザBとユーザCとに対応するそれぞれの列(それぞれ、j1列、j2列、j3列とする)を入れ替える処理が行われたとする。データ生成部602は、近似対応情報におけるj1列目の各要素を、元のj3列目の各要素として、j2列目の各要素を、元のj1列目の各要素として、j3列目の各要素を、元のj2列目の各要素としたとする。
 元データに含まれるユーザAに対応するデータが、「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータと、「1月20日に、ユーザAが、商品βを、b個購買した」ことを示すデータであるとする。また、元データに含まれるユーザBに対応するデータが、「2月10日に、ユーザBが、商品βを、c個購買した」ことを示すデータと、「2月20日に、ユーザBが、商品γを、d個購買した」ことを示すデータであるとする。また、元データに含まれるユーザCに対応するデータが、「3月10日に、ユーザCが、商品αを、e個購買した」ことを示すデータと、「3月20日に、ユーザCが、商品γを、f個購買した」ことを示すデータであるとする。
 この場合、対応情報において、ユーザAと商品αとに対応する購買数は、aとなる。また、ユーザAと商品βとに対応する購買数は、bとなる。また、ユーザBと商品βとに対応する購買数は、cとなる。また、ユーザBと商品γとに対応する購買数は、dとなる。また、ユーザCと商品αとに対応する購買数は、eとなる。また、ユーザCと商品γとに対応する購買数は、fとなる。
 要素の入れ替えが行われる前の近似対応情報において、これらの値が、以下のようになるとする。ユーザAと商品αとに対応する購買数は、a-1となる。また、ユーザAと商品βとに対応する購買数は、bとなる。また、ユーザBと商品βとに対応する購買数は、c-1となる。また、ユーザBと商品γとに対応する購買数は、dとなる。また、ユーザCと商品αとに対応する購買数は、e-1となる。また、ユーザCと商品γとに対応する購買数は、fとなる。
 そして、要素の入れ替えが行われた後の近似対応情報において、ユーザAと商品αとに対応する購買数は、e-1となる。また、ユーザAと商品βとに対応する購買数は、0となる。また、また、ユーザAと商品γとに対応する購買数は、fとなる。また、ユーザBと商品αとに対応する購買数は、a―1となる。また、ユーザBと商品βとに対応する購買数は、bとなる。また、ユーザBと商品γとに対応する購買数は、0となる。また、ユーザCと商品αとに対応する購買数は、0となる。また、ユーザCと商品βとに対応する購買数は、c-1となる。また、ユーザCと商品γとに対応する購買数は、dとなる。
 この場合、データ生成部602は、例えば、近似対応情報のj1列目の各要素を参照することで、ユーザAが商品αをe-1個、商品γをf個購買したこととなっていることを把握する。そして、データ生成部602は、元データにおけるユーザAに対応するデータを把握した内容に合わせるように調整する。
 近似対応情報においてユーザAに対応する列は、元々ユーザCに対応する列となっている。これは、元データに含まれる各データにおいて、ユーザの入れ替えが生じたことと解釈できる。そこで、データ生成部602は、元データに含まれるユーザCに対応するデータである「3月10日に、ユーザCが、商品αを、e個購買した」ことを示すデータと、「3月20日に、ユーザCが、商品γを、f個購買した」ことを示すデータと、におけるユーザCをユーザAに入れ替えるように修正する。これにより、「3月10日に、ユーザAが、商品αを、e個購買した」ことを示すデータと、「3月20日に、ユーザAが、商品γを、f個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザAが商品αをe-1個、商品γをf個購買したことが示されているので、データ生成部602は、生成した「3月10日に、ユーザAが、商品αを、e個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「3月10日に、ユーザAが、商品αを、e-1個購買した」ことを示すデータを生成する。
 また、データ生成部602は、元データに含まれる各ユーザに対応するデータにおけるユーザを修正せずに、各ユーザに対応するデータにおける購買した数を修正することとしてもよい。データ生成部602は、例えば、「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータについて、購買した数を修正し、「1月10日に、ユーザAが、商品αを、e-1個購買した」ことを示すデータに変更し、「1月20日に、ユーザAが、商品βを、b個購買した」ことを示すデータについて、購買した商品と、購買した数と、を修正し、「1月20日に、ユーザAが、商品γを、f個購買した」ことを示すデータに変更することとしてもよい。
 データ生成部602は、例えば、近似対応情報のj2列目の各要素を参照することで、ユーザBが商品αをa-1個、商品βをb個購買したこととなっていることを把握する。そして、データ生成部602は、元データにおけるユーザBに対応するデータを把握した内容に合わせるように調整する。
 近似対応情報においてユーザBに対応する列は、元々ユーザAに対応する列となっている。そこで、データ生成部602は、元データに含まれるユーザAに対応するデータである「1月10日に、ユーザAが、商品αを、a個購買した」ことを示すデータと、「1月20日に、ユーザAが、商品βを、b個購買した」ことを示すデータと、におけるユーザAを、ユーザBに入れ替えるように修正する。これにより、「1月10日に、ユーザBが、商品αを、a個購買した」ことを示すデータと、「1月20日に、ユーザBが、商品βを、b個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザBが商品αをa-1個、商品βをb個購買したことが示されているので、データ生成部602は、生成した「1月10日に、ユーザBが、商品αを、a個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「1月10日に、ユーザBが、商品αを、a-1個購買した」ことを示すデータを生成する。
 また、データ生成部602は、元データに含まれるユーザBに対応するデータである「2月10日に、ユーザBが、商品βを、c個購買した」ことを示すデータについて、購買した数を修正し、「2月10日に、ユーザBが、商品βを、b個購買した」ことを示すデータに変更し、「2月20日に、ユーザBが、商品γを、d個購買した」ことを示すデータについて、購買した商品と、購買した数と、を修正し、「2月20日に、ユーザBが、商品αを、a-1個購買した」ことを示すデータに変更することとしてもよい。
 データ生成部602は、例えば、近似対応情報のj3列目の各要素を参照することで、ユーザCが商品βをc-1個、商品γをd個購買したこととなっていることを把握する。そして、データ生成部602は、元データにおけるユーザCに対応するデータを把握した内容に合わせるように調整する。
 近似対応情報においてユーザCに対応する列は、元々ユーザBに対応する列となっている。そこで、データ生成部602は、元データに含まれるユーザBに対応するデータである「2月10日に、ユーザBが、商品βを、c個購買した」ことを示すデータと、「2月20日に、ユーザBが、商品γを、d個購買した」ことを示すデータと、におけるユーザBを、ユーザCに入れ替えるように修正する。これにより、「2月10日に、ユーザCが、商品βを、c個購買した」ことを示すデータと、「2月20日に、ユーザCが、商品γを、d個購買した」ことを示すデータと、が生成される。近似対応情報には、ユーザCが商品βをc-1個、商品γをd個購買したことが示されているので、データ生成部602は、生成した「2月10日に、ユーザCが、商品βを、c個購買した」ことを示すデータにおける購買数を近似対応情報に併せるように修正して、「2月10日に、ユーザCが、商品βを、c-1個購買した」ことを示すデータを生成する。
 また、データ生成部602は、元データに含まれるユーザCに対応するデータである「3月20日に、ユーザCが、商品γを、f個購買した」ことを示すデータについて、購買した数を修正し、「3月20日に、ユーザCが、商品γを、d個購買した」ことを示すデータに変更し、「3月10日に、ユーザCが、商品αを、e個購買した」ことを示すデータについて、購買した商品を修正し、「3月10日に、ユーザCが、商品βを、c-1個購買した」ことを示すデータに変更することとしてもよい。
 以上のようにして、データ生成部602は、要素の入れ替えが行われた近似対応情報から、匿名化データを生成する。
 このように、情報処理装置500は、要素が入れ替えられた近似対応情報に基づいて、匿名化データを生成することで、各データが、誰に関するデータであるかをより把握しにくくすることができ、セキュリティをより向上できる。また、図3、4で説明したような分析を行う際には、各商品を購買したユーザが誰であるかは、影響がない。そのため、情報処理装置500は、このような要素の入れ替えを行っても、特定の分析に対するデータの有用性を維持できる。
 S705において、判定部603は、S704で生成された匿名化データを、最終的な結果として採用するか否かを判定する。判定部603は、例えば、データ集合についての匿名化の度合い、有用性の度合いを評価する評価アプリケーションにS704で生成された匿名化データを入力し、得られた評価結果に基づいて、最終的な結果として採用するか否かを判定する。判定部603は、S704で生成された匿名化データを、最終的な結果として採用すると判定した場合、S706の処理に進み、最終的な結果として採用しないと判定した場合、S707の処理に進む。
 また、判定部603は、出力I/F505に接続されたモニタに匿名化データを表示し、表示された匿名化データを確認したユーザによる入力I/F504に接続された入力装置を介した指示に基づいて、S704で生成された匿名化データを、最終的な結果として採用するか否かを判定することとしてもよい。
 S706において、出力部605は、例えば、S704で生成された匿名化データを、予め定められた記憶先(例えば、補助記憶装置503等)に記憶することで出力する。また、出力部605は、S704で生成された匿名化データを、外部の装置等の予め定められた送信先に送信することで出力することとしてもよい。また、出力部605は、S704で生成された匿名化データを、出力I/F505に接続されたモニタ等に表示することで出力することとしてもよい。
 S707において、更新部604は、匿名化データの生成に関するパラメータ(例えば、配列情報の要素のうち選択される要素の数、配列情報の要素から要素を選択する際に用いられる閾値等)を更新する。更新部604は、例えば、ユーザにより入力I/F504に接続された入力装置を介して指定された値に、このパラメータを更新する。その後、情報処理装置500は、更新されたパラメータを用いて、再度、匿名化データを生成することとなる。
(効果)
 以上、本実施形態の処理により、情報処理装置500は、元データから匿名化データを生成した。
 生成された匿名化データは、元データから加工され、内部の各データが誰に関するデータであるかを特定することが困難なデータとなっており、セキュリティが向上している。また、匿名化データを、集計することで、近似対応情報を復元することが可能となっている。近似対応情報は、元データに関する特定の分析に有用な対応情報について、主要な成分を残したまま近似した情報となっており、この特定の分析にも有用である。即ち、匿名化データから、特定の分析に有用な情報が生成できることとなる。したがって、匿名化データは、元データに比べて、有用性の低下が抑えられていることとなる。
 このように、情報処理装置500は、元データの有用性の低下を抑えつつ、元データのセキュリティを向上させることができる。
 また、情報処理装置500は、近似対応情報を生成する処理まで行うこととして、近似対応情報から匿名化データを生成する処理については、他の装置が実行することとしてもよい。また、近似対応情報から匿名化データをどのようにするかを人が決定して、人が、情報処理装置500等に決定した匿名化データの情報を入力することとしてもよい。
 その場合、情報処理装置500は、近似対応情報を生成することで、元データの有用性の低下を抑えつつ、元データのセキュリティを向上させることを支援することができる。
(変形例)
 本実施形態では、情報処理装置500は、配列情報について、一部の要素の値を0にするように修正して、修正配列情報を取得することとした。しかし、情報処理装置500は、配列情報について、一部の要素の値を、現在の値よりも小さくするような、他の修正を行うことで、修正配列情報を取得することとしてもよい。例えば、情報処理装置500は、配列情報について、一部の要素の値を、現在の値の予め定められた割合(例えば、10分の1、100分の1等)で縮小させるように修正することで、修正配列情報を取得することとしてもよい。
 また、本実施形態では、情報処理装置500は、配列情報について、配列情報の要素のうち、小さなものから選択された一部の要素の値を減ずるように修正した。これは、情報処理装置500が、配列情報について、配列情報の要素のうち、大きなものから選択された一部の要素以外の要素の値を減ずるように修正することと同義である。
 また、本実施形態では、データ取得部601は、S702で、元データに基づいて、指定された2つの項目の組み合わせに対応する予め定められた項目の値を示す2次元配列状の対応情報を生成することとした。しかし、データ取得部601は、指定された3つ以上の項目の組み合わせに対応する予め定められた項目の値を示す3次元以上の配列状の対応情報を生成することとしてもよい。
 例えば、データ取得部601は、指定された3つの項目であるユーザの項目と商品の項目と購買月の項目との組み合わせに対応する商品の購買数の項目の値を示す3次元の配列状の対応情報を生成することとしてもよい。その場合、対応情報の各要素は、その要素に対応するユーザにより、その要素に対応する月に、購入されたその要素に対応する商品の数を示すこととなる。
 ここで、データ取得部601により3次元以上の配列状の対応情報が生成された場合に、データ生成部602が近似対応情報を生成する処理について説明する。
 対応情報が3次元以上の配列状である場合、対応情報は、3階以上のテンソルとして表すことができる。データ生成部602は、例えば、対応情報に対して、Tucker分解等のテンソル分解を施すことで、対応情報を、複数の複数次元の配列状の情報の掛け合わせとして表すことができる。そして、データ生成部602は、これらの複数次元の配列状の情報のうち、他の情報それぞれと掛け合わされる情報(配列情報)であるコアテンソルの各要素のうち値の小さなものから一部を選択する。データ生成部602は、例えば、取得した各要素のうち、予め定められた閾値以下の要素を全て選択する。また、データ生成部602は、取得した各要素のうち、値の小さなものから順に予め定められた個数だけ要素を選択してもよい。また、データ生成部602は、選択した要素の値の合計の全ての要素の値の合計に対する割合が、予め定められた閾値以下となるように、値の小さなものから順に要素を選択してもよい。
 そして、データ生成部602は、コアテンソルについて、各要素のうち、選択した要素の値を減ずる(例えば、0にする、10分の1にする、100分の1にする等)ように修正する。データ生成部602は、例えば、修正したコアテンソルと、対応情報に対するテンソル分解で得られたコアテンソル以外の複数次元の配列状の情報と、を掛け合わせることで、対応情報を近似し、近似対応情報を生成することとなる。
 また、本実施形態では、情報処理装置500は、近似対応情報について、要素の入れ替えを行ってもよいこととした。図7の例では、近似対応情報における要素が入れ替えられる各ユーザが行った購買の回数は、共に2回であるとした。しかし、ユーザ毎に行った購買の数が異なる場合がある。ユーザが購買を行った回数を保存しておきたいと要望されることがある。このような場合、図8、9を用いて説明する以下のような問題が生じることがある。
 図8は、近似対応情報に含まれるデータ等の一例を示す図である。図8の例では、近似対応情報におけるユーザiと商品J3に対応する要素は、20となっており、「ユーザiが商品J3を20個購買したこと」を示す。また、元データには、「ユーザjが5月25日に商品T-800を50個購買したこと」を示すデータ、「ユーザjが10月30日に商品T-1000を150個購買したこと」を示すデータが含まれるとする。このように、ユーザiが購買した商品の種類の数の方が、ユーザjの行った購買の回数よりも少ない。
 近似対応情報におけるユーザiに対応する要素が、ユーザjに対応する要素に入れ替えられる場合、データ生成部602は、ユーザjが商品J3を20個購買したことを示すように、「ユーザjが5月25日に商品T-800を50個購買したこと」を示すデータ、「ユーザjが10月30日に商品T-1000を150個購買したこと」を示すデータを修正する。例えば、データ生成部602は、これらのデータを、「ユーザjが5月25日に商品J3を5個購買したこと」を示すデータ、「ユーザjが10月30日に商品J3を15個購買したこと」を示すデータに修正する。このように、ユーザiの購買した商品の種類の数が、ユーザjの行った購買の回数よりも少ない場合、データ生成部602は、ユーザjが2回購買を行ったことと矛盾がないように、ユーザiに対応するデータを、ユーザjに対応するデータとして入れ替えることができる。
 図9は、近似対応情報に含まれるデータ等の一例を示す図である。図9の例では、近似対応情報におけるユーザiと商品J1に対応する要素は、1となっており、ユーザiと商品J2に対応する要素は、5となっており、ユーザiと商品J3に対応する要素は、25となっており、「ユーザiが商品J1を1個、商品J2を5個、商品J3を25個購買したこと」を示す。
 また、元データには、「ユーザjが5月25日に商品T-800を50個購買したこと」を示すデータ、「ユーザjが10月30日に商品T-1000を150個購買したこと」を示すデータが含まれる。図9の例では、ユーザiが購買した商品の種類の数の方が、ユーザjの行った購買の回数よりも多い。
 ここで、近似対応情報におけるユーザiに対応する要素が、ユーザjに対応する要素に入れ替えられる場合、データ生成部602は、ユーザjが2回購買を行ったことと矛盾のないようには、データを入れ替えることができないという問題が生じる。ユーザiが購買した商品の種類が3種類であるため、2回の購買のデータに変換できないためである。なお、本実施形態では、商品単位で購買履歴が生成されることとしており、1つの購買履歴に複数商品の購買データが含まれることはないこととする。
 そのため、ユーザ間でデータの入れ替えを行う場合、入れ替えの組み合わせが多い程、よりデータを匿名化できる。そのため、各ユーザが購買した商品の種類の数を少なくして、入れ替え可能な組み合わせを、増大させたいという要望がある。
 そこで、情報処理装置500は、以下のようにしてもよい。情報処理装置500は、S703で対応情報を分解して、得られたパラメータ(例えば、特異値)のうちの一部のパラメータを用いて、対応情報を近似することとした。そして、情報処理装置500は、近似対応情報の各要素の値について、小数点以下を切り捨てる端数処理を行うことで、近似対応情報において値が0となる要素を増やすことができる。これにより、情報処理装置500は、近似対応情報い示される各ユーザが購買した商品の種類を低減させることができる。また、情報処理装置500は、近似対応情報の各要素の値について、予め定められた閾値以下の値の要素の値を、0に変更することとしてもよい。
 また、本実施形態では、情報処理装置500は、元データとして、何時、誰が、何を、どれだけ購買したかを示すデータの集合である購買履歴データ100を元データとして用いることとした。本実施形態での元データは、ユーザに対応する購買した商品に関する情報とみなすことができる。即ち、ユーザと商品との間には、has-a関係が存在する。情報処理装置500は、元データが本実施形態で説明したデータと異なるデータであっても、元データがhas-a関係を有する複数データに関するデータである場合、元データに基づいて、対応情報を生成できる。元データがA has Bの関係を有するAとBとのデータを含む場合、情報処理装置500は、例えば、Aに含まれるBの個数、割合、頻度等を集計・解析等して、対応情報を生成できる。
 例えば、情報処理装置500は、タスク管理システムにおけるチケットデータ、テキストのアップロードアプリにアップロードされたテキスト等のテキストデータの集合等の他のデータの集合を元データとして用いることとしてもよい。この場合、元データは、テキストデータに対応する出現する単語の情報とみなすことができ、テキストデータと単語との間には、has-a関係が存在する。その場合、情報処理装置500は、元データに基づいて、各テキストにおける指定された単語の出現頻度を示す対応情報を生成できる。その場合、例えば、対応情報における各列は、各テキストの識別情報を示し、各行は、単語を示す。対応情報の各要素は、その要素に対応するテキストにおけるその要素に対応する単語の出現頻度を示す情報となる。
 そして、情報処理装置500は、本実施形態で説明した処理と同様の処理で、対応情報から、近似対応情報を生成し、生成した近似対応情報から匿名化データを生成することとなる。
 本実施形態では、情報処理装置500は、単体の情報処理装置であるとした。しかし、情報処理装置500は、ネットワーク(LANやインターネット)を介して相互に通信可能に接続された複数の情報処理装置を含むシステムとして構成されることとしてもよい。その場合、情報処理装置500に含まれる複数の情報処理装置それぞれのCPUが、それぞれの情報処理装置の補助記憶装置に記憶されたプログラムに基づき処理を連携して実行することで、図6の機能及び図7のフローチャートの処理等が実現される。
 以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではない。
 例えば、上述した情報処理装置500の機能構成の一部又は全てをハードウェアとして情報処理装置500に実装してもよい。

Claims (17)

  1.  複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第1の対応情報として、前記第1の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得手段と、
     前記取得手段により取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第2の対応情報を生成する第1の生成手段と、
    を有する情報処理装置。
  2.  前記取得手段は、要素の一部について値を0に減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項1記載の情報処理装置。
  3.  前記取得手段は、前記配列情報の要素のうち値が小さいものから選択された一部の要素について値を減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項1又は2記載の情報処理装置。
  4.  前記取得手段は、前記配列情報の要素のうち値が予め定められた閾値以下の要素について値を減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項3記載の情報処理装置。
  5.  前記取得手段は、前記配列情報の要素のうち値が小さいものから順に予め定められた個数の要素について値を減ずるように修正された前記配列情報である前記修正配列情報を取得する請求項3記載の情報処理装置。
  6.  前記取得手段は、2次元の配列状の情報である前記第1の対応情報が、2次元の配列状の複数の情報の掛け合わせとして特異値分解されることで得られる各要素が前記第1の対応情報の特異値となる情報である前記配列情報が要素の一部について値を減ずるように修正された前記修正配列情報を取得する請求項1乃至5何れか1項記載の情報処理装置。
  7.  前記取得手段は、複数次元の配列状の情報である前記第1の対応情報が、複数次元の配列状の複数の情報の掛け合わせとしてテンソル分解されることで得られるコアテンソルである前記配列情報が要素の一部について値を減ずるように修正された情報である前記修正配列情報を取得する請求項1乃至5何れか1項記載の情報処理装置。
  8.  前記第1の生成手段により生成された前記第2の対応情報の各要素の値を調整する調整手段を更に有する請求項1乃至7何れか1項記載の情報処理装置。
  9.  前記調整手段は、前記第1の生成手段により生成された前記第2の対応情報の各要素について、端数処理を行うこととで、前記第2の対応情報の各要素の値を調整する請求項8記載の情報処理装置。
  10.  前記第1の生成手段により生成された前記第2の対応情報に含まれる複数の要素の間で入れ替え処理を行う入れ替え手段を更に有する請求項1乃至9何れか1項記載の情報処理装置。
  11.  前記取得手段は、第1のデータ集合に基づいて生成された前記第1の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記配列情報が要素の一部について値を減ずるように修正された情報である前記修正配列情報を取得する請求項1乃至10何れか1項記載の情報処理装置。
  12.  前記第1の生成手段により生成された前記第2の対応情報に基づいて、前記第1のデータ集合に近似する第2のデータ集合を生成する第2の生成手段を更に有する請求項11記載の情報処理装置。
  13.  前記第1のデータ集合は、複数のユーザそれぞれについての商品の購買履歴のデータの集合であり、
     前記第1の対応情報は、ユーザの項目と商品の項目との組み合わせに対応する商品の購買数の項目の値を示す2次元の配列状の情報である請求項11又は12記載の情報処理装置。
  14.  複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第1の対応情報として、前記第1の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得手段と、
     前記取得手段により取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第2の対応情報を生成する生成手段と、
    を有するシステム。
  15.  情報処理装置が実行する情報処理方法であって、
     複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第1の対応情報として、前記第1の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得ステップと、
     前記取得ステップで取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第2の対応情報を生成する生成ステップと、
    を含む情報処理方法。
  16.  システムが実行する情報処理方法であって、
     複数の項目の組み合わせに対応する予め定められた項目の値を示す複数次元の配列状の情報を第1の対応情報として、前記第1の対応情報が複数次元の配列状の複数の情報の掛け合わせとして分解されることで得られる前記複数の情報のうち前記複数の情報に含まれる他の情報それぞれと掛け合わされる情報を配列情報として、前記配列情報が要素の一部について値を減ずるように修正された情報である修正配列情報を取得する取得ステップと、
     前記取得ステップで取得された前記修正配列情報に基づいて、前記複数の項目の組み合わせに対応する前記予め定められた項目の値を示す複数次元の配列状の情報である第2の対応情報を生成する生成ステップと、
    を含む情報処理方法。
  17.  コンピュータを、請求項1乃至13何れか1項記載の情報処理装置の各手段として、機能させるためのプログラム。
PCT/JP2019/019103 2018-05-16 2019-05-14 情報処理装置、システム、情報処理方法及びプログラム WO2019221113A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201980031631.0A CN112106045B (zh) 2018-05-16 2019-05-14 信息处理装置、系统、信息处理方法以及计算机可读记录介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018094817A JP7158175B2 (ja) 2018-05-16 2018-05-16 情報処理装置、システム、情報処理方法及びプログラム
JP2018-094817 2018-05-16

Publications (1)

Publication Number Publication Date
WO2019221113A1 true WO2019221113A1 (ja) 2019-11-21

Family

ID=68539772

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/019103 WO2019221113A1 (ja) 2018-05-16 2019-05-14 情報処理装置、システム、情報処理方法及びプログラム

Country Status (3)

Country Link
JP (1) JP7158175B2 (ja)
CN (1) CN112106045B (ja)
WO (1) WO2019221113A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115943383A (zh) * 2020-06-25 2023-04-07 三菱电机株式会社 匿名加工装置、匿名加工方法和匿名加工程序

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7133048B2 (en) * 2004-06-30 2006-11-07 Mitsubishi Electric Research Laboratories, Inc. Variable multilinear models for facial synthesis
US8224489B2 (en) * 2008-03-03 2012-07-17 Federspiel, Corporation Method and apparatus for coordinating the control of HVAC units
US8943079B2 (en) * 2012-02-01 2015-01-27 Telefonaktiebolaget L M Ericsson (Publ) Apparatus and methods for anonymizing a data set
JP5644985B1 (ja) * 2013-05-10 2014-12-24 新日鐵住金株式会社 変形解析装置、変形解析方法及びプログラム
JP6066825B2 (ja) * 2013-05-17 2017-01-25 株式会社日立製作所 データ分析装置及び保健事業支援方法
US10318608B2 (en) 2014-08-21 2019-06-11 Massachusetts Institute Of Technology Systems and methods for low-rank matrix approximation
US10346507B2 (en) * 2016-11-01 2019-07-09 Nvidia Corporation Symmetric block sparse matrix-vector multiplication

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "Singular Value Decomposition and Low-Rank Approximation of Matrices", ASTAMUSE LAB, 14 June 2017 (2017-06-14), XP055656197, Retrieved from the Internet <URL:http://lab.astamuse.co.jp/entry/2017/06/14/114500> [retrieved on 20190614] *
HAYASHI, KOHEI: "Relational Data Analysis by Tensor Classification", ERATO DISCRETE STRUCTURE MANIPULATION SYSTEM PROJECT SEMINAR, 14 November 2012 (2012-11-14), pages 2 - 7, Retrieved from the Internet <URL:http://www-erato.ist.hokudai.ac.jp/dots/seminar/hayashi.pdf> [retrieved on 20190614] *
YOKOTA, TATSUYA: "Fundamentals of Tensor Classification and Applications to Image/Signal Processing", SLIDESHARE, vol. 1, no. 4, 13 March 2014 (2014-03-13), pages 17 - 18, Retrieved from the Internet <URL:https://www.slideshare.net/yokotatsuya/2014-3-13> [retrieved on 20190614] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115943383A (zh) * 2020-06-25 2023-04-07 三菱电机株式会社 匿名加工装置、匿名加工方法和匿名加工程序

Also Published As

Publication number Publication date
JP2019200605A (ja) 2019-11-21
CN112106045A (zh) 2020-12-18
CN112106045B (zh) 2024-05-24
JP7158175B2 (ja) 2022-10-21

Similar Documents

Publication Publication Date Title
Zhou et al. SVD-based incremental approaches for recommender systems
EP4270214A2 (en) Media unit retrieval and related processes
US10140342B2 (en) Similarity calculation system, method of calculating similarity, and program
Krivulin A multidimensional tropical optimization problem with a non-linear objective function and linear constraints
Salmi et al. An IMEX-scheme for pricing options under stochastic volatility models with jumps
CN110837603B (zh) 一种基于差分隐私保护的集成推荐方法
Pérez-Abreu et al. Infinitely divisible multivariate and matrix gamma distributions
Gonçalves Orthogonal polynomials and sharp estimates for the Schrödinger equation
Nasiri et al. Adjusting data sparsity problem using linear algebra and machine learning algorithm
CN106980900A (zh) 一种特征数据处理方法及设备
Ghaffari et al. Reduced spline method based on a proper orthogonal decomposition technique for fractional sub-diffusion equations
WO2019221113A1 (ja) 情報処理装置、システム、情報処理方法及びプログラム
Bian et al. A stochastic alternating direction method of multipliers for non-smooth and non-convex optimization
Chen et al. Regression imputation with Q-mode clustering for rounded zero replacement in high-dimensional compositional data
CN111667298B (zh) 用户个性化需求预测方法和系统
Haghighi et al. Diagonally drift-implicit Runge–Kutta methods of strong order one for stiff stochastic differential systems
Min et al. Linear statistics of matrix ensembles in classical background
Biglari Dynamic scaling on the limited memory BFGS method
Olsson et al. Equilibrium distributions and simulation methods for age structured populations
JP3788254B2 (ja) 情報フィルタリングシステムとそのフィルタリング方法、及び情報フィルタリングプログラム
Neto A simple finite cutting plane algorithm for integer programs
Pei Principal component selection using interactive evolutionary computation
TWI723626B (zh) 具隱私保護機制的預測方法、電子裝置與電腦程式產品
AU2017202115A1 (en) Reciprocal distribution calculating method and reciprocal distribution calculating system for cost accounting
Volders Stability and convergence analysis of discretizations of the Black–Scholes PDE with the linear boundary condition

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19803044

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19803044

Country of ref document: EP

Kind code of ref document: A1