JPWO2017122437A1 - 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム - Google Patents

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

Info

Publication number
JPWO2017122437A1
JPWO2017122437A1 JP2017561533A JP2017561533A JPWO2017122437A1 JP WO2017122437 A1 JPWO2017122437 A1 JP WO2017122437A1 JP 2017561533 A JP2017561533 A JP 2017561533A JP 2017561533 A JP2017561533 A JP 2017561533A JP WO2017122437 A1 JPWO2017122437 A1 JP WO2017122437A1
Authority
JP
Japan
Prior art keywords
vector
information processing
data
vectors
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017561533A
Other languages
English (en)
Inventor
洋平 川元
洋平 川元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of JPWO2017122437A1 publication Critical patent/JPWO2017122437A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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
    • 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/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution

Abstract

高速かつ効率的なベクトル間の相関性判定処理を実行する。セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、第1の情報処理装置は、第2の情報処理装置から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、第1の情報処理装置のデータ処理部は、第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。

Description

本開示は、情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。さらに詳細には、公開が制限された異なる複数のセキュアデータを相互に開示することなく、複数のセキュアデータ間の相関や類似性等、データの関連性を推定する情報処理装置、情報処理システム、および情報処理方法、並びにプログラムに関する。
近年、インターネット等のネットワークを介した商品販売が盛んに行われており、多くのユーザが、スマホやPCを利用して様々な商品を購入している。
一方、ネット販売業者は、どのようなユーザがどのような商品を購入したかの商品購入履歴データを集積している。
ネット販売業者は、この集積データに基づいて、特定ユーザに特定商品の推薦メールや広告を提供して、商品の購入促進を行うといった処理が可能となる。
ネット販売業者は、例えば商品を購入したユーザの識別情報であるユーザIDと、そのユーザが購入した商品の識別情報(商品ID)を対応付けたデータを保持することになる。さらに、ユーザの性別、年齢、居住地等のユーザプロファイルデータも取得して分析する処理が行われる場合もある。
しかし、このようなユーザの商品購入履歴データは、各ユーザの個人情報であり、公開することは好ましくない。すなわち、公開が制限されたセキュアデータであり、一般的に各ユーザの承諾なしに他者に提供することは許容されないデータである。
しかし、多くの異なるネット販売業者は、それぞれ個別に集積した異なるセキュアデータを保持しており、これらのデータを、例えばユーザIDや商品IDを連携させて、異なる企業間で活用しようとする動きも出てきている。
すなわち、各企業が個別に集積した顧客プロファイルや購買履歴などを統合して解析し、解析データをユーザターゲット広告等の商品販売促進に利用する動きである。
各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
さらに、ユーザの商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合して、各ユーザ向けの最適な広告や情報を提供しようとする試みも行われている。
しかし、上述したように、多くの場合、各企業が保持するデータは、ユーザの商品購入履歴情報等、公開が制限されるセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
近年、この問題を解決する技術として、セキュアデータを相互に開示することなく、セキュアデータ間の相関や類似性等、データ間の関連性を解析する技術について、様々な検討がなされている。
例えば、セキュアデータの暗号化データや、変換データ等の秘匿化データを利用して、セキュアデータ間の関連性を解析する手法である。
なお、セキュアデータの暗号化データや、変換データ等、元データの秘匿化データを利用して行われる計算処理を、秘密計算、あるいはセキュア計算と呼ぶ。
例えば、特許文献1(特表2008−521025号公報)は、2つのデータ間の類似性の指標を、セキュア計算によって求める構成を開示している。具体的には、2つのデータの内積をセキュア計算で求めて、2つのデータ間のハミング距離を類似性指標値として算出する構成を開示している。
本文献では、セキュア計算による具体的な内積算出方法として、入力データに対して準同型暗号を適用して暗号化し、暗号化したデータについて準同型加算や乗算を行う方法を開示している。
しかし、公開鍵暗号である準同型暗号は、データ暗号化に時間がかかるため、莫大な量のデータを扱う場合、計算量が大きくなり、計算装置の負荷や処理時間が増大してしまうという問題がある。また、暗号文自体のサイズも大きいため通信量も大きくなるという問題がある。
さらに、特許文献2(特開2014−206696号公報)も、複数の組織が、各組織内で秘匿すべき異なる2つのセキュアデータを保持している場合、これら2つのセキュアデータの内積を、少ない計算量で算出する構成を開示している。
この特許文献2の開示構成は、データ秘匿化処理や、秘匿化データを適用した内積計算の時間の短縮を実現している。
しかし、この開示手法は、セキュア計算を実行する独立な計算機を3つ必要とする構成であり、計算機リソースの大型化や、コスト高が避けられないという問題点がある。
特表2008−521025号公報 特開2014−206696号公報
本開示は、例えば上述の問題点に鑑みてなされたものであり、開示が許容されない複数の異なるセキュアデータを相互に開示することなく、セキュアデータ間の相関等の関係性を算出可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
さらに、本開示の一実施態様では、異なる複数のセキュアデータを開示することなく、セキュアデータ間の内積を算出可能とした情報処理装置、情報処理システム、および情報処理方法、並びにプログラムを提供することを目的とする。
本開示の第1の側面は、
k本のベクトルから選択された1つのベクトルXと、
m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置にある。
さらに、本開示の第2の側面は、
セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、
前記第1の情報処理装置は、
前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
前記第1の情報処理装置のデータ処理部は、
前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システムにある。
さらに、本開示の第3の側面は、
情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
k本のベクトルから選択された1つのベクトルXと、
m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法にある。
さらに、本開示の第4の側面は、
セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記第1の情報処理装置は、
前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
前記第1の情報処理装置のデータ処理部は、
前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法にある。
さらに、本開示の第5の側面は、
情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
k本のベクトルから選択された1つのベクトルXと、
m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
さらに、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラムにある。
なお、本開示のプログラムは、例えば、様々なプログラム・コードを実行可能な情報処理装置やコンピュータ・システムに対して例えば記憶媒体によって提供されるプログラムである。このようなプログラムを情報処理装置やコンピュータ・システム上のプログラム実行部で実行することでプログラムに応じた処理が実現される。
本開示のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
本開示の一実施例の構成によれば、高速かつ効率的なベクトル間の相関性判定処理が実現される。
具体的には、セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、第1の情報処理装置は、第2の情報処理装置から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、第1の情報処理装置のデータ処理部は、第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
本構成により、高速かつ効率的なベクトル間の相関性判定処理が実現される。
なお、本明細書に記載された効果はあくまで例示であって限定されるものではなく、また付加的な効果があってもよい。
企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。 企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示す図である。 企業3と、企業4がそれぞれ個別に集積したユーザ対応データを示す図である。 企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。 セキュア計算によるセキュアデータの加算結果算出処理例について説明する図である。 セキュア計算によるセキュアデータの乗算結果算出処理例について説明する図である。 本開示の処理を実行する1つの情報処理システム構成例を示す図である。 2つの情報処理装置A,110、情報処理装置B,120の各々が記憶部に保持するセキュアデータの一例を示す図である。 2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す1つの指標値であるジャッカード(Jaccard)係数の対応表を示す図である。 情報処理装置A,110、情報処理装置B,120の保持するn人のユーザ対応のデータを示す図である。 セキュアデータを保持する情報処理装置A,110と、情報処理装置B,120の構成の一部を示す図である。 セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。 図12に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を示す図である。 一括型PSI−CAによるセキュアデータ間の関係性推定処理の概要について説明する図である。 セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。 セキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートを示す図である。 図15、図16に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を示す図である。 情報処理装置のハードウェア構成例を示す図である。
以下、図面を参照しながら本開示に係る情報処理装置、情報処理システム、および情報処理方法、並びにプログラムの詳細について説明する。説明は、以下の項目に従って行う。
1.本開示の処理が適用可能なシステムの一構成例について
2.ジャッカード(Jaccard)係数について
3.セキュア計算の概要について
4.計算量を削減したセキュア計算によるセキュアデータ間の関係性を推定する処理について
4−a.本開示の処理を行なう前提となる設定例について
4−b.計算の高速化を実現する処理の概要について
4−c.計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理例について
5.PSI−CA(Private set intersection cardinality)プロトコルを適用した一括型計算処理について
5−1.(説明1)情報処理装置A,110の実行する処理(ステップS211〜S213)
5−2.(説明2)情報処理装置B,120の実行する処理(ステップS221〜S225)
5−3.(説明3)情報処理装置A,110の実行する処理(ステップS214〜S216)
5−4.(説明4)図16に示す情報処理装置B,120の実行する処理(ステップS226)
6.情報処理装置のハードウェア構成例について
7.本開示の構成のまとめ
[1.本開示の処理が適用可能なシステムの一構成例について]
まず、本開示の処理が適用可能なシステムの一構成例について説明する。
前述したように、近年、インターネット等のネットワークを介した商品販売が盛んに行われており、多くのユーザが、スマホやPCを利用して様々な商品を購入している。
一方、ネット販売業者等の企業は、どのようなユーザがどのような商品を購入したかの商品購入履歴データを集積し、データベースとして記憶部に保持している。
企業は、この集積データに基づいて、特定ユーザに特定商品の推薦メールや広告を提供して、商品の購入促進を行うといった処理が可能となる。
図1は、企業が集積し、データベースとして記憶部に保持するユーザ対応の商品購入履歴データの例を示す図である。
図1に示すデータは、ユーザIDに対応する標本識別子(t)(=ユーザ1〜n)各々が、k個の商品1〜k(item:I_1〜I_k)中の、どの商品を購入したかを示すデータである。
なお、本明細書では、下付き文字をアンダーバー( _ )の後に示す。
例えば、I_1はIを示し、I_kはIを意味する。
図1に示すデータでは、
商品購入履歴ありの場合は、[1]、
商品購入履歴なしの場合は、[0]
これらの商品購入履歴識別情報を設定している。
このように、ネット販売業者等の企業は、ユーザIDと、そのユーザが購入した商品の識別情報(商品ID)を対応付けたデータを保持する。
なお、図1に示すデータは一例であり、さらに、ユーザの性別、年齢、居住地等のユーザプロファイルデータ等の取得が行われる場合もある。
図1に示すようなユーザの商品購入履歴データは、各ユーザの個人情報であり、公開することは好ましくない。すなわち、開示の制限されたセキュアデータであり、一般的に各ユーザの承諾なしに他者に提供することは許容されないデータである。
しかし、多くの異なるネット販売業者は、それぞれ個別に集積した異なるセキュアデータを保持しており、これらのデータを、例えばユーザIDや商品IDを連携させて、異なる企業間で活用しようとする動きも出てきている。
すなわち、各企業が個別に集積した顧客プロファイルや購買履歴などを統合して解析し、さらなる販売促進に利用しようとする動きである。
図2には、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示している。
図2(1)に示すデータは、企業1が集積したユーザ対応商品購入履歴データであり、ユーザ1〜n各々が、企業1の提供する商品1,1〜1,k(item:I_(1,1)〜I_(1,k))中の、どの商品を購入したかを示すデータである。
図2(2)に示すデータは、企業2が集積したユーザ対応商品購入履歴データであり、ユーザ1〜n各々が、企業2の提供する商品2,1〜2,m(item:I_(2,1)〜I_(2,m))中の、どの商品を購入したかを示すデータである。
図2に示すデータは、図1と同様、
商品購入履歴ありの場合は、[1]、
商品購入履歴なしの場合は、[0]
これらの商品購入履歴識別情報を設定している。
図2(1),(2)とも、同一のユーザ数:1〜nに対する商品購入履歴情報を示している。
図2(1)に示す商品1,1〜1,k(item:I_(1,1)〜I_(1,k))のI_(x,y)に示すx(x=1)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1〜k)は商品識別子である。
同様に、図2(2)に示す商品2,1〜2,m(item:I_(2,1)〜I_(2,m))のI_(x,y)に示すx(x=2)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1〜m)は商品識別子である。
図2(1)に示す企業1は、n人のユーザに対するk種類の商品の購入履歴情報を保持し、図2(2)に示す企業2は、n人のユーザに対するm種類の商品の購入履歴情報を保持していることを示している。
図2には、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示しているが、これら各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
さらに、ユーザの商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合して、各ユーザ向けの最適な広告や情報を提供しようとする試みも行われている。
図3は、放送局等、番組提供企業3と、ネット販売業者である企業4がそれぞれ個別に集積したデータを示している。
図3(1)に示すデータは、放送局等の企業3が集積したユーザ対応番組視聴履歴データであり、ユーザ1〜n各々が、企業3の放送する番組3,1〜3,k(item:I_(3,1)〜I_(3,k))中の、どの番組を視聴したかを示すデータである。
図3(2)に示すデータは、企業4が集積したユーザ対応商品購入履歴データであり、ユーザ1〜n各々が、企業4の提供する商品4,1〜4,m(item:I_(4,1)〜I_(4,m))中の、どの商品を購入したかを示すデータである。
図3に示すデータは、
番組視聴履歴あり、または商品購入履歴ありの場合は、[1]、
番組視聴履歴なし、または商品購入履歴なしの場合は、[0]
これらの履歴識別情報を設定している。
図3(1),(2)とも、同一のユーザ数:1〜nに対する番組視聴履歴、または商品購入履歴情報を示している。
図3(1)に示す番組3,1〜3,k(item:I_(3,1)〜I_(3,k))のI_(x,y)に示すx(x=3)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1〜k)は番組識別子である。
同様に、図3(2)に示す商品4,1〜4,m(item:I_(4,1)〜I_(4,m))のI_(x,y)に示すx(x=4)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1〜m)は商品識別子である。
図3(1)に示す企業3は、n人のユーザに対するk種類の番組の視聴履歴情報を保持し、図3(2)に示す企業4は、n人のユーザに対するm種類の商品の購入履歴情報を保持していることを示している。
このように、商品販売業者同士の商品購入履歴情報のみならず、様々な広告の閲覧履歴情報、番組視聴履歴情報等も統合することで、各ユーザ向けの最適な広告や情報を提供することが可能となる。
しかし、多くの場合、各企業が保持するデータは、ユーザの商品購入履歴情報等、公開が制限されるセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
[2.ジャッカード(Jaccard)係数について]
例えば、ある特定の商品を買う傾向が高いと推定されるユーザが特定できれば、そのユーザに対して、その商品の商品情報や広告を提供することで、より高い広告効果や、販売促進効果を得ることができる。
具体的には、例えば、
(1)ある商品Aを購入したユーザが、別の商品Bを購入する傾向が高いか低いか、
あるいは、
(2)ある番組Cを視聴したユーザが、商品Dを購する傾向が高いか低いか。
このような分析データは、特定の商品を購入する意欲の高いユーザを選別するための有効なデータとなる。
このような推定処理に適用する指標値として、ジャッカード(Jaccard)係数が知られている。
以下、ジャッカード(Jaccard)係数の算出処理例について説明する。
図4は、図1と同様のデータであり、例えばネット販売業者等の企業が、ネット販売実績データに基づいて集積したユーザ対応の商品購入履歴データの例である。
図4に示すデータは、n人のユーザ(ユーザ1〜n)各々が、k個の商品1〜k(item:I_1〜I_k)中の、どの商品を購入したかを示すデータである。
図4に示すデータにおいて、
商品購入履歴ありの場合は、[1]、
商品購入履歴なしの場合は、[0]、
これらの商品購入履歴識別情報が設定されている。
ジャッカード(Jaccard)係数は、例えばある商品を購入したユーザが、異なる商品に対する購入意欲が高いか否か等を判定する際等に利用可能なデータである。
また、例えばある番組を視聴したユーザが、ある特定の商品に対する購入意欲が高いか否か等を判定する際等にも利用可能である。
具体的には、例えば、図4に示すデータ中の商品I_pを購入したユーザが、図4に示すデータ中の異なる商品I_qを購入する可能性を推定する処理等に利用される。
図4に示すデータにおいて、図4に示すデータ中の商品I_pを購入したユーザを表すベクトルと、図4に示すデータ中の商品I_qを購入したユーザを表すベクトルを、それぞれ生成し、これらのベクトル間の類似度(相関量)を算出する。
これらのベクトル間の類似度(相関量)が高ければ、商品I_pを購入したユーザが、異なる商品I_qを購入する可能性が高いと推定することができる。
一方、これらのベクトル間の類似度(相関量)が低い場合は、商品I_pを購入したユーザが、異なる商品I_qを購入する可能性が低いと推定することができる。
具体的なジャッカード(Jaccard)係数の算出処理例について説明する。
例えば、図4に示すデータ中の商品I_1を購入したユーザを表すユーザ数nに相当するn次元のベクトル(1,1,1,0,1,・・・,1)と、図4に示すデータ中の商品I_2を購入したユーザを表すユーザ数nに相当するn次元のベクトル(1,0,0,1,0,・・・,1)を、それぞれ生成し、これらのベクトル間の類似度(相関量)を算出する。
これらのベクトル間の類似度(相関量)が高ければ、商品I_1を購入したユーザが、異なる商品I_2を購入する可能性が高いと推定することができる。
一方、これらのベクトル間の類似度(相関量)が低い場合は、商品I_1を購入したユーザが、異なる商品I_2を購入する可能性が低いと推定することができる。
商品I_iを購入したユーザを表すユーザ数nに相当するn次元のベクトルを商品I_iの購入ベクトルと呼ぶ。
商品I_iの購入ベクトルは、以下の(式1)として示すことができる。
Figure 2017122437
上記(式1)において、
行列:x_iは、行列:x_iの転置行列を示している。
行列:x_iの要素として示すx_tは、ユーザID=tのユーザによるアイテム(商品)I_iの購入の有無を示す。
このとき、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量を示すジャッカード(Jaccard)係数J_ijは、以下の(式2)のように定義される。
Figure 2017122437
なお、上記(式2)中のx_i、x_iは、以下の(式3a)、(式3b)に示す行列(n次元ベクトル)である。
Figure 2017122437
上記(式2)で定義されるジャッカード(Jaccard)係数は、異なるアイテム間の相関量や類似度を示し、アイテム間協調フィルタリングで用いる相関量の一つである。
上記(式2)で定義されるジャッカード(Jaccard)係数:J_ijの値が大きければ、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量が大きいと判断される。すなわち、例えば、アイテム(商品)I_iを購入したユーザは、アイテム(商品)I_jを購入する可能性が高いと推定することができる。
一方、上記(式2)で定義されるジャッカード(Jaccard)係数:J_ijの値が小さければ、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量が小さいと判断される。すなわち、例えば、アイテム(商品)I_iを購入したユーザが、アイテム(商品)I_jを購入する可能性が高いとは言えないと推定することができる。
このように、ジャッカード(Jaccard)係数は、ある1つの商品等、1つのアイテムに関する情報(ユーザ対応商品購入情報等)と、別のアイテムの情報(ユーザ対応商品購入情報等)との相関を判定するための指標値として利用される。
なお、上記(式2)で示されるジャッカード(Jaccard)係数は、(式2a)で示すように、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積、すなわち購入ベクトル間の内積に依存する値となる。
すなわち、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積(購入ベクトル間の内積)を算出し、この内積を各アイテム間の相関(類似性)指標値として利用することも可能である。
[3.セキュア計算の概要について]
上述したジャッカード(Jaccard)係数算出処理例は、相関関係の算出対象となる2つの商品、各々のユーザ購入有無情報が得られている場合の係数算出処理例である。
すなわち、図4に示すアイテム(商品)I_iの購入ベクトルと、アイテム(商品)I_jの購入ベクトルの2つのベクトルが得られている場合には、上記(式2)を用いてジャッカード(Jaccard)係数を算出することができる。
例えば、図4に示す商品購入履歴情報を取得している1つの企業が、図4に示す商品購入履歴情報を用いてジャッカード(Jaccard)係数を算出することで、複数の商品間の購入有無の相関関係を得ることができる。
しかし、このような限られたデータを利用して得られる情報には限界がある。
多くの企業は、それぞれ個別に集積した異なる商品購入履歴情報や、番組視聴履歴情報等を保持している。
これら、各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
しかし、前述したように、多くの場合、各企業が保持する商品購入履歴情報等は、公開が制限される個人データや機微データ等のセキュアデータであり、各企業が保持するセキュアデータを相互に提供して解析することは許容し難いという問題がある。
また、企業にとっては、これらのデータは経済的価値がある資産であり、他社に渡したくないという事情がある。
その一方で、異なる企業間でデータを組み合わせて解析を行い、さらなる商品販売促進のための広告提供などを行いたいといったニーズがある。
しかし、公開が制限される個人データや機微データ等のセキュアデータを相互に提供することは許容されない。
例えば、先に図2を参照して説明したように、2つの異なる企業1,2が、個別の商品購入履歴情報を保持している場合、企業1は、企業2のデータ、すなわち、図2(2)に示すデータを取得することができない。同様に、企業2は、企業1のデータ、すなわち、図2(2)に示すデータを取得することができない。
しかしながら、例えば、図2(2)に示すデータを保持している企業2が、企業1の商品1,1(I_(1,1))を購入したユーザが、企業2の商品2,1(I_(2,1))を購入しやすい傾向にあるか否かの推定情報を得たいという場合も少なくない。
以下では、2つの企業が個別に保有するセキュアデータ、すなわち、商品購入履歴情報や、番組視聴履歴情報等、開示が許容されないセキュアデータを保持している場合に、これらのセキュアデータを相互に開示することなく、各セキュアデータ間の相関や類似性を示す指標値を算出する構成について説明する。
なお、、各セキュアデータ間の相関や類似性を示す指標値としては、例えば前述したジャッカード(Jaccard)係数や、購入ベクトル間の内積等がある。
各企業が保持する商品購入履歴情報等は、公開が制限される個人データや機微データ等のセキュアデータである。
このような、公開の制限されたセキュアデータを開示することなくセキュアデータ間の演算結果、例えば、購入ベクトル間の内積等を算出するための処理としてセキュア計算が知られている。
セキュア計算とは、公開が許容されないセキュアデータを直接利用することなく、セキュアデータに基づいて生成される変換データを用いた演算により、セキュアデータの演算結果、例えばセキュアデータの加算結果、乗算結果等、様々なセキュアデータの演算結果を取得可能とした計算処理である。
このように、セキュアデータの変換データを用いた計算処理をセキュア計算と呼ぶ。
セキュア計算の計算処理には、セキュアデータ自体は利用されず、セキュアデータの変換データが利用される。変換データとは、例えばセキュアデータの暗号化データや、分割データ等、元のセキュアデータとは異なる様々なタイプのデータである。
セキュア計算の一例として、例えば非特許文献1(O.Goldreich,S.Micali and A.Wigderson.How to play any mental game.STOC'87,pp.218−229,1987.)に記載のGMW方式がある。
GMW方式に従ったセキュア計算処理の概要について、図5、図6を参照して説明する。
図5は、セキュアデータの加算値を、GMW方式に従ったセキュア計算によって算出する処理例を示す図である。
装置A,210は、セキュアデータX(例えば説明変数(x))を保持している。
また、装置B,220は、セキュアデータY(例えば結果変数(y))を保持している。
これらのセキュアデータX,Yは、公開することが好ましくない個人データ等のセキュアデータである。
装置A,210は、セキュアデータXを、以下のように、2つのデータに分割する。なお、Xを、予め規定した数値mの剰余データ:mod mとして設定する。
X=((x_1)+(x_2))mod_m
上記式において、(x_1)は、0〜(m−1)から一様にランダムに選択し、
(x_2)は、
(x_2)=(X−(x_1))mod m
上記式を満たすように定める。
このように、2つの分割データ(x_1),(x_2)を生成する。
なお、ここで分割対象となるデータは、例えば、図1に示すセキュアデータである、ある標本(ユーザ)の性別の値(1)であり、m=100としたとき、値(1)を(30)と(71)に分割する、あるいは(45)と(56)等、様々な異なる態様の分割データを設定することができる。
性別の値(0)の場合は、分割値は(40)と(60)に分割する等の処理が可能である。
年齢(54)は(10)と(44)に分割する等の処理が可能であり、その他の様々な分割処理が可能である。
重要なことは、単独の変換データ(ここでは1つの分割データ)から元のセキュアデータ(説明変数)が特定できないことが重要である。
例えば、分割データはセットで公開されず、例えば、一方の分割データのみが公開、すなわち、他の装置に提供される。
一方、装置B,220も、セキュアデータYを、以下のように、2つのデータに分割する。
Y=((y_1)+(y_2))mod_m
上記式において、(y_1)は、0〜(m−1)から一様にランダムに選択し、
(y_2)は、
(y_2)=(Y−(y_1))mod m
上記式を満たすように定める。
このように、2つの分割データ(y_1),(y_2)を生成する。
図5に示すように、装置A,210と、装置B,220は、ステップS20において、上記の分割データの一部を相互に提供する。
装置A,210は、装置B,220に分割データ(x_1)を提供する。
一方、装置B,220は、装置A,210に、分割データ(y_2)を提供する。
X,Yの各々はセキュアデータであり、外部に流出させることはできない。
しかし、Xの分割データである(x_1)、(x_2)の一方のデータのみを取得しても、セキュアデータXを特定することはできない。
同様に、Yの分割データである(y_1)、(y_2)の一方のデータのみを取得しても、セキュアデータYを特定することはできない。
従って、セキュアデータの分割データの一部のみのデータは、セキュアデータを特定できないデータであり、外部に出力することが許容される。
このように、装置A,210は、分割データ(x_1)を、装置B,220の計算処理実行部に出力する。
一方、装置B,220は、分割データ(y_2)を、装置A,210の計算処理実行部に出力する。
(ステップS21a)
装置A,210の計算処理実行部は、ステップS21aにおいて、分割データを利用して、以下の分割データ同士の加算処理を実行する。
((x_2)+(y_2))mod m
装置A,210は、この加算結果を装置B,220の計算処理実行部に出力する。
(ステップS21b)
一方、装置B,220の計算処理実行部は、ステップS21bにおいて、分割データを利用して、以下の分割データ同士の加算処理を実行する。
((x_1)+(y_1))mod m
装置B,220は、この加算結果を装置A,210の計算処理実行部に出力する。
(ステップS22a)
次に、装置A,210の計算処理実行部は、ステップS22aにおいて、以下の処理を実行する。
(1)ステップS21aにおいて算出した分割データの加算結果、(x_2)+(y_2)、
(2)装置B,220から入力した分割データの加算結果、(x_1)+(y_1)、
これらの2つの加算結果を、さらに加算する。すなわち、以下の計算を実行する。
((x_1)+(y_1)+(x_2)+(y_2))mod m
この分割データの総加算値は、元のセキュアデータXとYの加算値に等しい。
すなわち、
((x_1)+(y_1)+(x_2)+(y_2))mod m
=X+Y
となる。
(ステップS22b)
一方、装置B,220の計算処理実行部は、ステップS22bにおいて、以下の処理を実行する。
(1)ステップS21bにおいて算出した分割データの加算結果、(x_1)+(y_1)、
(2)装置A,210から入力した、分割データの加算結果、(x_2)+(y_2)、
これらの2つの加算結果を、さらに加算する。すなわち、以下の計算を実行する。
((x_1)+(y_1)+(x_2)+(y_2))mod m
この分割データの総加算値は、元のセキュアデータXとYの加算値に等しい。
すなわち、
((x_1)+(y_1)+(x_2)+(y_2))mod m
=X+Y
となる。
このように、装置A,装置Bは、いずれの装置も、それぞれのセキュアデータX,Yを外部に出力することなく、セキュアデータX,Yの加算値、すなわち、X+Yを算出することができる。
この図5に示す処理が、GMW方式に従ったセキュア計算を適用したセキュアデータの加算値算出処理例である。
なお、図5を参照して説明した上記の処理は、セキュアデータX,Yの加算値算出処理の概要を簡略化して説明したものであり、実際のセキュアデータの加算処理や乗算処理を行なう場合、一般的には、1回のセキュア計算によって得られた計算結果を次のセキュア計算の入力値として適用する等、セキュア計算を繰り返し実行することが必要である。
図6は、セキュアデータの乗算値を、GMW方式に従ったセキュア計算によって算出する処理例を示す図である。
装置A,210は、セキュアデータXを保持している。
また、装置B,220は、セキュアデータYを保持している。
これらのセキュアデータX,Yは、公開することが好ましくないセキュアデータである。
装置A,210は、セキュアデータXを2つのデータに分割する。
X=((x_1)+(x_2))mod m
このように、セキュアデータXをランダムに分割して2つの分割データ(x_1),(x_2)を生成する。
一方、装置B,220も、セキュアデータYを2つのデータに分割する。
Y=((y_1)+(y_2))mod m
このように、セキュアデータYをランダムに分割して2つの分割データ(y_1),(y_2)を生成する。
図6に示すステップS30において、装置A,210は、装置B,220の計算処理実行部に、分割データ(x_1)を提供する。
一方、装置B,220は、装置A,210の計算処理実行部に、分割データ(y_2)を提供する。
X,Yはセキュアデータであり、外部に流出させることはできない。
しかし、Xの分割データである(x_1)、(x_2)の一方のデータのみを取得しても、セキュアデータXを特定することはできない。
同様に、Yの分割データである(y_1)、(y_2)の一方のデータのみを取得しても、セキュアデータYを特定することはできない。
従って、セキュアデータの分割データの一部のみのデータは、セキュアデータを特定できないデータであり、外部に出力することが許容される。
このように、装置A,210は、分割データ(x_1)を、装置B,220の計算処理実行部に出力する。
一方、装置B,220は、分割データ(y_2)を、装置A,210の計算処理実行部に出力する。
装置A,210の計算処理実行部の処理について説明する。
装置A,210は、Xの分割データである(x_1)、(x_2)と、装置B,220から受信したYの分割データ(y_1)を保持している。
処理は、以下の手順で実行される。
(ステップS31a)
入力値を、x_2、
出力値M(x_2)を、M_(x_2)=(x_2)×(y_1)+r、
上記の入出力値設定とした[1−out−of−m OT]を、装置B,220と実行する。
なお、[1−out−of−m OT (Oblivious Transfer)]は、以下の処理を実行する演算プロトコルである。
送信者と選択者という2つのエンティティが存在する。
送信者はm個の要素からなる入力値(M_0,M_1,・・・,M_(m−1))を持つ。
選択者はσ∈{0,1,...,m−1}という入力値を持つ。
選択者は、m個の要素を持つ送信者に1つの要素の送信を要求し、選択者は、1つの要素M_σの値のみを得ることができる。その他の(m−1)個の要素:M_i(i≠σ)は入手できない。
一方、送信者は選択者の入力値σを知ることができない.
このように、[1−out−of−m OT]プロトコルは、m個の要素から1要素のみを送受信して演算処理を進めるプロトコルであり、m個の要素のどの要素が送受信されたかについては、要素受信側は特定できない設定としたプロトコルである。
(ステップS32a)
入力値を、y_2、
出力値M_(y_2)'を、M_(y_2)'=(x_1)×(y_2)+r'、
上記の入出力値設定とした[1−out−of−m OT]を、装置B,220と実行する。
(ステップS33a)
装置A,210の出力値として、出力値:M_(x_2)+M_(y_2)を以下の式に従って計算する。
M_(x_2)+M_(y_2)
=((x_2)×(y_2)+(x_2)×(y_1)+r+(x_1)×(y_2)+r')mod m
一方の、装置B,220の計算処理実行部の処理について説明する。
装置B,220は、Yの分割データである(y_1)、(y_2)と、装置A,210から受信したXの分割データ(x_1)を保持している。
処理は、以下の手順で実行される。
(ステップS31b)
乱数r∈{0,...,m−1}を選び、セキュアデータYの分割値y_1に基づいて、[1−out−of−m OT]で用いる入力値列、
i×(y_1)+r
ただし、i=0,1,・・・,(m−1)
上記の入力値列を生成する。
具体的には、以下の入力値列:M_0〜M_(m−1)を生成する。
M_0=0×(y_1)+r,
M_1=1×(y_1)+r,
...,
M_(m−1)=(m−1)×(y_1)+r、
これらの入力値列を生成する。
さらに、前述したステップS31aの設定に従った[1−out−of−m OT]を、装置A,210と実行する。
(ステップS32b)
乱数r'∈{0,...,m−1}を選び、分割値y_1に基づいて、[1−out−of−m OT]で用いる入力値列、
i×(x_1)+r'
ただし、i=0,1,・・・,(m−1)
上記の入力値列を生成する。
具体的には、以下の入力値列:M'_0〜M'_(m−1)を生成する。
M'_0=0×(x_1)+r',
M'_1=1×(x_1)+r'
...,
M'_(m−1)=(m−1)×(x_1)+r'
これらの入力値列を生成する。
さらに、前述したステップS32aの設定に従った[1−out−of−m OT]を、装置A,210と実行する。
(ステップS33b)
装置B,220の出力値として、以下の出力値を計算する。
((x_1)×(y_1)−r−r')mod m
上記の値を、装置B,220の出力値として計算する.
ステップS33aにおいて装置A,210が算出した出力値と、ステップS33bにおいて装置B,220が算出した出力値を用いた以下の計算処理によって、セキュアデータX,Yの乗算値X×Yが算出できる。
(((x_2)×(y_2)+(x_2)×(y_1)+r+(x_1)×(y_2)+r')+((x_1)×(y_1)−r−r')
=((x_1)+(x_2))×((y_1)+(y_2))
=X×Y
装置A,210と、装置B,220間で、ステップS33a、ステップS33bの算出結果を相互に提供することで、上記のセキュアデータX,Yの乗算値X×Yが算出できる。
このように、装置A,装置Bは、いずれの装置も、それぞれのセキュアデータX,Yを外部に出力することなく、セキュアデータX,Yの乗算値、すなわち、XYを算出することができる。
この図6に示す処理が、GMW方式に従ったセキュア計算を適用したセキュアデータの乗算値算出処理例である。
なお、図6を参照して説明した上記の処理は、セキュアデータX,Yの乗算値算出処理の概要を簡略化して説明したものであり、実際のセキュアデータの加算処理や乗算処理を行なう場合、一般的には、1回のセキュア計算によって得られた計算結果を次のセキュア計算の入力値として適用する等、セキュア計算を繰り返し実行することが必要である。
また、図5、図6に示すセキュア計算処理例は、セキュア計算の一例であり、セキュア計算態様には、その他、様々な異なる計算処理が可能である。
しかし、セキュア計算は、変換データの生成、変換データの装置間の送受信、変換データを適用した計算処理、これらの処理が計算に適用するセキュアデータのデータ量に応じて増大することになる。具体的には、例えば、セキュア計算による乗算処理では、計算量が大きいOblivious Transfer(紛失通信)プロトコルを実行する必要がある。この紛失通信プロトコルは極めて計算量が大きい。この理由は、公開鍵暗号で用いるような多倍長整数のべき乗演算が必要となることなどが理由である。
例えば、n要素からなるk本のベクトルとn要素からなるm本のベクトルの全組合せで内積を求める場合、合計でkmn回のセキュア乗算が必要となる。
これを図5、図6を参照して説明したような一般的なセキュア計算を用いて算出しようとすると、計算量、通信料が膨大となり、必要となる計算リソースや計算時間が大きくなり、実用的なレベルを超えてしまうという問題がある。
[4.計算量を削減したセキュア計算によるセキュアデータ間の関係性を推定する処理について]
以下、上述の問題点を解決する構成、すなわち、セキュアデータ間の関係性、例えば相関性や類似性を、計算量を削減したセキュア計算を適用して算出する処理について説明する。
図7は、本開示の処理を実行する1つの情報処理システム構成例を示す図である。
図7に示すように、2つの情報処理装置A,110、120が存在する。
これらの情報処理装置A,110と情報処理装置B,120は、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2の情報処理装置である。
企業1は、情報処理装置A,110を有し、情報処理装置A,110の記憶部に例えば、図1〜図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
企業2は、情報処理装置B,120を有し、情報処理装置B,120の記憶部に例えば、図1〜図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
2つの情報処理装置A,110、情報処理装置B,120の各々が記憶部に保持するセキュアデータの一例を図8に示す。
図8(1)に示すデータは、企業1が集積し、企業1の所有する情報処理装置A,110の記憶部に格納されたユーザ対応商品購入履歴データであり、ユーザ1〜n各々が、企業1の提供する商品1,1〜1,k(item:I_(1,1)〜I_(1,k))中の、どの商品を購入したかを示すデータである。
図8(2)に示すデータは、企業2が集積し、企業2の所有する情報処理装置B,120の記憶部に格納されたユーザ対応商品購入履歴データであり、ユーザ1〜n各々が、企業2の提供する商品2,1〜2,m(item:I_(2,1)〜I_(2,m))中の、どの商品を購入したかを示すデータである。
図8に示すデータには、図1他を参照して説明したと同様、
商品購入履歴ありの場合は、[1]、
商品購入履歴なしの場合は、[0]
これらの商品購入履歴識別情報が設定されている。
図8(1),(2)とも、同一のユーザ数:1〜nに対する商品購入履歴情報を示している。
図8(1)に示す商品1,1〜1,k(item:I_(1,1)〜I_(1,k))のI_(x,y)に示すx(x=1)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1〜k)は商品識別子である。
同様に、図8(2)に示す商品2,1〜2,m(item:I_(2,1)〜I_(2,m))のI_(x,y)に示すx(x=2)は、セキュアデータを保持する企業や情報処理装置の識別子であり、y(y=1〜m)は商品識別子である。
図8(1)に示す企業1は、n人のユーザに対するk種類の商品の購入履歴情報を保持し、図8(2)に示す企業2は、n人のユーザに対するm種類の商品の購入履歴情報を保持していることを示している。
図8には、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2がそれぞれ個別に集積したユーザ対応商品購入履歴データを示しているが、これら各企業が保有する個別のデータベースを統合して解析を行うことで、より効果的な商品販売や広告提供が可能となる。
しかし、これらの各データは公開が制限されるセキュアデータである。
従って、各企業の情報処理装置A,110と、情報処理装置B,120に格納されたこれらのセキュアデータは、各情報処理装置間で、そのまま送受信することは許容されない。
以下に説明する本開示の処理を行なうことで、各情報処理装置間でセキュアデータを送受信することなく、2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す指標値、例えば先に説明した購入ベクトル間のジャッカード(Jaccard)係数や、内積を、より効率的に算出することが可能となる。
図9に、2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す1つの指標値であるジャッカード(Jaccard)係数の対応表を示す。
ジャッカード(Jaccard)係数は、先に(式2)を参照して説明したように、ある商品aを購入したユーザを表すユーザ数n対応のn次元ベクトルである商品aの購入ベクトルと、商品bの購入ユーザを表すユーザ数n対応のn次元ベクトルである商品bの購入ベクトルとのベクトル間類似度を示す値として算出される。
図9には、
情報処理装置A,110を保持する企業1の提供商品1,1〜1,k(item:I_(1,1)〜I_(1,k))、および、
情報処理装置B,120を保持する企業2の提供商品2,1〜2,m(item:I_(2,1)〜I_(2,m))、
これらk+m個の商品識別子を横軸、縦軸に設定した表(マトリックス)を示している。
ジャッカード(Jaccard)係数は、例えば、異なる2つの商品間の購入ベクトルの類似度を示す値として算出される。
図9のように、商品種類がk+m個ある場合、図9に示すマトリックス中の(1),(2),(3)の各領域に、異なる商品(商品iと商品j)間のジャッカード(Jaccard)係数を算出することができる。
領域(1)は、情報処理装置A,110を保持する企業1の提供商品1,1〜1,k(item:I_(1,1)〜I_(1,k))間のジャッカード(Jaccard)係数算出領域である。
領域(2)は、情報処理装置A,110を保持する企業1の提供商品1,1〜1,k(item:I_(1,1)〜I_(1,k))と、情報処理装置B,120を保持する企業2の提供商品2,1〜2,m(item:I_(2,1)〜I_(2,m))との間のジャッカード(Jaccard)係数算出領域である。
領域(3)は、情報処理装置B,120を保持する企業2の提供商品2,1〜2,m(item:I_(2,1)〜I_(2,m))間のジャッカード(Jaccard)係数算出領域である。
これらの各領域において算出されるジャッカード(Jaccard)係数は、以下の(式4a)〜(式4c)として示される。
Figure 2017122437
(式4a)は、領域(1)におけるジャッカード(Jaccard)係数算出式である。
(式4b)は、領域(2)におけるジャッカード(Jaccard)係数算出式である。
(式4c)は、領域(3)におけるジャッカード(Jaccard)係数算出式である。
ジャッカード(Jaccard)係数J_ijは、アイテム(商品)I_iと、アイテム(商品)I_jとの間のアイテム間相関量を示す。
領域(1)におけるジャッカード(Jaccard)係数算出式である上記の(式4a)は、先に説明した(式2)と同様の式である。
x_i、x_jは、いずれも、情報処理装置A,110を保持する企業1の提供商品1,1〜1,k(item:I_(1,1)〜I_(1,k))のいずれかの商品に関するn人のユーザ(ユーザ1〜n)の商品購入有無(有り:1、無し:0)情報からなる行列である。
先に説明した(式3a)で表現される行列(n次元ベクトル)である。
また、x_iは、x_iの転置行列であり、先に説明した(式3b)で表現される行列(n次元ベクトル)である。
従って、図9に示す領域(1)のジャッカード(Jaccard)係数は、企業1の情報処理装置A,110に格納されたデータ(セキュアデータ)のみを利用して情報処理装置A,110内部で算出することができる。
また、領域(3)におけるジャッカード(Jaccard)係数算出式である(式4c)中の、y_i、y_jは、いずれも、情報処理装置B,120を保持する企業2の提供商品2,1〜2,m(item:I_(2,1)〜I_(2,m))のいずれかの商品に関するn人のユーザ(ユーザ1〜n)の商品購入有無(有り:1、無し:0)情報からなる行列である。
従って、図9に示す領域(3)のジャッカード(Jaccard)係数は、企業2の情報処理装置B,120に格納されたデータ(セキュアデータ)のみを利用して情報処理装置B,120内部で算出することができる。
これに対して、領域(2)におけるジャッカード(Jaccard)係数算出式である(式4b)は、
情報処理装置A,110を保持する企業1の提供商品1,1〜1,k(item:I_(1,1)〜I_(1,k))のいずれかの商品に関するn人のユーザ(ユーザ1〜n)の商品購入有無(有り:1、無し:0)情報からなる行列:x_iと、
情報処理装置B,120を保持する企業2の提供商品2,1〜2,m(item:I_(2,1)〜I_(2,m))のいずれかの商品に関するn人のユーザ(ユーザ1〜n)の商品購入有無(有り:1、無し:0)情報からなる行列:y_iが含まれる。
従って、図9に示す領域(2)のジャッカード(Jaccard)係数は、企業1の情報処理装置A,110に格納されたデータ(セキュアデータ)と、企業2の情報処理装置B,120に格納されたデータ(セキュアデータ)の両者を利用しなければ算出することができない。
すなわち、この領域(2)のジャッカード(Jaccard)係数を算出するためには、先に図5、図6を参照して説明したセキュア計算を行うことが必要となる。
例えば情報処理装置A,110の記憶部内に格納されたセキュアデータを変換して、情報処理装置B,120に提供し、同様に、情報処理装置B,120の記憶部内に格納されたセキュアデータを変換して、情報処理装置A,110に提供し、これらの変換データを適用したセキュア計算により算出することが必要となる。すなわち、例えば、先に図5、図6を参照して説明したセキュア計算を行うことが必要となる。
図5、図6を参照して説明したように、セキュア計算では、変換データの生成、送受信、変換データを用いた計算、これらの処理コストが増大してしまうという問題がある。
以下に説明する本開示の処理においては、このセキュア計算を効率的に実行する。すなわち、各情報処理装置間でセキュアデータを送受信することなく、2つの情報処理装置A,110と、情報処理装置B,120の保有するセキュアデータ間の関連性を示す指標値、例えば先に説明した購入ベクトル間のジャッカード(Jaccard)係数や、内積を、より効率的に算出することを可能としている。
以下、具体的な処理について説明する。
なお、(式4a)〜(式4c)で示されるジャッカード(Jaccard)係数は、先に説明した(式2a)で示すように、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積、すなわち購入ベクトル間の内積に依存する値となる。
すなわち、アイテム(商品)I_iの購入有無データ(x_t)と、アイテム(商品)I_jの購入有無データ(x_t)との内積(購入ベクトル間の内積)を算出し、この内積を各アイテム間の相関(類似性)指標値として利用することも可能である。
以下では、具体的な処理例として、購入ベクトル間の内積を効率的に算出する処理について説明する。
なお、先に説明した(式2)、(式2a)の関係から理解されるように、算出した内積を適用して、ジャッカード(Jaccard)係数を算出することも可能となる。
[4−a.本開示の処理を行なう前提となる設定例について]
まず、本開示の処理を行なう前提となる設定例について説明する。
図7に示すように、2つの情報処理装置A,110、120が存在する。
これらの情報処理装置A,110と情報処理装置B,120は、2つの異なる企業、例えば2つの異なるネット販売業者である企業1と、企業2の情報処理装置である。
企業1は、情報処理装置A,110を有し、情報処理装置A,110の記憶部に例えば、図1〜図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
企業2は、情報処理装置B,120を有し、情報処理装置B,120の記憶部に例えば、図1〜図4を参照して説明したと同様のユーザ対応の商品購入履歴データ等を保持している。
具体的には、例えば、先に説明した図8に示すようなデータである。
図8に示すデータには、図1他を参照して説明したと同様、
商品購入履歴ありの場合は、[1]、
商品購入履歴なしの場合は、[0]
これらの商品購入履歴識別情報が設定されている。
以下のセキュアデータ間の相関算出処理の説明においては、図8に示す商品購入履歴有無のデータ(1,0)は、図10に示すようなデータとして表現して説明する。
図10に示すように、情報処理装置A,110、情報処理装置B,120とも、n人の同じユーザ対応の商品購入履歴データを有している。
_tは、企業1の情報処理装置A,110に格納されたユーザ対応の商品購入履歴情報であり、ユーザID=tのユーザによるアイテム(商品)I_iの購入の有無を示す。
_tは、企業2の情報処理装置B,120に格納されたユーザ対応の商品購入履歴情報であり、ユーザID=tのユーザによるアイテム(商品)I_jの購入の有無を示す。
なお、これらのデータは、いずれもセキュアデータであり、公開や、外部流出が許容されないデータである。
図10に示すように、情報処理装置A,110は、n人のユーザ(ユーザ1〜n)各々が、k個の商品1〜k(item:I_1〜I_k)各々の商品購入履歴情報として、以下のデータ、すなわち、
_t (i=1〜k,t=1〜n)
上記のセキュアデータを記憶部に格納している。
一方、情報処理装置B,120は、n人のユーザ(ユーザ1〜n)各々が、m個の商品1〜m(item:J_1〜J_m)各々の商品購入履歴情報として、以下のデータ、すなわち、
_t (j=1〜m,t=1〜n)
上記のセキュアデータを記憶部に格納している。
以下に説明する処理の目的は、
情報処理装置A,110の保持するセキュアデータである商品購入履歴情報、すなわち、x_t (i=1〜k,t=1〜n)
上記のデータと、
情報処理装置B,120の保持するセキュアデータである商品購入履歴情報、すなわち、y_t (j=1〜m,t=1〜n)
上記のデータとの相関を求めることである。
相関指標値は、例えば、前述したジャッカード(Jaccard)係数や、内積(購入ベクトルの内積)である。
情報処理装置A,110の保持するセキュアデータである商品購入履歴情報をデータD1とし、情報処理装置B,120の保持するセキュアデータである商品購入履歴情報をデータD2とする。
データD1、データD2は以下のデータによって構成される。
(データD1)
n要素(=ユーザ数)からなるk本(=商品数)のベクトル:x_i、
x_i=(x_1,x_2,・・・,x_n)
(1≦i≦k)、x_t∈{0,1}
(データD2)
n要素(=ユーザ数)からなるm本(=商品数)のベクトル:y_j、
y_j=(y_1,y_2,・・・,y_n)
(1≦j≦m)、y_t∈{0,1}
これらの2つのセキュアデータD1とD2から、セキュア計算を用いて互いのデータを共有することなく、例えば、データD1に含まれるベクトルとデータD2に含まれるベクトル間の相関指標値(ジャッカード(Jaccard)係数や、ベクトル要素間の内積)を算出する。
なお、データD1には、企業1が提供する商品数kに対応したk本のベクトルが含まれる。
一方、データD2には、企業2が提供する商品数mに対応したm本のベクトルが含まれる。
例えば、企業1が提供する商品数kに対応したk本のベクトル中の1つのベクトルV1と、企業2が提供する商品数mに対応したm本のベクトル中の1つのベクトルV2との相関が高いと判定されれば、ベクトルV1に対応する商品を購入したユーザは、ベクトルV2に対応する商品を購入する可能性が高いと判定される。
具体的には、例えば、図10(1)に示すデータ中の商品I_1を購入したユーザを表すユーザ数nに相当するn次元のベクトル(1,1,1,0,1,・・・1)と、図10(2)に示すデータ中の商品J_1を購入したユーザを表すユーザ数nに相当するn次元のベクトル(0,1,0,0,1,・・・0)を、それぞれ生成し、これらのベクトル間の類似度(相関量)を算出する。
これらのベクトル間の類似度(相関量)が高ければ、商品I_1を購入したユーザが、異なる商品J_1を購入する可能性が高いと推定することができる。
一方、これらのベクトル間の類似度(相関量)が低い場合は、商品I_1を購入したユーザが、異なる商品J_1を購入する可能性が低いと推定することができる。
以下では、まず、ベクトル間の類似性を示す相関指標値として、以下の(式5)によって示されるkm個の内積:IP_ijを算出する処理について説明する。
Figure 2017122437
上記(式5)に従った内積の計算には、2つの異なる情報処理装置に個別に格納されたセキュアデータ相互の計算が必要となる。
_tは、情報処理装置A,110に格納されたセキュアデータであり、ユーザtが、商品iを購入したか否かを示すデータ(1または0)である。
一方、y_tは、情報処理装置B,120に格納されたセキュアデータであり、ユーザtが、商品jを購入したか否かを示すデータ(1または0)である。
これらは、いずれもセキュアデータであるため、情報処理装置A,110と、情報処理装置B,120間で、このまま送受信することは許容されない。
[4−b.計算の高速化を実現する処理の概要について]
上記の(式5)に従った内積の計算では、n要素(=ユーザ数)からなるk本(=企業1の提供商品数)のベクトルと、n要素からなるm本(=企業2の提供商品数)のベクトルの全組合せの乗算を用いて内積を求めることになる。
この場合、合計でkmn回のセキュア乗算が必要となる。
これらの計算を、例えば、先に図6を参照して説明したセキュア計算に従って実行すると、変換データの生成、変換データの送受信、ヘンカンデータを用いた計算処理、これらの処理が膨大なものとなってしまう。
以下に説明する本開示の処理においては、各ユーザの購入履歴を示す1,0データ、すなわち、1(=購入履歴あり)、0(=購入履歴なし)、これらの1,0データそのものから構成されるベクトルではなく、1(=購入履歴あり)の値を持つ標本ID(ユーザID:t)を利用して計算処理を行なう。
すなわち、先に説明した情報処理装置A,110の保持するセキュアデータである商品購入履歴情報:データD1と、情報処理装置B,120の保持するセキュアデータである商品購入履歴情報データ:D2を、以下のように変換する。
情報処理装置A,110の保持するセキュアデータである商品購入履歴情報:データD1は以下のように変換する。
(データD1)
n要素(=ユーザ数)からなるk本(=商品数)のベクトル:x_i、
x_i=(x_1,x_2,・・・,x_n)
(1≦i≦k)、x_t∈{0,1}
このデータD1に基づいて、各商品(i=1〜k)各々について、購入履歴ありのユーザのユーザID(t)から構成されるk組の標本ID(ユーザID)の集合:C_iを生成する。
集合:C_iは以下の(式6)によって示される。
Figure 2017122437
なお、上記(式6)において、v_iは、x_iの中で1を取るIDの個数とする。
ベクトル:x_iの中で、x_t=1を満たすユーザID=tが、上記(式6)で示す集合:C_iの要素として含まれる。
なお、本例では、IDとして、ユーザID=1,2,・・・,nを利用しているが、他の識別できる数値の組合せを用いることも可能である。
また、情報処理装置B,120の保持するセキュアデータである商品購入履歴情報:データD2は以下のように変換する。
(データD2)
n要素(=ユーザ数)からなるm本(=商品数)のベクトル:y_j、
y_j=(y_1,y_2,・・・,y_n)
(1≦j≦m)、y_t∈{0,1}
このデータD2に基づいて、各商品(j=1〜m)各々について、購入履歴ありのユーザのユーザID(t)から構成されるm組の標本ID(ユーザID)の集合:S_iを生成する。
集合:S_iは以下の(式7)によって示される。
Figure 2017122437
なお、上記(式7)において、w_iは、y_iの中で1を取るIDの個数とする。
ベクトル:y_jの中で、y_t=1を満たすユーザID=tが、上記(式7)で示す集合:S_jの要素として含まれる。
なお、本例では、IDとして、ユーザID=1,2,・・・,nを利用しているが、他の識別できる数値の組合せを用いることも可能である。
このような変換を行うことで、入力値の個数を減らすことができる。
例えば、ID数(ユーザ数n)が100万の場合において、設定値=1(ユーザの購入履歴あり)の個数の割合である密度が1%のとき、
データD1、データD2として示すベクトル、すなわち、
n要素(=ユーザ数)からなるk本(=商品数)のベクトル:x_i、
x_i=(x_1,x_2,・・・,x_n)
n要素(=ユーザ数)からなるm本(=商品数)のベクトル:y_j、
y_j=(y_1,y_2,・・・,y_n)
これらのベクトル表現とした場合、100万次元の入力値となる。
しかし、上述した集合:C_i、S_j、すなわち(式6)、(式7)で示す集合:C_i、S_jを用いて表現することで、1万個オーダの入力値に減少させることができる。
以下に説明する本開示の処理は、上記の2組の集合を比較し、重複するIDの個数を求めることで、重複するIDの個数に基づく内積を求める。
例えば、
C={1,2,3}、
S={2,3,4}
このとき、{2、3}が重複する。
重複するIDの個数は2であり、出力(内積)は2となる。
出力値は、重複するIDの個数に相当し、重複するIDの個数が多い場合は、より大きな値となり、重複するIDの個数が少ない場合は小さい値となる。
すなわち、出力値が大きいほど、重複するIDの個数が多く、2つの集合には同じユーザIDが多く含まれることを示す。
すなわち、この内積の値は、先に説明したジャッカード(Jaccard)係数と同様、2つの商品の購入ユーザの類似度を示す値となる。
なお、この演算をセキュア計算と同等の安全性を維持して実行するためのプロトコル(計算方式)として、例えば、PSI−CA(Private set intersection cardinality)プロトコルが利用可能である。
なお、このPSI−CAプロトコルの詳細については、例えば、文献[E.D.Cristofaro, P.Gasti and G.Tsudik,Fast and Private Computation of Cardinality of Set Intersection and Union,Cryptology and Network Security,pp.218−231,2012]に記載がある。
PSI−CAプロトコルを適用した計算処理の詳細については、後述する。
[4−c.計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理例について]
次に、計算量を削減したセキュア計算によるセキュアデータ間の関係性算出処理の例について説明する。
図11は、各々が商品購入履歴情報等のセキュアデータを保持する情報処理装置A,110と、情報処理装置B,120の構成の一部を示す図である。
情報処理装置A,110は、入力部111、乱数生成部112、ハッシュ計算部113、算術演算部114、要素比較部115、データ送受信部116、出力部117を有する。
情報処理装置B,120は、入力部121、乱数生成部122、ハッシュ計算部123、算術演算部124、ランダム置換部125、データ送受信部126、出力部127を有する。
図12に示すフローチャートは、図11に示す装置を利用したセキュアデータ間の関係性算出処理のシーケンスを説明するフローチャートである。
フローに示す処理は、例えば図10に示す2つの異なる情報処理装置の保持するセキュアデータである商品購入履歴データ中の設定値=1(ユーザの購入履歴あり)のユーザIDからなる集合C_iとS_jの内積算出処理である。
前述したように、この内積の値が大きいほど、商品iと商品jの購入ユーザの相関(類似度)が高いと判定することができる。
以下、図11に示すブロック図と、図12に示すフローチャートを参照して、内積算出シーケンスについて説明する。
なお、図12に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を図13に示している。
(ステップS101a,S101b)
図12に示すフローのステップS101a、およびステップS101bの処理は、図11に示す情報処理装置A,110の入力部111、および情報処理装置B,120の入力部において実行する処理である。
情報処理装置A,110の入力部111は、ステップS101aにおいて、情報処理装置A,110の記憶部に保持されたデータ、例えば、図10(1)に示すユーザ対応商品購入履歴データから生成される集合C_iを入力する。
一方、情報処理装置B,120の入力部121は、ステップS101bにおいて、情報処理装置B,120の記憶部に保持されたデータ、例えば、図10(2)に示すユーザ対応商品購入履歴データから生成される集合S_jを入力する。
各入力部111,121の入力データC_i,S_jは、以下の(式8a,式8b)に示すデータである。
Figure 2017122437
(ステップS102)
次のステップS102の処理は、先に説明したPSI−CAプロトコルを利用した内積算出処理である。
この内積算出処理は、図11に示す情報処理装置A,110の乱数生成部112、ハッシュ計算部113、算術演算部114、ランダム置換部115、データ送受信部116、および情報処理装置B,120の乱数生成部122、ハッシュ計算部123、算術演算部124、ランダム置換部125、データ送受信部126を利用して実行される。
このステップS102の処理は、例えば図10に示す2つの異なる情報処理装置の保持するセキュアデータである商品購入履歴データ中の設定値=1(ユーザの購入履歴あり)のユーザIDからなる集合C_iとS_jの内積算出処理である。
すべてのi(1≦i≦k)について、上記(式8a,式8b)で示す集合C_iとS_jを入力値とする一括型PSI−CAを実行し、各iについて、以下の(式9)で示す内積を算出する。
Figure 2017122437
n_(i,j)=|{c_1,・・・,c_(v_i)}∩{s_1,・・・,s_(w_j)}|
ただし、(1≦j≦m)
を出力する。
このステップS102において実行する一括型PSI−CAについての詳細処理については後述する。
(ステップS103a、S103b)
このステップS103の処理は、出力部における結果出力処理である。
図11に示す情報処理装置A,110の出力部117、および情報処理装置B,120の出力部127において実行される。
図11に示す情報処理装置A,110の出力部117、および情報処理装置B,120の出力部127は、ステップS102において算出した内積、すなわち、集合C_iとS_jの内積である以下の(式10)を出力する。
Figure 2017122437
なお、上記(式10)に示す内積の値は、例えば、情報処理装置A,110、および情報処理装置B,120のデータ処理部に出力される。
各情報処理装置のデータ処理部は、入力した内積の値を用いて、各商品の購入ユーザの相関を判定することができる。
前述したように、内積:n_(i,j)の値が大きいほど、商品iと商品jの購入ユーザの相関(類似度)が高いと判定することができる。
なお、算出した内積と、ジャッカード(Jaccard)係数とは、先に説明した(式2a)と(式2)の関係にあり、算出した内積を用いてジャッカード(Jaccard)係数を算出することができる。
[5.PSI−CA(Private set intersection cardinality)プロトコルを適用した一括型計算処理について]
次に、図12に示すフローチャートのステップS102の処理として実行するPSI−CA(Private set intersection cardinality)プロトコルを適用した一括型計算処理について説明する。
先にPSI−CAプロトコルの開示文献として文献[E.D.Cristofaro, P.Gasti and G.Tsudik,Fast and Private Computation of Cardinality of Set Intersection and Union,Cryptology and Network Security,pp.218−231,2012]を紹介した。
しかし、この文献に記載されているのは、1つの集合と1つの集合同士で共通要素数を求めるプロトコルに過ぎない。
これに対して、本開示の処理は、1つの集合と複数の集合同士で共通要素数を求める構成こととしている。
例えば、本処理例において、
集合:C_iは、企業1の提供する商品iを購入したユーザID(t=1〜n)を要素とした集合である。
また、集合:S_jは、企業2の提供する商品jを購入したユーザID(t=1〜n)を要素とした集合である。
本開示の処理では、
企業1の提供する1つの商品iを購入したユーザID(t=1〜n)を要素とした集合である1つの集合:C_iに対して、
企業2の提供する商品jを購入したユーザID(t=1〜n)を要素としたm個の集合:S_j(j=1〜m)各々との相関を示すm個の内積を一括して算出することができる。
具体的には、例えば図14に示すように、企業1の提供する1つの商品I_1を購入したユーザID(t=1〜n)を要素とした集合である1つの集合:C_1に対して、
企業2の提供する商品jを購入したユーザID(t=1〜n)を要素としたm個の集合:S_j(j=1〜m)各々との相関を示すm個の内積を一括して算出することができる。
以下、このPSI−CAプロトコルを適用した一括型計算処理について説明する。
図15、図16に示すフローチャートは、図12に示すフローのステップS102のPSI−CAプロトコルを適用した一括型計算処理の詳細シーケンスを説明するフローチャートである。
フローチャートの説明の前に、以下の説明において用いるパラメータについて説明する。
p,q:共通で入力される2つの素数(qは(p−1)を割り切る)。特に記載がない場合は、全ての演算はZ_p上で計算する。
g:サイズがqである部分群の生成元。
H:{0,1}→Z_p:ハッシュ関数。
H':{0,1}→{0,1}κ:ハッシュ関数。κはセキュリティパラメータ。
以下、このフローチャートの各ステップの処理の詳細について、順次、説明する。
なお、以下において、各処理ステップの説明順は以下の設定とする。
(説明1)図15に示す情報処理装置A,110の実行する処理(ステップS211〜S213)
(説明2)図15〜図16に示す情報処理装置B,120の実行する処理(ステップS221〜S225)
(説明3)図16に示す情報処理装置A,110の実行する処理(ステップS214〜S216)
(説明4)図16に示す情報処理装置B,120の実行する処理(ステップS226)
なお、図15、図16に示すフローに従って実行する処理における各情報処理装置A,Bの入力値と、出力値を図17に示している。
[5−1.(説明1)情報処理装置A,110の実行する処理(ステップS211〜S213)]
まず、図15に示すフローチャートを参照して、情報処理装置A,110の実行する処理(ステップS211〜S213)について、説明する。
(ステップS211)
図15に示すフローのステップS211の処理は、図11に示す情報処理装置A,110の入力部111において実行する処理である。
情報処理装置A,110の入力部111は、ステップS211において、情報処理装置A,110の記憶部に保持されたデータ、例えば、図10(1)に示すユーザ対応商品購入履歴データから生成される集合:Cを入力する。
集合Cは、以下の集合である。
C={C_1,C_2,・・・,C_(v_i)}
集合:Cの要素であるC_iは、情報処理装置A,110を持つ企業1の提供する1つの商品iを購入したユーザID(t=1〜n)を要素とした1つの商品対応の集合であり、以下の(式11)に示す集合である。
Figure 2017122437
(ステップS212)
ステップS212の処理は、図11に示す情報処理装置A,110の乱数生成部112と、算術演算部114の実行する処理である。
乱数生成部112は、乱数R_C、R'_Cを生成する。
算術演算部114は、これらの乱数に基づいて、共有情報Xを計算する。
これらの計算は、以下の(式12)に示す手順に従って実行される。
Figure 2017122437
(ステップS213)
ステップS213の処理は、図11に示す情報処理装置A,110のハッシュ計算部113と、算術演算部114の実行する処理である。
ハッシュ計算部113は、入力値(C_t)のハッシュ値を求め、
さらに算術演算部114は、ハッシュ計算部113において算出されたハッシュ値に対して、乱数R'_Cでべき乗する処理を行なう。
具体的には、以下の(式13)に示す演算を実行する。
Figure 2017122437
さらに、図11に示す情報処理装置A,110のデータ送受信部116は、以下の各データを情報処理装置B,120に送信する。
共有情報:X=gRc
集合:{a_1,・・・,a_v}、
[5−2.(説明2)情報処理装置B,120の実行する処理(ステップS221〜S225)]
次に、図15、図16に示すフローチャートを参照して、情報処理装置B,120の実行する処理(ステップS221〜S225)について、説明する。
(ステップS221)
図15に示すフローのステップS221の処理は、図11に示す情報処理装置B,120の入力部121において実行する処理である。
情報処理装置B,120の入力部121は、ステップS221において、情報処理装置B,120の記憶部に保持されたデータ、例えば、図10(2)に示すユーザ対応商品購入履歴データから生成される集合:S_jを入力する。
集合:S_jは、情報処理装置B,120を持つ企業2の提供する1つの商品jを購入したユーザID(t=1〜n)を要素とした1つの商品対応の集合であり、以下の(式14)に示す集合である。
Figure 2017122437
(ステップS222)
図15に示すフローのステップS222の処理は、図11に示す情報処理装置B,120のランダム置換部125と、ハッシュ計算部123において実行する処理である。
情報処理装置B,120のランダム置換部125は、ステップS222において、ステップS221における入力値:S_jをランダム置換し、ランダム置換データをハッシュ計算部123に出力する。
ハッシュ計算部123は、ランダム置換部125において生成された入力値:S_jのランダム置換データのハッシュ値を算出する。
具体的な計算は、以下の(式15a)(式15b)に従って実行される。
Figure 2017122437
上記式中、(式15a)が、ランダム置換部125による入力値:S_jのランダム置換処理である。
(式15b)が、ハッシュ計算部123による、ランダム置換データのハッシュ値算出処理である。
(ステップS223)
ステップS223の処理は、図11に示す情報処理装置B,120のデータ送受信部126と、乱数生成部122と、算術演算部124において実行する処理である。
データ送受信部126は、情報処理装置Aにおける処理ステップであるステップS212〜S213において生成された以下のデータを受信する。
共有情報:X=gRc
集合:{a_1,・・・,a_v}、
次に、乱数生成部122は、乱数R_S、R'_Sを生成し、算術演算部124が共有情報:Y=gRsを計算する。
これらの計算は、以下に示す(式16)に従って実行される。
Figure 2017122437
(ステップS224)
ステップS224の処理は、図11に示す情報処理装置B,120の算術演算部124と、ランダム置換部125において実行する処理である。
算術演算部124は、情報処理装置A,110からの入力データ、
{a_1,・・・,a_v}を、
乱数R'_Sでべき乗し、このべき乗データをランダム置換部125に出力する。
ランダム置換部125は、入力したべき乗データのランダム置換処理を実行する。
具体的には、以下に示す(式17a)、(式17b)に従った処理を実行する。
Figure 2017122437
上記式中、(式17a)が、算術演算部124における入力データ{a_1,・・・,a_v}に対する乱数R'_Sによるべき乗処理である。
(式17b)が、ランダム置換部125によるべき乗データのランダム置換処理である。
(ステップS225)
ステップS225の処理は、図11に示す情報処理装置B,120の算術演算部124と、ハッシュ計算部123、データ送受信部126において実行する処理である。
算術演算部124は、ステップS222で生成した入力値のランダム置換後のハッシュ値に対して、さらに、乱数R'_Sでべき乗し、
さらに、情報処理装置A,110からの入力値である、
共有情報:X=gRc
上記Xを乗算し、乗算値をハッシユ計算部123に出力する。
ハッシュ計算部123が、この乗算値に対するハッシュ値を算出する。
具体的には、以下の(式18a)、(式18b)に従った計算を実行する。
Figure 2017122437
上記式中、(式18a)が、算術演算部124における入力値のランダム置換後のハッシュ値に対する乱数R'_Sによるべき乗処理と、共有情報:X=gRcの乗算処理である。
(式18b)が、ハッシュ計算部123による、乗算値に対するハッシュ値算出処理である。
情報処理装置B,120のデータ送受信部126は、ステップS223で生成した、
共有情報:Y=gRs
さらに、ステップS224,S225において生成したデータを情報処理装置A,110に送信する。
情報処理装置B,120から、情報処理装置A,110に送信されるデータは、以下の(式19)に示す各データである。
Figure 2017122437
[5−3.(説明3)情報処理装置A,110の実行する処理(ステップS214〜S216)]
次に、図16に示すフローチャートを参照して、情報処理装置A,110の実行する処理(ステップS214〜S216)について、説明する。
上述した処理中、情報処理装置A,110の実行するステップS212〜S213の処理、および、情報処理装置B,120の実行するステップS222〜S225の処理は、各情報処理装置A,Bの保持するセキュアデータの変換処理として行われる処理である。
具体的にはベクトル構成要素の暗号化、ハッシュ算出、ランダム置換等の処理により、セキュアデータを変換して、漏えいさせないための処理である。
以下に説明するステップS241〜S215の処理は、これらのセキュアデータを利用して実行されるベクトル間の相関判定処理となる。
(ステップS214)
ステップS214の処理は、情報処理装置A,110のデータ送受信部116と、算術演算部114、ハッシュ計算部113の実行する処理である。
情報処理装置A,110のデータ送受信部116は、情報処理装置B,120から、共有情報:Y=gRs等、上記の(式19)に示す各データを受信する。
情報処理装置A,110の算術演算部114は、情報処理装置B,120からの入力データに対して、乱数R'_cの逆数でべき乗し、さらに、YRcを乗算し、この計算結果をハッシュ計算部113に出力する。
ハッシュ計算部113は、算術演算部114からの入力に対するハッシュ値を算出する。
具体的には、以下の(式20a)、(式20b)に従った計算を実行する。
Figure 2017122437
上記式中、(式20a)が、算術演算部114における計算処理であり、(式20b)が、ハッシュ計算部113によるハッシュ値算出処理である。
(ステップS215)
ステップS215の処理は、情報処理装置A,110の要素比較部115の実行する処理である。
情報処理装置A,110の要素比較部115は、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1〜m)の各々について、情報処理装置A,110を持つ企業1の提供する1つの商品i(i=1〜k)との共通要素数を計算する。
具体的には、例えば、企業2の提供するm個の商品jと、企業1の提供する1つの商品iを共通に購入したユーザ数(要素数)を計算する。
この共通要素数計算処理は、以下の(式21)に従った処理である。
Figure 2017122437
上記の(式21)に従った共通要素数の算出を実行する。
上記(式21)に従った要素数比較は、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1〜m)の各々について実行される。
この処理により、情報処理装置A,110を持つ企業1の提供する1つの商品iに対する、企業2の提供するm個の商品j(j=1〜m)の各々について、m個の共通要素数データ、すなわち、
n_j
ただし、(j=1〜m)
このm個の共通要素数データが連続して得られることになる。
情報処理装置A,110のデータ送受信部116は、このm個の共通要素数データ:n_jを情報処理装置B,120に送信する。
(ステップS216)
ステップS216の処理は、情報処理装置A,110の出力部117の実行する処理である。
情報処理装置A,110の出力部117は、ステップS215で算出したm個の共通要素数データ:n_jを情報処理装置A,110のデータ処理部に出力する。
情報処理装置A,110のデータ処理部は、入力したm個の共通要素数データ:n_jを用いて、各商品の購入ユーザの相関を判定することができる。
すなわち、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1〜m)の各々について、情報処理装置A,110を持つ企業1の1つの提供商品iも購入した共通購入ユーザ数を確認することが可能となる。この共通ユーザ数が多いほど、商品購入ユーザ相関が高いと判定することができる。
なお、上記の(式21)に従って算出される共通要素数は、先に説明した(式2a)の購入ベクトル間の内積に等しい、
また、この内積と、ジャッカード(Jaccard)係数とは、先に説明した(式2a)と(式2)の関係にあり、算出した内積を用いてジャッカード(Jaccard)係数を算出することができる。
[5−4.(説明4)図16に示す情報処理装置B,120の実行する処理(ステップS226)]
最後に、図16に示すフローチャートを参照して、情報処理装置B,120の実行する処理(ステップS226)について、説明する。
(ステップS226)
ステップS226は、情報処理装置B,120のデータ送受信部126と出力部127の実行する処理である。
情報処理装置B,120のデータ送受信部126は、情報処理装置A,110の実行ステップS215で算出されたm個の共通要素数データ:n_jを情報処理装置A,110から受信し、出力部127に提供する。
情報処理装置B,120の出力部127は、m個の共通要素数データ:n_jを情報処理装置B,120のデータ処理部に出力する。
情報処理装置B,120のデータ処理部は、入力したm個の共通要素数データ:n_jを用いて、各商品の購入ユーザの相関を判定することができる。
すなわち、情報処理装置B,120を持つ企業2の提供するm個の商品j(j=1〜m)の各々について、情報処理装置A,110を持つ企業1の1つの提供商品iも購入した共通購入ユーザ数を認することが可能となる。この共通ユーザ数が多いほど、商品購入ユーザ相関が高いと判定することができる。
このように、本開示の処理では、図15、図16を参照して説明したフローチャートに従った1回の処理シーケンスに従った処理によって、情報処理装置A,110を持つ企業1の提供する1つの商品iに対する、企業2の提供するm個の商品j(j=1〜m)の各々について、m個の共通要素数データ、すなわち、
n_j
ただし、(j=1〜m)
このm個の共通要素数データを連続して取得することが可能となる。
図15、図16を参照して説明した処理をまとめると、以下のようになる。
情報処理装置A,110は、セキュアデータを要素とするk本のベクトルを有する。
一方、情報処理装置B,120は、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する、
情報処理装置A,110は、情報処理装置B,120から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信する。
情報処理装置A,110のデータ処理部は、情報処理装置A,110の保持するk本のベクトルから選択された1つのベクトルXと、情報処理装置B,120から受信したベクトルYから、特定の共通値、すなわち(1)を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行する。
この処理において、情報処理装置A,110のデータ処理部は、1つのベクトルXに対して、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
この処理によって、情報処理装置A,110を持つ企業1の提供する1つの商品iに対する、企業2の提供するm個の商品j(j=1〜m)の各々について、m個の共通要素数データ、すなわち、
n_j
ただし、(j=1〜m)
このm個の共通要素数データを連続して取得することが可能となる。
[6.情報処理装置のハードウェア構成例について]
最後に、上述した実施例に従った処理を実行する情報処理装置のハードウェア構成例について、図18を参照して説明する。
図18は、情報処理装置のハードウェア構成例を示す図である。
CPU(Central Processing Unit)401は、ROM(Read Only Memory)402、または記憶部408に記憶されているプログラムに従って各種の処理を実行する制御部やデータ処理部として機能する。例えば、上述した実施例において説明したシーケンスに従った処理を実行する。RAM(Random Access Memory)403には、CPU401が実行するプログラムやデータなどが記憶される。これらのCPU401、ROM402、およびRAM403は、バス404により相互に接続されている。
CPU401はバス404を介して入出力インタフェース405に接続され、入出力インタフェース405には、各種スイッチ、キーボード、マウス、マイクロホンなどよりなる入力部406、ディスプレイ、スピーカなどよりなる出力部407が接続されている。CPU401は、入力部406から入力される指令に対応して各種の処理を実行し、処理結果を例えば出力部407に出力する。
入出力インタフェース405に接続されている記憶部408は、例えばハードディスク等からなり、CPU401が実行するプログラムや各種のデータを記憶する。通信部409は、インターネットやローカルエリアネットワークなどのネットワークを介したデータ通信の送受信部として機能し、外部の装置と通信する。
入出力インタフェース405に接続されているドライブ410は、磁気ディスク、光ディスク、光磁気ディスク、あるいはメモリカード等の半導体メモリなどのリムーバブルメディア411を駆動し、データの記録あるいは読み取りを実行する。
[7.本開示の構成のまとめ]
以上、特定の実施例を参照しながら、本開示の実施例について詳解してきた。しかしながら、本開示の要旨を逸脱しない範囲で当業者が実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本開示の要旨を判断するためには、特許請求の範囲の欄を参酌すべきである。
なお、本明細書において開示した技術は、以下のような構成をとることができる。
(1) k本のベクトルから選択された1つのベクトルXと、
m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置。
(2) 前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
前記データ処理部は、
前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する(1)に記載の情報処理装置。
(3) 前記データ処理部は、
前記ベクトルX、または前記ベクトルYのいずれか一方のベクトル情報を異なる情報処理装置から暗号化データとして受信してデータ処理を実行する(1)または(2)に記載の情報処理装置。
(4) 前記データ処理部は、
前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する(1)〜(3)いずれかに記載の情報処理装置。
(5) 前記データ処理部は、
前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する(1)〜(4)いずれかに記載の情報処理装置。
(6) 前記データ処理部は、
前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する(1)〜(5)いずれかに記載の情報処理装置。
(7) 前記データ処理部は、
前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する(6)に記載の情報処理装置。
(8) セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、
前記第1の情報処理装置は、
前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
前記第1の情報処理装置のデータ処理部は、
前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システム。
(9) 前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
前記データ処理部は、
前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する(8)に記載の情報処理システム。
(10) 前記データ処理部は、
前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する(8)または(9)に記載の情報処理システム。
(11) 前記データ処理部は、
前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する(8)〜(10)いずれかに記載の情報処理システム。
(12) 前記データ処理部は、
前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する)8)〜(11)いずれかに記載の情報処理システム。
(13) 前記データ処理部は、
前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する(12)に記載の情報処理システム。
(14) 情報処理装置において実行する情報処理方法であり、
前記情報処理装置は、
k本のベクトルから選択された1つのベクトルXと、
m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
前記データ処理部は、
前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
(15) セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
前記第1の情報処理装置は、
前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
前記第1の情報処理装置のデータ処理部は、
前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
前記データ処理部は、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
(16) 情報処理装置において情報処理を実行させるプログラムであり、
前記情報処理装置は、
k本のベクトルから選択された1つのベクトルXと、
m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
前記プログラムは、前記データ処理部に、
前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
さらに、
1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラム。
また、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。例えば、プログラムは記録媒体に予め記録しておくことができる。記録媒体からコンピュータにインストールする他、LAN(Local Area Network)、インターネットといったネットワークを介してプログラムを受信し、内蔵するハードディスク等の記録媒体にインストールすることができる。
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。また、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
上述したように、本開示の一実施例の構成によれば、高速かつ効率的なベクトル間の相関性判定処理が実現される。
具体的には、セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、第1の情報処理装置は、第2の情報処理装置から、m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、第1の情報処理装置のデータ処理部は、第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する。
本構成により、高速かつ効率的なベクトル間の相関性判定処理が実現される。
110 情報処理装置A
111 入力部
112 乱数生成部
113 ハッシュ計算部
114 算術演算部
115 要素比較部
116 データ送受信
117 出力部
120 情報処理装置B
121 入力部
122 乱数生成部
123 ハッシュ計算部
124 算術演算部
125 ランダム置換部
126 データ送受信部
127 出力部
401 CPU
402 ROM
403 RAM
404 バス
405 入出力インタフェース
406 入力部
407 出力部
408 記憶部
409 通信部
410 ドライブ
411 リムーバブルメディア

