IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本電気株式会社の特許一覧

特開2024-55650連合学習装置、サーバ装置、連合学習システム、連合学習方法、およびプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024055650
(43)【公開日】2024-04-18
(54)【発明の名称】連合学習装置、サーバ装置、連合学習システム、連合学習方法、およびプログラム
(51)【国際特許分類】
   G06Q 30/0601 20230101AFI20240411BHJP
   G06Q 10/04 20230101ALI20240411BHJP
【FI】
G06Q30/06 330
G06Q10/04
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022162746
(22)【出願日】2022-10-07
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】寺西 勇
【テーマコード(参考)】
5L010
5L030
5L049
【Fターム(参考)】
5L010AA04
5L030BB53
5L049AA04
5L049BB53
(57)【要約】
【課題】情報の提供を受ける側にとって適切な情報を作成する。
【解決手段】連合学習装置1は、各商品に対する各ユーザによる評価を示す評価値、及び、各対象属性に関する各評価対象の属性値、を含む第1学習データセットを用いて、評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習部11と、第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信部12と、第1学習データセットと同様に構成された第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、第1パラメータ情報と、が統合された統合パラメータ情報を、サーバ装置から取得するパラメータ情報取得部13と、第1パラメータ情報を統合パラメータ情報に置き換えることにより第1予測モデルを更新する更新部14と、を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、
を含む、連合学習装置。
【請求項2】
前記第1学習データセットは、さらに、前記ユーザリスト内の一部又は全部のユーザの各々が有するユーザ属性値であって、ユーザ属性リスト内の各ユーザ属性に関するユーザ属性値を含み、
前記学習手段は、当該第1学習データセットを用いて前記第1予測モデルを学習させる、
請求項1に記載の連合学習装置。
【請求項3】
前記学習手段は、
前記第1学習データセットを、前記各ユーザおよび前記各評価対象の組み合わせに対応する評価値のうち一部が欠損した多次元配列として、当該多次元配列を分解した複数のベクトルを前記第1予測モデルとして求め、
前記パラメータ情報送信手段は、前記複数のベクトルの少なくとも一部を前記第1パラメータ情報として送信する、
請求項1または2に記載の連合学習装置。
【請求項4】
前記学習手段は、
前記多次元配列の欠損していない評価値に対して、前記複数のベクトルの積において当該評価値に対応する成分が近似するように、当該複数のベクトルを求める、
請求項3に記載の連合学習装置。
【請求項5】
前記パラメータ情報送信手段は、前記第1予測モデルを表す情報のうち、前記第1学習データセットおよび前記第2学習データセットに共通する情報に起因して得られたパラメータ情報を、前記第1パラメータ情報として送信する、
請求項1または2に記載の連合学習装置。
【請求項6】
前記第1予測モデルを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する予測手段、
をさらに含む、請求項1または2に記載の連合学習装置。
【請求項7】
請求項1に記載の連合学習装置としてそれぞれ機能する複数の連合学習装置の各々から前記第1パラメータ情報を取得するパラメータ情報取得手段と、
複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成する統合手段と、
前記統合パラメータ情報を、前記複数の連合学習装置のそれぞれに送信するパラメータ情報送信手段と、
を含むサーバ装置。
【請求項8】
請求項1に記載された連合学習装置としてそれぞれ機能する複数の連合学習装置と、
請求項7に記載されたサーバ装置と、
を含む、連合学習システム。
【請求項9】
コンピュータが、
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させることと、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信することと、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得することと、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新することと、
を含む、連合学習方法。
【請求項10】
コンピュータを、
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、
として機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連合学習を行う技術に関する。
【背景技術】
【0002】
ユーザに推薦する商品を決定するために、ユーザが過去に購入した商品につけたレーティング等をもとに、他の商品に対するユーザの興味を予測する技術が知られている。
【0003】
非特許文献1には、このような予測を、連合学習を用いて実現する技術が記載されている。ここで、連合学習とは、複数のクライアントがそれぞれ有する学習データセットを用いて1つの予測モデルを学習する技術である。連合学習においては、各クライアントが有する学習データセットは他のクライアントに開示されないので、情報の秘匿性が担保される。非特許文献1に記載された技術は、協調フィルタリングを連合学習で実現している。また、非特許文献2には、レーティングに加えてユーザ属性を考慮してユーザの興味を予測することで、ユーザに商品を推薦する技術が記載されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Muhammad Ammad-ud-din et. al., "FEDERATED COLLABORATIVE FILTERING FOR PRIVACY-PRESERVING PERSONALIZED RECOMMENDATION SYSTEM", arXiv:1901.09888(cs), Submitted on 29 Jan 2019
【非特許文献2】Q. Nguyen and F. Ricci., "User preferences initialization and integration in critique based mobile recommender systems", Artificial Intelligence in Mobile Systems, pp. 71- 78, 2004.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、非特許文献1及び非特許文献2に開示されている技術を用いたとしても、情報の提供を受ける側にとって適切な情報を作成することができない。この理由は、非特許文献1及び非特許文献2に開示されている技術が選ぶ情報の精度が低いからである。
【0006】
そこで、本発明の目的の1つは、情報の提供を受ける側にとって適切な情報を作成することが可能な連合学習装置等を提供することである。
【課題を解決するための手段】
【0007】
本発明の一態様に係る連合学習装置は、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、を含む。
【0008】
本発明の一態様に係るサーバ装置は、上述した連合学習装置としてそれぞれ機能する複数の連合学習装置の各々から前記第1パラメータ情報を取得するパラメータ情報取得手段と、複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成する統合手段と、前記統合パラメータ情報を、前記複数の連合学習装置のそれぞれに送信するパラメータ情報送信手段と、を含む。
【0009】
本発明の一態様に係る連合学習システムは、上述した連合学習装置としてそれぞれ機能する複数の連合学習装置と、上述したサーバ装置と、を含む。
【0010】
本発明の一態様に係る連合学習方法は、コンピュータが、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させることと、前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信することと、前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得することと、前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新することと、を含む。
【0011】
本発明の一態様に係るプログラムは、コンピュータを、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、として機能させる。
【0012】
本発明の一態様に係る記録媒体は、コンピュータを、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、として機能させる、プログラムを記録している。
【発明の効果】
【0013】
本発明の一態様によれば、情報の提供を受ける側にとって適切な情報を作成することができる。
【図面の簡単な説明】
【0014】
図1】本発明の例示的実施形態1に係る連合学習装置の構成を示すブロック図である。
図2】本発明の例示的実施形態1に係る連合学習方法の流れを示すフロー図である。
図3】本発明の例示的実施形態2に係るサーバ装置の構成を示すブロック図である。
図4】本発明の例示的実施形態2に係る連合学習方法の流れを示すフロー図である。
図5】本発明の例示的実施形態3に係る連合学習システムの構成を示すブロック図である。
図6】本発明の例示的実施形態3に係る連合学習方法の流れを示すフロー図である。
図7】本発明の例示的実施形態4に係る連合学習システムの全体構成を示すブロック図である。
図8】本発明の例示的実施形態4に係る連合学習の概要を説明する模式図である。
図9】本発明の例示的実施形態4に係るクライアント装置の機能的な構成を示すブロック図である。
図10】本発明の例示的実施形態4に係るサーバ装置の機能的な構成を示すブロック図である。
図11】本発明の例示的実施形態4に係るサービサー装置の機能的な構成を示すブロック図である。
図12】本発明の例示的実施形態4に係る情報処理方法の流れを説明するフロー図である。
図13】本発明の例示的実施形態4に係る他の情報処理方法の流れを説明するフロー図である。
図14】本発明の例示的実施形態4に係るさらに他の情報処理方法の流れを説明するフロー図である。
図15】本発明の例示的実施形態4に係るさらに他の情報処理方法の流れを説明するフロー図である。
図16】本発明の例示的実施形態4に係るさらに他の情報処理方法の流れを説明するフロー図である。
図17】本発明の例示的実施形態4に係るさらに他の情報処理方法の流れを説明するフロー図である。
図18】本発明の例示的実施形態4に係る連合学習方法の流れを説明するフロー図である。
図19】本発明の例示的実施形態4に係るサーバ初期化方法の流れを説明するフロー図である。
図20】本発明の例示的実施形態4に係るクライアント初期化方法の流れを示すフロー図である。
図21】本発明の例示的実施形態4に係るクライアント学習方法の流れを示すフロー図である。
図22】本発明の例示的実施形態4に係るサーバ学習方法の流れを示すフロー図である。
図23】本発明の各例示的実施形態に係る各装置を構成するハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0015】
以下の各例示的実施形態において、連合学習とは、複数のクライアントがそれぞれ有する学習データセットを用いて1つの予測モデルを学習する技術である。連合学習においては、各クライアントが有する学習データセットは他のクライアントに開示されないので、情報の秘匿性が担保される。
【0016】
〔例示的実施形態1〕
本発明の第1の例示的実施形態について、図面を参照して詳細に説明する。本例示的実施形態は、後述する例示的実施形態2~4の基本となる形態である。
【0017】
(連合学習装置1の構成)
本例示的実施形態に係る連合学習装置1の構成について、図1を参照して説明する。図1は、連合学習装置1の構成を示すブロック図である。図1に示すように、連合学習装置1は、学習部11と、パラメータ情報送信部12と、パラメータ情報取得部13と、更新部14と、を含む。学習部11は、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる。
【0018】
パラメータ情報送信部12は、第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信する。パラメータ情報取得部13は、第1学習データセットと同様に構成された第2学習データセットであって、第1学習データセットに対して評価対象リスト、ユーザリスト、対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、第1パラメータ情報と、が統合された統合パラメータ情報を、サーバ装置から取得する。更新部14は、第1パラメータ情報を統合パラメータ情報に置き換えることにより第1予測モデルを更新する。
【0019】
(プログラムによる実現例)
連合学習装置1をコンピュータにより構成する場合、コンピュータのメモリ(本例示的実施形態に係る記録媒体)には、本例示的実施形態に係る以下のプログラムが記憶される。当該プログラムは、コンピュータを、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習部11と、第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信部12と、第1学習データセットと同様に構成された第2学習データセットであって、第1学習データセットに対して評価対象リスト、ユーザリスト、対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、第1パラメータ情報と、が統合された統合パラメータ情報を、サーバ装置から取得するパラメータ情報取得部13と、第1パラメータ情報を統合パラメータ情報に置き換えることにより第1予測モデルを更新する更新部14と、として機能させる。
【0020】
(連合学習方法S1の流れ)
以上のように構成された連合学習装置1は、本例示的実施形態に係る連合学習方法S1を実行する。連合学習方法S1について、図2を参照して説明する。図2は、連合学習方法S1の流れを説明するフロー図である。図2に示すように、連合学習方法S1は、ステップS11~S14を含む。
【0021】
ステップS11において、学習部11は、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる。
【0022】
ステップS12において、パラメータ情報送信部12は、第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信する。
【0023】
ステップS13において、パラメータ情報取得部13は、第1学習データセットと同様に構成された第2学習データセットであって、第1学習データセットに対して評価対象リスト、ユーザリスト、対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、第1パラメータ情報と、が統合された統合パラメータ情報を、サーバ装置から取得する。
【0024】
ステップS14において、更新部14は、第1パラメータ情報を統合パラメータ情報に置き換えることにより第1予測モデルを更新する。
【0025】
(本例示的実施形態の効果)
以上のように、本例示的実施形態においては、(i)評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させ、(ii)第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信し、(iii)第1学習データセットと同様に構成された第2学習データセットであって、第1学習データセットに対して評価対象リスト、ユーザリスト、対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、第1パラメータ情報と、が統合された統合パラメータ情報を、サーバ装置から取得し、(iv)第1パラメータ情報を統合パラメータ情報に置き換えることにより第1予測モデルを更新する、との構成が採用されている。上記構成によって生成した第1予測モデルを用いることにより、情報の提供を受ける側にとって適切な情報を作成することができる、との効果を奏する。
【0026】
〔例示的実施形態2〕
本発明の第2の例示的実施形態について、図面を参照して詳細に説明する。本例示的実施形態は、後述する例示的実施形態3~4の基本となる形態である。
【0027】
(サーバ装置2の構成)
本例示的実施形態に係るサーバ装置2の構成について、図3を参照して説明する。図3は、サーバ装置2の構成を示すブロック図である。図3に示すように、サーバ装置2は、パラメータ情報取得部21と、統合部22と、パラメータ情報送信部23と、を含む。パラメータ情報取得部21は、例示的実施形態1に係る連合学習装置1として機能する複数の連合学習装置1の各々から第1パラメータ情報を取得する。統合部22は、複数の第1パラメータ情報を統合することにより統合パラメータ情報を生成する。パラメータ情報送信部23は、統合パラメータ情報を、複数の連合学習装置1のそれぞれに送信する。
【0028】
(プログラムによる実現例)
サーバ装置2をコンピュータにより構成する場合、コンピュータのメモリ(本例示的実施形態に係る記録媒体)には、本例示的実施形態に係る以下のプログラムが記憶される。当該プログラムは、コンピュータを、例示的実施形態1に係る連合学習装置1として機能する複数の連合学習装置1の各々から第1パラメータ情報を取得するパラメータ情報取得部21と、複数の第1パラメータ情報を統合することにより統合パラメータ情報を生成する統合部22と、統合パラメータ情報を、複数の連合学習装置1のそれぞれに送信するパラメータ情報送信部23と、として機能させる。
【0029】
(連合学習方法S2の流れ)
以上のように構成されたサーバ装置2は、本例示的実施形態に係る連合学習方法S2を実行する。連合学習方法S2について、図4を参照して説明する。図4は、連合学習方法S2の流れを説明するフロー図である。図4に示すように、連合学習方法S2は、ステップS21~S23を含む。
【0030】
ステップS21において、パラメータ情報取得部21は、例示的実施形態1に係る連合学習装置1として機能する複数の連合学習装置1の各々から第1パラメータ情報を取得する。
【0031】
ステップS22において、統合部22は、複数の第1パラメータ情報を統合することにより統合パラメータ情報を生成する。
【0032】
ステップS23において、パラメータ情報送信部23は、統合パラメータ情報を、複数の連合学習装置1のそれぞれに送信する。
【0033】
(本例示的実施形態の効果)
以上のように、本例示的実施形態においては、例示的実施形態1に係る連合学習装置1として機能する複数の連合学習装置1の各々から第1パラメータ情報を取得し、複数の第1パラメータ情報を統合することにより統合パラメータ情報を生成し、統合パラメータ情報を、複数の連合学習装置1のそれぞれに送信する、との構成が採用されている。上記構成によって、連合学習装置において生成された第1予測モデルを用いることにより、情報の提供を受ける側にとって適切な情報を作成することができる、との効果を奏する。
【0034】
〔例示的実施形態3〕
本発明の第3の例示的実施形態について、図面を参照して詳細に説明する。なお、例示的実施形態1~2にて説明した構成要素と同じ機能を有する構成要素については、同じ符号を付記し、その説明を繰り返さない。
【0035】
(連合学習システム10の構成)
本例示的実施形態に係る連合学習システム10の構成について、図5を参照して説明する。図5は、連合学習システム10の構成を示すブロック図である。図5に示すように、連合学習システム10は、例示的実施形態1に係る連合学習装置1として機能する複数のクライアント装置1A、1Bと、例示的実施形態2に係るサーバ装置2と、を含む。これらのサーバ装置2は、クライアント装置1Aおよび1Aのそれぞれと通信可能に接続される。
【0036】
(連合学習方法S3の流れ)
以上のように構成された連合学習システム10は、本例示的実施形態に係る連合学習方法S3を実行する。連合学習方法S3の流れについて、図6を参照して説明する。図6は、連合学習方法S3の流れを説明するフロー図である。図6に示すように、連合学習方法S3は、ステップS11~S14を含む。
【0037】
ステップS11において、クライアント装置1Aの学習部11は、評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる。
【0038】
また、クライアント装置1Bの学習部11は、第1学習データセットと同様に構成された第2学習データセットであって、第1学習データセットに対して評価対象リスト、ユーザリスト、対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて、評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第2予測モデルを学習させる。
【0039】
ステップS12において、クライアント装置1Aのパラメータ情報送信部12は、第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置2に送信する。また、クライアント装置1Bのパラメータ情報送信部12は、第2予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置2に送信する。なお、「第2予測モデルの少なくとも一部を表す第1パラメータ情報」は、特許請求の範囲に記載した第2パラメータ情報の一例である。
【0040】
ステップS21において、サーバ装置2のパラメータ情報取得部21は、複数のクライアント装置1A、1Bの各々から第1パラメータ情報を取得する。
【0041】
ステップS22において、サーバ装置2の統合部22は、複数の第1パラメータ情報を統合することにより統合パラメータ情報を生成する。
【0042】
ステップS23において、サーバ装置2のパラメータ情報送信部23は、統合パラメータ情報を、複数のクライアント装置1A、1Bのそれぞれに送信する。
【0043】
ステップS13において、クライアント装置1Aのパラメータ情報取得部13は、統合パラメータ情報を、サーバ装置2から取得する。クライアント装置1Bのパラメータ情報取得部13は、統合パラメータ情報を、サーバ装置2から取得する。
【0044】
ステップS14において、クライアント装置1Aの更新部14は、第1パラメータ情報を統合パラメータ情報に置き換えることにより第1予測モデルを更新する。クライアント装置1Bの更新部14は、第1パラメータ情報を統合パラメータ情報に置き換えることにより第2予測モデルを更新する。
【0045】
(本例示的実施形態の効果)
以上のように、本例示的実施形態においては、連合学習システム10は、例示的実施形態1に係る連合学習装置1として機能する複数のクライアント装置と、例示的実施形態2に係るサーバ装置2と、を含む、との構成が採用されている。上記構成によって生成された第1予測モデルを用いることにより、情報の提供を受ける側にとって適切な情報を作成することができる、との効果を奏する。
【0046】
〔例示的実施形態4〕
本発明の第4の例示的実施形態について、図面を参照して詳細に説明する。なお、例示的実施形態1~3にて説明した構成要素と同じ機能を有する構成要素については、同じ符号を付記し、その説明を繰り返さない。本例示的実施形態では、評価対象として商品を適用する。また、ユーザとして、商品の販売サービスを利用するユーザを適用する。
【0047】
(連合学習システム10Aの構成)
本例示的実施形態に係る連合学習システム10Aの構成について、図7を参照して説明する。図7は、連合学習システム10Aの全体構成を示すブロック図である。図7に示すように、連合学習システム10Aは、n個のクライアント装置100-i(i=1、2、…n、nは2以上の自然数)と、サーバ装置200と、n個のサービサー装置300-iと、を含む。サーバ装置200は、各クライアント装置100-iと通信可能に接続される。また、各クライアント装置100-iは、対応するサービサー装置300-iと通信可能に接続される。
【0048】
サービサー装置300-iは、1または複数のユーザに対して商品の販売サービスを提供する装置である。当該販売サービスを利用するユーザは、サービサー装置300-iが提供する販売サービスにおいて販売される商品に評価値を付与することができる。以降、サービサー装置300-iが提供する販売サービスを利用するユーザを、単に「サービサー装置300-iを利用するユーザ」とも記載する。なお、図7には、サービサー装置300-iを利用するユーザの数が複数である例を示しているが、これに限らず、1人であってもよい。また、同じユーザが、複数のサービサー装置300-iを利用してもよい。
【0049】
クライアント装置100-iおよびサーバ装置200は、サービサー装置300-iを利用するユーザが商品に対して付与するであろう評価値を予測する予測機能を有する。サービサー装置300-iは、例えば、予測機能を用いて予測した評価値に基づいて、ユーザに対して推薦する商品を決定する。サービサー装置300-iは、例えば、推薦すると決定した商品の広告を、当該ユーザに配信することができる。サービサー装置300-iにおける予測機能を実現するために、クライアント装置100-iおよびサーバ装置200は、連合学習により予測モデルMLiを生成する。
【0050】
なお、クライアント装置100-iは、特許請求の範囲に記載した連合学習装置の一態様である。また、サービサー装置300-iは、当該連合学習装置の一態様の一部を含む。クライアント装置100-iおよびサービサー装置300-iは、物理的に異なるコンピュータによって構成されてもよいし、同一のコンピュータによって構成されてもよい。
【0051】
(連合学習の概要)
連合学習システム10Aが実行する連合学習の概要について、図8を参照して説明する。図8は、連合学習の概要を説明する模式図である。なお、本明細書で参照する各図面および各数式において「文字列」の上部に「-」を付した記号を、本明細書では、当該文字列の末尾に「^bar」を付して、「文字列^bar」と記載することもある。例えば、図8、後述の式(3)等における以下の記号を、
【数1】
本明細書では、「Ri^bar」、「Ui^bar」等と記載することもある。他の図面、他の数式におけるこれらの文字列および他の文字列についても同様である。
【0052】
また、本明細書で参照する各図面および各数式において「文字列」の右型に「上付き文字列」を付した記号を、以降では、当該文字列の末尾に「^上付き文字列」を付して、「文字列^上付き文字列」と記載することもある。例えば、図8等における以下の記号を、
【数2】
以降では、「Ai^glb」、「Ai^loc」等と記載することもある。他の図面、他の数式におけるこれらの文字列および他の文字列についても同様である。
また、これらを組み合わせ、式(8)等における以下の記号を、
【数3】
「Ui^bar^loc」等と記載することもある。他の図面、他の数式におけるこれらの文字列および他の文字列についても同様である。
【0053】
図8に示すRi^barは、2次元の行列であり、行列Ri^barは、特許請求の範囲に記載した「多次元配列」の一例である。行列Ri^barは、商品に付与されたユーザの評価値を成分として含み、評価値が付与されていない商品およびユーザの組み合わせに対応する成分が欠損値となっている。行列Ri^barの詳細については後述する。行列Ri^barは、複数のベクトルAi、Biに分解される。Aiは縦ベクトルであり、Biは横ベクトルである。したがって、ベクトルAi、Biの積の行数および列数は行列Ri^barと同一である。行列Ri^barは、後述する学習セットDSiに基づき生成される。各クライアント装置100-iの学習の目標は、行列Ri^barの欠損していない評価値に対して、ベクトルAi、Biの積において当該評価値に対応する成分がより近づくように、当該ベクトルAi、Biを求めることである。
【0054】
クライアント装置100-iは、このようなベクトルAi、Biを求めるために、行列Ri^barの欠損していない評価値と、ベクトルAi、Biの積において対応する成分との差が小さくなるように学習を行う。例えば、学習は、勾配降下法を数ステップ行うことにより実行されてもよい。
【0055】
ここで、図8に示すように、ベクトルAiは、公開可能なベクトルAi^glbと、秘匿すべきベクトルAi^locとからなる。ベクトルBiは、公開可能なベクトルBi^glbと、秘匿すべきベクトルBi^locからなる。「公開可能」とは、サービサー装置300-i以外およびクライアント装置100-i以外に公開してもよいことを指す。また、「秘匿すべき」とは、サービサー装置300-i以外およびクライアント装置100-i以外への公開が望ましくないことを指す。Ai^glbおよびBi^glbは、特許請求の範囲に記載した第1パラメータ情報の一例である。
【0056】
クライアント装置100-iは、学習によりベクトルAi、Biを求めると(ステップi)、求めたベクトルAi、Biの一部であるベクトルAi^glb、Bi^glbを、サーバ装置200に送信する(ステップii)。また、サーバ装置200は、複数のクライアント装置100-iから受信したベクトルAi^glb、Bi^glbを統合してベクトルA^glb、B^glbを生成し(ステップiii)、各クライアント装置100-iに送信する(ステップiv)。ここで、ベクトルA^glb、B^glbは、特許請求の範囲に記載した統合パラメータ情報の一例である。クライアント装置100-iは、ベクトルAi、BiにおけるベクトルAi^glb、Bi^glbの部分を、サーバ装置200から受信したベクトルA^glb、B^glbに置き換える(ステップv)。連合学習システム10Aは、このようなステップi~ステップvを終了条件が満たされるまで繰り返すことにより、学習を完了させる。学習完了後のベクトルAi、Biは、予測モデルMLとして機能する。
【0057】
(行列Ri^barの詳細)
図8に示すように、行列Ri^barは、ユーザリストUiおよび商品属性リストQiの各要素に対応する行を含む。また、行列Ri^barは、商品リストViおよびユーザ属性リストPiの各要素に対応する列を含む。また、行列Ri^barは、評価値行列Riと、ユーザ属性値行列Siと、商品属性値行列Tiと、関連値行列Eiとによって構成される。
【0058】
評価値行列Riは、ユーザリストUiの各要素に対応する行と、商品リストViの各要素に対応する列とを含む。ユーザ属性値行列Siは、ユーザリストUiの各要素に対応する行と、ユーザ属性リストPiの各要素に対応する列とを含む。商品属性値行列Tiは、商品属性リストQiの各要素に対応する行と、商品リストViの各要素に対応する列とを含む。関連値行列Eiは、商品属性リストQiの各要素に対応する行と、ユーザ属性リストPiの各要素に対応する列とを含む。
【0059】
(ユーザリストUi)
ユーザリストUiは、サービサー装置300-iを利用するユーザのリストを表し、当該ユーザを識別するユーザIDを含む。ユーザリストUiは、初期状態では空集合であってもよいし、あらかじめ1または複数のユーザIDを含んでいてもよい。ユーザリストUiには、当該販売サービスを利用するユーザが新たに登録されると、当該ユーザを識別するユーザIDが追加される。例えば、ユーザIDは、サービサー装置300-iによる販売サービスにおいて会員登録が必須である場合は会員登録に応じて付与されたものであってもよい。また、ユーザIDは、販売サービスにおいて会員登録が必須でない場合、商品購入時に入力された情報のうちユーザを一意に特定可能な情報(メールアドレス、電話番号等)であってもよい。
【0060】
(共通ユーザリストUi^glb)
ここで、ユーザリストUiおよび他の各ユーザリストUjは、互いに共通するユーザを含む。共通ユーザリストUi^glbは、ユーザリストUiにおいて他の少なくとも何れかのユーザリストUjとの間で共通するユーザを識別する共通ユーザIDを含む。共通ユーザリストUi^glbは、初期状態では空集合であってもよいし、あらかじめ1または複数の共通ユーザIDを含んでいてもよい。共通ユーザリストUi^glbには、他の何れかのユーザリストUjと共通することが新たに分かったユーザを識別する共通ユーザIDが追加されてもよい。共通ユーザIDは、ユーザリストUiにも含まれる。換言すると、ユーザリストUiには、共通ユーザリストUi^glbに含まれるユーザIDと、共通ユーザリストUi^glbに含まれないユーザIDとが含まれている。なお、ユーザリストUiおよび他の各ユーザリストUjは、互いに共通するユーザを含まない場合もあり得る。その場合、共通ユーザリストUi^glbは空集合である。
【0061】
(商品リストVi)
商品リストViは、クライアント装置100-iが提供する販売サービスにおいて販売される商品のリストを表し、販売される商品を識別する商品IDを含む。商品リストViは、評価対象リストの一態様である。商品リストViは、初期状態では空集合であってもよいし、あらかじめ1または複数の商品IDを含んでいてもよい。商品リストViには、当該販売サービスで販売される商品が新たに登録されると、当該商品を識別する商品IDが追加される。例えば、商品IDは、サービサー装置300-iによる販売サービスにおいて独自に付与されたものであってもよいし、商品の製造時等に当該商品に印刷または貼り付けられた一次元コード又は二次元コードであってもよい。
【0062】
(共通商品リストVi^glb)
ここで、商品リストViおよび他の各商品リストVjは、互いに共通する商品を含む。共通商品リストVi^glbは、商品リストV1~Vnのうち2つ以上において共通する商品を識別する共通商品IDを含む。共通商品リストVi^glbは、n個のサービサー装置300-i間で同期される。共通商品リストVi^glbは、初期状態では空集合であってもよいし、あらかじめ1または複数の商品IDを含んでいてもよい。共通商品リストVi^glbには、共通することが新たに分かった商品を識別する共通商品IDが追加されてもよい。共通商品IDは、商品リストViにも含まれる。換言すると、商品リストViには、共通商品リストVi^glbに含まれる商品IDと、共通商品リストVi^glbにも含まれない商品IDとが含まれている。なお、商品リストViおよび他の各商品リストVjは、互いに共通する商品を含まない場合もあり得る。その場合、共通商品リストVi^glbは空集合である。
【0063】
(ユーザ属性リストPi)
ユーザ属性リストPiは、クライアント装置100-iによる販売サービスにおいて管理するユーザ属性を表し、当該ユーザ属性を識別するユーザ属性IDを含む。ユーザ属性リストPiは、初期状態では空集合であってもよいし、あらかじめ1または複数のユーザ属性IDを含んでいてもよい。ユーザ属性リストPiには、当該販売サービスにおいて新たに管理するユーザ属性が登録されると、当該ユーザ属性を識別するユーザ属性IDが追加される。
【0064】
ここで、ユーザ属性とは、各ユーザに関連付け可能な情報(ユーザ属性値)を項目として定めた情報である。ユーザ属性は、そのユーザ属性値によりユーザを分類可能な情報であることが望ましい。ユーザ属性は、例えば、ユーザの特徴を表す項目を定めたものであってもよい。なお、本例示的実施形態では、ユーザ属性値は数値で表される。ユーザ属性の一例として「性別」、「年齢」、「住所」、「身長」、「眼鏡の有無」、「家族構成」等が挙げられる。ユーザ属性「性別」に設定され得るユーザ属性値の一例としては、男性、女性、…等を示す数値(例えば、男性は1、女性は2、…等)が挙げられる。また、ユーザ属性「年齢」に設定され得るユーザ属性値の一例としては、年齢を示す数値、または、20才未満、20~40才未満、40~60才未満、60才以上、等の年代を示す数値が挙げられる。また、ユーザ属性「住所」に設定され得るユーザ属性値の一例としては、都道府県を示す数値が挙げられる。また、ユーザ属性「身長」に設定され得るユーザ属性値の一例としては、身長を示す数値、または150センチメートル未満、150~170センチメートル、170センチメートル以上、等を示す数値が挙げられる。また、ユーザ属性「眼鏡の有無」に設定され得るユーザ属性値の一例としては、有無を示す数値(例えば1または0)が挙げられる。また、ユーザ属性「家族構成」に設定され得るユーザ属性値の一例としては、「単身」、「夫婦のみ」、「親と同居」、「子供有り」、等を示す数値が挙げられる。ただし、ユーザ属性およびユーザ属性値の一例は、上述した例に限られない。
【0065】
(共通ユーザ属性リストPi^glb)
ここで、ユーザ属性リストPiおよび他の各ユーザ属性リストPjは、互いに共通するユーザ属性を含む。共通ユーザ属性リストPi^glbは、ユーザ属性リストP1~Pnのうち2つ以上において共通するユーザ属性を識別する共通ユーザ属性IDを含む。共通ユーザ属性リストPi^glbは、n個のサービサー装置300-i間で同期される。共通ユーザ属性リストPi^glbは、初期状態では空集合であってもよいし、あらかじめ1または複数のユーザ属性IDを含んでいてもよい。共通ユーザ属性リストPi^glbには、共通することが新たに分かったユーザ属性を識別する共通ユーザ属性IDが追加されてもよい。共通ユーザ属性IDは、ユーザ属性リストPiにも含まれる。換言すると、ユーザ属性リストPiには、共通ユーザ属性リストPi^glbに含まれるユーザ属性IDと、共通ユーザ属性リストPi^glbに含まれないユーザ属性IDとが含まれている。なお、ユーザ属性リストPiおよび他の各ユーザ属性リストPjは、互いに共通するユーザ属性を含まない場合もあり得る。その場合、共通ユーザ属性リストPi^glbは空集合である。
【0066】
(商品属性リストQi)
商品属性リストQiは、クライアント装置100-iによる販売サービスにおいて管理する商品属性を表し、当該商品属性を識別する商品属性IDを含む。商品属性リストQiは、対象属性リストの一態様である。当該商品の商品属性リストQiは、初期状態では空集合であってもよいし、あらかじめ1または複数の商品属性IDを含んでいてもよい。商品属性リストQiには、当該販売サービスにおいて新たに管理する商品属性の商品属性が登録されると、当該商品属性の商品属性IDが追加される。商品属性の一例としては、食品カテゴリ、調理温度カテゴリ等が挙げられる。
【0067】
ここで、商品属性とは、各商品に関連付け可能な情報(商品属性値)を項目として定めた情報である。商品属性は、その商品属性値により商品を分類可能な情報であることが望ましい。商品属性は、例えば、商品の特徴を表す項目を定めたものであってもよい。なお、本例示的実施形態では、商品属性値は数値で表される。具体例として、商品が食品である場合、商品属性の一例として「食品分類」、「内容量」、「対象顧客」、「調理温度」、「保管方法」等が挙げられる。商品属性「食品分類」に設定され得る商品属性値の一例としては、肉類、野菜類、果物類、パン類、…等を示す数値(例えば、肉類は1、野菜類は2、…等)が挙げられる。また、商品属性「内容量」に設定され得る商品属性値の一例としては、内容量を示す数値(100グラム、等)が挙げられる。また、商品属性「対象顧客」に設定され得る商品属性値の一例としては、女性向け、子供向け、単身向け、…等を示す数値が挙げられる。また、商品属性「調理温度」に設定され得る商品属性値の一例としては、低温、中温、高温、…等を示す数値が挙げられる。また、商品属性「保管方法」に設定され得る商品属性値の一例としては、常温可、要冷蔵、要冷凍、…等を示す数値が挙げられる。また、商品属性は、階層化されていてもよい。階層化された商品属性の一例としては、「食品大分類」および「食品小分類」がある。例えば、商品属性「食品大分類」の商品属性値が「肉類」を示す場合、商品属性「食品小分類」の商品属性値の一例としては、加工肉、生肉、調理済肉、…等を示す数値が挙げられる。ただし、商品属性および商品属性値の具体例は、上述した例に限られない。
【0068】
(共通商品属性リストQi^glb)
ここで、商品属性リストQiおよび他の各商品属性リストQjは、互いに共通する商品属性を含む。共通商品属性リストQi^glbは、商品属性リストQ1~Qnのうち2つ以上において共通する商品属性を識別する共通商品属性IDを含む。共通商品属性リストQi^glbは、n個のサービサー装置300-i間で同期される。共通商品属性リストQi^glbは、初期状態では空集合であってもよいし、あらかじめ1または複数の共通商品属性IDを含んでいてもよい。共通商品属性リストQi^glbには、共通することが新たに分かった商品属性を識別する共通商品属性IDが追加されてもよい。共通商品属性IDは、商品属性リストQiにも含まれる。換言すると、商品属性リストQiには、共通商品属性リストQi^glbに含まれる商品属性IDと、共通商品属性リストQi^glbに含まれない商品属性IDとが含まれている。なお、商品属性リストQiおよび他の各商品属性リストQjは、互いに共通する商品属性を含まない場合もあり得る。その場合、共通商品属性リストQi^glbは空集合である。
【0069】
(評価値行列Ri)
評価値行列Riは、商品リストVi内の一部又は全部の商品の各々に対する評価値であって、ユーザリストUi内の各ユーザによる評価値を示す。例えば、評価値は、ユーザによって入力される情報である。評価値は、複数段階のスコア(例えば、スコア1、スコア2、スコア3の3段階)であってもよいし、所定範囲に含まれる任意の数値(例えば、0以上1以下の任意の数値)であってもよい。ただし、評価値は、これらの具体例に限られない。評価値行列Riは、各ユーザおよび各商品の組み合わせに対応する評価値を各成分とする行列である。評価値行列Riは、各ユーザおよび各商品の組み合わせに対応する評価値のうち一部が欠損した行列Ri^barに含まれる。つまり、評価値行列Riは、評価値が付与されていない商品およびユーザの組み合わせに対応する成分が欠損している。評価値行列Riは、初期状態ではすべての成分が欠損していてもよいが、ユーザによって商品に評価値が付与されると、当該商品および当該ユーザの組み合わせに対応する成分に当該評価値が設定される。つまり、評価値が設定された成分は、欠損していない。
【0070】
(ユーザ属性値行列Si)
ユーザ属性値行列Siは、ユーザリストUi内の一部又は全部のユーザの各々が有するユーザ属性値であって、ユーザ属性リストPi内の各ユーザ属性に関するユーザ属性値を示す。換言すると、ユーザ属性値行列Siは、各ユーザ属性および各ユーザの組み合わせに対応するユーザ属性値を各成分とする行列である。ユーザ属性値の一例については上述した通りである。ユーザ属性値行列Siは、各ユーザ属性および各ユーザの組み合わせに対応するユーザ属性値のうち一部が欠損した行列Ri^barに含まれる。つまり、ユーザ属性値行列Siは、ユーザ属性値が設定されていないユーザ属性およびユーザの組み合わせに対応する成分が欠損している。ユーザ属性値行列Siは、初期状態ではすべての成分が欠損していてもよいが、ユーザ属性値が取得されると、当該ユーザ属性および当該ユーザの組み合わせに対応する成分に当該ユーザ属性値が設定される。
【0071】
(商品属性値行列Ti)
商品属性値行列Tiは、商品リストVi内の一部又は全部の商品の各々が有する対象属性値であって、商品属性リストQi内の各商品属性に関する商品属性値を示す。換言すると、商品属性値行列Tiは、各商品属性および各商品の組み合わせに対応する商品属性値を各成分とする行列である。商品属性値の一例については上述した通りである。商品属性値行列Tiは、各商品属性および各商品の組み合わせに対応する商品属性値のうち一部が欠損した行列Ri^barに含まれる。つまり、商品属性値行列Tiは、商品属性値が設定されていない商品属性および商品の組み合わせに対応する成分が欠損している。商品属性値行列Tiは、初期状態ではすべての成分が欠損していてもよいが、商品属性値が取得されると、当該商品属性および当該商品の組み合わせに対応する成分に当該商品属性値が設定される。
【0072】
(関連値行列Ei)
関連値行列Eiは、商品属性リストQi内の各商品属性およびユーザ属性リストPi内の各ユーザ属性の組み合わせに対応する当該組み合わせの関連性を示す関連値を示す。換言すると、関連値行列Eiは、各商品属性および各ユーザ属性の組み合わせに対応する関連値を各成分とする行列である。関連値は、あるユーザ属性のユーザが、ある商品属性の商品に付与する傾向がある評価値を表しているともいえる。関連値行列Eiは、評価値行列Ri、ユーザ属性値行列Si、および商品属性値行列Tiから算出可能である。関連値行列Eiの算出手法については後述する。関連値行列Eiは、商品属性リストQiに含まれる各商品属性およびユーザ属性リストPiに含まれる各ユーザ属性の組み合わせに対応する関連値のうち一部が欠損した行列Ri^barに含まれる。つまり、関連値行列Eiは、評価値行列Ri、ユーザ属性値行列Si、および商品属性値行列Tiにおける欠損に応じて、関連値が設定されていない成分が欠損している。
【0073】
(クライアント装置100-iの機能的な構成)
クライアント装置100-iの機能的な構成について、図9を参照して説明する。図9は、クライアント装置100-iの機能的な構成を示すブロック図である。図9に示すように、クライアント装置100-iは、制御部110-iと、記憶部120-iと、通信部130-iと、を含む。制御部110-iは、クライアント装置100-iの各部を統括して制御する。記憶部120-iは、制御部110-iが使用する各種のデータを記憶する。通信部130-iは、制御部110-iの制御のもと、他の装置との通信を行う。
【0074】
(記憶部120-iに記憶される情報)
記憶部120-iは、学習データセットDSiと、共通データCOMと、ハイパーパラメータkと、予測モデルMLiと、を記憶する。学習データセットDSiは、ユーザリストUi、商品リストVi、ユーザ属性リストPi、ユーザ属性リストPi、および商品属性リストQiを含む。また、学習データセットDSiは、さらに、評価値行列Ri、ユーザ属性値行列Si、商品属性値行列Ti、および予測モデルMLiを含む。学習データセットDSiを第1学習データセットの一態様とするとき、他のクライアント装置100-jにおける学習データセットDSjは第2学習データセットの一態様である。また、共通データCOMは、共通ユーザリストUi^glb、共通商品リストVi^glb、共通ユーザ属性リストPi^glb、および共通商品属性リストQi^glbを含む。学習データセットDSiおよび共通データCOMに含まれる各情報の詳細については上述した通りである。
【0075】
予測モデルMLiは、学習部111-iによって生成される。予測モデルMLiは、評価値が付与されていない商品およびユーザの組み合わせに対応する評価値を予測する。予測モデルMLiを第1予測モデルの一態様とするとき、他のクライアント装置100-jにおける予測モデルMLjは第2予測モデルの一態様である。
【0076】
ハイパーパラメータkは、学習部111-iによって予測モデルMLiを学習させるために使用される。ハイパーパラメータkは、予め定められた自然数であり、n個のクライアント装置100-iおよびサーバ装置200の間で同一の値が用いられる。
【0077】
(制御部110-iの詳細)
制御部110-iは、学習部111-iと、パラメータ情報送信部112-iと、パラメータ情報取得部113-iと、更新部114-iと、を含む。学習部111-iは、学習データセットDSiを用いて予測モデルMLiを学習させる。より詳細には、学習部111-iは、学習データセットDSiを行列Ri^barとして表し、当該行列Ri^barを行列分解した複数のベクトルAi、Biを予測モデルMLiとして求める。クライアント学習処理の詳細については後述する。
【0078】
さらに詳細には、例えば、学習部111-iは、評価値行列Riの欠損していない評価値に対して、複数のベクトルAi、Biの積において対応する成分が近似するように、当該複数のベクトルAi、Biを求める。また、学習部111-iは、ユーザ属性値行列Siの欠損していないユーザ属性値に対して、複数のベクトルAi、Biの積において対応する成分が近似するように、当該複数のベクトルAi、Biを求める。また、学習部111-iは、商品属性値行列Tiの欠損していない対象属性値に対して、複数のベクトルAi、Biの積において対応する成分が近似するよう、当該複数のベクトルAi、Biを求める。
【0079】
また、学習部111-iは、関連値行列Eiの欠損していない関連値に対して、複数のベクトルAi、Biの積において対応する成分が近似するよう、当該複数のベクトルAi、Biを求める。なお、学習部111-iは、関連値行列Eiを構成する各関連値として、各ユーザ属性値および各対象属性値の積を、当該ユーザ属性値および当該対象属性値に対応する評価値で除した値に基づき算出する。
【0080】
パラメータ情報送信部112-iは、複数のベクトルAi、Biの少なくとも一部を、第1パラメータ情報Ai^glb、Bi^glbとしてサーバ装置200に送信する。第1パラメータ情報Ai^glb、Bi^glbは、サーバ装置200に対して公開されるパラメータ情報である。より詳細には、パラメータ情報送信部112-iは、複数のベクトルAi、Biのうち学習データセットDSiおよび他の各学習データセットDSjにおいて共通する情報(共通データCOM)に起因して得られたパラメータ情報を、第1パラメータ情報Ai^glb、Bi^glbとして送信する。なお、共通する情報は、共通する評価対象、共通するユーザ、共通する商品属性、または共通するユーザ属性を示す情報を含む。
【0081】
パラメータ情報取得部113-iは、サーバ装置200から、統合パラメータ情報A^glb、B^glbを取得する。更新部114-iは、複数のベクトルAi、Biにおける第1パラメータ情報Ai^glb、Bi^glbを、統合パラメータ情報A^glb、B^glbに置き換えることにより、予測モデルMLiを更新する。
【0082】
(サーバ装置200の機能的な構成)
サーバ装置200の機能的な構成について、図10を参照して説明する。図10は、サーバ装置200の機能的な構成を示すブロック図である。図10に示すように、サーバ装置200は、制御部210と、記憶部220と、通信部230と、を含む。制御部210は、サーバ装置200の各部を統括して制御する。記憶部220は、制御部210が使用する各種のデータを記憶する。通信部230は、制御部210の制御のもと、他の装置との通信を行う。
【0083】
(記憶部220に記憶される情報)
記憶部220は、共通データCOMと、ハイパーパラメータkと、を記憶する。共通データCOMは、共通ユーザリストU1^glb~Un^glb、共通商品リストV1^glb~Vn^glb、共通ユーザ属性リストP1^glb~Pn^glb、および共通商品属性リストQ1^glb~Qn^glbを含む。各リストの詳細、およびハイパーパラメータkについては、クライアント装置100-iの説明に記載した通りである。
【0084】
なお、記憶部220に記憶される共通ユーザリストUi^glbの個数は、クライアント装置100-iの個数(n個)に等しい。また、記憶部320-iに記憶される共通商品リストVi^glb、共通ユーザ属性リストPi^glb、および共通商品属性リストQi^glbの個数は、サービサー装置300-iの間で共通であるため1つずつである。
【0085】
(制御部210の詳細)
制御部210は、パラメータ情報取得部211と、統合部212と、パラメータ情報送信部213と、を含む。パラメータ情報取得部211は、複数のクライアント装置100-iの各々から第1パラメータ情報Ai^glb、Bi^glbを取得する。統合部212は、複数の第1パラメータ情報を統合することにより統合パラメータ情報A^glb、B^glbを生成する。統合処理の詳細については後述する。パラメータ情報送信部213は、統合パラメータ情報A^glb、B^glbを、複数のクライアント装置100-iのそれぞれに送信する。
【0086】
(サービサー装置300-iの機能的な構成)
サービサー装置300-iの機能的な構成について、図11を参照して説明する。図11は、サービサー装置300-iの機能的な構成を示すブロック図である。図11に示すように、サービサー装置300-iは、制御部310-iと、記憶部320-iと、通信部330-iと、を含む。制御部310-iは、クライアント装置100-iの各部を統括して制御する。記憶部320-iは、制御部310-iが使用する各種のデータを記憶する。通信部330-iは、制御部310-iの制御のもと、他の装置との通信を行う。
【0087】
(記憶部320-iに記憶される情報)
記憶部320-iは、学習データセットDSiと、共通データCOMと、予測モデルMLiと、を記憶する。これらの情報については、クライアント装置100-iの記憶部120-iの説明に記載した通りである。なお、詳細は後述するが、クライアント装置100-iに記憶される学習データセットDSiは、サービサー装置300-iから転送されたものである。また、サービサー装置300-iに記憶される予測モデルMLiは、クライアント装置100-iから転送されたものである。
【0088】
(制御部310-iの詳細)
制御部310-iは、ユーザ登録部311-iと、商品登録部312-iと、評価値登録部313-iと、ユーザID共通化部314-iと、共通化部315-iと、連合学習依頼部316-iと、予測部317-iと、を含む。
【0089】
ユーザ登録部311-iは、当該サービサー装置300-iによる販売サービスを利用するユーザを登録する処理を実行し、ユーザリストUiを生成/更新する。商品登録部312-iは、当該販売サービスで販売する商品を登録する処理を実行し、商品リストViを生成/更新する。
【0090】
評価値登録部313-iは、ユーザにより商品に付与される評価値を登録する処理を実行し、評価値行列Riを生成/更新する。ユーザID共通化部314-iは、他の各サービサー装置300-jとの間でユーザIDを共通化する処理を実行し、共通ユーザリストUi^glbを生成/更新する。共通化部315-iは、他の各サービサー装置300-jとの間で商品、ユーザ属性、商品属性を共通化する処理を実行し、共通商品リストVi^glb、共通ユーザ属性リストPi^glb、共通商品属性リストQi^glbを生成/更新する。
【0091】
連合学習依頼部316-iは、クライアント装置100-iに連合学習処理を依頼することにより、予測モデルMLiを取得する。予測部317-iは、予測モデルMLiを用いて、評価値が付与されていない商品およびユーザの組み合わせに対応する評価値を予測する。
【0092】
(連合学習システム10Aの動作)
以上のように構成された連合学習システム10Aは、本例示的実施形態に係る情報処理方法S4~S9、連合学習方法S10を実行する。情報処理方法S4~S7は、学習データセットDSiを取得するための方法である。情報処理方法S8~S9は、共通データCOMを生成するための方法である。
【0093】
(情報処理方法S4:ユーザ登録)
情報処理方法S4は、サービサー装置300-iが実行するユーザ登録処理を示す。情報処理方法S4は、サービサー装置300-iによる販売サービスの利用を新たなユーザが開始する際に実行される。情報処理方法S4について、図12を参照して説明する。図12は、情報処理方法S4の流れを説明するフロー図である。図12に示すように、情報処理方法S4は、ステップS401~S403を含む。
【0094】
ステップS401において、ユーザ登録部311-iは、新たなユーザに対して新規のユーザIDを付与し、当該ユーザIDをユーザリストUiに追加する。
【0095】
ステップS402において、ユーザ登録部311-iは、ユーザ属性リストPiに含まれる各ユーザ属性の全てまたは一部を読み込む。
【0096】
ステップS403において、ユーザ登録部311-iは、読み込んだ各ユーザ属性のユーザ属性値を取得する。例えば、ユーザ登録部311-iは、ユーザ属性を入力するユーザインタフェースをユーザ端末(図示せず)に表示し、当該ユーザ端末から入力される情報に基づいてユーザ属性値を取得してもよい。ユーザ登録部311-iは、取得したユーザ属性値を、ユーザ属性値行列Siに追記する。
【0097】
以降、ユーザ属性値行列Siにおいて、ユーザuが有するユーザ属性vのユーザ属性値を、Si[u,v]とも記載する。uは、ユーザリストUiに含まれるユーザIDであり、ユーザuは、ユーザIDがuのユーザを指す。また、vは、ユーザ属性リストPiに含まれるユーザ属性IDであり、ユーザ属性vは、ユーザ属性IDがvのユーザ属性を指す。なお、Si[u,v]は、必ずしも取得できない場合がある。具体例として、例えば、ユーザuが当該ユーザ属性vに関する質問に対して回答を入力しなかった場合がある。また、他の具体例として、ユーザu(例えば、30才)がそもそも当該ユーザ属性v(40才の年収)を有していない場合がある。この場合Si[u,v]は欠損値である。欠損値を以下「NULL」と記載する。よって、Si[u,v]が欠損値であることは、「Si[u,v]=NULL」と表記される。ユーザ属性値行列Siは、多次元配列である。ユーザ登録部311-iは、ユーザ属性値行列Siのうち欠損値の成分を記憶部320-iに記憶しなくてよい。これにより、記憶部320-iの記憶領域を節約することできる。
【0098】
また、ユーザ登録部311-iは、サービサー装置300-iによる販売サービスの運用開始後に、ユーザ属性リストPiに新たなユーザ属性を追加してもよい。例えば、ユーザ登録部311-iは、当該販売サービスにおいて何らかのキャンペーンが行われた際に、「キャンペーン○○に応募したか否か」、「キャンペーン○○の最中に買った金額」といったユーザ属性をユーザ属性リストPiに追加してもよい。この場合、ユーザ登録部311-iは、追加したユーザ属性についてユーザに質問することで、入力された質問結果をユーザ属性値としてユーザ属性値行列Siに追記する。
【0099】
なお、本例示的実施形態では、サービサー装置300-iが、ユーザ属性値を数値化するものとする。ただし、これに限らず、サービサー装置300-iではユーザ属性値を文字列として記憶し、クライアント装置100-iが該当するユーザ属性値を文字列から数値化してもよい。
【0100】
(情報処理方法S5:商品登録)
情報処理方法S5は、サービサー装置300-iが実行する商品登録処理を示す。情報処理方法S5は、サービサー装置300-iによる販売サービスにおいて新商品を入荷する際に実行される。情報処理方法S5について、図13を参照して説明する。図13は、情報処理方法S5の流れを説明するフロー図である。図13に示すように、情報処理方法S5は、ステップS501~S503を含む。
【0101】
ステップS501において、商品登録部312-iは、新商品に対して新規の商品IDを付与し、当該商品IDを商品リストViに追加する。なお、商品登録部312-iは、当該サービサー装置300-iにおける独自の商品IDを付与してもよいし、製造時等に商品(またはその包装体等)に添付(例えば、印刷、貼り付け等)された1次元コードまたは2次元コードを商品IDとして用いてもよい。
【0102】
ステップS502において、商品登録部312-iは、当該新商品に関連付けられた1または複数の商品属性、およびそれぞれの商品属性値を示す情報を取得する。また、商品登録部312-iは、取得した1または複数の商品属性のうち、商品属性リストQiに含まれていない新規の商品属性があれば、当該新規の商品属性を商品属性リストQiに追加する。
【0103】
ステップS503において、商品登録部312-iは、当該新商品に関連付けられた各商品属性の商品属性値を、商品属性値行列Tiに追加する。
【0104】
以降、商品属性値行列Tiにおいて、商品vが有する商品属性uの商品属性値を、Ti[u,v]とも記載する。uは、商品属性リストQiに含まれる商品属性IDであり、商品属性uは、商品属性IDがuの商品属性を指す。また、vは、商品リストViに含まれる商品IDであり、商品vは、商品IDがvの商品を指す。なお、Ti[u,v]は、必ずしも取得できない場合がある。例えば、商品v(例えば、車)がそもそも当該商品属性v(食べたときに甘いか否か)を有していない場合がある。この場合Ti[u,v]は欠損値であり、「Ti[u,v]=NULL」と表記される。商品属性値行列Tiは、多次元配列である。商品登録部312-iは、商品属性値行列Tiのうち欠損値の成分を記憶部320-iに記憶しなくてよい。これにより、記憶部320-iの記憶領域を節約することができる。
【0105】
また、商品登録部312-iは、サービサー装置300-iによる販売サービスの運用開始後に、商品属性リストQiに新たな商品属性を追加してもよい。例えば、商品登録部312-iが、商品の製造メーカから既存の商品について新たな商品属性に関する情報(例えば、「30代女性によく売れる商品」)を取得したとする。この場合、商品登録部312-iは、新たな商品属性「30代によく売れるか否か」を商品属性リストQiに追加するとともに、該当商品の当該商品属性値(よく売れる)を商品属性値行列Tiに追加してもよい。
【0106】
(情報処理方法S6:評価値登録)
情報処理方法S6は、サービサー装置300-iが実行する評価値登録処理を示す。情報処理方法S6は、サービサー装置300-iによる販売サービスにおいてユーザが商品に評価値を付与する際に実行される。当該販売サービスにおいては、ユーザは、例えば、商品の良し悪しを5段階で評価する(5段階の評価値を付与する)ことができる。情報処理方法S6について、図14を参照して説明する。図14は、情報処理方法S6の流れを説明するフロー図である。図14に示すように、情報処理方法S6は、ステップS601~S602を含む。
【0107】
ステップS601において、評価値登録部313-iは、商品vに対するユーザの評価値を、ユーザ端末等から取得する。例えば、評価値登録部313-iは、ユーザuが商品vについて入力した評価値を取得してもよい。ステップS602において、評価値登録部313-iは、取得した評価値を、評価値行列Riに登録する。
【0108】
以降、評価値行列Riにおいて、商品vに対するユーザuの評価値を、Ri[u,v]とも記載する。ユーザu、商品vについては前述した通りである。なお、商品vに対する評価値が得られない場合、Ri[u,v]は欠損値となり、「Ri[u,v]=NULL」と表記される。評価値行列Riは、多次元配列である。評価値登録部313-iは、評価値行列Riのうち欠損値の成分を記憶部320-iに記憶しなくてよい。これにより、記憶部320-iの記憶領域を節約することできる。
【0109】
(情報処理方法S7:ユーザID共通化)
情報処理方法S7は、サービサー装置300-iが実行するユーザID共通化処理を示す。情報処理方法S7は、例えば、サービサー装置300-iを利用するユーザから、他のサービサー装置300-jを利用中であるとの情報が得られたことを契機として実行される。例えば、サービサー装置300-iは、ユーザに対して、他のサービサー装置300-jを利用中であるとの情報の登録に応じた報酬を付与するようにしてもよい。報酬の具体例としては、報奨金を払う、サービス料を安くする、商品の値段を割り引く等があるが、これらに限られない。これにより、ユーザリストUiおよびユーザリストUjの間で共通するユーザをより精度よく発見することができ、結果として、予測モデルMLiの精度を向上させることができる。情報処理方法S7について、図15を参照して説明する。図15は、情報処理方法S7の流れを説明するフロー図である。図15に示すように、情報処理方法S7は、ステップS701~S710を含む。
【0110】
ステップS701において、ユーザID共通化部314-iは、ユーザu1から、他のサービサー装置300-jを利用中であるとの情報を取得する。取得する情報には、他のサービサー装置300-jにおける当該ユーザu1のユーザID「u2」が含まれる。
【0111】
ステップS702において、ユーザID共通化部314-iは、未使用のユーザID「u-com」を共通のユーザIDの候補として決定する。未使用であるとは、ユーザリストUiに含まれていないことである。また、ユーザID共通化部314-iは、共通のユーザIDの候補「u-com」と、サービサー装置300-jにおけるユーザID「u2」と、をサービサー装置300-jに送信する。
【0112】
ステップS703において、サービサー装置300-jのユーザID共通化部314-jは、共通のユーザIDの候補「u-com」が未使用であるか否かを判断する。具体的には、ユーザID共通化部314-jは、ユーザリストUjにu-comが含まれていないかどうかを判断する。
【0113】
ステップS703においてNoと判断した場合、ステップS704が実行される。ステップS704において、ユーザID共通化部314-jは、サービサー装置300-iに対して、「使用済み」との回答を送信する。ステップS703jにおいてYesと判断した場合、ステップS705が実行される。ステップS705において、ユーザID共通化部314-jは、サービサー装置300-iに対して、「未使用」との回答を送信する。
【0114】
ステップS706において、サービサー装置300-iのユーザID共通化部314-iは、サービサー装置300-jから受信した回答が「未使用」であるか否かを判断する。ステップS706においてNo(使用済み)と判断した場合、ユーザID共通化部314-iは、ステップS702からの処理を繰り返す。なお、繰り返しにおけるステップS702においては、未使用の共通のユーザIDの候補として、ユーザリストUiに含まれず、かつ、前回までの候補以外を新たな候補「u-com」として決定する。
【0115】
ステップS706においてYes(未使用)と判断した場合、ステップS707が実行される。ステップS707において、ユーザID共通化部314-iは、ユーザリストUiにおけるu1をu-comに更新する。また、ステップS708において、ユーザID共通化部314-iは、共通ユーザリストUij^glbに、u-comを追加する。
【0116】
また、サービサー装置300-jにおいて、ユーザID共通化部314-jは、ステップS704で「使用済み」との回答を送信後、再度新たな共通のユーザIDの候補をサービサー装置300-iから受信すると、ステップS703からの処理を繰り返す。
【0117】
また、ユーザID共通化部314-jは、ステップS705で「未使用」との回答を送信後、ステップS709~S710を実行する。ステップS709において、ユーザID共通化部314-jは、ユーザリストUjにおけるu2をu-comに更新する。
【0118】
ステップS708において、ユーザID共通化部314-iは、共通ユーザリストUij^glbに、u-comを追加する。また、ユーザID共通化部314-iは、i≠jの全てのjについて共通ユーザリストUij^glbの和集合をUi^glbとして、記憶部320-iに記憶する。
【0119】
(情報処理方法S8:共通化)
情報処理方法S8は、サービサー装置300-iが実行する共通化処理を示す。情報処理方法S8は、サービサー装置300-iが他のサービサー装置300-jとの間で共通する商品、ユーザ属性、および商品属性を発見するために任意の時点において実行される。例えば、サービサー装置300-iは、所定間隔で情報処理方法S8を実行してもよいし、管理者による実行指示に応答して情報処理方法S8を実行してもよい。情報処理方法S8は、n個のサービサー装置300-iのうち少なくとも1つが実行すればよい。情報処理方法S8について、図16を参照して説明する。図16は、情報処理方法S8の流れを説明するフロー図である。図16に示すように、情報処理方法S8は、ステップS801~S803を含む。
【0120】
ステップS801において、共通化部315-iは、他の各サービサー装置300-jから、商品リストVjをそれぞれ取得し、n個の商品リストV1~Vnに基づいて共通商品リストVi^glbを生成する。共通商品リストVi^glbを生成する処理の具体例について説明する。例えば、まず、共通化部315-iは、商品リストV1~Vnのうち2つ以上に共通する商品を抽出する。なお、共通する商品を抽出するための所定の条件が定められていてもよい。所定の条件の一例としては、例えば、1または複数の所定の商品属性値(例えば、商品名、メーカ名等)が同一であるとの条件が挙げられるが、これに限られない。また、共通化部315-iは、抽出した商品それぞれに対して、共通商品IDを付与する。共通商品IDとしては、他の共通商品IDとは異なるとともに、n個の商品リストV1~Vnにおいて互いに共通しない商品の商品IDとも異なるIDが用いられる。そして、共通化部315-iは、商品リストV1~Vnのそれぞれにおいて共通する各商品の商品IDを、対応する共通商品IDに変更することにより、商品リストV1~Vnを更新する。また、共通化部315-iは、共通商品リストVi^glbに、共通する各商品の共通商品IDを追加する。そして、共通化部315-iは、他の各サービサー装置300-jに対して、更新した商品リストVjと、生成した共通商品リストVi^glbと、を送信して記憶部320-jに記憶させる。
【0121】
ステップS802において、共通化部315-iは、他の各サービサー装置300-jから、ユーザ属性リストPjをそれぞれ取得し、n個のユーザ属性リストP1~Pnに基づいて共通ユーザ属性リストPi^glbを生成する。共通ユーザ属性リストPi^glbを生成する処理の具体例について説明する。例えば、まず、共通化部315-iは、ユーザ属性リストP1~Pnのうち2つ以上に共通するユーザ属性を抽出する。なお、共通するユーザ属性を抽出するための所定の条件が定められていてもよい。所定の条件の一例としては、例えば、ユーザ属性の名称が同一であるとの条件が挙げられるが、これに限られない。また、共通化部315-iは、抽出したユーザ属性それぞれに対して、共通ユーザ属性IDを付与する。共通ユーザ属性IDは、他の共通ユーザ属性IDとは異なるとともに、n個のユーザ属性リストP1~Pnにおいて互いに共通しないユーザ属性のユーザ属性IDとも異なるIDが用いられる。そして、共通化部315-iは、ユーザ属性リストP1~Pnのそれぞれにおいて共通する各ユーザ属性のユーザ属性IDを、対応する共通ユーザ属性IDに変更することにより、ユーザ属性リストP1~Pnを更新する。また、共通化部315-iは、共通ユーザ属性リストPi^glbに、共通する各ユーザ属性の共通ユーザ属性IDを追加する。そして、共通化部315-iは、他の各サービサー装置300-jに対して、更新したユーザ属性リストPjと、生成した共通ユーザ属性リストPi^glbと、を送信して記憶部320-jに記憶させる。
【0122】
ステップS803において、共通化部315-iは、他の各サービサー装置300-jから、商品属性リストQjをそれぞれ取得し、n個の商品属性リストQ1~Qnに基づいて共通商品属性リストQi^glbを生成する。共通商品属性リストQi^glbを生成する処理の具体例について説明する。例えば、まず、共通化部315-iは、商品属性リストQ1~Qnのうち2つ以上に共通する商品属性を抽出する。なお、共通する商品属性を抽出するための所定の条件が定められていてもよい。所定の条件の一例としては、例えば、商品属性の名称が同一であるとの条件が挙げられるが、これに限られない。また、共通化部315-iは、抽出した商品属性それぞれに対して、共通商品属性IDを付与する。共通商品属性IDとしては、他の共通商品属性IDとは異なるとともに、n個の商品属性リストQ1~Qnにおいて互いに共通しない商品属性の商品属性IDとも異なるIDが用いられる。そして、共通化部315-iは、商品属性リストQ1~Qnのそれぞれにおいて共通する各商品属性の商品属性IDを、対応する共通商品属性IDに変更することにより、商品属性リストQ1~Qnを更新する。また、共通化部315-iは、共通商品属性リストQi^glbに、共通する各商品属性の共通商品属性IDを追加する。そして、共通化部315-iは、他の各サービサー装置300-jに対して、更新した商品リストVjと、生成した共通商品リストVi^glbと、を送信して記憶部320-jに記憶させる。
【0123】
以降、共通商品リストVi^glb、共通ユーザ属性リストPi^glb、共通商品属性リストQi^glbの要素を、それぞれ共通商品ID、共通ユーザ属性、共通商品属性と呼ぶ。また、Viに含まれVi^glbに含まれない各要素を、それぞれ、固有商品ID、固有ユーザ属性、固有商品属性と呼ぶ。
【0124】
なお、商品IDとして、製造時等に消費に付与された情報(前述の1次元コードまたは2次元コード等)を利用する場合は、全ての商品リストV1、V2、…Vnにわたって商品が商品IDにより一意に識別可能となっている。したがって、ステップS801における処理は、次のように簡略化できる。すなわち、共通化部315-iは、商品リストV1~Vnのうち2つ以上に共通する商品IDを、共通商品IDとして抽出する。これにより、共通化部315-iは、新たな共通商品IDを発行して各商品リストViを更新する処理を省略し、共通商品IDを共通商品リストVi^glbに追加する処理のみ実行すればよい。また、商品属性に関しても、各商品属性リストQ1~Qnにおいて、あらかじめ定められた標準的な商品属性IDが用いられている場合も考えられる。また、ユーザ属性に関しても、各ユーザ属性リストP1~Pnにおいて、あらかじめ定められた標準的なユーザ属性IDが使用される場合も考えられる。この場合、ステップS802、S803の処理も、ステップS801と同様に簡略化できる。
【0125】
また、情報処理方法S8は、1つのサービサー装置300-iに対して他の各サービサー装置300-jが商品リストVi、ユーザ属性リストPi、商品属性リストQiを公開することを前提としていた。ただし、各サービサー装置300-jは、企業秘密等により公開できない情報については秘匿し、それ以外の商品リストVi、ユーザ属性リストPi、商品属性リストQiを公開するようにしてもよい。この場合、秘匿した情報は、固有商品ID、固有ユーザ属性、固有商品属性として扱われる。
【0126】
また、情報処理方法S8は、1つのサービサー装置300-iが実行する代わりに、サーバ装置200が実行してもよい。この場合、サービサー装置300-iおよびクライアント装置100-iは、商品リストVi^glb、ユーザ属性リストPi^glb、商品属性リストQi^glbを生成/記憶する必要がないため、計算負荷および記憶領域が節約される。
【0127】
(情報処理方法S9:連合学習依頼、連合学習受諾)
情報処理方法S9は、連合学習システム10Aが実行する連合学習依頼処理および連合学習受諾処理を示す。情報処理方法S9は、例えば、サービサー装置300-iが情報処理方法S4~S8を完了したことを契機として実行される。また、情報処理方法S9は、定期的に、または、管理者の指示によって実行されてもよい。情報処理方法S9について、図17を参照して説明する。図17は、情報処理方法S9の流れを説明するフロー図である。図17に示すように、情報処理方法S9は、ステップS901~S905を含む。
【0128】
ステップS901において、連合学習依頼部316-iは、記憶部320-iに記憶した学習データセットDSiをクライアント装置100-iに送信する。学習データセットDSiには、前述したように、ユーザリストUi、商品リストVi、ユーザ属性リストPi、商品属性リストQi、評価値行列Ri、ユーザ属性値行列Si、商品属性値行列Ti,が含まれる。ここで、前述のように、評価値行列Ri、ユーザ属性値行列Si、商品属性値行列Tiはそれぞれ欠損値を含む。このため、連合学習依頼部316-iは、欠損値の部分を送信しないことで通信量を削減できる。
【0129】
ステップS902において、クライアント装置100-iは、受信した学習データセットDSiを記憶部120-iに記憶する。
【0130】
ステップS903において、サービサー装置300-iの連合学習依頼部316-iは、記憶部320-iに記憶した共通データCOMを、クライアント装置100-iおよびサーバ装置200にそれぞれ送信する。共通データCOMには、前述したように、共通ユーザリストUi^glb、共通商品リストVi^glb、共通ユーザ属性リストPi^glb、共通商品属性リストQi^glbが含まれる。
【0131】
なお、共通データCOMのうち、共通商品リストVi^glb、共通ユーザ属性リストPi^glb、共通商品属性リストQi^glbについては、n個のサービサー装置300-iが同一の情報を記憶している。したがって、これらをサーバ装置200に送信する処理は、n個のサービサー装置300-iのうち少なくとも1つが実行すればよい。
【0132】
また、共通データCOMのうち、共通ユーザリストUi^glbについては、情報処理方法S7のステップS708、S710で生成するものとして説明している。ただし、共通ユーザリストUi^glbを生成する処理は、本情報処理方法S9の本ステップS903で実行し、その上で当該共通ユーザリストUi^glbを送信してもよい。
【0133】
ステップS904において、クライアント装置100-iは、受信した共通データCOMを記憶部120-iに記憶する。ステップS905において、サーバ装置200は、受信した共通データCOMを記憶部220に記憶する。
【0134】
(連合学習方法S10)
連合学習方法S10は、n個のクライアント装置100-iおよびサーバ装置200が実行する方法である。ここで、連合学習方法S10の説明にあたり、以下の記号について説明する。任意の行列Mと集合G、Hに対し、
【数4】
と表すことにする。ここで、M[u,v]は、Mの(u,v)成分を表す。また、i=1,…,nに対し、以下のようにUi^barおよびVi^barを定義する。
【0135】
【数5】
つまり、Ui^barは、ユーザリストUiおよび商品属性リストQiを結合したリストである。Vi^barは、商品リストViおよびユーザ属性リストPiを結合したリストである。Ui^barは、図8に示した行列Ri^barの行を示す。また、Vi^barは、行列Ri^barの列を示す。
【0136】
また、E[u,v]を、次式(1)のように定義する。
【0137】
【数6】
ここで、次式(2)が成り立つ。
【0138】
【数7】
また、E[u,v]のうち、クライアント装置100-iに関連する部分(すなわち、E[Qi,Pi]の部分)をEi[u,v]と記載する。すなわち、Ei[u,v]は、以下のように定義される。
【0139】
【数8】
さらに、Ri^bar[u,v]を、次式(3)のように定義する。
【0140】
【数9】
と定義する。
【0141】
ここで、連合学習方法S10の目的は、Ai[Ui^bar,K]、Bi[K,Vi^bar]であって、Ui^bar×Vi^barの各要素(u,v)に対してAi[u,K]Bi[K,v]の積がRi^bar[u,v]とほぼ等しくなるものを求めることにある。これを行列で書けば、Ri^bar[Ui^bar、Vi^bar]の欠損値でない各成分に対して、次式(4)を満たすAi[Ui^bar,K]、Bi[K,Vi^bar]を見つけるということである。
【0142】
【数10】
これを、上述した式(3)、およびUi、Vi、Pi、Qiの定義を使って言い換えると、以下のように表記されるAi[Ui^bar,K]、Bi[K,Vi^bar]を見つけるということである。
【0143】
【数11】
なお、
【0144】
【数12】
は、近似を表す。
【0145】
これは、次式(5)のように表すこともできる。
【0146】
【数13】
以上のように定義した記号を用いて、本例示的実施形態に係る連合学習方法S10について、図18を参照して説明する。図18は、連合学習方法S10の流れを説明するフロー図である。連合学習方法S10は、例えば、クライアント装置100-iがサービサー装置300-iから学習データセットDSiおよび共通データCOMを受信したことを契機として実行される。図18に示すように、連合学習方法S10は、ステップS1001~S1010を含む。
【0147】
ステップS1001において、サーバ装置200は、初期化処理を実行する。当ステップの詳細については図面を変えて後述する。
【0148】
ステップS1002において、各クライアント装置100-iは、初期化処理を実行する。当ステップの詳細については図面を変えて後述する。
【0149】
ステップS1003において、各クライアント装置100-iは、学習処理を実行することにより、ベクトルAi^glb、Bi^glbを、第1パラメータ情報としてサーバ装置200に送信する。当ステップの詳細については図面を変えて後述する。
【0150】
ステップS1004において、サーバ装置200は、学習処理を実行することにより、ベクトルA^glb、B^glbを、統合パラメータ情報として各クライアント装置100-iに送信する。当ステップの詳細については図面を変えて後述する。
【0151】
ステップS1005において、クライアント装置100-iは、終了条件を満たすか否かを判定する。Yesと判断した場合、クライアント装置100-iは、クライアント学習処理を終了する。Noと判断した場合、クライアント装置100-iは、ステップS1003からの処理を繰り返す。また、この場合、サーバ装置200は、ステップS1004の処理を繰り返す。なお、終了条件は、例えば、n個のクライアント装置100-iの全てにおいて、次式(6)で定められる損失関数が閾値より小さい、等の条件がある。
【0152】
【数14】
この場合、クライアント装置100-iは、ステップS1003において、ベクトルAi^glb、Bi^glbに加えて、式(6)等により損失関数の値を算出してサーバ装置200に送信する。また、サーバ装置200は、ステップS1004において、n個のクライアント装置100-iから受信した損失関数の値が全て閾値より小さい場合に、ベクトルA^glb、B^glbに加えて、終了条件が満たされたとの情報を、各クライアント装置100-iに送信する。
【0153】
なお、終了条件における損失関数は、上述の式(6)に限られない。また、終了条件は、損失関数を用いる例に限らず、例えば、所定回数だけクライアント学習処理を繰り返すことであってもよい。
【0154】
(サーバ初期化方法S11)
次に、サーバ初期化方法S11について説明する。サーバ初期化方法S11は、サーバ装置200がステップS1001において初期化処理を実行するための方法である。ここで、サーバ初期化方法S11の説明にあたり、以下の記号について説明する。
【0155】
【数15】
式(7)において、ユーザリストUiから共通ユーザリストUi^glbを引いた差集合Ui^locは、各サービサー装置300-iに固有のユーザIDのリスト(固有ユーザIDリスト)を表す。また、商品リストViから共通商品リストVi^glbを引いた差集合Vi^locは、各サービサー装置300-iに固有の商品ID(固有商品リスト)を表す。また、ユーザ属性リストPiから共通ユーザ属性リストPi^glbを引いた差集合Pi^locは、各サービサー装置300-iに固有のユーザ属性ID(固有ユーザ属性リスト)を表す。また、商品属性リストQiから共通商品属性リストQi^glbを引いた差集合Qi^locは、各サービサー装置300-iに固有の商品属性ID(固有商品属性リスト)を表す。また、次式(8)のように記号を定義する。
【0156】
【数16】
ここで、Ui^bar^loc、Vi^bar^locは、クライアント装置100-iが秘匿すべきパラメータ情報であり、Ui^bar^glb、Vi^bar^glbは、クライアント装置100-iがサーバ装置200に公開する第1パラメータ情報である。さらに、次式(9)のように記号を定義する。
【0157】
【数17】
式(9)において、U^bar^glb、V^bar^glbは、各クライアント装置100-iからサーバ装置200に公開されたUi^bar^glb、Vi^bar^glbの和集合である。ここで、式(4)に記載したように、Ai[Ui^bar,K]、Bi[K,Vi^bar]を求めるのが学習の目標である。連合学習方法S10では、これらの部分行列であるAi[Ui^bar^glb,K]、Bi[K,Vi^bar^glb]が、クライアント装置100-iおよびサーバ装置200の間で送受信される。残りを構成する部分行列であるAi[Ui^bar^loc,K]、Bi[K,Vi^bar^loc]は、クライアント装置100-iによって保有され、サーバ装置200には送信されない。ここで、Ai[Ui^bar^glb,K]、Bi[K,Vi^bar^glb]は、以下のように表される。
【0158】
【数18】
したがって、クライアント装置100-iおよびサーバ装置200の間で送受信される情報は、次式(10)のように表される。
【0159】
【数19】
以上のように定義した記号を用いて、サーバ初期化方法S11について図19を参照して説明する。図19は、サーバ初期化方法S11の流れを示すフロー図である。図19に示すように、サーバ初期化方法S11は、ステップS1101~S1103を含む。
【0160】
ステップS1101において、サーバ装置200の制御部210は、記憶部220からハイパーパラメータkを読み込み、K={1,…,k}とする。また、制御部210は、記憶部220から、共通ユーザリストU1^bar^glb,…,Un^bar^glbを読み込み、式(8)にしたがってU^bar^glbを算出する。
【0161】
ステップS1102において、制御部210は、統合パラメータ情報であるA[U^bar^glb,K]、B[K,V^bar^glb]を初期化する。初期化するとは、これらのベクトルの各成分をランダムな値に設定する、全てゼロに設定する、等であるが、これらに限られない。
【0162】
ステップS1103において、制御部210は、n個のクライアント装置100-iそれぞれに対して、初期の統合パラメータ情報としてA[U^bar^glb,K]、B[K,V^bar^glb]を送信する。クライアント装置100-iに送信した統合パラメータ情報を、A[Ui^bar^glb,K]、B[K,Vi^bar^glb]とも記載する。
【0163】
(クライアント初期化方法S12)
次に、クライアント初期化方法S12について説明する。クライアント初期化方法S12は、クライアント装置100-iがステップS1002において初期化処理を実行するための方法である。図20は、クライアント初期化方法S12の流れを示すフロー図である。図20に示すように、クライアント初期化方法S12は、ステップS1201~S1204を含む。
【0164】
ステップS1201において、クライアント装置100-iの制御部110-iは、記憶部120-iからハイパーパラメータkを読み込み、K={1,…,k}とする。
【0165】
また、記憶部120-iから、ユーザリストUi、商品リストVi、ユーザ属性リストPi、商品属性リストQiを読み込む。
【0166】
また、制御部110-iは、記憶部120-iから、評価値行列Riのうち欠損値でない成分Ri[u,v]、ユーザ属性値行列Siのうち欠損値でない成分Si[u,v]、商品属性値行列Tiのうち欠損値でない成分Ti[u,v]を読み込む。
【0167】
また、制御部110-iは、記憶部120-iから、共通ユーザリストUi^glb、共通商品リストVi^glb、共通ユーザ属性リストPi^glb、共通商品属性リストQi^glbを読み込む。また、制御部110-iは、式(7)にしたがって個別ユーザリストUi^loc、個別商品リストVi^loc、個別ユーザ属性リストPi^loc、個別商品属性リストQi^locを算出する。
【0168】
また、制御部110-iは、式(8)にしたがって、Vi^bar^loc、Vi^bar^glb、Ui^bar^loc、Ui^bar^glbを算出する。
【0169】
ステップS1202において、制御部110-iは、サーバ装置200からA[Ui^bar^glb,K]、B[K,Vi^bar^glb]を受信する。これらの情報は、ステップS1103において送信されたものである。
【0170】
ステップS1203において、制御部110-iは、関連値算出処理を実行することにより、関連値行列Eiのうち欠損値でない成分Ei[u,v]を算出する。当ステップの詳細については後述する。
【0171】
ステップS1204において、制御部110-iは、ベクトルAi[Ui^bar^loc,K]と、Bi[K,Vi^bar^loc]とを初期化する。初期化するとは、これらのベクトルの各成分をランダムな値に設定する、全てゼロに設定する、等であるが、これらに限られない。また、制御部110-iは、次式(11)にしたがって、Ai[Ui^bar,K]、Bi[K,Vi^bar]を算出する。
【0172】
【数20】
(クライアント学習方法S13)
次に、クライアント学習方法S13について説明する。クライアント学習方法S13は、各クライアント装置100-iがステップS1003において学習処理を実行するための方法である。図21は、クライアント学習方法S13の流れを示すフロー図である。図21に示すように、クライアント学習方法S13は、ステップS1301~S1305を含む。
【0173】
ステップS1301において、パラメータ情報取得部113-iは、統合パラメータ情報であるA[U^bar^glb,K]、B[K,V^bar^glb]を、サーバ装置200から受信する。ただし、クライアント学習方法S13の初回のループでは、当該統合パラメータ情報をサーバ装置200から受信する代わりに、サーバ初期化方法S11において受信した統合パラメータ情報を用いる。
【0174】
ステップS1302において、更新部114-iは、複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]に含まれる第1パラメータ情報を、統合パラメータ情報A[Ui^bar^glb,K]、B[K,Vi^bar^glb]に置き換える。これにより、予測モデルMLiとしての複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]が更新される。具体的には、学習部111-iは、次式(12)に従って複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]を算出する。
【0175】
【数21】
ステップS1303において、学習部111-iは、行列Ri^bar[u,v]を用いて、Ai[Ui^bar,K]、Bi[K,Vi^bar]、Ri^bar[Ui^bar,Vi^bar]を入力として、ローカル学習処理を実行する。ローカル学習処理とは、予測モデルMLiとして機能するAi[Ui^bar,K]、Bi[K,Vi^bar]を学習により求める処理である。ローカル学習処理は、式(5)における近似がより正確になるように、Ai[Ui^bar,K]、Bi[K,Vi^bar]を更新する処理である。ローカル学習処理については詳細を後述する。
【0176】
ステップS1304において、学習部111-iは、ローカル学習処理の結果を用いて、Ai[Ui^bar^loc,K]をAi^new[Ui^bar^loc,K]に更新する。また、学習部111-iは、Bi[K,Vi^bar^loc]をBi^new[K,Vi^bar^loc]に更新する。
【0177】
ステップS1305において、学習部111-iは、ローカル学習処理の結果を用いて、Ai^new[Ui^bar^glb,K]、Bi^new[K,Vi^bar^glb]を、第1パラメータ情報としてサーバ装置200に送信する。
【0178】
(サーバ学習方法S14)
次に、サーバ学習方法S14について説明する。サーバ学習方法S14は、サーバ装置200がステップS1004において学習処理を実行するための方法である。図22は、サーバ学習方法S14の流れを示すフロー図である。図22に示すように、サーバ学習方法S14は、ステップS1401~S1405を含む。
【0179】
ステップS1401において、パラメータ情報取得部211は、各クライアント装置100-iから、Ai^new[Ui^bar^glb,K]、Bi^new[K,Vi^bar^glb]を、第1パラメータ情報として受信する。
【0180】
ステップS1402において、統合部212は、受信した第1パラメータ情報を、次式(13)にしたがって統合した統合パラメータ情報を生成する。ここでは、統合手法として、受信した第1パラメータ情報の各要素の平均を算出する手法を用いているが、統合手法は、これに限られない。
【0181】
【数22】
これにより、統合部212は、A[u,K]をA^mean[u,K]に更新するとともに、B[K,v]をB^mean[K,v]に更新する。
【0182】
ステップS1403において、パラメータ情報送信部213は、ステップS1402の算出結果を用いて、各クライアント装置100-iに対して、統合パラメータ情報であるA[Ui^bar^glb,K]、B[K,Vi^bar^glb]を送信する。
【0183】
(予測方法S15)
次に、サービサー装置300-iが、予測モデルMLiを用いて実行する予測方法について説明する。
【0184】
まず、サービサー装置300-iは、クライアント装置100-iから、予測モデルMLiとして機能するA[Ui^bar,K]、B[K,Vi^bar]を受信し、記憶部320-iに記憶する。また、サービサー装置300-iの予測部317-iは、u,vを入力として、次式(14)にしたがって予測値を計算する。
【0185】
【数23】
ここで、(u,v)がUi×Viに属する成分であれば、式(14)が示す予測値は、商品vに対するユーザuの評価値Ri[u,v]の予測値を示す。
【0186】
また、(u,v)がUi×Piに属する成分であれば、式(14)が示す予測値は、ユーザuが有するユーザ属性vのユーザ属性値Si[u,v]の予測値を示す。
【0187】
また、(u,v)がQi×Viに属する成分であれば、式(14)が示す予測値は、商品vが有する商品属性uの商品属性値Ti[u,v]の予測値を示す。
【0188】
また、(u,v)がQi×Piに属する成分であれば、式(14)が示す予測値は、商品属性uおよびユーザ属性vの関連値Ei[u,v]の予測値を示す。
【0189】
例えば、サービサー装置300-iは、以上の4種の予測値のうち何れを知りたいかい応じて、適切な(u,v)を入力として式(14)に従って予測値を算出すればよい。
【0190】
例えば、ユーザリストUiに属するユーザuに商品の広告を配信したい場合について説明する。この場合、サービサー装置300-iは、商品リストViにおいてユーザuの評価値が得られていない商品について、当該評価値を式(14)にしたがって予測する。また、サービサー装置300-iは、予測した評価値にしたがって、ユーザuに対して広告を配信する。例えば、サービサー装置300-iは、最も評価値が高い商品について広告を配信してもよいし、評価値が高いものから順次広告を配信してもよい。
【0191】
また、例えば、ユーザリストUiに属するユーザuについてユーザ属性vのユーザ属性値が不明である場合、サービサー装置300-iは、式(14)にしたがって当該ユーザ属性値の予測値を得ることができる。これにより、サービサー装置300-iは、ユーザuに対して提供するサービスを、当該ユーザ属性値の予測値にしたがって改善することができる。
【0192】
また、例えば、商品リストViに属する商品vについて商品属性uの商品属性値が不明である場合に、サービサー装置300-iは、式(14)にしたがって当該商品属性値の予測値を得ることができる。これにより、サービサー装置300-iは、商品vの入荷計画等を、当該商品属性値の予測値にしたがって対して提供するサービスを、当該ユーザ属性値の予測値にしたがって改善することができる。
【0193】
また、例えば、関連値Ei[u,v]は、ユーザ属性uを持つユーザが商品属性vの商品に付与する評価値の平均を示す。したがって、関連値Ei[u,v]の予測値を得ることで、ユーザ属性uが商品属性v商品の評価にどの程度影響を与えるかを予測することができる。すなわち、どのような商品属性の商品をどのようなユーザ属性のユーザが購入するかを予測することができ、予測結果を商品戦略の立案に用いることができる。
【0194】
(関連値算出処理の具体例)
ステップS1203における関連値算出処理の具体例について説明する。Ei[u,v]の定義式である式(2)において、和の添字にクライアント装置100-iが保有していない情報が含まれている。したがって、Ei[u,v]は、クライアント装置100-i単独で算出することはできず、他のクライアント装置100-jの協力を必要とする。そこで、Ei[u,v]を計算する方法として、例えば秘密計算を使う、という方法がある。その他の方法として、例えば以下に示すように計算方法が例示される。
【数24】
と定義し、i=1,…,nに対し、クライアント装置100-iは、以下を実行する。
【数25】
とする。ここで、
【数26】
である。そこで、
【数27】
に対し、以下を実行する。
【数28】
とする。
【数29】
を計算する。また、
【数30】
を計算を計算する。クライアント装置100-iは、
【数31】
をサーバ装置200に送信する。
次に、サーバ装置200は、以下を実行する。
【数32】
を計算する。
【数33】
をクライアント装置100-iに送信する。
各クライアント装置100-iは、受信したE[u,v]を、Ei[u,v]とする。
【0195】
(ローカル学習処理の具体例)
次に、ステップS1303におけるローカル学習処理の具体例について説明する。具体的には、ローカル学習処理の目的は、Ri^barと、ベクトルAi、Biの積との差が小さくなるようにベクトルAi、Biを更新することである。そのため、これらの差がどの程度開いているかを評価する損失関数を導入して、当該損失関数が小さくなるように学習を行う。そのような学習方法としては、例えば勾配降下法が知られている。ここでは、損失関数として2乗誤差を用い、学習手法として勾配降下法を用いた具体例について説明する。
【0196】
まず、集合G、H、条件I、および数値a[u,v]に対して、次のように定義する。
【数34】
このとき、例えば、以下の関数を損失関数として用いる事ができる。
【数35】
ここで
【数36】
は、どの項をどの程度重視するかを決めるための値であり、本具体例においては、クライアント装置100-iによって事前に決定され、記憶部120-iに記憶されているものとする。また、
【数37】
は、過学習を防ぐための「正則化項」と呼ばれる項で、必要がなければゼロにしてもよいが、必要があれば、例えば以下のように算出されるものを用いてもよい。
【数38】
ここで、
【数39】
は、どの項をどの程度重視するかを決めるための値であり、本具体例においては、クライアント装置100-iによって事前に決定され、記憶部120-iに記憶されているものとする。また、
【数40】
を少なくする学習方法には様々なものがあるが、例えば以下の方法を用いることができる。
クライアント装置100-iは、λi、τi、LoopMax、αをハイパーパラメータ記憶部から読み込む。λi、τiは以下のように表される。
【0197】
【数41】
クライアント装置100-iは、以下の操作をLoopMax回繰り返す。
【0198】
クライアント装置100-iは、Ui^barに属する各uに対して、Ai[u]からαDel(Li,Ai[u])を引く。また、Vi^barに属する各vに対して、Vi[v]からαDel(Li,Bi[v])を引く。なお、クライアント装置100-iは、上記の処理を所定値LoopMax回繰り返す代わりに、
【数42】
がある値以下になるまで繰り返してもよい。
また、上記において、αは、どの程度学習を進めるかを調整する学習率と呼ばれる値である。また、Del(f,C)は、関数fの変数Cによる偏微分を表す。集合G,Hに対し、
【数43】
とするとき、前述した
【数44】
の場合は、具体的には以下のようになる。
【0199】
【数45】
【数46】
(本例示的実施形態の効果)
本例示的実施形態に係る連合学習システム10Aでは、(i)ユーザリストUi内の各ユーザおよび商品リストVi内の各商品の組み合わせに対応する評価値の一部が欠損した評価値行列Riと、商品属性リストQi内の各商品属性および商品リストVi内の各商品の組み合わせに対応する商品属性値の一部が欠損した商品属性値行列Tiと、を含む学習データセットDSiを用いて、欠損した評価値を予測する予測モデルMLiを学習させ、(ii)予測モデルMLiの少なくとも一部を表す第1パラメータ情報Ai^new[Ui^bar^glb,K]、Bi^new[K,Vi^bar^glb]をサーバ装置200に送信し、(iii)複数のクライアント装置100-iから得られた第1パラメータ情報が統合された統合パラメータ情報A[Ui^bar^glb,K]、B[K,Vi^bar^glb]をサーバ装置200から受信し、(iv)第1パラメータ情報を統合パラメータ情報に置き換えることにより予測モデルMLiを更新する、との構成が採用されている。上記構成によれば、複数のクライアント装置100-i間で情報の秘匿性を保ちながら、商品属性を用いることで、商品に対するユーザの評価値をより精度よく予測することができる。したがって、このような予測モデルMLiを用いれば、予測した評価値に基づく情報の提供を受ける側にとって適切な情報を作成することができる。
【0200】
また、本例示的実施形態に係る連合学習システム10Aでは、学習データセットDSiは、さらに、ユーザリストUi内の各ユーザおよびユーザ属性リストPi内の各ユーザ属性の組み合わせに対応するユーザ属性値の一部が欠損したユーザ属性値行列Siを含み、当該学習データセットDSiを用いて予測モデルMLiを学習させる、との構成が採用されている。上記構成によれば、さらにユーザ属性を用いて、商品に対するユーザの評価値をより精度よく予測する予測モデルMLiを生成することができる。
【0201】
また、本例示的実施形態に係る連合学習システム10Aでは、クライアント装置100-iおよび100-jの間で、ユーザリストUiおよびUjは、互いに共通するユーザを含み、商品リストViおよびVjは、互いに共通する商品を含み、商品属性リストQiおよびQjは、互いに共通する商品属性を含み、ユーザ属性リストPiおよびPjは、互いに共通するユーザ属性を含む、との構成が採用されている。上記構成によれば、共通のユーザ、共通の商品、共通の商品属性、および共通のユーザ属性を考慮して、商品に対するユーザの評価値をよりさらに精度よく予測することができる。また、各クライアント装置100-iにおいて個別のユーザ、個別の商品、個別の商品属性、または個別のユーザ属性がある場合にも対応することができる。
【0202】
また、本例示的実施形態に係る連合学習システム10Aでは、学習データセットDSiを、各ユーザおよび各商品の組み合わせに対応する評価値のうち一部が欠損した行列Ri^barとして、当該行列Ri^barを分解した複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]を予測モデルMLiとして求め、当該複数のベクトルの少なくとも一部であるAi^new[Ui^bar^glb,K]、Bi^new[K,Vi^bar^glb]を、第1パラメータ情報として送信する、との構成が採用されている。上記構成によれば、ユーザの評価値が不明な商品について当該評価値を予測する予測モデルMLiを生成することができる。
【0203】
また、本例示的実施形態に係る連合学習システム10Aでは、行列Ri^barの欠損していない評価値に対して、複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]の積において当該評価値に対応する成分が近似するように、当該複数のベクトルを求める、との構成が採用されている。上記構成によれば、ユーザの評価値が不明な商品に対する当該評価値を精度よく予測する予測モデルMLiを生成することができる。
【0204】
また、本例示的実施形態では、行列Ri^barの欠損していない商品属性値に対して、複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]の積において当該商品属性値に対応する成分が近似するように、当該複数のベクトルを求める、との構成が採用されている。上記構成によれば、商品属性値が不明な商品に対する当該商品属性値を精度よく予測する予測モデルMLiを生成することができる。
【0205】
また、本例示的実施形態に係る連合学習システム10Aでは、行列Ri^barの欠損していないユーザ属性値に対して、複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]の積において当該ユーザ属性値に対応する成分が近似するように、当該複数のベクトルを求める、との構成が採用されている。上記構成によれば、ユーザ属性値が不明なユーザに対する当該ユーザ属性値を精度よく予測する予測モデルMLiを生成することができる。
【0206】
また、本例示的実施形態に係る連合学習システム10Aでは、行列Ri^barの欠損していない関連値に対して、複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]の積において当該関連値に対応する成分が近似するように、当該複数のベクトルを求める、との構成が採用されている。上記構成によれば、ユーザ属性および商品属性の関連性を示す関連値を精度よく予測することができる。これにより、例えば、どのような商品属性の商品をどのようなユーザ属性のユーザが購入するかを予測する予測モデルMLiを生成することができる。
【0207】
また、本例示的実施形態に係る連合学習システム10Aでは、各関連値として、各ユーザ属性値および各対象属性値の積を、当該ユーザ属性値および当該対象属性値に対応する評価値で除した値に基づき算出する、との構成が採用されている。上記構成によれば、ユーザ属性および商品属性の関連性を予測するための学習データとして関連値を算出することができる。
【0208】
また、本例示的実施形態に係る連合学習システム10Aでは、各クライアント装置100-iは、予測モデルMLiを表す情報のうち、学習データセットDSiおよびDSjにおいて共通する情報に起因して得られたパラメータ情報を、第1パラメータ情報として送信する。共通する情報は、共通する評価対象、共通するユーザ、共通する商品属性、または共通するユーザ属性を示す情報を含む。上記構成によれば、各クライアント装置100-iは、固有の情報に起因して得られたパラメータ情報を送信しないので、クライアント装置100-i間で情報の秘匿性を保つことができる。
【0209】
また、本例示的実施形態に係る連合学習システム10Aでは、各サービサー装置300-iは、予測モデルMLiを用いて、評価値が付与されていない評価対象およびユーザの組み合わせに対応する評価値を予測することができる。また、各サービサー装置300-iは、予測モデルMLiを用いて、ユーザのユーザ属性値が得られていないユーザ属性について当該ユーザ属性値を予測することができる。また、各サービサー装置300-iは、予測モデルMLiを用いて、商品の商品属性値が得られていないユーザ属性について当該商品属性値を予測することができる。また、各サービサー装置300-iは、予測モデルMLiを用いて、ユーザ属性および商品属性の関連性を予測することができる。
【0210】
また、本例示的実施形態によれば、ユーザがまだ評価値を付与していない商品の評価値の推測値を得ることができるため、推測された評価値が高い商品をユーザに推薦することができる。また、本例示的実施形態によれば、副次的効果として、(i)ユーザのユーザ属性が不明である場合、そのユーザ属性値を推測することができる、(ii)商品の商品属性値が不明である場合、その商品属性値を推測することができる、(iii)ユーザ属性がvであるユーザによって商品属性がuである商品に付与された評価値の平均値が不明である場合、当該平均値を予測することができる、との効果を奏する。また、これにより、ユーザ属性および商品属性が予測できるので、サービサー装置300-iのユーザおよび商品に対する理解が深まり、自社サービスの改善につなげることができる。
【0211】
また、「ユーザ属性がvであるユーザによって商品属性がuである商品に付与された評価値の平均値」は、ユーザ属性および商品属性の関係性を表している。したがって、このような平均値を予測することにより、どういう傾向のユーザがどういう傾向の商品を買いそうかという分析を行うことができる。また、これにより、新たな商品を入荷する際の参考にしたり、自社サービスの改善につなげたりすることができる。
【0212】
また、本例示的実施形態は、非特許文献1に記載された技術に対して、以下のケースであっても使えるというメリット(i)~(vi)を有する。
(i)クライアント装置100-i間で共通のユーザがいる場合にも動作する。
(ii)クライアント装置100-iごとに固有の商品がある場合でも動作する。
(iii)ユーザ属性を評価値の予測に利用できる。
(iv)商品属性を評価値の予測に利用できる。
(v)クライアント装置100-i毎に共通のユーザ属性・商品属性、クライアント100-i固有のユーザ属性・商品属性に対応できる。
(vi)クライアント装置100-i間でユーザ・商品のいずれも共通していない場合であっても連合学習による精度改善が見込める。
【0213】
ここで、メリット(vi)に関して説明する。非特許文献1に記載された技術は、複数のクライアント装置間における共通ユーザ・共通商品を利用した転移学習を起こすことで、連合学習による精度改善を行っている。このため、クライアント装置間で共通ユーザ・共通商品がない場合は連合学習をしても、各クライアント装置が個別に学習した場合に対して精度が改善しない。
【0214】
これに対して、本例示的実施形態によれば、関連値行列EiをRi^barの成分に加えていることにより、ユーザ属性・商品属性の中にクライアント装置100-i間で共通しているものがあればそこから転移学習が起こり、精度が改善される。よって、本例示的実施形態は、クライアント装置100-i間でユーザ・商品のいずれも共通していない場合であっても、連合学習による精度改善が見込めるというメリットがある。
【0215】
(変形例)
なお、本例示的実施形態において、ユーザによる評価対象として商品を適用する例について説明したが、評価対象は、これに限られない。例えば、評価対象の他の例としては、商品の販売者、製造者等であってもよい。また、評価対象に対する評価を与えるユーザは、サービスを享受するエンドユーザに限らず、例えば、商品の仕入れ業者等といったように、サービスの提供過程における中間のユーザであってもよい。
【0216】
また、本例示的実施形態において、サービサー装置300-iは、販売サービスを提供するサービスに限らず、その他のサービスを提供する装置であってもよい。その他のサービスの一例としては、教育サービス、医療サービス、動画配信サービス、等が挙げられる。その場合、評価対象の例としては、例えば、教育サービスにおける学校、講座、教師、医療サービスにおける病院、医師、動画配信サービスにおける動画、等であってもよい。
【0217】
また、本例示的実施形態において、サービサー装置300-iおよびクライアント装置100-iは、別体の装置であるものとして説明したが、i=1~nの一部または全部において、これらが同一の装置によって構成されていてもよい。
【0218】
また、本例示的実施形態では、商品に対する評価値はユーザが付与するものとして説明したが、商品に対するユーザの評価値は、ユーザの行動履歴(例えば、販売サイトの閲覧履歴等)等に基づきコンピュータが計算したものであってもよい。例えば、評価値登録部313-iは、ユーザが入力した評価値を取得する代わりに、ユーザの行動履歴に基づき推測した評価値を取得してもよい。行動履歴としては、販売サービスにおける閲覧履歴、購入履歴等であってもよい。例えば、評価値登録部313-iは、ユーザuが商品vに関するページを閲覧したことに応じて、評価値としてスコア1を推測してもよい。また、例えば、評価値登録部313-iは、ユーザuが商品vを購入したことに応じて、評価値としてスコア10を推測してもよい。なお、この例では、数値が大きいほど高評価であることを示しているが、これに限られない。また、商品に対する評価値を取得する手法は、上述した手法に限られず、その他の手法であってもよい。
【0219】
同様に、ユーザ属性値はユーザが入力するものとして説明したが、ユーザ属性値は、ユーザの行動履歴(例えば、販売サイトの閲覧履歴等)、他の入力内容等に基づきコンピュータが計算したものであってもよい。例えば、ユーザ登録部311-iは、ユーザにより入力される情報に限らず、ユーザの閲覧履歴、購入履歴等に基づいてユーザ属性値を推測することにより取得してもよい。
【0220】
また、本例示的実施形態は、ユーザ属性リストPiを用いずに動作するよう変形可能である。この場合、行列Ri^barは、評価値行列Ri、商品属性値行列Tiを含み、ユーザ属性行列Si、関連値行列Eiを含まないように変形される。学習部111-iは、このような行列Ri^barの欠損していない評価値および商品属性値に対して、複数のベクトルAi[Ui^bar,K]、Bi[K,Vi^bar]の積において当該評価値および商品属性値に対応する各成分が近似するように、当該複数のベクトルを求める。この場合であっても、本例示的実施形態は、上述した効果と略同様の効果を奏する。
【0221】
〔ソフトウェアによる実現例〕
連合学習装置1、クライアント装置100-i、サーバ装置2、200、サービサー装置300-i(以降、各装置と記載)の一部又は全部の機能は、集積回路(ICチップ)等のハードウェアによって実現してもよいし、ソフトウェアによって実現してもよい。
【0222】
後者の場合、各装置は、例えば、各機能を実現するソフトウェアであるプログラムの命令を実行するコンピュータによって実現される。このようなコンピュータの一例(以下、コンピュータCと記載する)を図23に示す。コンピュータCは、少なくとも1つのプロセッサC1と、少なくとも1つのメモリC2と、を備えている。メモリC2には、コンピュータCを各装置として動作させるためのプログラムPが記録されている。コンピュータCにおいて、プロセッサC1は、プログラムPをメモリC2から読み取って実行することにより、各装置の各機能が実現される。
【0223】
プロセッサC1としては、例えば、CPU(Central Processing Unit)、GPU(Graphic Processing Unit)、DSP(Digital Signal Processor)、MPU(Micro Processing Unit)、FPU(Floating point number Processing Unit)、PPU(Physics Processing Unit)、TPU(Tensor Processing Unit)、量子プロセッサ、マイクロコントローラ、又は、これらの組み合わせなどを用いることができる。メモリC2としては、例えば、フラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又は、これらの組み合わせなどを用いることができる。
【0224】
なお、コンピュータCは、プログラムPを実行時に展開したり、各種データを一時的に記憶したりするためのRAM(Random Access Memory)を更に備えていてもよい。また、コンピュータCは、他の装置との間でデータを送受信するための通信インタフェースを更に備えていてもよい。また、コンピュータCは、キーボードやマウス、ディスプレイやプリンタなどの入出力機器を接続するための入出力インタフェースを更に備えていてもよい。
【0225】
また、プログラムPは、コンピュータCが読み取り可能な、一時的でない有形の記録媒体Mに記録することができる。このような記録媒体Mとしては、例えば、テープ、ディスク、カード、半導体メモリ、又はプログラマブルな論理回路などを用いることができる。コンピュータCは、このような記録媒体Mを介してプログラムPを取得することができる。また、プログラムPは、伝送媒体を介して伝送することができる。このような伝送媒体としては、例えば、通信ネットワーク、又は放送波などを用いることができる。コンピュータCは、このような伝送媒体を介してプログラムPを取得することもできる。
【0226】
〔付記事項1〕
本発明は、上述した実施形態に限定されるものでなく、請求項に示した範囲で種々の変更が可能である。例えば、上述した実施形態に開示された技術的手段を適宜組み合わせて得られる実施形態についても、本発明の技術的範囲に含まれる。
【0227】
〔付記事項2〕
上述した実施形態の一部又は全部は、以下のようにも記載され得る。ただし、本発明は、以下の記載する態様に限定されるものではない。
【0228】
(付記1)
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、
を含む、連合学習装置。
【0229】
(付記2)
前記第1学習データセットは、さらに、前記ユーザリスト内の一部又は全部のユーザの各々が有するユーザ属性値であって、ユーザ属性リスト内の各ユーザ属性に関するユーザ属性値を含み、
前記学習手段は、当該第1学習データセットを用いて前記第1予測モデルを学習させる、
付記1に記載の連合学習装置。
【0230】
(付記3)
前記第1学習データセットに含まれるユーザリストおよび前記第2学習データセットに含まれるユーザリストは、互いに共通するユーザを含み、
前記第1学習データセットに含まれる評価対象リストおよび前記第2学習データセットに含まれる評価対象リストは、互いに共通する評価対象を含み、
前記第1学習データセットに含まれる対象属性リストおよび前記第2学習データセットに含まれる対象属性リストは、互いに共通する対象属性を含み、
前記第1学習データセットに含まれるユーザ属性リストおよび前記第2学習データセットに含まれるユーザ属性リストは、互いに共通するユーザ属性を含む、
付記2に記載の連合学習装置。
【0231】
(付記4)
前記学習手段は、
前記第1学習データセットを、前記各ユーザおよび前記各評価対象の組み合わせに対応する評価値のうち一部が欠損した多次元配列として、当該多次元配列を分解した複数のベクトルを前記第1予測モデルとして求め、
前記パラメータ情報送信手段は、前記複数のベクトルの少なくとも一部を前記第1パラメータ情報として送信する、
付記1または2に記載の連合学習装置。
【0232】
(付記5)
前記学習手段は、
前記多次元配列の欠損していない評価値に対して、前記複数のベクトルの積において当該評価値に対応する成分が近似するように、当該複数のベクトルを求める、
付記4に記載の連合学習装置。
【0233】
(付記6)
前記多次元配列は、前記評価値の一部の欠損に加えて、前記各対象属性および前記各評価対象の組み合わせに対応する対象属性値のうち一部がさらに欠損しており、
前記学習手段は、
前記多次元配列の欠損していない対象属性値に対して、前記複数のベクトルの積において当該対象属性値に対応する成分が近似するように、当該複数のベクトルを求める、
付記4または5に記載の連合学習装置。
【0234】
(付記7)
前記第1学習データセットは、さらに、前記ユーザリスト内の一部又は全部のユーザの各々に付与されたユーザ属性値であって、ユーザ属性リスト内の各ユーザ属性に関するユーザ属性値を含み、
前記多次元配列は、前記評価値の一部の欠損に加えて、前記各ユーザ属性および前記各ユーザの組み合わせに対応するユーザ属性値のうち一部がさらに欠損しており、
前記学習手段は、
前記多次元配列の欠損していないユーザ属性値に対して、前記複数のベクトルの積において当該ユーザ属性値に対応する成分が近似するように、当該複数のベクトルを求める、
付記4から6の何れか1つに記載の連合学習装置。
【0235】
(付記8)
前記多次元配列は、前記評価値の一部の欠損、前記対象属性値の一部の欠損、および前記ユーザ属性値の一部の欠損に加えて、前記各対象属性および前記各ユーザ属性の組み合わせに対応する当該組み合わせの関連性を示す関連値のうち一部がさらに欠損しており、
前記学習手段は、
前記多次元配列の欠損していない関連値に対して、前記複数のベクトルの積において当該関連値に対応する成分が近似するように、当該複数のベクトルを求める、
付記7に記載の連合学習装置。
【0236】
(付記9)
前記学習手段は、前記各関連値として、各ユーザ属性値および各対象属性値の積を、当該ユーザ属性値および当該対象属性値に対応する評価値で除した値に基づき算出する、
付記8に記載の連合学習装置。
【0237】
(付記10)
前記パラメータ情報送信手段は、前記第1予測モデルを表す情報のうち、前記第1学習データセットおよび前記第2学習データセットに共通する情報に起因して得られたパラメータ情報を、前記第1パラメータ情報として送信する、
付記1から9の何れか1つに記載の連合学習装置。
【0238】
(付記11)
前記共通する情報は、共通する評価対象を示す情報を含む、付記10に記載の連合学習装置。
【0239】
(付記12)
前記共通する情報は、共通するユーザを示す情報を含む、付記10または11に記載の連合学習装置。
【0240】
(付記13)
前記共通する情報は、共通する対象属性を示す情報を含む、
付記10から12の何れか1つに記載の連合学習装置。
【0241】
(付記14)
前記第1学習データセットは、さらに、前記ユーザリスト内の一部又は全部のユーザの各々に付与されたユーザ属性値であって、ユーザ属性リスト内の各ユーザ属性に関するユーザ属性値を含み、
前記共通する情報は、共通するユーザ属性を示す情報を含む、
付記10から13の何れか1つに記載の連合学習装置。
【0242】
(付記15)
前記第1予測モデルを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する予測手段、
をさらに含む、付記1から付記14の何れか1つに記載の連合学習装置。
【0243】
(付記16)
付記1から15の何れか1つに記載の連合学習装置としてそれぞれ機能する複数の連合学習装置の各々から前記第1パラメータ情報を取得するパラメータ情報取得手段と、
複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成する統合手段と、
前記統合パラメータ情報を、前記複数の連合学習装置のそれぞれに送信するパラメータ情報送信手段と、
を含むサーバ装置。
【0244】
(付記17)
付記1から15の何れか1つに記載された連合学習装置としてそれぞれ機能する複数の連合学習装置と、
付記16に記載されたサーバ装置と、
を含む、連合学習システム。
【0245】
(付記18)
コンピュータが、
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させることと、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信することと、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得することと、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新することと、
を含む、連合学習方法。
【0246】
(付記19)
コンピュータを、
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、
として機能させる、プログラム。
【0247】
(付記20)
コンピュータを、
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習手段と、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信手段と、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得手段と、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新手段と、
として機能させる、プログラムを記録した記録媒体。
【0248】
(付記21)
コンピュータが、
付記1から15の何れか1つに記載の連合学習装置として機能する複数の連合学習装置の各々から前記第1パラメータ情報を取得することと、
複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成することと、
前記統合パラメータ情報を、前記複数の連合学習装置のそれぞれに送信することと、
を含む連合学習方法。
【0249】
(付記22)
コンピュータを、
付記1から15の何れか1つに記載の連合学習装置として機能する複数の連合学習装置の各々から前記第1パラメータ情報を取得するパラメータ情報取得手段と、
複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成する統合手段と、
前記統合パラメータ情報を、前記複数の連合学習装置のそれぞれに送信するパラメータ情報送信手段と、
として機能させるプログラム。
【0250】
(付記23)
コンピュータを、
付記1から15の何れか1つに記載の連合学習装置として機能する複数の連合学習装置の各々から前記第1パラメータ情報を取得するパラメータ情報取得手段と、
複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成する統合手段と、
前記統合パラメータ情報を、前記複数の連合学習装置のそれぞれに送信するパラメータ情報送信手段と、
として機能させるプログラムを記録した記録媒体。
【0251】
(付記24)
複数の連合学習装置の各々が、
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させることと、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信することと、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得することと、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新することと、を含み、
前記サーバ装置が、
前記複数の前記連合学習装置の各々から前記第1パラメータ情報を取得することと、
複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成することと、
前記統合パラメータ情報を、前記複数の連合学習装置の各々に送信することと、
を含む、連合学習方法。
【0252】
(付記25)
少なくとも1つのプロセッサを備え、前記プロセッサは、
評価対象リスト内の一部又は全部の評価対象の各々に対する評価値であって、ユーザリスト内の各ユーザによる評価を示す評価値、及び、前記評価対象リスト内の一部又は全部の評価対象の各々が有する対象属性値であって、対象属性リスト内の各対象属性に関する対象属性値、を含む第1学習データセットを用いて、前記評価値が得られていない評価対象およびユーザの組み合わせに対応する評価値を予測する第1予測モデルを学習させる学習処理と、
前記第1予測モデルの少なくとも一部を表す第1パラメータ情報をサーバ装置に送信するパラメータ情報送信処理と、
前記第1学習データセットと同様に構成された第2学習データセットであって、前記第1学習データセットに対して前記評価対象リスト、前記ユーザリスト、前記対象属性リスト、各評価値、および各対象属性値の少なくとも一部が異なる第2学習データセットを用いて学習された第2予測モデルの少なくとも一部を表す第2パラメータ情報と、前記第1パラメータ情報と、が統合された統合パラメータ情報を、前記サーバ装置から取得するパラメータ情報取得処理と、
前記第1パラメータ情報を前記統合パラメータ情報に置き換えることにより前記第1予測モデルを更新する更新処理と、
を実行する、連合学習装置。
【0253】
なお、この連合学習装置は、更にメモリを備えていてもよく、このメモリには、前記学習処理と、前記パラメータ情報取得処理と、前記パラメータ情報送信処理とを前記プロセッサに実行させるためのプログラムが記憶されていてもよい。また、このプログラムは、コンピュータ読み取り可能な一時的でない有形の記録媒体に記録されていてもよい。
【0254】
(付記26)
少なくとも1つのプロセッサを備え、前記プロセッサは、
付記20に記載の連合学習装置として機能する複数の連合学習装置の各々から前記第1パラメータ情報を取得するパラメータ情報取得処理と、
複数の前記第1パラメータ情報を統合することにより前記統合パラメータ情報を生成する統合処理と、
前記統合パラメータ情報を、前記複数の連合学習装置のそれぞれに送信するパラメータ情報送信処理と、
を実行するサーバ装置。
【0255】
なお、このサーバ装置は、更にメモリを備えていてもよく、このメモリには、前記パラメータ情報取得処理と、前記統合処理と、前記パラメータ情報送信処理とを前記プロセッサに実行させるためのプログラムが記憶されていてもよい。また、このプログラムは、コンピュータ読み取り可能な一時的でない有形の記録媒体に記録されていてもよい。
【符号の説明】
【0256】
1 連合学習装置
1A、1B、100-i クライアント装置
2、200 サーバ装置
300 サービサー装置
10、10A 連合学習システム
11、111-i 学習部
12、112-i、23、213 パラメータ情報送信部
13、113-i、21、211 パラメータ情報取得部
14、114-i 更新部
22、212 統合部
110-i、210、310-i 制御部
120-i、220、320-i 記憶部
130-i、230、330-i 通信部
311-i ユーザ登録部
312-i 商品登録部
313-i 評価値登録部
314-i ユーザID共通化部
315-i 共通化部
316-i 連合学習依頼部
317-i 予測部
C1 プロセッサ
C2 メモリ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23