(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024144184
(43)【公開日】2024-10-11
(54)【発明の名称】計算システム、計算方法、及びプログラム
(51)【国際特許分類】
G06N 3/098 20230101AFI20241003BHJP
G06F 21/62 20130101ALI20241003BHJP
【FI】
G06N3/098
G06F21/62 345
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024032257
(22)【出願日】2024-03-04
(31)【優先権主張番号】18/129,037
(32)【優先日】2023-03-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】399037405
【氏名又は名称】楽天グループ株式会社
(74)【代理人】
【識別番号】110000154
【氏名又は名称】弁理士法人はるか国際特許事務所
(72)【発明者】
【氏名】楊 斌
(72)【発明者】
【氏名】鄭 容朱
(57)【要約】
【課題】セキュリティを高める。
【解決手段】第1装置は、第1公開情報と、第3秘密情報と、の積が第1秘密情報になるように、第1公開情報及び第3秘密情報を取得する第1取得部と、第2装置に対し、第1公開情報を送信する第1送信部と、を含む。第2装置は、第1装置から、第1公開情報を受信する第1受信部と、第1計算情報と、第4秘密情報と、の積が第2秘密情報になるように、第1計算情報及び第4秘密情報を取得する第2取得部と、第1計算情報と、第1公開情報と、の積である第1公開積を計算する第1公開積計算部と、第1装置に対し、第1公開積を送信する第2送信部と、を含む。第1装置は、第2装置から、第1公開積を受信する第2受信部を更に含む。第1公開積、第3秘密情報、及び第4秘密情報に基づいて、第1秘密情報及び第2秘密情報が秘密に管理された状態で、第1秘密情報と、第2秘密情報と、の積である秘密積が計算される。
【選択図】
図5
【特許請求の範囲】
【請求項1】
第1秘密情報を秘密に管理する第1装置と、第2秘密情報を秘密に管理する第2装置と、を含み、
前記第1装置は、
前記第2装置に公開される第1公開情報と、前記第1装置で秘密に管理される第3秘密情報と、の積が前記第1秘密情報になるように、前記第1公開情報及び前記第3秘密情報を取得する第1取得部と、
前記第2装置に対し、前記第1公開情報を送信する第1送信部と、
を含み、
前記第2装置は、
前記第1装置から、前記第1公開情報を受信する第1受信部と、
前記第1公開情報との積が計算される第1計算情報と、前記第2装置で秘密に管理される第4秘密情報と、の積が前記第2秘密情報になるように、前記第1計算情報及び前記第4秘密情報を取得する第2取得部と、
前記第1計算情報と、前記第1公開情報と、の積である第1公開積を計算する第1公開積計算部と、
前記第1装置に対し、前記第1公開積を送信する第2送信部と、
を含み、
前記第1装置は、前記第2装置から、前記第1公開積を受信する第2受信部を更に含み、
前記第1公開積、前記第3秘密情報、及び前記第4秘密情報に基づいて、前記第1秘密情報及び前記第2秘密情報が秘密に管理された状態で、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される、
計算システム。
【請求項2】
前記第1装置は、
前記第1公開積と、前記第3秘密情報と、の積である第2公開積を計算する第2公開積計算部と、
前記第2装置に対し、前記第2公開積を送信する第3送信部と、
を更に含み、
前記第2装置は、
前記第1装置から、前記第2公開積を受信する第3受信部と、
前記第4秘密情報と、前記第2公開積と、に基づいて、前記秘密積を計算する第1秘密積計算部と、
を更に含む請求項1に記載の計算システム。
【請求項3】
前記第1装置は、
前記第1装置で秘密に管理される第5秘密情報及び第6秘密情報の積が前記第3秘密情報になるように、前記第5秘密情報及び前記第6秘密情報を取得する第3取得部と、
前記第1公開積と、前記第5秘密情報と、の積である第3公開積を計算する第3公開積計算部と、
前記第2装置に対し、前記第3公開積を送信する第4送信部と、
を含み、
前記第2装置は、
前記第1装置から、前記第3公開積を受信する第4受信部と、
前記第4秘密情報と、前記第3公開積と、に基づいて、第4公開積を計算する第4公開積計算部と、
前記第1装置に対し、前記第4公開積を送信する第5送信部と、
を更に含み、
前記第1装置は、
前記第2装置から、前記第4公開積を受信する第5受信部と、
前記第4公開積と、前記第6秘密情報と、に基づいて、前記秘密積を計算する第2秘密積計算部と、
を更に含む請求項1又は2に記載の計算システム。
【請求項4】
前記第1取得部は、少なくとも1つの乱数に基づいて、前記第1公開情報及び前記第3秘密情報を取得する、
請求項1又は2に記載の計算システム。
【請求項5】
前記第1取得部は、
第1乱数に基づいて、前記第1公開情報の一部である第1部分を取得し、
第2乱数に基づいて、前記第3秘密情報を取得し、
前記第1部分と、前記第3秘密情報と、に基づいて、前記第1公開情報の残りの部分である第2部分を取得する、
請求項4に記載の計算システム。
【請求項6】
前記第2取得部は、少なくとも1つの乱数に基づいて、前記第1計算情報及び前記第4秘密情報を取得する、
請求項1又は2に記載の計算システム。
【請求項7】
前記第2取得部は、
第3乱数に基づいて、前記第1計算情報の一部である第3部分を取得し、
第4乱数に基づいて、前記第4秘密情報を取得し、
前記第3部分と、前記第4秘密情報と、に基づいて、前記第1計算情報の残りの部分である第4部分を取得する、
請求項6に記載の計算システム。
【請求項8】
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、及び前記第4秘密情報の各々は、行列形式であり、
前記秘密積は、内積である、
請求項1又は2に記載の計算システム。
【請求項9】
前記第2装置は、前記第1装置よりも高いセキュリティが要求され、
前記第1公開積計算部は、前記第2秘密情報の行数と、前記第1公開積の行数と、が異なるように、前記第1公開積を計算可能である、
請求項8に記載の計算システム。
【請求項10】
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、前記第4秘密情報、前記第5秘密情報、及び前記第6秘密情報の各々は、行列形式であり、
前記秘密積は、内積である、
請求項3に記載の計算システム。
【請求項11】
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、前記第4秘密情報、前記第1部分、及び前記第2部分の各々は、行列形式であり、
前記秘密積は、内積である、
請求項5に記載の計算システム。
【請求項12】
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、前記第4秘密情報、前記第3部分、及び前記第4部分の各々は、行列形式であり、
前記秘密積は、内積である、
請求項7に記載の計算システム。
【請求項13】
前記計算システムでは、前記第1装置、前記第2装置、及び他の装置を含む複数の装置の各々が通信可能であり、
前記第2装置は、前記複数の装置の中で相対的に高いセキュリティが要求される、
請求項1又は2に記載の計算システム。
【請求項14】
前記計算システムでは、前記秘密積に基づいて、連合学習における学習モデルの学習が実行される、
請求項1又は2に記載の計算システム。
【請求項15】
前記第1装置は、前記連合学習における第1学習モデルの学習過程において、前記第1秘密情報を計算し、
前記第2装置は、前記連合学習における第2学習モデルの学習過程において、前記第2秘密情報を計算する、
請求項14に記載の計算システム。
【請求項16】
前記学習モデルは、複数の他の学習モデルの各々の推定結果に基づいて、所定の推定を実行するスタッキング学習におけるモデルである、
請求項14に記載の計算システム。
【請求項17】
前記第1秘密情報は、第1サービスにおける複数のユーザの各々に関する情報であり、
前記第2秘密情報は、第2サービスにおける前記複数のユーザの各々に関する情報である、
請求項1又は2に記載の計算システム。
【請求項18】
前記第1サービスにおける前記複数のユーザの各々のユーザ識別情報と、前記第2サービスにおける前記複数のユーザの各々のユーザ識別情報と、は同じである、
請求項17に記載の計算システム。
【請求項19】
第1秘密情報を秘密に管理する第1装置と、第2秘密情報を秘密に管理する第2装置と、により実行され、
前記第1装置は、
前記第2装置に公開される第1公開情報と、前記第1装置で秘密に管理される第3秘密情報と、の積が前記第1秘密情報になるように、前記第1公開情報及び前記第3秘密情報を取得し、
前記第2装置に対し、前記第1公開情報を送信し、
前記第2装置は、
前記第1装置から、前記第1公開情報を受信し、
前記第1公開情報との積が計算される第1計算情報と、前記第2装置で秘密に管理される第4秘密情報と、の積が前記第2秘密情報になるように、前記第1計算情報及び前記第4秘密情報を取得し、
前記第1計算情報と、前記第1公開情報と、の積である第1公開積を計算し、
前記第1装置に対し、前記第1公開積を送信し、
前記第1装置は、前記第2装置から、前記第1公開積を受信し、
前記第1公開積、前記第3秘密情報、及び前記第4秘密情報に基づいて、前記第1秘密情報及び前記第2秘密情報が秘密に管理された状態で、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される、
計算方法。
【請求項20】
請求項1又は2に記載の第1装置又は第2装置としてコンピュータを動作させるためのプログラムを記憶したnon-transitoryな情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、計算システム、計算方法、及びプログラムに関する。
【背景技術】
【0002】
従来、装置が秘密に管理する情報の漏洩を防止するための技術が検討されている。例えば、非特許文献1には、訓練データを1つの拠点に集約することなく、機械学習の手法を利用した学習モデルを作成するための連合学習の手法が記載されている。連合学習では、複数の装置の各々が、他の装置に対し、自身が秘密に管理する情報を送信することなく、学習モデルの学習を実行できることが知られている。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】Qinbin Li, Zeyi Wen, Zhaomin Wu, Sixu Hu, Naibo Wang, Yuan Li, Xu Liu, Bingsheng He, “A Survey on Federated Learning Systems: Vision, Hype and Reality for Data Privacy and Protection”, インターネット, 2023年3月16日検索,https://arxiv.org/abs/1907.09693
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、非特許文献のような連合学習では、学習モデルの学習のために、第1装置が秘密に管理する第1秘密情報と、第2装置が秘密に管理する第2秘密情報と、の秘密積を計算するといった要望がある。連合学習以外の他の分野でも、秘密に管理される複数の情報の積である秘密積が計算される場合には、同様の要望がある。この場合に、しかしながら、第2装置が第1秘密情報及び第2秘密情報の秘密積を計算する場合に、第1装置が第2装置に第1秘密情報を送信すると、第1秘密情報がネットワーク上に送信されるので、セキュリティが十分ではない。第1秘密情報を暗号化したとしても、第三者に解読される可能性がある。第1装置が秘密積を計算する場合も同様である。
【0005】
本開示の目的の1つは、セキュリティを高めることである。
【課題を解決するための手段】
【0006】
本開示に係る計算システムは、第1秘密情報を秘密に管理する第1装置と、第2秘密情報を秘密に管理する第2装置と、を含み、前記第1装置は、前記第2装置に公開される第1公開情報と、前記第1装置で秘密に管理される第3秘密情報と、の積が前記第1秘密情報になるように、前記第1公開情報及び前記第3秘密情報を取得する第1取得部と、前記第2装置に対し、前記第1公開情報を送信する第1送信部と、を含み、前記第2装置は、前記第1装置から、前記第1公開情報を受信する第1受信部と、前記第1公開情報との積が計算される第1計算情報と、前記第2装置で秘密に管理される第4秘密情報と、の積が前記第2秘密情報になるように、前記第1計算情報及び前記第4秘密情報を取得する第2取得部と、前記第1計算情報と、前記第1公開情報と、の積である第1公開積を計算する第1公開積計算部と、前記第1装置に対し、前記第1公開積を送信する第2送信部と、を含み、前記第1装置は、前記第2装置から、前記第1公開積を受信する第2受信部を更に含み、前記第1公開積、前記第3秘密情報、及び前記第4秘密情報に基づいて、前記第1秘密情報及び前記第2秘密情報が秘密に管理された状態で、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される。
【発明の効果】
【0007】
本開示によれば、セキュリティが高まる。
【図面の簡単な説明】
【0008】
【
図1】計算システムで実行される連合学習の一例を示す図である。
【
図2】連合学習における計算式の一例を示す図である。
【
図4】第1実施形態における計算システムのハードウェア構成の一例を示す図である。
【
図5】第1実施形態の計算システムで実現される機能の一例を示す図である。
【
図6】第1実施形態の計算システムで実行される処理の一例を示す図である。
【
図7】第1公開情報及び第3秘密情報の計算方法の一例を示す図である。
【
図8】第2実施形態の計算システムで実現される機能の一例を示す図である。
【
図9】第2実施形態の計算システムで実行される処理の一例を示す図である。
【発明を実施するための形態】
【0009】
[1.第1実施形態における計算システムの概要]
本開示に係る計算システムの実施形態の一例である第1実施形態を説明する。第1実施形態では、機械学習における連合学習に計算システムが利用される場合を例に挙げる。連合学習は、複数の装置で分散して実行される学習の手法である。複数の装置のうちの何れかは、他の装置から学習結果を集約して学習モデルを作成する。
【0010】
従来の学習では、学習モデルの学習を実行する装置は、他の装置から訓練データを集める必要があった。このため、訓練データが第三者に流出する可能性があるので、セキュリティの観点で懸念が生じる。この点、連合学習では、個々の装置が、他の装置に対し、原則として訓練データを送信せずに学習結果だけを送信するので、セキュリティの観点で有用である。例えば、訓練データが個人情報を含む場合には、連合学習は、個人情報の流出を防止できる。
【0011】
図1は、計算システムで実行される連合学習の一例を示す図である。
図1の例では、4つのサービス0~3が互いに協力して連合学習を実行する場合が示されている。例えば、サービス0は、ユーザに関する各種情報を管理する管理会社が提供する情報管理サービスである。サービス1は、銀行が提供する金融サービスである。サービス2は、証券会社が提供する金融サービスである。サービス3は、保険会社が提供する保険サービスである。
【0012】
例えば、サービス0~3の各々におけるコンピュータが、互いに連携して連合学習を実行する。
図1では、コンピュータを省略している。以降、
図1の簡略化のために、連合学習における処理を実行する実行主体がサービス0~3であるものとして説明するが、実際には、実行主体は、サービス0~3の各々におけるコンピュータである。以降、サービス0~3を区別しない時は、符号を省略してサービスという。
【0013】
例えば、連合学習では、各サービスは、自身の学習モデルを初期化する。各サービスは、自身が管理する訓練データに基づいて、自身の学習モデルの学習を実行する。訓練データは、原則として、第三者に公開されない。訓練データは、各サービスで秘密に管理される。第1実施形態では、ユーザの年収を推定する学習モデルが連合学習で作成される場合を例に挙げるが、他の任意の目的で学習モデルが作成されてよい。例えば、年収以外の属性を推定する学習モデル、画像処理で利用される学習モデル、自然言語処理で利用される学習モデル、又はその他の学習モデルが連合学習で作成されてもよい。
【0014】
例えば、訓練データは、年収と相関関係があると考えられるデモグラフィック情報、サービスにおける決済履歴、ウェブページの閲覧履歴、又はその他の情報を含む。各サービスは、独自に訓練データを管理し、原則として外部に訓練データを送信しない。第1実施形態では、ユーザがサービス1~3の全てを利用するユーザの特徴が訓練データに示される場合を例に挙げるが、サービス1~3のうちの少なくとも1つを利用するユーザの特徴が訓練データに示されるようにすればよい。
【0015】
図2は、連合学習における計算式の一例を示す図である。例えば、サービス1は、銀行が秘密に管理するユーザの特徴x
1を示す訓練データに基づいて、ユーザの年収を推定する学習モデルM1の学習を実行する。サービス2は、証券会社が秘密に管理するユーザの特徴x
2を示す訓練データに基づいて、ユーザの年収を推定する学習モデルM2の学習を実行する。サービス3は、保険会社が秘密に管理するユーザの特徴x
3を示す訓練データに基づいて、ユーザの年収を推定する学習モデルM3の学習を実行する。
【0016】
図2の例では、特徴x
1,x
2,x
3を包含する概念を特徴Xと記載する。特徴Xは、n×mの行列形式である。nとmは、任意の自然数である。例えば、サービス0は、正解となる年収であるラベルyを管理する。
図2の例では、yは、n×1の行列(いわゆる列ベクトル)である。サービス0は、サービス1~3の各々によるローカルの学習結果を収集し、ユーザの年収を推定する学習モデルM0の学習を実行する。
【0017】
図2の例では、サービス0は、学習モデルM1による推定結果y
1、学習モデルM2による推定結果y
2、及び学習モデルM3による推定結果y
3に基づいて、ユーザの年収yを推定する学習モデルM0を作成する。即ち、学習モデルM0には、推定結果y
1~y
3が入力される。学習モデルM0は、推定結果y
1~y
3に基づいて特徴量を計算し、当該特徴量に応じた推定結果として、ユーザの年収yを出力する。学習モデルM0は、学習モデルM1~M3の推定結果y
1~y
3を利用するアンサンブル学習の一種であるスタッキング学習におけるモデルということができる。
【0018】
例えば、学習モデルM0は、学習によって調整されるパラメータとして、重み係数w
0~w
4を含む。学習モデルM0は、重み係数w
0~w
4以外の他のパラメータ(例えば、バイアス)を含んでもよい。
図2のiは、個々のユーザを示す数値である。
図2のように、正解となるラベルy
iと、学習モデルM0の推定結果y
i(
図2では上部に記号が付与されている)と、の差に基づいて損失Lが計算される。サービス0は、損失Lが小さくなるように、学習モデルM0の学習を実行する。
【0019】
例えば、サービス0は、サービス1~3の各々に対し、学習モデルM0の学習結果を送信する。サービス1は、学習モデルM0の学習結果に基づいて、学習モデルM1を更新する。サービス2は、学習モデルM0の学習結果に基づいて、学習モデルM2を更新する。サービス3は、学習モデルM0の学習結果に基づいて、学習モデルM3を更新する。サービス1~3の各々は、サービス0に対し、新たな学習結果を送信する。以降同様にして、サービス0と、サービス1~3の各々と、の間で学習結果の共有が繰り返されることによって、学習モデルM0~M3の改善が期待される。
【0020】
なお、
図1では、簡略化のために線を省略しているが、第1実施形態では、サービス1~3は、互いの学習結果を共有するものとする。例えば、サービス1は、サービス2,3から、学習モデルM2,M3の学習結果を取得し、学習モデルM1を更新する。サービス2は、サービス1,3から、学習モデルM1,M3の学習結果を取得し、学習モデルM2を更新する。サービス3は、サービス1,2から、学習モデルM1,M2の学習結果を取得し、学習モデルM3を更新する。
【0021】
以降、学習モデルM0~M4を区別しない時には、単に学習モデルMという。学習モデルMの学習手法自体は、公知の手法であってよく、例えば、勾配降下法又は誤差逆伝播法を利用可能である。第1実施形態では、学習モデルMの種類及び学習手法が互いに同じである場合を例に挙げるが、学習モデルMの種類及び学習手法の少なくとも一方は、互いに異なってもよい。例えば、学習モデルM0がニューラルネットワークであり、学習モデルM1がサポートベクターマシンであり、学習モデルM2が勾配ブースティング回帰木であり、学習モデルM3が線型回帰モデルであってもよい。学習手法は、これらの種類に応じた手法であればよい。
【0022】
第1実施形態では、学習モデルMがニューラルネットワークであり、かつ、学習モデルMの学習手法が勾配降下法である場合を例に挙げる。勾配降下法は、学習モデルMのパラメータを反復的に更新し、損失の勾配(傾き)を計算して勾配が最も降下する方向にパラメータが更新される。例えば、学習モデルM0の学習で勾配降下法が利用される場合、
図2のような微分の計算式が利用される。学習モデルM1~M3の学習で勾配降下法が利用される場合も、同様の計算式が利用される。勾配降下法自体は、公知の技術のため、
図2の計算式の詳細は省略する。
【0023】
例えば、
図2の計算式で下線を引いた部分は、サービス1に関する列ベクトルと、サービス2に関する列ベクトルと、の内積である。サービス1,2がそれぞれ学習モデルM1,M2の学習を実行する場合にも、同様の情報を取得する必要がある。この場合、サービス1,2が、互いに秘密に管理すべき情報を送信することなく、
図2の計算式で下線を引いた内積を取得することが求められている。
図2の表C1は、このような要求を満たすための問題を一般化したものである。計算システムは、表C1の問題を解決できれば、サービス間で秘密に管理する情報をサービス間で送信しあうことなく、内積を取得できる。
【0024】
図3は、
図2の表C1の問題の具体例を示す図である。例えば、あるサービスの第1装置Aは、m次元のベクトルaを秘密に管理する。他のサービスの第2装置Bは、m次元のベクトルbを秘密に管理する。例えば、m次元のベクトルに含まれる要素は、個々のユーザに関する何らかの特徴を示す。第2装置Bは、高いセキュリティが要求されている。第1装置A及び第2装置Bの各々は、セキュリティの観点で、ベクトルa及びベクトルbではなく、何らかの統合された情報を送信するといった制約条件がある。
【0025】
例えば、表C2のように、第2装置Bが、第1装置Aからベクトルaを取得することなく、ベクトルaと、ベクトルbと、の内積a・bを取得できれば、第2装置Bが管理する学習モデルMの学習で有用である。第1実施形態では、この手法の一例を説明する。逆に、表C3のように、第1装置Aが、第2装置Bからベクトルbを取得することなく、ベクトルaと、ベクトルと、の内積a・bを取得できれば、第1装置Aが管理する学習モデルMの学習で有用である。後述の第2実施形態では、この手法の一例を説明する。
【0026】
[2.第1実施形態における計算システムのハードウェア構成]
図4は、第1実施形態における計算システムのハードウェア構成の一例を示す図である。例えば、計算システム10は、後述の第1秘密情報yを秘密に管理する第1装置Aと、後述の第2秘密情報xを秘密に管理する第2装置Bと、を含む。第1装置Aと、第2装置Bと、の各々は、インターネット又はLAN等のネットワークNに接続される。
【0027】
第1装置Aは、第1サービスのコンピュータである。第1実施形態では、第1サービスが
図1のサービス1(銀行が提供するサービス)である場合を例に挙げるが、第1サービスは、他の任意のサービスであってよい。例えば、第1サービスは、
図1のサービス0,2,3であってもよいし、
図1には示さない他のサービスであってもよい。他のサービスは、通信サービス、電子商取引サービス、旅行予約サービス、電子決済サービス、又はポイント管理サービスであってもよい。
【0028】
例えば、第1装置Aは、サーバコンピュータ、パーソナルコンピュータ、タブレット、又はスマートフォンである。第1装置Aは、制御部A11、記憶部A12、及び通信部A13を含む。制御部A11は、少なくとも1つのプロセッサを含む。記憶部A12は、RAM等の揮発性メモリと、フラッシュメモリ等の不揮発性メモリと、を含む。通信部A13は、有線通信用の通信インタフェースと、無線通信用の通信インタフェースと、の少なくとも一方を含む。
【0029】
第2装置Bは、第2サービスのコンピュータである。例えば、第2装置Bは、サーバコンピュータ、パーソナルコンピュータ、タブレット、又はスマートフォンである。第2装置Bは、制御部B11、記憶部B12、及び通信部B13を含む。制御部B11、記憶部B12、及び通信部B13のハードウェア構成は、それぞれ制御部A11、記憶部A12、及び通信部A13と同様であってよい。
【0030】
第1実施形態では、第2サービスが
図1のサービス2(証券会社が提供するサービス)である場合を例に挙げるが、第2サービスは、他の任意のサービスであってもよい。例えば、第2サービスは、第1サービスと同じであってもよい。第2サービスが第1サービスと異なる場合には、第2サービスは、第1サービスの説明で例示したサービスのうち、第1サービス以外のものであってもよい。第1装置A及び第2装置Bは、何らかのサービスに関係なく、私的に又はその他の目的で利用される装置であってもよい。
【0031】
第1実施形態では、第2装置Bは、第1装置Aよりも高いセキュリティが要求される場合を例に挙げる。例えば、ネットワークNに送信可能なデータが制限されることは、セキュリティが高いことに相当する。第2装置Bが第1装置Aと同様のデータを外部に送信する場合には、第2装置Bは、第1装置Aよりもデータを加工する必要がある。例えば、第1装置Aは、行列形式のデータの行数を変えずにネットワークNに送信可能であるが、第2装置Bは、行列形式のデータの行数を変えてネットワークNに送信する必要がある。
【0032】
以降、第1装置A及び第2装置Bを区別しない場合には、単に装置と記載して符号を省略する。制御部A11,B11、記憶部A12,B12、及び通信部A13,B13を区別しない場合には、それぞれ制御部11、記憶部12、及び通信部13と記載して符号の冒頭のアルファベットを省略する。記憶部12に記憶されるプログラムは、ネットワークNを介して装置に供給されてもよい。また、コンピュータ読み取り可能な情報記憶媒体に記憶されたプログラムが、情報記憶媒体を読み取る読取部(例えば、光ディスクドライブやメモリカードスロット)、又は、外部機器とデータの入出力をするための入出力部(例えば、USBポート)を介して装置に供給されてもよい。
【0033】
また、計算システム10では、第1装置A、第2装置B、及び他の装置を含む複数の装置の各々が通信可能であってもよい。即ち、計算システム10は、第1装置A及び第2装置B以外の他の装置を含んでもよい。例えば、他の装置は、サーバコンピュータ、パーソナルコンピュータ、タブレット、又はスマートフォンである。計算システム10は、複数の他の装置を含んでもよい。
図1のように4つのサービスが存在する場合には、計算システム10は、第1装置A、第2装置B、及び少なくとも2つの他の装置を含む。
【0034】
例えば、計算システム10が他の装置を含む場合、第2装置Bは、複数の装置の中で相対的に高いセキュリティが要求される。他の装置は、第1装置A又は第2装置Bと同様の機能を有していてもよい。他の装置が第1装置Aと同様の機能を有する場合には、計算システム10が第1装置A及び他の装置を含むことは、計算システム10が複数の第1装置Aを含むことを意味する。他の装置が第2装置Bと同様の機能を有する場合には、計算システム10が第2装置B及び他の装置を含むことは、計算システム10が複数の第2装置Bを含むことを意味する。
【0035】
[3.第1実施形態の計算システムで実現される機能]
図5は、第1実施形態の計算システム10で実現される機能の一例を示す図である。例えば、第1装置Aは、第1データ記憶部A100、第1取得部A101、第1送信部A102、第2公開積計算部A103、第3送信部A104、及び第2受信部A105を含む。第1データ記憶部A100は、記憶部A12により実現される。第1取得部A101、第1送信部A102、第2公開積計算部A103、及び第3送信部A104は、制御部A11により実現される。
【0036】
例えば、第2装置Bは、第2データ記憶部B100、第2取得部B101、第1受信部B102、第1公開積計算部B103、第2送信部B104、第3受信部B105、及び第1秘密積計算部B106を含む。第2データ記憶部B100は、記憶部B12により実現される。第2取得部B101、第1受信部B102、第1公開積計算部B103、第2送信部B104、第3受信部B105、及び第1秘密積計算部B106は、制御部B11により実現される。
【0037】
[第1データ記憶部]
第1データ記憶部A100は、第1装置Aが実行する処理に必要なデータを記憶する。例えば、第1データ記憶部A100は、第1学習モデルAMと、第1秘密情報yと、を記憶する。第1学習モデルAMは、第1装置Aが管理する学習モデルMである。第1装置Aは、連合学習の手法を利用して、第1学習モデルAMの学習を実行する。
【0038】
例えば、第1データ記憶部A100は、第1秘密情報yを記憶する。第1秘密情報yは、第1装置Aで秘密に管理される情報である。第1秘密情報yは、原則として、第1装置A以外の他の装置に送信されない。第1秘密情報yは、1つの数値を示す情報、又は、複数の数値を含む情報である。第1実施形態では、第1秘密情報yがベクトル形式である場合を例に挙げるが、第1秘密情報yは、積を計算可能な情報であればよく、例えば、1つの数値、複数の数値、行列、配列、データフレーム、又はその他の情報であってもよい。
【0039】
第1実施形態では、第1装置Aは、連合学習における第1学習モデルAMの学習過程において、第1秘密情報yを計算する。例えば、第1装置Aは、第1学習モデルAMのパラメータの一部を第1秘密情報yとして取得してもよいし、当該一部から計算した情報を第1秘密情報yとして取得してもよい。例えば、第1秘密情報yは、現状の第1学習モデルAMのパラメータの一部と、現状の第1学習モデルAMの推定結果と、を乗算した値である。
【0040】
なお、第1秘密情報yは、第1サービスにおける複数のユーザの各々に関する情報であってもよい。例えば、第1秘密情報yは、現状の第1学習モデルAMのパラメータの一部と、現状の第1学習モデルAMによる複数のユーザの各々の年収の推定結果と、を乗算した値を含んでもよい。この場合、第1秘密情報yの次元数は、ユーザ数となる。他にも例えば、第1秘密情報yは、ユーザの年齢層又は性別といった個人情報が数値化(定量化)された情報であってもよい。第1秘密情報yは、ユーザの複数の個人情報の各々が数値化された情報であってもよい。
【0041】
また、第1サービスにおける複数のユーザの各々のユーザ識別情報と、第2サービスにおける複数のユーザの各々のユーザ識別情報と、は同じであってもよい。ユーザ識別情報は、ユーザを識別可能な情報である。例えば、ログインアカウント、メールアドレス、又は電話番号は、ユーザ識別情報に相当する。第1実施形態では、第1サービス及び第2サービスでユーザ識別情報が共通である場合を例に挙げるが、第1サービス及び第2サービスでユーザ識別情報が異なってもよい。この場合、ユーザごとに、第1サービスにおけるユーザ識別情報と、第2サービスにおけるユーザ識別情報と、の対応関係が定められたデータが存在するものとする。このデータは、第1データ記憶部A100、第2データ記憶部B100、又はその他の場所に記憶されているものとする。
【0042】
なお、第1データ記憶部A100が記憶するデータは、上記の例に限られない。第1データ記憶部A100は、任意のデータを記憶可能である。例えば、第1データ記憶部A100は、第1学習モデルAMの訓練データを記憶する。訓練データは、第1学習モデルAMに入力される入力部分と、当該入力部分に対応する出力部分と、を含む。出力部分は、学習時における正解に相当する。第1装置Aは、第1データ記憶部A100に記憶された訓練データに基づいて、第1学習モデルAMのローカルな学習を実行する。第1装置Aは、訓練データの入力部分が入力された場合に、訓練データの出力部分が出力されるように、第1学習モデルAMのパラメータを調整する。
【0043】
本実施形態では、ユーザの年収を推定する第1学習モデルAMが作成されるので、訓練データの入力部分は、ユーザに関する何らかの情報である。例えば、第1サービスにおけるユーザのデモグラフィック情報等の特徴が訓練データの入力部分に相当する。訓練データの出力部分は、ユーザの年収である。訓練データの出力部分に相当する年収は、ユーザが第1サービスに登録した年収であってもよいし、ユーザが他のサービスに登録した年収であってもよい。訓練データの出力部分に相当する年収は、第1学習モデルAMの作成者が指定した年収であってもよい。第1装置Aは、連合学習の手法を利用して、ローカルで学習された第1学習モデルAMを更新してもよい。この処理は、第2実施形態で説明する。例えば、第1データ記憶部A100は、上記説明したデータ以外にも、第1実施形態で説明する各種情報を記憶してよい。
【0044】
[第2データ記憶部]
第2データ記憶部B100は、第2装置Bが実行する処理に必要なデータを記憶する。例えば、第2データ記憶部B100は、第2学習モデルBMと、第2秘密情報xと、を記憶する。第2学習モデルBMは、第2装置Bが管理する学習モデルMである。第2装置Bは、連合学習の手法を利用して、第2学習モデルBMの学習を実行する。
【0045】
例えば、第2データ記憶部B100は、第2秘密情報xを記憶する。第2秘密情報xは、第2装置Bで秘密に管理される情報である。第2秘密情報xは、原則として、第2装置B以外の他の装置に送信されない。第2秘密情報xは、1つの数値を示す情報、又は、複数の数値を含む情報である。第1実施形態では、第2秘密情報xがベクトル形式である場合を例に挙げるが、第2秘密情報xは、積を計算可能な情報であればよく、例えば、1つの数値、複数の数値、行列、配列、データフレーム、又はその他の情報であってもよい。
【0046】
第1実施形態では、第2装置Bは、連合学習における第2学習モデルBMの学習過程において、第2秘密情報xを計算する。例えば、第2装置Bは、第2学習モデルBMのパラメータの一部を第2秘密情報xとして取得してもよいし、当該一部から計算した情報を第2秘密情報xとして取得してもよい。例えば、第2秘密情報xは、現状の第2学習モデルBMのパラメータの一部と、現状の第2学習モデルBMの推定結果と、を乗算した値である。
【0047】
なお、第2秘密情報xは、第2サービスにおける複数のユーザの各々に関する情報であってもよい。例えば、第2秘密情報xは、現状の第2学習モデルBMのパラメータの一部と、現状の第2学習モデルBMによる複数のユーザの各々の年収の推定結果と、を乗算した値を含んでもよい。この場合、第2秘密情報xの次元数は、ユーザ数となる。他にも例えば、第2秘密情報xは、ユーザの年齢層又は性別といった個人情報が数値化(定量化)された情報であってもよい。第2秘密情報xは、ユーザの複数の個人情報の各々が数値化された情報であってもよい。
【0048】
なお、第2データ記憶部B100が記憶するデータは、上記の例に限られない。第2データ記憶部B100は、任意のデータを記憶可能である。例えば、第2データ記憶部B100は、第2学習モデルBMの訓練データを記憶する。訓練データは、第2学習モデルBMに入力される入力部分と、当該入力部分に対応する出力部分と、を含む。出力部分は、学習時における正解に相当する。第2装置Bは、第2データ記憶部B100に記憶された訓練データに基づいて、第2学習モデルBMのローカルな学習を実行する。第2装置Bは、訓練データの入力部分が入力された場合に、訓練データの出力部分が出力されるように、第2学習モデルBMのパラメータを調整する。
【0049】
本実施形態では、ユーザの年収を推定する第2学習モデルBMが作成されるので、訓練データの入力部分は、ユーザに関する何らかの情報である。例えば、第2サービスにおけるユーザのデモグラフィック情報等の特徴が訓練データの入力部分に相当する。訓練データの出力部分は、ユーザの年収である。訓練データの出力部分に相当する年収は、ユーザが第2サービスに登録した年収であってもよいし、ユーザが他のサービスに登録した年収であってもよい。訓練データの出力部分に相当する年収は、第2学習モデルBMの作成者が指定した年収であってもよい。第2装置Bは、連合学習の手法を利用して、ローカルで学習された第2学習モデルBMを更新してもよい。この処理は、第2実施形態で説明する。例えば、第2データ記憶部B100は、上記説明したデータ以外にも、第1実施形態で説明する各種情報を記憶してよい。
【0050】
図6は、第1実施形態の計算システム10で実行される処理の一例を示す図である。第1装置Aが第1データ記憶部A100に記憶されたプログラムを実行し、第2装置Bが第2データ記憶部B100に記憶されたプログラムを実行することによって、
図6の処理が実行される。以降、
図6を参照しつつ、第1装置Aの第1取得部A101、第1送信部A102、第2公開積計算部A103、及び第3送信部A104と、第2装置Bの第2取得部B101、第1受信部B102、第1公開積計算部B103、第2送信部B104、第3受信部B105、及び第1秘密積計算部B106と、の詳細を説明する。
【0051】
[第1取得部]
第1取得部A101は、第1データ記憶部A100に記憶された第1秘密情報yを取得する(S100)。S100の処理により、第1秘密情報yが読み出されて不揮発性メモリの記憶領域に展開される。第1秘密情報yが予め当該記憶領域に展開されている場合には、S100の処理は実行されなくてもよい。第1取得部A101は、第2装置Bに公開される第1公開情報Yと、第1装置Aで秘密に管理される第3秘密情報vと、の積が第1秘密情報yになるように、第1公開情報Y及び第3秘密情報vを取得する(S101)。
【0052】
第1実施形態では、第1取得部A101が、自身で第1公開情報Y及び第3秘密情報vを計算することによって、第1公開情報Y及び第3秘密情報vを取得する場合を例に挙げる。このため、第1公開情報Y及び第3秘密情報vを取得することは、第1公開情報Y及び第3秘密情報vを計算することと同じ意味である。第1取得部A101は、自身で第1公開情報Y及び第3秘密情報vを計算するのではなく、外部で計算された第1公開情報Y及び第3秘密情報vを取得してもよい。この場合、第1装置Aは、第1取得部A101とは別に、第1公開情報Y及び第3秘密情報vを計算する機能を有する。当該機能による計算方法は、下記に説明する方法と同様であってよい。
【0053】
図7は、第1公開情報Y及び第3秘密情報vの計算方法の一例を示す図である。第1実施形態では、第1公開情報Y及び第3秘密情報vの各々が行列形式である場合を例に挙げるが、第1公開情報Y及び第3秘密情報vの各々は、積を計算可能な情報であればよく、行列形式に限られない。例えば、第1公開情報Y及び第3秘密情報vの各々は、1つの数値、複数の数値、行列、配列、データフレーム、又はその他の情報であってもよい。後述の第1部分Y´及び第2部分y´の各々も同様に、第1実施形態では、行列形式である場合を例に挙げるが、他の形式であってもよい。
【0054】
例えば、第1取得部A101は、少なくとも1つの乱数に基づいて、第1公開情報Y及び第3秘密情報vを取得する。第1実施形態では、第1公開情報Yを取得するための乱数と、第3秘密情報vを取得するための乱数と、が異なる場合を例に挙げるが、これらの乱数は、同じであってもよい。即ち、第1取得部A101は、同じ乱数に基づいて、第1公開情報Y及び第3秘密情報vの各々を取得してもよい。乱数を生成するためのアルゴリズムは、公知のアルゴリズムを利用可能である。例えば、第1取得部A101は、線型合同法、乗算型合同法、M系列法、メルセンヌ・ツイスター法に基づいて、乱数を生成してもよい。第1取得部A101は、自身で乱数を生成せずに、予め生成されて第1データ記憶部A100に記憶された乱数を取得してもよい。
【0055】
例えば、第1取得部A101は、第1乱数に基づいて、第1公開情報Yの一部である第1部分Y´を取得する。
図7の例では、第1秘密情報yは、n(nは自然数)×1の行列(列ベクトル)である。第1公開情報Yは、n×k(kは自然数)の行列である。第1部分Y´は、n×(k-1)の行列である。即ち、第1部分Y´は、第1公開情報Yよりも1列少ない。例えば、第1部分Y´は、第1公開情報Yの1列目からk-1列目までの部分である。第1取得部A101は、乱数生成アルゴリズムに基づいて、互いに異なるn×(k-1)個の第1乱数を生成し、第1部分Y´を構成する個々の要素(成分)として取得する。n×(k-1)個の数値の中に、偶然同じ第2乱数が存在してもよい。
【0056】
例えば、第1取得部A101は、第2乱数に基づいて、第3秘密情報v(
図7の例では、v´とv
k)を取得する。
図7の例では、第3秘密情報vは、k×1の行列(列ベクトル)である。第1取得部A101は、乱数生成アルゴリズムに基づいて、互いに異なるk個の第2乱数を生成し、第3秘密情報vを構成する個々の要素(成分)として取得する。k個の数値の中に、偶然同じ第2乱数が存在してもよい。第1取得部A101は、第1部分Y´と、第3秘密情報vと、に基づいて、第1公開情報Yの残りの部分である第2部分y´を取得する。
【0057】
例えば、第1取得部A101は、第1部分Y´に第2部分y´を結合した第1公開情報Yと、第3秘密情報vと、の積が第1秘密情報yになるように、第2部分y´を取得する。
図7の例では、第1取得部A101は、第1部分Y´と第3秘密情報vの一部v´(例えば、(k-1)×1の行列)との積と、第3秘密情報vの残りの部分v
k(例えば、スカラー値)と第2部分y´との積が第1秘密情報yになるように、第2部分y´を取得する。この計算は、逆行列を利用して実行されるようにしてもよい。このように、第1取得部A101は、自由な乱数である第1部分Y´を生成し、自由な乱数である上記一部v´及び上記残りの部分v
kを生成し、
図7における第2部分y´を取得する。
【0058】
なお、第1取得部A101は、第1乱数に基づかずに、第1公開情報Yを取得してもよい。例えば、第1取得部A101は、第2乱数に基づいて生成された第3秘密情報vと、第1公開情報Yと、の積が第1秘密情報yになるように、第1公開情報Yを取得してもよい。この場合、第1乱数は利用されない。逆に、第1取得部A101は、第2乱数に基づかずに、第3秘密情報vを取得してもよい。例えば、第1取得部A101は、第1乱数に基づいて生成された第1公開情報Yと、第3秘密情報vと、の積が第1秘密情報yになるように、第3秘密情報vを取得してもよい。この場合、第2乱数は利用されない。これらの場合には、第1取得部A101は、第1部分Y´及び第2部分y´といった複数の部分を取得せずに、第1公開情報Yを取得することになる。
【0059】
例えば、第1取得部A101は、乱数に基づかずに、第1公開情報Y及び第3秘密情報vを取得してもよい。例えば、第1取得部A101は、乱数に基づかずに生成された第3秘密情報vと、第1公開情報Yと、の積が第1秘密情報yになるように、第1公開情報Yを取得してもよい。この場合、第3秘密情報vは、計算システム10の管理者又はその他の者が指定した情報であってもよいし、乱数以外のアリゴリズムを利用して生成された情報であってもよい。逆に、第1公開情報Yが乱数に基づかない情報であってもよいが、第1公開情報Yは、ネットワークN上に送信されるので、第1実施形態では、第1公開情報Yは、直接的又は間接的に乱数が利用された情報であるものとする。
【0060】
[第2取得部]
第2取得部B101は、第2データ記憶部B100に記憶された第2秘密情報xを取得する(S102)。S102の処理により、第2秘密情報xが読み出されて不揮発性メモリの記憶領域に展開される。第2秘密情報xが予め当該記憶領域に展開されている場合には、S102の処理は実行されなくてもよい。第2取得部B101は、第1公開情報Yとの積が計算される第1計算情報Xと、第2装置Bで秘密に管理される第4秘密情報uと、の積が第2秘密情報xになるように、第1計算情報X及び第4秘密情報uを取得する(S103)。
【0061】
第1実施形態では、第2取得部B101が、自身で第1計算情報X及び第4秘密情報uを計算することによって、第1計算情報X及び第4秘密情報uを取得する場合を例に挙げる。このため、第1計算情報X及び第4秘密情報uを取得することは、第1計算情報X及び第4秘密情報uを計算することと同じ意味である。第2取得部B101は、自身で第1計算情報X及び第4秘密情報uを計算するのではなく、外部で計算された第1計算情報X及び第4秘密情報uを取得してもよい。この場合、第2装置Bは、第2取得部B101とは別に、第1計算情報X及び第4秘密情報uを計算する機能を有する。当該機能による計算方法は、下記に説明する方法と同様であってよい。
【0062】
第1実施形態では、第1計算情報X及び第4秘密情報uの計算方法と、第1公開情報Y及び第3秘密情報vの計算方法と、が同じ場合を例に挙げるが、これらの計算方法は、互いに異なってもよい。更に、第1実施形態では、第1計算情報X及び第4秘密情報uの各々が行列形式である場合を例に挙げるが、第1計算情報X及び第4秘密情報uの各々は、積を計算可能な情報であればよく、行列形式に限られない。例えば、第1計算情報X及び第4秘密情報uの各々は、1つの数値、複数の数値、行列、配列、データフレーム、又はその他の情報であってもよい。後述の第3部分X´及び第4部分x´の各々も同様に、第1実施形態では、行列形式である場合を例に挙げるが、他の形式であってもよい。
【0063】
例えば、第2取得部B101は、少なくとも1つの乱数に基づいて、第1計算情報X及び第4秘密情報uを取得する。第1実施形態では、第1計算情報Xを取得するための乱数と、第4秘密情報uを取得するための乱数と、が異なる場合を例に挙げるが、これらの乱数は、同じであってもよい。即ち、第2取得部B101は、同じ乱数に基づいて、第1計算情報X及び第4秘密情報uの各々を取得してもよい。乱数を生成するためのアルゴリズムは、公知のアルゴリズムを利用可能である。例えば、第2取得部B101は、線型合同法、乗算型合同法、M系列法、メルセンヌ・ツイスター法に基づいて、乱数を生成してもよい。第2取得部B101は、自身で乱数を生成せずに、予め生成されて第1データ記憶部A100に記憶された乱数を取得してもよい。
【0064】
例えば、第2取得部B101は、第3乱数に基づいて、第1計算情報Xの一部である第3部分X´を取得する。第2秘密情報xは、n×1の行列(列ベクトル)である。例えば、第1計算情報Xは、n×j(jはkよりも小さい自然数)の行列である。第3部分X´は、n×(j-1)の行列である。即ち、第3部分X´は、第1計算情報Xよりも1列少ない。例えば、第3部分X´は、第1計算情報Xの1列目からj-1列目までの部分である。第2取得部B101は、乱数生成アルゴリズムに基づいて、互いに異なるn×(j-1)個の第3乱数を生成し、第3部分X´を構成する個々の要素(成分)として取得する。n×(j-1)個の数値の中に、偶然同じ第4乱数が存在してもよい。
【0065】
例えば、第2取得部B101は、第4乱数に基づいて、第4秘密情報uを取得する。
図7の例では、第4秘密情報uは、j×1の行列(列ベクトル)である。第2取得部B101は、乱数生成アルゴリズムに基づいて、互いに異なるj個の第4乱数を生成し、第4秘密情報uを構成する個々の要素(成分)として取得する。j個の数値の中に、偶然同じ第4乱数が存在してもよい。第2取得部B101は、第3部分X´と、第4秘密情報uと、に基づいて、第1計算情報Xの残りの部分である第4部分x´を取得する。
【0066】
例えば、第2取得部B101は、第3部分X´に第4部分x´を結合した第1計算情報Xと、第4秘密情報uと、の積が第2秘密情報xになるように、第4部分x´を取得する。第2取得部B101は、第3部分X´と第4秘密情報uの一部u´(例えば、(j-1)×1の行列)との積と、第4秘密情報uの残りの部分uj(例えば、スカラー値)と第4部分x´との積が第2秘密情報xになるように、第4部分x´を取得する。この計算は、逆行列を利用して実行されるようにしてもよい。
【0067】
なお、第2取得部B101は、第3乱数に基づかずに、第1計算情報Xを取得してもよい。例えば、第2取得部B101は、第4乱数に基づいて生成された第4秘密情報uと、第1計算情報Xと、の積が第2秘密情報xになるように、第1計算情報Xを取得してもよい。この場合、第3乱数は利用されない。逆に、第2取得部B101は、第4乱数に基づかずに、第4秘密情報uを取得してもよい。例えば、第2取得部B101は、第3乱数に基づいて生成された第1計算情報Xと、第4秘密情報uと、の積が第2秘密情報xになるように、第4秘密情報uを取得してもよい。この場合、第4乱数は利用されない。これらの場合には、第2取得部B101は、第3部分X´及び第4部分x´といった複数の部分を取得せずに、第1計算情報Xを取得することになる。
【0068】
例えば、第2取得部B101は、乱数に基づかずに、第1計算情報X及び第4秘密情報uを取得してもよい。例えば、第2取得部B101は、乱数に基づかずに生成された第4秘密情報uと、第1計算情報Xと、の積が第2秘密情報xになるように、第1計算情報Xを取得してもよい。この場合、第4秘密情報uは、計算システム10の管理者又はその他の者が指定した情報であってもよいし、乱数以外のアリゴリズムを利用して生成された情報であってもよい。逆に、第1計算情報Xが乱数に基づかない情報であってもよいが、第1計算情報Xは、ネットワークN上に送信されるので、第1実施形態では、第1計算情報Xは、直接的又は間接的に乱数が利用された情報であるものとする。
【0069】
[第1送信部]
第1装置Aの第1送信部A102は、第2装置Bに対し、第1公開情報Yを送信する(S104)。第1実施形態では、第1送信部A102が、所定の暗号化アルゴリズムに基づいて第1公開情報Yを暗号化したうえで第2装置Bに送信する場合を例に挙げるが、第1送信部A102は、第2装置Bに対し、第1公開情報Yを暗号化せずに平文で送信してもよい。
【0070】
[第1受信部]
第2装置Bの第1受信部B102は、第1装置Aから、第1公開情報Yを受信する(S105)。第1実施形態では、第1公開情報Yが暗号化されているので、第1受信部B102は、第1装置Aから受信した第1公開情報Yを復号化する。第1公開情報Yが平文で送信される場合には、第1受信部B102は、復号化を行わない。
【0071】
[第1公開積計算部]
第2装置Bの第1公開積計算部B103は、第1計算情報Xと、第1公開情報Yと、の積である第1公開積XTYを計算する(S106)。S106では、第1公開積計算部B103は、行列の積を計算するための公知の計算方法に基づいて、第1計算情報Xと、第1公開情報Yと、の積を計算すればよい。第1公開積計算部B103は、第2秘密情報xの行数と、第1公開積XTYの行数と、が異なるように、第1公開積XTYを計算可能であってもよい。ある行列と他の行列との積が計算される場合には、これら2つの行列は、互いに積の計算が可能な行数と列数であるものとする。この点は、S106以外の処理における積の計算も同様である。
【0072】
[第2送信部]
第2装置Bの第2送信部B104は、第1装置Aに対し、第1公開積XTYを送信する(S107)。第1実施形態では、第2送信部B104が、所定の暗号化アルゴリズムに基づいて第1公開積XTYを暗号化したうえで第1装置Aに送信する場合を例に挙げるが、第2送信部B104は、第1装置Aに対し、第1公開積XTYを暗号化せずに平文で送信してもよい。
【0073】
[第2受信部]
第1装置Aの第2受信部A105は、第2装置Bから、第1公開積XTYを受信する(S108)。第1実施形態では、第1公開積XTYが暗号化されているので、第2受信部A105は、第2装置Bから受信した第1公開積XTYを復号化する。第1公開情報Yが平文で送信される場合には、第2受信部A105は、復号化を行わない。
【0074】
[第2公開積計算部]
第2公開積計算部A103は、第1公開積XTYと、第3秘密情報vと、の積である第2公開積(XTY)・vを計算する(S109)。S109では、第2公開積計算部A103は、行列の積を計算するための公知の計算方法に基づいて、第1公開積XTYと、第3秘密情報vと、の積を計算すればよい。
【0075】
[第3送信部]
第1装置Aの第3送信部A104は、第2装置Bに対し、第2公開積XTYvを送信する(S110)。XTYvは、(XTY)・vと同じ意味であり、(XTY)・vの計算結果を示す。第1実施形態では、第3送信部A104が、所定の暗号化アルゴリズムに基づいて第1公開情報Yを暗号化したうえで第2装置Bに送信する場合を例に挙げるが、第1送信部A102は、第2装置Bに対し、第1公開情報Yを暗号化せずに平文で送信してもよい。
【0076】
[第3受信部]
第3受信部B105は、第1装置Aから、第2公開積XTYvを受信する(S111)。第1実施形態では、第2公開積XTYvが暗号化されているので、第3受信部B105は、第1装置Aから受信した第2公開積XTYvを復号化する。第2公開積XTYvが平文で送信される場合には、第3受信部B105は、復号化を行わない。
【0077】
[第1秘密積計算部]
計算システム10では、第1装置Aの第1公開積XTY、第3秘密情報v、及び第4秘密情報uに基づいて、第1秘密情報y及び第2秘密情報xが秘密に管理された状態で、第1秘密情報yと、第2秘密情報xと、の積である秘密積xTyが計算される。第1実施形態では、第2装置Bが秘密積xTyを計算する機能を有する場合を説明する。
【0078】
第1秘密積計算部B106は、第4秘密情報uと、第2公開積XTYvと、に基づいて、秘密積xTy≡uT・(XTYv)を計算する(S112)。第1実施形態では、秘密積xTyが、第1秘密情報yと、第2秘密情報xと、の内積である場合を例に挙げるが、第1秘密積計算部B106は、内積ではなく、第1秘密情報yと、第2秘密情報xと、の積を計算してもよい。S112では、第1秘密積計算部B106は、行列同士の内積を計算するための公知の計算方法に基づいて、第4秘密情報uと、第2公開積XTYvと、の内積を計算すればよい。S112における数式の右辺は、互いの積が第1秘密情報yになる第1公開情報Y及び第3秘密情報vと、互いの積が第2秘密情報xになる第4秘密情報u及び第1計算情報Xと、の積に相当するので、第2装置Bは、第1秘密情報yと、第2秘密情報xと、の内積と同じ値を計算できる。
【0079】
例えば、計算システム10では、秘密積x
Tyに基づいて、連合学習における学習モデルMの学習が実行される。例えば、学習モデルMは、複数の他の学習モデルの各々の推定結果に基づいて、所定の推定を実行するスタッキング学習におけるモデルであってもよい。第1実施形態では、第2装置Bは、秘密積x
Tyに基づいて、第2学習モデルBMの学習を実行する。例えば、第2装置Bは、
図2に示す計算式に基づいて、第2学習モデルBMの学習を実行する。
【0080】
[4.第1実施形態のまとめ]
第1実施形態の第1装置Aは、第2装置Bに公開される第1公開情報Yと、第1装置Aで秘密に管理される第3秘密情報vと、の積が第1秘密情報yになるように、第1公開情報Y及び第3秘密情報vを取得する。第1装置Aは、第2装置Bに対し、第1公開情報Yを送信する。第2装置Bは、第1装置Aから、第1公開情報Yを受信する。第2装置Bは、第1公開情報Yとの積が計算される第1計算情報Xと、第2装置Bで秘密に管理される第4秘密情報uと、の積が第2秘密情報xになるように、第1計算情報X及び第4秘密情報uを取得する。第2装置Bは、第1計算情報Xと、第1公開情報Yと、の積である第1公開積XTYを計算する。第2装置Bは、第1装置Aに対し、第1公開積XTYを送信する。第1装置Aは、第2装置Bから、第1公開積XTYを受信する。計算システム10では、第1公開積XTY、第3秘密情報v、及び第4秘密情報uに基づいて、第1秘密情報y及び第2秘密情報xが秘密に管理された状態で、第1秘密情報yと、第2秘密情報xと、の積である秘密積xTyが計算される。これにより、第1装置Aが秘密に管理する第1秘密情報yと、第2装置Bが秘密に管理する第2秘密情報xと、が直接的に送信されるわけではないので、秘密積xTyを計算する場合のセキュリティが高まる。第三者は、第1装置A及び第2装置Bの間でやりとりされる情報を取得しても、第1秘密情報y及び第2秘密情報xを特定できないので、第1秘密情報y及び第2秘密情報xが第三者に漏洩するリスクを低減できる。
【0081】
また、第1装置Aは、第1公開積XTYと、第3秘密情報vと、の積である第2公開積(XTY)・vを計算する。第1装置Aは、第2装置Bに対し、第2公開積XTYvを送信する。第2装置Bは、第1装置Aから、第2公開積XTYvを受信する。第2装置Bは、第4秘密情報uと、第2公開積XTYvと、に基づいて、秘密積xTy≡uT・(XTYv)を計算する。これにより、第2装置Bが秘密積xTyを計算する場合のセキュリティが高まる。仮に第三者が第1公開積XTY及び第2公開積XTYvを取得したとしても、それだけでは第1秘密情報y及び第2秘密情報xを特定できないので、第1秘密情報y及び第2秘密情報xが第三者に漏洩するリスクを低減できる。
【0082】
また、計算システム10は、少なくとも1つの乱数に基づいて、第1公開情報Y及び第3秘密情報vを取得する。これにより、第三者は、第1公開情報Y及び第3秘密情報vを取得しても、これらが乱数に基づいた情報であり第1秘密情報y及び第2秘密情報xを特定できないので、第1秘密情報y及び第2秘密情報xが第三者に漏洩するリスクを低減できる。
【0083】
また、第1装置Aは、第1乱数に基づいて、第1公開情報Yの一部である第1部分Y´を取得する。第1装置Aは、第2乱数に基づいて、第3秘密情報vを取得する。第1装置Aは、第1部分Y´と、第3秘密情報vと、に基づいて、第1公開情報Yの残りの部分である第2部分y´を取得する。これにより、第1公開情報Y及び第3秘密情報vの両方に乱数の要素を含ませることができるので、セキュリティがより高まる。
【0084】
また、第2装置Bは、少なくとも1つの乱数に基づいて、第1計算情報X及び第4秘密情報uを取得する。これにより、第三者は、第1計算情報X及び第4秘密情報uを取得しても、これらが乱数に基づいた情報であり第1秘密情報y及び第2秘密情報xを特定できないので、第1秘密情報y及び第2秘密情報xが第三者に漏洩するリスクを低減できる。
【0085】
また、第2装置Bは、第3乱数に基づいて、第1計算情報Xの一部である第3部分X´を取得する。第2装置Bは、第4乱数に基づいて、第4秘密情報uを取得する。第2装置Bは、第3部分X´と、第4秘密情報uと、に基づいて、第1計算情報Xの残りの部分である第4部分x´を取得する。これにより、第1計算情報X及び第4秘密情報uの両方に乱数の要素を含ませることができるので、セキュリティがより高まる。
【0086】
また、第1秘密情報y及び第2秘密情報xの各々は、ベクトル形式である。第1公開情報Y、第3秘密情報v、第1計算情報X、及び第4秘密情報uの各々は、行列形式である。秘密積xTyは、内積である。これにより、計算システム10は、第1装置A及び第2装置Bの間で秘密にすべきベクトルを送信しなくても、ベクトルの内積を計算できる。
【0087】
また、第2装置Bは、第1装置Aよりも高いセキュリティが要求される。第2装置Bは、第2秘密情報xの行数と、第1公開積XTYの行数と、が異なるように、第1公開積XTYを計算可能である。これにより、計算システム10は、実際の行数と変えたうえで情報を送信又は受信するといったことが第2装置Bに要求されたとしても対応できるので、第2装置Bに要求されるセキュリティの基準を満たすことができる。
【0088】
また、第1秘密情報y及び第2秘密情報xの各々は、ベクトル形式である。第1公開情報Y、第3秘密情報v、第1計算情報X、第4秘密情報u、第1部分Y´、及び第2部分y´の各々は、行列形式である。秘密積xTyは、内積である。これにより、計算システム10は、第1装置A及び第2装置Bの間で秘密にすべきベクトルを送信しなくても、ベクトルの内積を計算できる。
【0089】
また、第1秘密情報y及び第2秘密情報xの各々は、ベクトル形式であり、第1公開情報Y、第3秘密情報v、第1計算情報X、第4秘密情報u、第3部分X´、及び第4部分x´の各々は、行列形式である。秘密積xTyは、内積である。これにより、計算システム10は、第1装置A及び第2装置Bの間で秘密にすべきベクトルを送信しなくても、ベクトルの内積を計算できる。
【0090】
また、計算システム10では、第1装置A、第2装置B、及び他の装置を含む複数の装置の各々が通信可能である。第2装置Bは、複数の装置の中で相対的に高いセキュリティが要求される。計算システム10は、第2装置Bに相対的に高いセキュリティが要求されたとしても、第1装置A及び第2装置Bの間で秘密にすべきベクトルを送信しなくても、ベクトルの内積を計算できるので、第2装置Bに要求されたセキュリティの基準を満たすことができる。
【0091】
また、計算システム10では、秘密積xTyに基づいて、連合学習における学習モデルMの学習が実行される。これにより、連合学習における学習時のセキュリティが高まる。
【0092】
また、第1装置Aは、連合学習における第1学習モデルAMの学習過程において、第1秘密情報yを計算する。第2装置Bは、連合学習における第2学習モデルBMの学習過程において、第2秘密情報xを計算する。これにより、連合学習における学習時のセキュリティが高まる。
【0093】
また、学習モデルMは、複数の他の学習モデルMの各々の推定結果に基づいて、所定の推定を実行するスタッキング学習におけるモデルである。これにより、スタッキング学習における学習時のセキュリティが高まる。
【0094】
また、第1秘密情報yは、第1サービスにおける複数のユーザの各々に関する情報である。第2秘密情報xは、第2サービスにおける複数のユーザの各々に関する情報である。計算システム10は、ユーザに関する情報を秘密に管理したまま積を計算できるので、ユーザに関する情報が漏洩するリスクを低減できる。
【0095】
また、第1サービスにおける複数のユーザの各々のユーザ識別情報と、第2サービスにおける複数のユーザの各々のユーザ識別情報と、は同じである。これにより、第1装置A及び第2装置Bの間で送信される情報が、どのユーザに関する情報なのかを特定しやすくなる。
【0096】
[5.第2実施形態における機能]
次に、計算システム10の別実施形態である第2実施形態を説明する。第2実施形態の計算システム10は、第1装置Aが内積xTyを計算する。なお、第1実施形態と同様の点については、説明を省略する。
【0097】
図8は、第2実施形態の計算システム10で実現される機能の一例を示す図である。例えば、第1装置Aは、第3取得部A106、第3公開積計算部A107、第4送信部A108、第5受信部A109、及び第2秘密積計算部A110を含む。第3取得部A106、第3公開積計算部A107、第4送信部A108、第5受信部A109、及び第2秘密積計算部A110の各々は、制御部A11により実現される。第2装置Bは、第4受信部B107、第4公開積計算部B108、及び第5送信部B109を含む。第4受信部B107、第4公開積計算部B108、及び第5送信部B109の各々は、制御部B11により実現される。
【0098】
図9は、第2実施形態の計算システム10で実行される処理の一例を示す図である。S200,S201,S203,S204の処理は、それぞれS100~S103の処理と同様である。
【0099】
[第3取得部]
第1装置Aの第3取得部A106は、第1装置Aで秘密に管理される第5秘密情報V及び第6秘密情報wの積が第3秘密情報vになるように、第5秘密情報V及び第6秘密情報wを取得する(S202)。例えば、第3取得部A106は、第1取得部A101と同様の方法で、少なくとも1つの乱数に基づいて、第5秘密情報V及び第6秘密情報wを取得してもよい。この場合の計算方法は、第1取得部A101の処理で説明した通りである。
【0100】
第2実施形態では、第3取得部A106が、自身で第5秘密情報V及び第6秘密情報wを計算することによって、第5秘密情報V及び第6秘密情報wを取得する場合を例に挙げる。このため、第5秘密情報V及び第6秘密情報wを取得することは、第5秘密情報V及び第6秘密情報wを計算することと同じ意味である。第3取得部A106は、自身で第5秘密情報V及び第6秘密情報wを計算するのではなく、外部で計算された第5秘密情報V及び第6秘密情報wを取得してもよい。この場合、第1装置Aは、第3取得部A106とは別に、第5秘密情報V及び第6秘密情報wを計算する機能を有する。当該機能による計算方法は、下記に説明する方法と同様であってよい。
【0101】
第2実施形態では、第5秘密情報V及び第6秘密情報wの各々が行列形式である場合を例に挙げるが、第5秘密情報V及び第6秘密情報wの各々は、積を計算可能な情報であればよく、行列形式に限られない。例えば、第5秘密情報V及び第6秘密情報wの各々は、1つの数値、複数の数値、行列、配列、データフレーム、又はその他の情報であってもよい。第3取得部A106が第1取得部A101と同様の方法で第5秘密情報V及び第6秘密情報wを取得する場合には、第1実施形態で説明した第1部分Y´及び第2部分y´の各々に相当する部分が行列形式である場合を例に挙げるが、他の形式であってもよい。なお、第3取得部A106は、乱数に基づかずに、第5秘密情報V及び第6秘密情報wを取得してもよい。この場合の第5秘密情報V及び第6秘密情報wの計算方法は、乱数に基づかない第1公開情報Y及び第3秘密情報vの計算方法と同様であってよい。
【0102】
[第3公開積計算部]
続くS205~S209の処理は、それぞれS104~S108の処理と同様である。第1装置Aの第3公開積計算部A107は、第1公開積XTYと、第5秘密情報Vと、の積である第3公開積(XTY)・Vを計算する(S210)。S210では、第3公開積計算部A107は、行列の積を計算するための公知の計算方法に基づいて、第1公開積XTYと、第5秘密情報Vと、の積を計算すればよい。
【0103】
[第4送信部]
第1装置Aの第4送信部A108は、第2装置Bに対し、第3公開積XTYVを送信する(S211)。XTYVは、(XTY)・Vと同じ意味であり、(XTY)・Vの計算結果を示す。第2実施形態では、第4送信部A108が、所定の暗号化アルゴリズムに基づいて第3公開積XTYVを暗号化したうえで第2装置Bに送信する場合を例に挙げるが、第4送信部A108は、第2装置Bに対し、第3公開積XTYVを暗号化せずに平文で送信してもよい。
【0104】
[第4受信部]
第2装置Bの第4受信部B107は、第1装置Aから、第3公開積XTYVを受信する(S212)。第2実施形態では、第3公開積XTYVが暗号化されているので、第4受信部B107は、第1装置Aから受信した第3公開積XTYVを復号化する。第3公開積XTYVが平文で送信される場合には、第4受信部B107は、復号化を行わない。
【0105】
[第4公開積計算部]
第4公開積計算部B108は、第4秘密情報uと、第3公開積XTYVと、に基づいて、第4公開積uT・(XTYV)を計算する(S213)。S213では、第4公開積計算部B108は、行列の積を計算するための公知の計算方法に基づいて、第4秘密情報uと、第3公開積XTYVと、の積を計算すればよい。
【0106】
[第5送信部]
第2装置Bの第5送信部B109は、第1装置Aに対し、第4公開積uTXTYVを送信する(S214)。uTXTYVは、uT・(XTYV)と同じ意味であり、uT・(XTYV)の計算結果を示す。第2実施形態では、第5送信部B109が、所定の暗号化アルゴリズムに基づいて第4公開積uTXTYVを暗号化したうえで第2装置Bに送信する場合を例に挙げるが、第5送信部B109は、第2装置Bに対し、第4公開積uTXTYVを暗号化せずに平文で送信してもよい。
【0107】
[第5受信部]
第1装置Aの第5受信部A109は、第2装置Bから、第4公開積uTXTYVを受信する(S215)。第2実施形態では、第4公開積uTXTYVが暗号化されているので、第5受信部A109は、第1装置Aから受信した第4公開積uTXTYVを復号化する。第4公開積uTXTYVが平文で送信される場合には、第5受信部A109は、復号化を行わない。
【0108】
[第2秘密積計算部]
第1装置Aの第2秘密積計算部A110は、第4公開積uTXTYVと、第6秘密情報wと、に基づいて、秘密積xTy≡(uTXTYV)・wを計算する(S216)。第2実施形態では、秘密積xTyが、第4公開積uTXTYVと、第6秘密情報wと、の内積である場合を例に挙げるが、第2秘密積計算部A110は、内積ではなく、第4公開積uTXTYVと、第6秘密情報wと、の積を計算してもよい。S216では、第2秘密積計算部A110は、行列同士の内積を計算するための公知の計算方法に基づいて、第4公開積uTXTYVと、第6秘密情報wと、の内積を計算すればよい。S216における数式の右辺は、互いの積が第1秘密情報yになる第1公開情報Y、第5秘密情報V、及び第6秘密情報wと、互いの積が第2秘密情報xになる第4秘密情報u及び第1計算情報Xと、の積に相当するので、第1装置Aは、第1秘密情報yと、第2秘密情報xと、の内積と同じ値を計算できる。
【0109】
[6.第2実施形態のまとめ]
第2実施形態の第1装置Aは、第1装置Aで秘密に管理される第5秘密情報V及び第6秘密情報wの積が第3秘密情報vになるように、第5秘密情報V及び第6秘密情報wを取得する。第1装置Aは、第1公開積XTYと、第5秘密情報Vと、の積である第3公開積(XTY)・Vを計算する。第1装置Aは、第2装置Bに対し、第3公開積XTYVを送信する。第2装置Bは、第1装置Aから、第3公開積XTYVを受信する。第2装置Bは、第4秘密情報uと、第3公開積XTYVと、に基づいて、第4公開積uT・(XTYV)を計算する。第2装置Bは、第1装置Aに対し、第4公開積uTXTYVを送信する。第1装置Aは、第2装置Bから、第4公開積uTXTYVを受信する。第1装置Aは、第4公開積uTXTYVと、第6秘密情報wと、に基づいて、秘密積xTy≡(uTXTYV)・wを計算する。これにより、第1装置Aが秘密積xTyを計算する場合のセキュリティが高まる。仮に第三者が第1公開積XTY、第3公開積XTYV、及び第4公開積uTXTYVを取得したとしても、それだけでは第1秘密情報y及び第2秘密情報xを特定できないので、第1秘密情報y及び第2秘密情報xが第三者に漏洩するリスクを低減できる。
【0110】
また、第1秘密情報y及び第2秘密情報xの各々は、ベクトル形式である。第1公開情報Y、第3秘密情報v、第1計算情報X、第4秘密情報u、第5秘密情報V、及び第6秘密情報wの各々は、行列形式である。秘密積xTyは、内積である。これにより、計算システム10は、第1装置A及び第2装置Bの間で秘密にすべきベクトルを送信しなくても、ベクトルの内積を計算できる。
【0111】
[7.変形例]
なお、本開示は、以上に説明した実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲で、適宜変更可能である。例えば、計算システム1は、第1実施形態で説明した機能と、第2実施形態で説明した機能と、の両方を有していてもよい。計算システム1は、連合学習以外の他の場面にも適用可能である。計算システム1は、何らかの目的で複数の秘密情報同士の積が計算される場面に適用可能である。
【0112】
例えば、第1装置A又は第2装置Bで実現されるものとして説明した機能は、計算システム10における少なくとも1つのコンピュータにより実現されるようにすればよく、複数のコンピュータで機能が分担されてもよい。この場合、複数のコンピュータの各々が、他のコンピュータに対し、自身の処理結果を送信することによって、機能の分担が実現されるようにすればよい。
【0113】
[8.付記]
例えば、計算システムは、下記のような構成も可能である。
(1)
第1秘密情報を秘密に管理する第1装置と、第2秘密情報を秘密に管理する第2装置と、を含み、
前記第1装置は、
前記第2装置に公開される第1公開情報と、前記第1装置で秘密に管理される第3秘密情報と、の積が前記第1秘密情報になるように、前記第1公開情報及び前記第3秘密情報を取得する第1取得部と、
前記第2装置に対し、前記第1公開情報を送信する第1送信部と、
を含み、
前記第2装置は、
前記第1装置から、前記第1公開情報を受信する第1受信部と、
前記第1公開情報との積が計算される第1計算情報と、前記第2装置で秘密に管理される第4秘密情報と、の積が前記第2秘密情報になるように、前記第1計算情報及び前記第4秘密情報を取得する第2取得部と、
前記第1計算情報と、前記第1公開情報と、の積である第1公開積を計算する第1公開積計算部と、
前記第1装置に対し、前記第1公開積を送信する第2送信部と、
を含み、
前記第1装置は、前記第2装置から、前記第1公開積を受信する第2受信部を更に含み、
前記第1公開積、前記第3秘密情報、及び前記第4秘密情報に基づいて、前記第1秘密情報及び前記第2秘密情報が秘密に管理された状態で、前記第1秘密情報と、前記第2秘密情報と、の積である秘密積が計算される、
計算システム。
(2)
前記第1装置は、
前記第1公開積と、前記第3秘密情報と、の積である第2公開積を計算する第2公開積計算部と、
前記第2装置に対し、前記第2公開積を送信する第3送信部と、
を更に含み、
前記第2装置は、
前記第1装置から、前記第2公開積を受信する第3受信部と、
前記第4秘密情報と、前記第2公開積と、に基づいて、前記秘密積を計算する第1秘密積計算部と、
を更に含む(1)に記載の計算システム。
(3)
前記第1装置は、
前記第1装置で秘密に管理される第5秘密情報及び第6秘密情報の積が前記第3秘密情報になるように、前記第5秘密情報及び前記第6秘密情報を取得する第3取得部と、
前記第1公開積と、前記第5秘密情報と、の積である第3公開積を計算する第3公開積計算部と、
前記第2装置に対し、前記第3公開積を送信する第4送信部と、
を含み、
前記第2装置は、
前記第1装置から、前記第3公開積を受信する第4受信部と、
前記第4秘密情報と、前記第3公開積と、に基づいて、第4公開積を計算する第4公開積計算部と、
前記第1装置に対し、前記第4公開積を送信する第5送信部と、
を更に含み、
前記第1装置は、
前記第2装置から、前記第4公開積を受信する第5受信部と、
前記第4公開積と、前記第6秘密情報と、に基づいて、前記秘密積を計算する第2秘密積計算部と、
を更に含む(1)又は(2)に記載の計算システム。
(4)
前記第1取得部は、少なくとも1つの乱数に基づいて、前記第1公開情報及び前記第3秘密情報を取得する、
(1)~(3)の何れかに記載の計算システム。
(5)
前記第1取得部は、
第1乱数に基づいて、前記第1公開情報の一部である第1部分を取得し、
第2乱数に基づいて、前記第3秘密情報を取得し、
前記第1部分と、前記第3秘密情報と、に基づいて、前記第1公開情報の残りの部分である第2部分を取得する、
(4)に記載の計算システム。
(6)
前記第2取得部は、少なくとも1つの乱数に基づいて、前記第1計算情報及び前記第4秘密情報を取得する、
(1)~(5)の何れかに記載の計算システム。
(7)
前記第2取得部は、
第3乱数に基づいて、前記第1計算情報の一部である第3部分を取得し、
第4乱数に基づいて、前記第4秘密情報を取得し、
前記第3部分と、前記第4秘密情報と、に基づいて、前記第1計算情報の残りの部分である第4部分を取得する、
(6)に記載の計算システム。
(8)
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、及び前記第4秘密情報の各々は、行列形式であり、
前記秘密積は、内積である、
(1)~(7)の何れかに記載の計算システム。
(9)
前記第2装置は、前記第1装置よりも高いセキュリティが要求され、
前記第1公開積計算部は、前記第2秘密情報の行数と、前記第1公開積の行数と、が異なるように、前記第1公開積を計算可能である、
(8)に記載の計算システム。
(10)
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、前記第4秘密情報、前記第5秘密情報、及び前記第6秘密情報の各々は、行列形式であり、
前記秘密積は、内積である、
(3)に記載の計算システム。
(11)
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、前記第4秘密情報、前記第1部分、及び前記第2部分の各々は、行列形式であり、
前記秘密積は、内積である、
(5)に記載の計算システム。
(12)
前記第1秘密情報及び前記第2秘密情報の各々は、ベクトル形式であり、
前記第1公開情報、前記第3秘密情報、前記第1計算情報、前記第4秘密情報、前記第3部分、及び前記第4部分の各々は、行列形式であり、
前記秘密積は、内積である、
(7)に記載の計算システム。
(13)
前記計算システムでは、前記第1装置、前記第2装置、及び他の装置を含む複数の装置の各々が通信可能であり、
前記第2装置は、前記複数の装置の中で相対的に高いセキュリティが要求される、
(1)~(12)の何れかに記載の計算システム。
(14)
前記計算システムでは、前記秘密積に基づいて、連合学習における学習モデルの学習が実行される、
(1)~(13)の何れかに記載の計算システム。
(15)
前記第1装置は、前記連合学習における第1学習モデルの学習過程において、前記第1秘密情報を計算し、
前記第2装置は、前記連合学習における第2学習モデルの学習過程において、前記第2秘密情報を計算する、
(14)に記載の計算システム。
(16)
前記学習モデルは、複数の他の学習モデルの各々の推定結果に基づいて、所定の推定を実行するスタッキング学習におけるモデルである、
(14)又は(15)に記載の計算システム。
(17)
前記第1秘密情報は、第1サービスにおける複数のユーザの各々に関する情報であり、
前記第2秘密情報は、第2サービスにおける前記複数のユーザの各々に関する情報である、
(1)~(16)の何れかに記載の計算システム。
(18)
前記第1サービスにおける前記複数のユーザの各々のユーザ識別情報と、前記第2サービスにおける前記複数のユーザの各々のユーザ識別情報と、は同じである、
(17)に記載の計算システム。
【符号の説明】
【0114】
10 計算システム、A 第1装置、B 第2装置、A11 制御部、A12 記憶部、A13 通信部、B11 制御部、B12 記憶部、B13 通信部、A100 第1データ記憶部、A101 第1取得部、A102 第1送信部、A103 第2公開積計算部、A104 第3送信部、A105 第2受信部、B100 第2データ記憶部、B101 第2取得部、B102 第1受信部、B103 第1公開積計算部、B104 第2送信部、B105 第3受信部、B106 第1秘密積計算部。