Claims (16)

  1. k本のベクトルから選択された1つのベクトルXと、
    m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
    前記データ処理部は、
    前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
    前記データ処理部は、
    1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理装置。
  2. 前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
    前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
    前記データ処理部は、
    前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
    前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
    前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
    前記データ処理部は、
    1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する請求項1に記載の情報処理装置。
  3. 前記データ処理部は、
    前記ベクトルX、または前記ベクトルYのいずれか一方のベクトル情報を異なる情報処理装置から暗号化データとして受信してデータ処理を実行する請求項1に記載の情報処理装置。
  4. 前記データ処理部は、
    前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する請求項1に記載の情報処理装置。
  5. 前記データ処理部は、
    前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する請求項1に記載の情報処理装置。
  6. 前記データ処理部は、
    前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
    前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項1に記載の情報処理装置。
  7. 前記データ処理部は、
    前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項6に記載の情報処理装置。
  8. セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
    セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムであり、
    前記第1の情報処理装置は、
    前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
    前記第1の情報処理装置のデータ処理部は、
    前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
    前記データ処理部は、
    1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理システム。
  9. 前記ベクトルXは、標本対応の要素の値が1または0の2値データからなるn要素のk本のベクトルから選択された1つのベクトルであり、
    前記ベクトルYは、標本対応の要素の値が1または0の2値データからなるn要素のm本のベクトルから選択された1つのベクトルであり、
    前記データ処理部は、
    前記ベクトルXと前記ベクトルYの要素間の内積算出処理として、
    前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
    前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を抽出する処理を実行し、
    前記データ処理部は、
    1つのベクトルXに対して、前記m本のベクトルから選択される複数のベクトルY各々について、値が1となる共通する要素対応の標本識別子を連続的に抽出する処理を実行する請求項8に記載の情報処理システム。
  10. 前記データ処理部は、
    前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子の変換データを用いた計算処理を実行する請求項8に記載の情報処理システム。
  11. 前記データ処理部は、
    前記セキュア計算として、前記ベクトルX、または前記ベクトルYの少なくともいずれか一方の要素対応の標本識別子のランダム置換データを用いた計算処理を実行する請求項8に記載の情報処理システム。
  12. 前記データ処理部は、
    前記ベクトルXの要素中、値が1となる要素対応の標本識別子、および、
    前記ベクトルYの要素中、値が1となる要素対応の標本識別子とから共通する標本識別子の数を算出し、算出数を、前記ベクトルXと前記ベクトルYの要素間の内積値とし、該内積値の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項8に記載の情報処理システム。
  13. 前記データ処理部は、
    前記内積値を適用して、ジャッカード(Jaccard)係数を算出し、ジャッカード(Jaccard)係数の値が大きいほど、前記ベクトルXと、前記ベクトルYとの相関が高いと判定する請求項12に記載の情報処理システム。
  14. 情報処理装置において実行する情報処理方法であり、
    前記情報処理装置は、
    k本のベクトルから選択された1つのベクトルXと、
    m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
    前記データ処理部は、
    前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
    前記データ処理部は、
    1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
  15. セキュアデータを要素とするk本のベクトルを有する第1の情報処理装置と、
    セキュアデータを要素とするm本のベクトルを有する第2の情報処理装置を有する情報処理システムにおいて実行する情報処理方法であり、
    前記第1の情報処理装置は、
    前記第2の情報処理装置から、前記m本のベクトルから選択されたベクトルYに関するベクトル情報を暗号化データとして受信し、
    前記第1の情報処理装置のデータ処理部は、
    前記第1の情報処理装置の保持するk本のベクトルから選択された1つのベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行し、
    前記データ処理部は、
    1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行する情報処理方法。
  16. 情報処理装置において情報処理を実行させるプログラムであり、
    前記情報処理装置は、
    k本のベクトルから選択された1つのベクトルXと、
    m本のベクトルから選択された1つのベクトルYとの相関性を判定するデータ処理部を有し、
    前記プログラムは、前記データ処理部に、
    前記ベクトルXと、前記ベクトルYから、特定の共通値を持つ要素対応の標本識別子の数をセキュア計算に従って算出し、算出数に応じたベクトル間の相関性判定処理を実行させ、
    さらに、
    1つのベクトルXに対して、前記m本のベクトルから選択される複数の異なるベクトルY各々について、特定の共通値を持つ要素対応の標本識別子を連続的に算出して、複数の異なるベクトル間の相関性判定を連続的に実行させるプログラム。
JP2017561533A 2016-01-12 2016-11-28 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム Pending JPWO2017122437A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016003803 2016-01-12
JP2016003803 2016-01-12
PCT/JP2016/085116 WO2017122437A1 (ja) 2016-01-12 2016-11-28 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JPWO2017122437A1 true JPWO2017122437A1 (ja) 2018-11-08

Family

ID=59311178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561533A Pending JPWO2017122437A1 (ja) 2016-01-12 2016-11-28 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム

Country Status (4)

Country Link
US (1) US10650083B2 (ja)
EP (1) EP3404643A4 (ja)
JP (1) JPWO2017122437A1 (ja)
WO (1) WO2017122437A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580253B1 (en) * 2017-02-23 2023-02-14 Amdocs Development Limited System, method, and computer program for centralized consent management
CN110399741A (zh) * 2019-07-29 2019-11-01 深圳前海微众银行股份有限公司 数据对齐方法、设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015108807A (ja) * 2013-10-23 2015-06-11 株式会社インテック データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
US20150161398A1 (en) * 2013-12-09 2015-06-11 Palo Alto Research Center Incorporated Method and apparatus for privacy and trust enhancing sharing of data for collaborative analytics
US9092732B1 (en) * 2012-12-07 2015-07-28 Robust Links, LLC Software service infrastructure indexing user demographics, interests and expertise
JP2015194959A (ja) * 2014-03-31 2015-11-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005015462A1 (en) 2003-08-08 2005-02-17 Koninklijke Philips Electronics N.V. System for processing data and method thereof
CN101057448B (zh) 2004-11-16 2012-02-15 皇家飞利浦电子股份有限公司 安全地计算相似性度量
JP5391637B2 (ja) * 2008-10-10 2014-01-15 日本電気株式会社 データ類似度計算システム、データ類似度計算方法およびデータ類似度計算プログラム
US20150356152A1 (en) 2013-01-11 2015-12-10 Nec Corporation Text mining device, text mining method, and recording medium
JP2014206696A (ja) 2013-04-15 2014-10-30 株式会社インテック データ秘匿型内積計算システム、方法、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092732B1 (en) * 2012-12-07 2015-07-28 Robust Links, LLC Software service infrastructure indexing user demographics, interests and expertise
JP2015108807A (ja) * 2013-10-23 2015-06-11 株式会社インテック データ秘匿型統計処理システム、統計処理結果提供サーバ装置及びデータ入力装置、並びに、これらのためのプログラム及び方法
US20150161398A1 (en) * 2013-12-09 2015-06-11 Palo Alto Research Center Incorporated Method and apparatus for privacy and trust enhancing sharing of data for collaborative analytics
JP2015194959A (ja) * 2014-03-31 2015-11-05 ソニー株式会社 情報処理装置、情報処理方法及びプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
下山 武司: "暗号を解かずにデータ処理", 情報処理, vol. 第57巻 第1号, JPN6020008324, 15 December 2015 (2015-12-15), JP, pages 44 - 50, ISSN: 0004227520 *
安田 雅哉 ほか: "複数企業が持つ購買履歴データのクラウド秘匿集計", 2012 第29回 暗号と情報セキュリティシンポジウム [CD−ROM], vol. 3D2−5, JPN6020008325, 30 January 2012 (2012-01-30), JP, pages 1 - 8, ISSN: 0004227521 *

Also Published As

Publication number Publication date
EP3404643A1 (en) 2018-11-21
WO2017122437A1 (ja) 2017-07-20
US10650083B2 (en) 2020-05-12
US20190004999A1 (en) 2019-01-03
EP3404643A4 (en) 2019-01-16

Similar Documents

Publication Publication Date Title
US10872166B2 (en) Systems and methods for secure prediction using an encrypted query executed based on encrypted data
US20130097417A1 (en) Secure private computation services
US10320752B2 (en) Gradients over distributed datasets
US8756410B2 (en) Polynomial evaluation delegation
US20170039487A1 (en) Support vector machine learning system and support vector machine learning method
CN111563267B (zh) 用于联邦特征工程数据处理的方法和装置
JP2007501975A (ja) データ処理システム及びその方法
JPWO2017119211A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP2019061233A (ja) データを共有する有用性の安全な2パーティ評価のためのシステム及び方法
WO2022247620A1 (zh) 保护隐私的确定业务数据特征有效值的方法及装置
Bilogrevic et al. What’s the gist? privacy-preserving aggregation of user profiles
CN111709051A (zh) 数据处理方法、装置、系统、计算机存储介质及电子设备
JP2012128398A (ja) プライバシを保護したまま暗号化された要素の順序を選択するための方法およびシステム
CN112200382A (zh) 一种风险预测模型的训练方法和装置
CN114186263A (zh) 一种基于纵向联邦学习的数据回归方法及电子装置
Vu et al. An efficient and practical approach for privacy-preserving Naive Bayes classification
WO2017122437A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
Helsloot et al. Badass: Preserving privacy in behavioural advertising with applied secret sharing
WO2015186574A1 (ja) 情報システム、統合装置、第一装置、情報処理方法、および記録媒体
WO2017019376A1 (en) Generating bridge match identifiers for linking identifiers from server logs
Ricci et al. Privacy-preserving cloud-based statistical analyses on sensitive categorical data
CN115033916A (zh) 基于多方联合数据训练推送模型及信息推送的方法和装置
Erkin et al. Privacy-preserving content-based recommendations through homomorphic encryption
Piotrowska et al. Some remarks and ideas about monetization of sensitive data
Yasuda et al. Secret computation of purchase history data using somewhat homomorphic encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200310

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200609