(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-01-12
(54)【発明の名称】連合学習モデルの訓練方法、装置及び電子機器
(51)【国際特許分類】
G06N 3/098 20230101AFI20240104BHJP
【FI】
G06N3/098
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023540566
(86)(22)【出願日】2021-12-31
(85)【翻訳文提出日】2023-06-30
(86)【国際出願番号】 CN2021143890
(87)【国際公開番号】W WO2022144001
(87)【国際公開日】2022-07-07
(31)【優先権主張番号】202011621994.0
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】202011617342.X
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】CN
(81)【指定国・地域】
(71)【出願人】
【識別番号】521507084
【氏名又は名称】京▲東▼科技控股股▲フン▼有限公司
(74)【代理人】
【識別番号】100118913
【氏名又は名称】上田 邦生
(74)【代理人】
【識別番号】100142789
【氏名又は名称】柳 順一郎
(74)【代理人】
【識別番号】100201466
【氏名又は名称】竹内 邦彦
(72)【発明者】
【氏名】ワン, ペイキ
(72)【発明者】
【氏名】ヂャン, ウェンシ
(72)【発明者】
【氏名】グー, ソンギャン
(72)【発明者】
【氏名】ボ, リエフェン
(72)【発明者】
【氏名】サン, メンジェ
(57)【要約】
本出願はサーバに適用される連合学習モデルの訓練方法、装置および電子機器を開示し、当該方法は、訓練ノードが予め設定された分割条件を満たす場合、訓練ノードに対応するターゲット分割方式を取得するステップであって、訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するステップと、更新された訓練ノードが予め設定された分割条件を満たさなくなるまで、訓練ノードが分割されて生成された左サブツリーノードを新たに訓練ノードとして次のラウンドの訓練を行うステップと、1つのブースティングツリーの他の非葉ノードを新たに訓練ノードとして次のラウンドの訓練を行うステップと、複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成するステップと、を含む。これにより、本出願は水平と垂直分割方式を混合することにより、マッチングする学習方式の傾向性を自動的に選択し、データ分布方式を気にすることなく、連合学習モデルの性能を向上させる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
連合学習モデルの訓練方法であって、サーバに適用され、
訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得するステップであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、
前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するステップと、
更新された前記訓練ノードが前記予め設定された分割条件を満たさなくなるまで、前記訓練ノードが分割されて生成された左サブツリーノードを新たに前記訓練ノードとして次のラウンドの訓練を行うステップと、
前記1つのブースティングツリーの他の非葉ノードを新たに前記訓練ノードとして次のラウンドの訓練を行うステップと、
前記複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成するステップと、
を含む、連合学習モデルの訓練方法。
【請求項2】
前記訓練ノードに対応するターゲット分割方式を取得するステップが、
第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、
第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップと、
を含む請求項1に記載の連合学習モデルの訓練方法。
【請求項3】
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップが、
前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するステップと、
前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するステップと、
を含む請求項2に記載の連合学習モデルの訓練方法。
【請求項4】
前記第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップが、
前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するステップと、
前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するステップと、
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップと、
前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するステップと、
を含む請求項2に記載の連合学習モデルの訓練方法。
【請求項5】
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップが、
前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するステップと、
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含むステップと、
前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するステップと、
を含む請求項4に記載の連合学習モデルの訓練方法。
【請求項6】
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップが、
前記クライアントに前記分割閾値を送信するステップと、
前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信するステップであって、前記初期データインスタンス識別子セットが、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含むステップと、
前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得するステップと、
を含む請求項5に記載の連合学習モデルの訓練方法。
【請求項7】
前記初期データインスタンス識別子セットに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得するステップは、
前記初期データインスタンス識別子セット内の各データインスタンス識別子と、前記クライアントのデータインスタンス識別子とを比較して、異常が存在するデータインスタンス識別子を取得するステップと、
前記異常が存在するデータインスタンス識別子を前処理して、前記第1データインスタンス識別子セットを取得するステップと、
すべてのデータインスタンス識別子と前記第1データインスタンス識別子セットとに基づいて、前記第2データインスタンス識別子セットを取得するステップと、を含む、
ことを特徴とする請求項6に記載の連合学習モデルの訓練方法。
【請求項8】
前記第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップが、
前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するステップと、
前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、
各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップと、
各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するステップと、
を含む請求項2に記載の連合学習モデルの訓練方法。
【請求項9】
前記各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップが、
いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するステップと、
各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するステップと、
前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するステップと、
を含む請求項8に記載の連合学習モデルの訓練方法。
【請求項10】
前記第1勾配情報は、前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含み、前記第2勾配情報は、前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含む、
ことを特徴とする請求項9に記載の連合学習モデルの訓練方法。
【請求項11】
前記訓練ノードが予め設定された分割条件を満たしていない場合、前記訓練ノードが葉ノードであると決定し、前記葉ノードの重み値を取得するステップと、
前記葉ノードの重み値を前記クライアントに送信するステップと、
を含む請求項1から10のいずれか一項に記載の連合学習モデルの訓練方法。
【請求項12】
前記葉ノードの重み値を取得するステップが、
前記葉ノードに属するデータインスタンスを取得するステップと、
前記葉ノードに属する前記データインスタンスの一次勾配情報及び二次勾配情報を取得し、前記一次勾配情報及び前記二次勾配情報に基づいて前記葉ノードの重み値を取得するステップと、
を含む請求項11に記載の連合学習モデルの訓練方法。
【請求項13】
前記ターゲット分割方式に基づいてノード分割を行うように前記クライアントに通知するステップの前に、
分割情報を前記クライアントに送信するステップであって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及び前記ターゲット分割値を含むステップを含む請求項3に記載の連合学習モデルの訓練方法。
【請求項14】
前記ターゲット分割方式が垂直分割方式である場合、
前記ターゲット分割方式に基づいてノード分割を行うように前記クライアントに通知するステップの前に、
ラベル付けされたクライアントに前記分割情報を送信するステップと、
前記ラベル付けされたクライアントから送信された左サブツリー空間セットを受信するステップと、
前記左サブツリー空間セットに基づいて、前記第2訓練セットを分割するステップと、
前記訓練ノードを前記ラベル付けされたクライアントの識別子に関連付けるステップと、
を含む請求項13に記載の連合学習モデルの訓練方法。
【請求項15】
前記訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得するステップの前に、
前記クライアントから送信されたデータインスタンス識別子を受信するステップと、
前記データインスタンス識別子に基づいて、クライアント間の共通のデータインスタンス識別子を決定するステップであって、前記共通のデータインスタンス識別子は、前記第1訓練セットと前記第2訓練セットを決定するように前記クライアントに指示するステップと、をさらに含む、
ことを特徴とする請求項2~10のいずれかに記載の連合学習モデルの訓練方法。
【請求項16】
前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するステップの後に、
更新された前記訓練ノードを取得するステップと、
更新された前記訓練ノードが訓練停止条件を満たすと決定された場合、訓練を停止し、ターゲット連合学習モデルを生成するステップと、
検証セットを取得し、検証クライアントと連携して前記ターゲット連合学習モデルを検証するステップであって、前記検証クライアントは連合学習モデルの訓練に参加するクライアントのうちの1つであるステップと、をさらに含む、
ことを特徴とする請求項1に記載の連合学習モデルの訓練方法。
【請求項17】
前記検証セットに基づいて、検証クライアントと連携して前記ターゲットモデルを検証するステップは、
前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を前記検証クライアントに送信するステップであって、前記検証ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、
前記検証クライアントから送信された前記検証ノードに対応するノード進行方向を受信するステップであって、前記ノード進行方向は、前記検証クライアントによって前記データインスタンス識別子と分割情報に基づいて決定されるステップと、
前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするステップと、
前記更新された前記検証ノードが前記予め設定されたノード分割条件を満たす場合、前記検証セット内のデータインスタンス識別子がすべて検証されるまで、前記検証クライアントに前記データインスタンス識別子と前記分割情報を送信することに戻るステップと、を含む、
ことを特徴とする請求項16に記載の連合学習モデルの訓練方法。
【請求項18】
更新された前記検証ノードが前記予め設定されたノード分割条件を満たしていない場合、更新された前記検証ノードが葉ノードであると決定し、前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を取得するステップをさらに含む、
ことを特徴とする請求項17に記載の連合学習モデルの訓練方法。
【請求項19】
前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記データインスタンスのモデル予測値を前記検証クライアントに送信するステップと、
前記検証クライアントから送信された検証指示情報を受信するステップであって、前記検証指示情報は、前記モデル予測値に基づいて取得された、モデルを保留するか否かを指示するための指示情報であるステップと、
前記検証指示情報に基づいて、前記ターゲット連合学習モデルを保留し且つ使用するか否かを決定し、決定結果を前記クライアントに送信するステップと、をさらに含む、
ことを特徴とする請求項18に記載の連合学習モデルの訓練方法。
【請求項20】
前記訓練ノードに対応するターゲット分割方式を取得するステップは、
第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、
第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップと、を含む、
ことを特徴とする請求項16~19のいずれかに記載の連合学習モデルの訓練方法。
【請求項21】
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップは、
前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するステップと、
前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するステップと、を含む、
ことを特徴とする請求項20に記載の連合学習モデルの訓練方法。
【請求項22】
前記第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップは、
前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するステップと、
前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するステップと、
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップと、
前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するステップと、を含む、
ことを特徴とする請求項21に記載の連合学習モデルの訓練方法。
【請求項23】
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップは、
前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するステップと、
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含むステップと、
前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するステップと、を含む、
ことを特徴とする請求項22に記載の連合学習モデルの訓練方法。
【請求項24】
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップは、
前記クライアントに前記分割閾値を送信するステップと、
前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信するステップであって、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含むステップと、
前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得するステップと、を含む、
ことを特徴とする請求項23に記載の連合学習モデルの訓練方法。
【請求項25】
前記第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップは、
前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するステップと、
前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、
各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップと、
各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するステップと、を含む、
ことを特徴とする請求項20に記載の連合学習モデルの訓練方法。
【請求項26】
前記各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップは、
いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するステップと、
各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するステップと、
前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するステップと、を含む、
ことを特徴とする請求項25に記載の連合学習モデルの訓練方法。
【請求項27】
前記検証セットは前記第1訓練セット及び前記第2訓練セットとそれぞれ相互に排他的である、
ことを特徴とする請求項20に記載の連合学習モデルの訓練方法。
【請求項28】
連合学習モデルの訓練方法であって、クライアントに適用され、
訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信するステップであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップと、
を含む、連合学習モデルの訓練方法。
【請求項29】
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップの前に、
第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、
第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、
前記第1分割値と前記第2分割値を前記サーバに送信するステップと、をさらに含む、
ことを特徴とする請求項28に記載の連合学習モデルの訓練方法。
【請求項30】
前記第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップは、
前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するステップと、
前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するステップと、
前記サーバから送信された前記各特徴の分割閾値を受信するステップと、
前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得し、前記初期データインスタンス識別子セットを前記サーバに送信するステップと、を含み、
前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別を含む、
ことを特徴とする請求項29に記載の連合学習モデルの訓練方法。
【請求項31】
前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得するステップは、
いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成するステップを含む、
ことを特徴とする請求項30に記載の連合学習モデルの訓練方法。
【請求項32】
前記第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップの前に、
前記サーバから送信された勾配情報要求を受信するステップと、
前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するステップと、
前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、
前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するステップと、をさらに含む、
ことを特徴とする請求項28に記載の連合学習モデルの訓練方法。
【請求項33】
前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップは、
いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するステップと、
前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するステップと、を含む、
ことを特徴とする請求項32に記載の連合学習モデルの訓練方法。
【請求項34】
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップは、
前記サーバから送信された分割情報を受信するステップであって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、および前記ターゲット分割値を含むステップと、
前記分割情報に基づいて前記訓練ノードに対してノード分割を行うステップと、を含む、
ことを特徴とする請求項28~33のいずれかに記載の連合学習モデルの訓練方法。
【請求項35】
前記訓練ノードに対してノード分割を行うステップの後に、
分割して生成された左サブツリー空間を前記サーバに送信するステップをさらに含む、
ことを特徴とする請求項34に記載の連合学習モデルの訓練方法。
【請求項36】
前記訓練ノードが葉ノードである場合、前記サーバから送信された前記葉ノードの重み値を受信するステップと、
前記葉ノードの重み値に基づいて、前記葉ノードに含まれる各データの残差を決定するステップと、
前記残差を次のブースティングツリーの残差入力とするステップと、をさらに含む、
ことを特徴とする請求項28~33のいずれかに記載の連合学習モデルの訓練方法
【請求項37】
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップの後に、
前記サーバから送信された検証セットを受信し、前記検証セットに基づいて、前記ターゲット連合学習モデルを検証するステップを含む請求項28に記載の連合学習モデルの訓練方法。
【請求項38】
前記検証セットに基づいて、検証クライアントと連携して前記ターゲットモデルを検証するステップが、
前記サーバから送信された前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を受信するステップであって、前記検証ノードは、複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、
前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するステップと、
前記サーバが前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするように、前記サーバに前記ノード進行方向を送信するステップと、
を含む請求項37に記載の連合学習モデルの訓練方法。
【請求項39】
前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するステップが、
前記データインスタンス識別子に基づいて、前記データインスタンス識別子に対応する各特徴の特徴値を決定するステップと、
前記分割情報と前記各特徴の前記特徴値とに基づいて、前記ノード進行方向を決定するステップと、
を含む請求項38に記載の連合学習モデルの訓練方法。
【請求項40】
前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記サーバから送信された前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を受信するステップと、
前記モデル予測値に基づいて最終的な検証結果を取得し、前記検証結果を前の検証結果と比較することにより、前記ターゲット連合学習モデルを保留し且つ使用するか否かを指示するための検証指示情報を生成するステップと、
前記サーバに前記検証指示情報を送信するステップと、
を含む請求項38に記載の連合学習モデルの訓練方法。
【請求項41】
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップの前に、
第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、
第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、
前記第1分割値と前記第2分割値を前記サーバに送信するステップと、をさらに含む、
ことを特徴とする請求項37~40のいずれかに記載の連合学習モデルの訓練方法。
【請求項42】
前記第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップは、
前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するステップと、
前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するステップと、
前記サーバから送信された前記各特徴の分割閾値を受信するステップと、
前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得し、前記初期データインスタンス識別子セットを前記サーバに送信するステップと、をさらに含み、
前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含む、
ことを特徴とする請求項41に記載の連合学習モデルの訓練方法。
【請求項43】
前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得するステップは、
いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成するステップを含む、
ことを特徴とする請求項42に記載の連合学習モデルの訓練方法。
【請求項44】
前記第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップの前に、
前記サーバから送信された勾配情報要求を受信するステップと、
前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するステップと、
前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、
前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するステップと、をさらに含む、
ことを特徴とする請求項41に記載の連合学習モデルの訓練方法。
【請求項45】
前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップは、
いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するステップと、
前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するステップと、を含む、
ことを特徴とする請求項44に記載の連合学習モデルの訓練方法。
【請求項46】
連合学習モデルの訓練装置であって、サーバに適用され、
訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得するための取得モジュールであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである取得モジュールと、
前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するための通知モジュールと、
更新された前記訓練ノードが前記予め設定された分割条件を満たさなくなるまで、前記訓練ノードが分割されて生成された左サブツリーノードを新たに前記訓練ノードとして次のラウンドの訓練を行うための第1訓練モジュールと、
前記1つのブースティングツリーの他の非葉ノードを新たに前記訓練ノードとして次のラウンドの訓練を行うための第2訓練モジュールと、
前記複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成するための生成モジュールと、を含む、
ことを特徴とする連合学習モデルの訓練装置。
【請求項47】
前記取得モジュールが、
第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、
第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するための決定サブモジュールと、を含む、
ことを特徴とする請求項46に記載の連合学習モデルの訓練装置。
【請求項48】
前記決定サブモジュールが、
前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するための第1決定ユニットと、
前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するための第2決定ユニットと、を含む、
ことを特徴とする請求項47に記載の連合学習モデルの訓練装置。
【請求項49】
前記第1学習サブモジュールが、
前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するための生成ユニットと、
前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するための第1受信ユニットと、
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するための第3決定ユニットと、
前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するための第4決定ユニットと、を含む、
ことを特徴とする請求項47に記載の連合学習モデルの訓練装置。
【請求項50】
前記第3決定ユニットが、
前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するための第1決定サブユニットと、
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するための第1取得サブユニットであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含む第1取得サブユニットと、
前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するための第2決定サブユニットと、を含む、
ことを特徴とする請求項49に記載の連合学習モデルの訓練装置。
【請求項51】
前記第1取得サブユニットが、さらに、
前記クライアントに前記分割閾値を送信し、
前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信し、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含み、
前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得する、
ことを特徴とする請求項50に記載の連合学習モデルの訓練装置。
【請求項52】
前記第1取得サブユニットがさらに、
前記初期データインスタンス識別子セット内の各データインスタンス識別子と、前記クライアントのデータインスタンス識別子とを比較して、異常が存在するデータインスタンス識別子を取得し、
前記異常が存在するデータインスタンス識別子を前処理して、前記第1データインスタンス識別子セットを取得し、
すべてのデータインスタンス識別子と前記第1データインスタンス識別子セットとに基づいて、前記第2データインスタンス識別子セットを取得する、
ことを特徴とする請求項51に記載の連合学習モデルの訓練装置。
【請求項53】
前記第2学習サブモジュールが、
前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するための通知ユニットと、
前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するための受信ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する受信ユニットと、
各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するための第5決定ユニットと、
各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するための第6決定ユニットと、を含む、
ことを特徴とする請求項47に記載の連合学習モデルの訓練装置。
【請求項54】
前記第5決定ユニットが、
いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するための第2取得サブユニットと、
各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するための第3取得サブユニットと、
前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するための選択サブユニットと、を含む、
ことを特徴とする請求項53に記載の連合学習モデルの訓練装置。
【請求項55】
前記第1勾配情報は、前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含み、前記第2勾配情報は、前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含む、
ことを特徴とする請求項54に記載の連合学習モデルの訓練装置。
【請求項56】
前記訓練ノードが予め設定された分割条件を満たしていない場合、前記訓練ノードが葉ノードであると決定し、前記葉ノードの重み値を取得するための決定モジュールと、
前記葉ノードの重み値を前記クライアントに送信するための送信モジュールと、をさらに含む、
ことを特徴とする請求項46~55のいずれかに記載の連合学習モデルの訓練装置。
【請求項57】
前記決定モジュールが、
前記葉ノードに属するデータインスタンスを取得するための第1取得ユニットと、
前記葉ノードに属する前記データインスタンスの一次勾配情報及び二次勾配情報を取得し、前記一次勾配情報及び前記二次勾配情報に基づいて前記葉ノードの重み値を取得するための第2取得ユニットと、を含む、
ことを特徴とする請求項56に記載の連合学習モデルの訓練装置。
【請求項58】
前記決定サブモジュールが、
分割情報を前記クライアントに送信するための送信ユニットであって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及び前記ターゲット分割値を含む送信ユニットをさらに含む、
ことを特徴とする請求項48に記載の連合学習モデルの訓練装置。
【請求項59】
前記送信ユニットがさらに、
ラベル付けされたクライアントに前記分割情報を送信し、
前記ラベル付けされたクライアントから送信された左サブツリー空間セットを受信し、
前記左サブツリー空間セットに基づいて、前記第2訓練セットを分割し、
前記訓練ノードを前記ラベル付けされたクライアントの識別子に関連付ける、
ことを特徴とする請求項58に記載の連合学習モデルの訓練装置。
【請求項60】
前記取得モジュールが、さらに、
前記クライアントから送信されたデータインスタンス識別子を受信し、
前記データインスタンス識別子に基づいて、クライアント間の共通のデータインスタンス識別子を決定し、前記共通のデータインスタンス識別子は、前記第1訓練セットと前記第2訓練セットを決定するように前記クライアントに指示する、
ことを特徴とする請求項47~55のいずれかに記載の連合学習モデルの訓練装置。
【請求項61】
前記通知モジュールがさらに、更新された前記訓練ノードを取得し、
前記生成モジュールがさらに、更新された前記訓練ノードが訓練停止条件を満たすと決定された場合、訓練を停止し、ターゲット連合学習モデルを生成し、
前記装置は、検証セットを取得し、検証クライアントと連携して前記ターゲット連合学習モデルを検証するための検証モジュールであって、前記検証クライアントは連合学習モデルの訓練に参加するクライアントのうちの1つである検証モジュールをさらに含む、
ことを特徴とする請求項46に記載の連合学習モデルの訓練装置。
【請求項62】
前記検証モジュールが、
前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を前記検証クライアントに送信するための第1送信サブモジュールであって、前記検証ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである第1送信サブモジュールと、
前記検証クライアントから送信された前記検証ノードに対応するノード進行方向を受信するための第1受信サブモジュールであって、前記ノード進行方向は、前記検証クライアントによって前記データインスタンス識別子と分割情報に基づいて決定される第1受信サブモジュールと、
前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするためのノード更新サブモジュールと、
前記更新された前記検証ノードが前記予め設定されたノード分割条件を満たす場合、前記検証セット内のデータインスタンス識別子がすべて検証されるまで、前記検証クライアントに前記データインスタンス識別子と前記分割情報を送信することに戻るための第2送信サブモジュールと、を含む、
ことを特徴とする請求項61に記載の連合学習モデルの訓練装置。
【請求項63】
前記検証モジュールが、
更新された前記検証ノードが前記予め設定されたノード分割条件を満たしていない場合、更新された前記検証ノードが葉ノードであると決定し、前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を取得するための取得サブモジュールをさらに含む、
ことを特徴とする請求項62に記載の連合学習モデルの訓練装置。
【請求項64】
前記検証モジュールが、
前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記データインスタンスのモデル予測値を前記検証クライアントに送信するための第3送信サブモジュールと、
前記検証クライアントから送信された検証指示情報を受信するための第2受信サブモジュールであって、前記検証指示情報は、前記モデル予測値に基づいて取得された、モデルを保留するか否かを指示するための指示情報である第2受信サブモジュールと、
前記検証指示情報に基づいて、前記ターゲット連合学習モデルを保留し且つ使用するか否かを決定し、決定結果を前記クライアントに送信するための決定サブモジュールと、をさらに含む、
ことを特徴とする請求項63に記載の連合学習モデルの訓練装置。
【請求項65】
前記取得モジュールが、
第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、
第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するための決定サブモジュールと、を含む、
ことを特徴とする請求項61~64のいずれかに記載の連合学習モデルの訓練装置。
【請求項66】
前記決定サブモジュールが、
前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するための第1決定ユニットと、
前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するための第2決定ユニットと、を含む、
ことを特徴とする請求項65に記載の連合学習モデルの訓練装置。
【請求項67】
前記第1学習サブモジュールが、
前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するための送信ユニットと、
前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するための第1受信ユニットと、
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するための第3決定ユニットと、
前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するための第4決定ユニットと、を含む、
ことを特徴とする請求項66に記載の連合学習モデルの訓練装置。
【請求項68】
前記第3決定ユニットが、
前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するための第1決定サブユニットと、
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するための第1取得サブユニットであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含む第1取得サブユニットと、
前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するための第2決定サブユニットと、を含む、
ことを特徴とする請求項67に記載の連合学習モデルの訓練装置。
【請求項69】
前記第1取得サブユニットがさらに、
前記クライアントに前記分割閾値を送信し、
前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信し、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含み、
前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得する、
ことを特徴とする請求項68に記載の連合学習モデルの訓練装置。
【請求項70】
前記第2学習サブモジュールが、
前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するための通知ユニットと、
前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するための第2受信ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2受信ユニットと、
各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するための第5決定ユニットと、
各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するための第6決定ユニットと、を含む、
ことを特徴とする請求項47に記載の連合学習モデルの訓練装置。
【請求項71】
前記第5決定ユニットが、
いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するための第2取得サブユニットと、
各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するための第3取得サブユニットと、
前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するための選択サブユニットと、を含む、
ことを特徴とする請求項70に記載の連合学習モデルの訓練装置。
【請求項72】
前記検証セットは前記第1訓練セット及び前記第2訓練セットとそれぞれ相互に排他的である、
ことを特徴とする請求項65に記載の連合学習モデルの訓練装置。
【請求項73】
連合学習モデルの訓練装置であって、クライアントに適用され、
訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信するための第1受信モジュールであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである第1受信モジュールと、
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うための分割モジュールと、を含む、
ことを特徴とする連合学習モデルの訓練装置。
【請求項74】
前記分割モジュールが、
第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、
第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、
前記第1分割値と前記第2分割値を前記サーバに送信するための送信サブモジュールと、を含む、
ことを特徴とする請求項73に記載の連合学習モデルの訓練装置。
【請求項75】
前記第1学習サブモジュールが、
前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するための第1受信ユニットと、
前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するための第1送信ユニットと、
前記サーバから送信された前記各特徴の分割閾値を受信するための第2受信ユニットと、
前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得し、前記初期データインスタンス識別子セットを前記サーバに送信するための第1取得ユニットと、を含み、
前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含む、
ことを特徴とする請求項74に記載の連合学習モデルの訓練装置。
【請求項76】
前記第1取得ユニットがさらに、
いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成する、
ことを特徴とする請求項75に記載の連合学習モデルの訓練装置。
【請求項77】
前記第2学習サブモジュールが、
前記サーバから送信された勾配情報要求を受信するための第3受信ユニットと、
前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するための生成ユニットと、
前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するための第2取得ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2取得ユニットと、
前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するための第2送信ユニットと、を含む、
ことを特徴とする請求項73に記載の連合学習モデルの訓練方法。
【請求項78】
前記第2取得ユニットが、
いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するためのパケット化サブユニットと、
前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するための第1取得サブユニットと、を含む、
ことを特徴とする請求項77に記載の連合学習モデルの訓練装置。
【請求項79】
前記分割モジュールが、
前記サーバから送信された分割情報を受信するための受信サブモジュールであって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、および前記ターゲット分割値を含む受信サブモジュールと、
前記分割情報に基づいて前記訓練ノードに対してノード分割を行うための分割サブモジュールと、を含む、
ことを特徴とする請求項73~78のいずれかに記載の連合学習モデルの訓練装置。
【請求項80】
前記分割サブモジュールがさらに、
分割して生成された左サブツリー空間を前記サーバに送信する、
ことを特徴とする請求項79に記載の連合学習モデルの訓練装置。
【請求項81】
前記訓練ノードが葉ノードである場合、前記サーバから送信された前記葉ノードの重み値を受信するための第2受信モジュールと、
前記葉ノードの重み値に基づいて、前記葉ノードに含まれる各データの残差を決定するための決定モジュールと、
前記残差を次のブースティングツリーの残差入力とするための入力モジュールと、をさらに含む、
ことを特徴とする請求項73~78のいずれかに記載の連合学習モデルの訓練装置。
【請求項82】
前記サーバから送信された検証セットを受信し、前記検証セットに基づいて、前記ターゲット連合学習モデルを検証するための検証モジュールをさらに含む、
ことを特徴とする請求項73に記載の連合学習モデルの訓練装置。
【請求項83】
前記検証モジュールが、
前記サーバから送信された前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を受信するための第1受信サブモジュールであって、前記検証ノードは、複数のブースティングツリーのうちの1つのブースティングツリーのノードである第1受信サブモジュールと、
前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するための第1決定サブモジュールと、
前記サーバが前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするように、前記サーバに前記ノード進行方向を送信するための第1送信サブモジュールと、を含む、
ことを特徴とする請求項82に記載の連合学習モデルの訓練装置。
【請求項84】
前記第1決定サブモジュールが、
前記データインスタンス識別子に基づいて、前記データインスタンス識別子に対応する各特徴の特徴値を決定するための第1決定ユニットと、
前記分割情報と前記各特徴の前記特徴値とに基づいて、前記ノード進行方向を決定するための第2決定ユニットと、を含む、
ことを特徴とする請求項83に記載の連合学習モデルの訓練装置。
【請求項85】
前記検証モジュールが、
前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記サーバから送信された前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を受信するための第2受信サブモジュールと、
前記モデル予測値に基づいて最終的な検証結果を取得し、前記検証結果を前の検証結果と比較することにより、前記ターゲット連合学習モデルを保留し且つ使用するか否かを指示するための検証指示情報を生成するための生成サブモジュールと、
前記サーバに前記検証指示情報を送信するための第2送信サブモジュールと、をさらに含む、
ことを特徴とする請求項83に記載の連合学習モデルの訓練装置。
【請求項86】
前記分割モジュールが、
第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、
第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、
前記第1分割値と前記第2分割値を前記サーバに送信するための第3送信サブモジュールと、を含む、
ことを特徴とする請求項82~85のいずれかに記載の連合学習モデルの訓練装置。
【請求項87】
前記第1学習サブモジュールが、
前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するための第1受信ユニットと、
前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するための第1送信ユニットと、
前記サーバから送信された前記各特徴の分割閾値を受信するための第2受信ユニットと、
前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得し、前記初期データインスタンス識別子セットを前記サーバに送信するための第1取得ユニットと、を含み、
前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含む、
ことを特徴とする請求項86に記載の連合学習モデルの訓練装置。
【請求項88】
前記第1取得ユニットが、さらに、
いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成する、
ことを特徴とする請求項87に記載の連合学習モデルの訓練装置。
【請求項89】
前記第2学習サブモジュールが、
前記サーバから送信された勾配情報要求を受信するための第3受信ユニットと、
前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するための生成ユニットと、
前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するための第2取得ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2取得ユニットと、
前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するための第2送信ユニットと、を含む、
ことを特徴とする請求項86に記載の連合学習モデルの訓練装置。
【請求項90】
前記第2取得ユニットが、
いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するためのパケット化サブユニットと、
前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するための第2取得サブユニットと、を含む、
ことを特徴とする請求項89に記載の連合学習モデルの訓練装置。
【請求項91】
メモリと、プロセッサと、前記メモリに記憶され、前記プロセッサで実行可能なコンピュータプログラムと、を含み、前記プロセッサが前記プログラムを実行する場合、請求項1から27又は請求項28から45のいずれか一項に記載の連合学習モデルの訓練方法が実現される電子機器。
【請求項92】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
当該プログラムはプロセッサによって実行される場合、請求項1から27又は請求項28から45のいずれか一項に記載の連合学習モデルの訓練方法が実現されるコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【関連出願の相互引用】
【0001】
本出願は、京東数字科技控股股分有限公司が2020年12月31日に提出した、発明の名称が「連合学習モデルの訓練方法、装置及び電子機器」で、中国特許出願番号が「202011621994.0」である発明の優先権、および京東数字科技控股股分有限公司が2020年12月31日に提出した、発明の名称が「連合学習モデルの訓練方法、装置及び電子機器」で、中国特許出願番号が「202011617342.X」である発明の優先権を主張する。
【技術分野】
【0002】
本出願は、通信技術の分野に関し、特に連合学習モデルの訓練方法、装置及び電子機器に関する。
【背景技術】
【0003】
連合学習は、ビッグデータ交換時の情報のセキュリティを確保し、端末データと個人データのプライバシーを保護し、コンプライアンスを遵守する前提で、複数の参加者又は複数のコンピューティングノードの間で効率的な機械学習を展開することをその設計の目的とする新興の人工知能基盤技術である。ここで、連合学習に使用できる機械学習アルゴリズムはニューラルネットワークに限らず、ランダムフォレストなどの重要なアルゴリズムも含まれている。連合学習は次世代の人工知能連携アルゴリズムと協動ネットワークの基礎になると期待されている。
【0004】
データの特徴により、連合学習は主に水平連合学習と垂直連合学習に分けられる。ここで、水平連合学習はデータが同型であることを要求し、垂直連合学習はデータが異種であることを要求する。しかしながら、連合学習のために協力する複数のデータは、完全に異種又は同型であることが難しいため、連合学習に基づいてモデル訓練を行う時に、一部の同型または異種のデータを廃棄するしかない。廃棄されるデータが多い場合、連合学習に基づいて訓練して得られたモデルの性能は悪くなる。
【発明の概要】
【0005】
本出願は、関連技術における技術的課題の1つをある程度解決することを目的とする。
【0006】
そのため、本出願の第1の目的は、従来の連合学習モデルの訓練方法のプロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという技術的課題を解決するための連合学習モデルの訓練方法を提供することである。
【0007】
本発明の第2の目的は、もう1つの連合学習モデルの訓練方法を提供することである。
【0008】
本発明の第3の目的は、連合学習モデルの訓練装置を提供することである。
【0009】
本発明の第4の目的は、もう1つの連合学習モデルの訓練装置を提供することである。
【0010】
本発明の第5の目的は、電子機器を提供することである。
【0011】
本発明の第6の目的は、コンピュータ読み取り可能な記憶媒体を提供することである。
【課題を解決するための手段】
【0012】
上記目的を実現するために、本出願の第1態様の実施例は、サーバに適用される連合学習モデルの訓練方法を提供し、前記方法は、訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得するステップであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するステップと、更新された前記訓練ノードが前記予め設定された分割条件を満たさなくなるまで、前記訓練ノードが分割されて生成された左サブツリーノードを新たに前記訓練ノードとして次のラウンドの訓練を行うステップと、前記1つのブースティングツリーの他の非葉ノードを新たに前記訓練ノードとして次のラウンドの訓練を行うステップと、前記複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成するステップと、を含む。
【0013】
また、本出願の上記実施例による連合学習モデルの訓練方法はさらに以下のような付加的な技術的特徴を有することができる。
【0014】
本出願の一実施例によると、前記訓練ノードに対応するターゲット分割方式を取得するステップは、第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップと、を含む。
【0015】
本出願の一実施例によると、前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップは、前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するステップと、前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するステップと、を含む。
【0016】
本出願の一実施例によると、前記第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップは、前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するステップと、前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するステップと、前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップと、前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するステップと、を含む。
【0017】
本出願の一実施例によると、前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップは、前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するステップと、前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含むステップと、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するステップと、を含む。
【0018】
本出願の一実施例によると、前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップは、前記クライアントに前記分割閾値を送信するステップと、前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信するステップであって、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含むステップと、前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得するステップと、を含む。
【0019】
本出願の一実施例によると、前記初期データインスタンス識別子セットに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得するステップは、前記初期データインスタンス識別子セット内の各データインスタンス識別子と、前記クライアントのデータインスタンス識別子とを比較して、異常が存在するデータインスタンス識別子を取得するステップと、前記異常が存在するデータインスタンス識別子を前処理して、前記第1データインスタンス識別子セットを取得するステップと、すべてのデータインスタンス識別子と前記第1データインスタンス識別子セットとに基づいて、前記第2データインスタンス識別子セットを取得するステップと、を含む。
【0020】
本出願の一実施例によると、前記第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップは、前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するステップと、前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップと、各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するステップと、を含む。
【0021】
本出願の一実施例によると、前記各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップは、いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するステップと、各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するステップと、前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するステップと、を含む。
【0022】
本出願の一実施例によると、前記第1勾配情報は、前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含み、前記第2勾配情報は、前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含む。
【0023】
本出願の一実施例によると、前記訓練ノードが予め設定された分割条件を満たしていない場合、前記訓練ノードが葉ノードであると決定し、前記葉ノードの重み値を取得するステップと、前記葉ノードの重み値を前記クライアントに送信するステップと、をさらに含む。
【0024】
本出願の一実施例によると、前記葉ノードの重み値を取得するステップは、前記葉ノードに属するデータインスタンスを取得するステップと、前記葉ノードに属する前記データインスタンスの一次勾配情報及び二次勾配情報を取得し、前記一次勾配情報及び前記二次勾配情報に基づいて前記葉ノードの重み値を取得するステップと、を含む。
【0025】
本出願の一実施例によると、前記ターゲット分割方式に基づいてノード分割を行うように前記クライアントに通知するステップの前は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及び前記ターゲット分割値を含む分割情報を前記クライアントに送信するステップをさらに含む。
【0026】
本出願の一実施例によると、前記ターゲット分割方式が垂直分割方式である場合、前記ターゲット分割方式に基づいてノード分割を行うように前記クライアントに通知するステップの前は、ラベル付けされたクライアントに前記分割情報を送信するステップと、前記ラベル付けされたクライアントから送信された左サブツリー空間セットを受信するステップと、前記左サブツリー空間セットに基づいて、前記第2訓練セットを分割するステップと、前記訓練ノードを前記ラベル付けされたクライアントの識別子に関連付けるステップと、を含む。
【0027】
本出願の一実施例によると、前記訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得するステップの前に、前記方法は、前記クライアントから送信されたデータインスタンス識別子を受信するステップと、前記データインスタンス識別子に基づいて、クライアント間の共通のデータインスタンス識別子を決定するステップであって、前記共通のデータインスタンス識別子が、前記第1訓練セットと前記第2訓練セットを決定するように前記クライアントに指示するステップと、をさらに含む。
【0028】
本出願の一実施例によると、前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するステップの後は、更新された前記訓練ノードを取得するステップと、更新された前記訓練ノードが訓練停止条件を満たすと決定された場合、訓練を停止し、ターゲット連合学習モデルを生成するステップと、検証セットを取得し、連合学習モデルの訓練に参加するクライアントのうちの1つである検証クライアントと連携して前記ターゲット連合学習モデルを検証するステップと、をさらに含む。
【0029】
本出願の一実施例によると、前記検証セットに基づいて、検証クライアントと連携して前記ターゲットモデルを検証するステップは、前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を前記検証クライアントに送信するステップであって、前記検証ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、前記検証クライアントから送信された前記検証ノードに対応するノード進行方向を受信するステップであって、前記ノード進行方向は、前記検証クライアントによって前記データインスタンス識別子と分割情報に基づいて決定されるステップと、前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするステップと、前記更新された前記検証ノードが前記予め設定されたノード分割条件を満たす場合、前記検証セット内のデータインスタンス識別子がすべて検証されるまで、前記検証クライアントに前記データインスタンス識別子と前記分割情報を送信することに戻るステップと、を含む。
【0030】
本出願の一実施例によると、更新された前記検証ノードが前記予め設定されたノード分割条件を満たしていない場合、更新された前記検証ノードが葉ノードであると決定し、前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を取得するステップをさらに含む。
【0031】
本出願の一実施例によると、前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記データインスタンスのモデル予測値を前記検証クライアントに送信するステップと、前記検証クライアントから送信された検証指示情報を受信するステップであって、前記検証指示情報は、前記モデル予測値に基づいて取得された、モデルを保留するか否かを指示するための指示情報であるステップと、前記検証指示情報に基づいて、前記ターゲット連合学習モデルを保留し且つ使用するか否かを決定し、決定結果を前記クライアントに送信するステップと、をさらに含む。
【0032】
本出願の一実施例によると、前記訓練ノードに対応するターゲット分割方式を取得するステップは、第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップと、を含む。
【0033】
本出願の一実施例によると、前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップは、前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するステップと、前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するステップと、を含む。
【0034】
本出願の一実施例によると、前記第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップは、前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するステップと、前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するステップと、前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップと、前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するステップと、を含む。
【0035】
本出願の一実施例によると、前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップは、前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するステップと、前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含むステップと、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するステップと、を含む。
【0036】
本出願の一実施例によると、前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップは、前記クライアントに前記分割閾値を送信するステップと、前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信するステップであって、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含むステップと、前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得するステップと、を含む。
【0037】
本出願の一実施例によると、前記第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップは、前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するステップと、前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップと、各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するステップと、を含む。
【0038】
本出願の一実施例によると、前記各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップは、いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するステップと、各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するステップと、前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するステップと、を含む。
【0039】
本出願の一実施例によると、前記検証セットは前記第1訓練セット及び前記第2訓練セットとそれぞれ相互に排他的である。
【0040】
本出願の第1態様の実施例は連合学習モデルの訓練方法を提供し、サーバは水平分割方式と垂直分割方式を混合することにより、マッチングする学習方式の傾向性を自動的に選択し、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0041】
上記目的を実現するために、本出願の第2の態様の実施例は、クライアントに適用される連合学習モデルの訓練方法を提供し、前記方法は、訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信するステップであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップと、を含む。
【0042】
本出願の一実施例によると、前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップの前は、第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、前記第1分割値と前記第2分割値を前記サーバに送信するステップと、をさらに含む。
【0043】
本出願の一実施例によると、前記第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップは、前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するステップと、前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するステップと、前記サーバから送信された前記各特徴の分割閾値を受信するステップと、前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得して、前記初期データインスタンス識別子セットを前記サーバに送信するステップであって、ここで、前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含むステップと、を含む。
【0044】
本出願の一実施例によると、前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得するステップは、いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成するステップを含む。
【0045】
本出願の一実施例によると、前記第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップの前は、前記サーバから送信された勾配情報要求を受信するステップと、前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するステップと、前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するステップと、をさらに含む。
【0046】
本出願の一実施例によると、前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップは、いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するステップと、前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するステップと、を含む。
【0047】
本出願の一実施例によると、前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップは、前記サーバから送信された分割情報を受信するステップであって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、および前記ターゲット分割値を含むステップと、前記分割情報に基づいて前記訓練ノードに対してノード分割を行うステップと、を含む。
【0048】
本出願の一実施例によると、前記訓練ノードに対してノード分割を行うステップの後は、分割して生成された左サブツリー空間を前記サーバに送信するステップをさらに含む。
【0049】
本出願の一実施例によると、前記訓練ノードが葉ノードである場合、前記サーバから送信された前記葉ノードの重み値を受信するステップと、前記葉ノードの重み値に基づいて、前記葉ノードに含まれる各データの残差を決定するステップと、前記残差を次のブースティングツリーの残差入力とするステップと、を含む。
【0050】
本出願の一実施例によると、前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップの後は、前記サーバから送信された検証セットを受信し、前記検証セットに基づいて、前記ターゲット連合学習モデルを検証するステップをさらに含む。
【0051】
本出願の一実施例によると、前記検証セットに基づいて、検証クライアントと連携して前記ターゲットモデルを検証するステップは、前記サーバから送信された前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を受信するステップであって、前記検証ノードは、複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するステップと、前記サーバが前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするように、前記サーバに前記ノード進行方向を送信するステップと、を含む。
【0052】
本出願の一実施例によると、前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するステップは、前記データインスタンス識別子に基づいて、前記データインスタンス識別子に対応する各特徴の特徴値を決定するステップと、前記分割情報と前記各特徴の前記特徴値とに基づいて、前記ノード進行方向を決定するステップと、を含む。
【0053】
本出願の一実施例によると、前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記サーバから送信された前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を受信するステップと、前記モデル予測値に基づいて最終的な検証結果を取得し、前記検証結果を前の検証結果と比較することにより、前記ターゲット連合学習モデルを保留し且つ使用するか否かを指示するための検証指示情報を生成するステップと、前記サーバに前記検証指示情報を送信するステップと、をさらに含む。
【0054】
本出願の一実施例によると、前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップの前は、第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、前記第1分割値と前記第2分割値を前記サーバに送信するステップと、をさらに含む。
【0055】
本出願の一実施例によると、前記第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップは、前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するステップと、前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するステップと、前記サーバから送信された前記各特徴の分割閾値を受信するステップと、前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得して、前記初期データインスタンス識別子セットを前記サーバに送信するステップであって、前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含むステップと、をさらに含む。
【0056】
本出願の一実施例によると、前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得するステップは、いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成するステップを含む。
【0057】
本出願の一実施例によると、前記第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップの前は、前記サーバから送信された勾配情報要求を受信するステップと、前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するステップと、前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するステップと、をさらに含む。
【0058】
本出願の一実施例によると、前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するステップは、いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するステップと、前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するステップと、を含む。
【0059】
本出願の第2の態様の実施例は連合学習モデルの訓練方法を提供し、クライアントは、複数のブースティングツリーのうちの1つのブースティングツリーのノードである訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行うことにより、水平分割方式と垂直分割方式を混合することで、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0060】
上記目的を実現するために、本出願の第3の態様の実施例は、サーバに適用される連合学習モデルの訓練装置を提供し、前記連合学習モデルの訓練装置は、訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得するための取得モジュールであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである取得モジュールと、前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するための通知モジュールと、更新された前記訓練ノードが前記予め設定された分割条件を満たさなくなるまで、前記訓練ノードが分割されて生成された左サブツリーノードを新たに前記訓練ノードとして次のラウンドの訓練を行うための第1訓練モジュールと、前記1つのブースティングツリーの他の非葉ノードを新たに前記訓練ノードとして次のラウンドの訓練を行うための第2訓練モジュールと、前記複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成するための生成モジュールと、を備える。
【0061】
本出願の一実施例によると、前記取得モジュールは、第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するための決定サブモジュールと、を備える。
【0062】
本出願の一実施例によると、前記決定サブモジュールは、前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するための第1決定ユニットと、前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するための第2決定ユニットと、を備える。
【0063】
本出願の一実施例によると、前記第1学習サブモジュールは、前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するための生成ユニットと、前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するための第1受信ユニットと、前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するための第3決定ユニットと、前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するための第4決定ユニットと、を備える。
【0064】
本出願の一実施例によると、前記第3決定ユニットは、前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するための第1決定サブユニットと、前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するための第1取得サブユニットであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含む第1取得サブユニットと、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するための第2決定サブユニットと、を含む。
【0065】
本出願の一実施例によると、前記第1取得サブユニットはさらに、前記クライアントに前記分割閾値を送信し、前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信し、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含み、前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得する。
【0066】
本出願の一実施例によると、前記取得サブユニットはさらに、前記初期データインスタンス識別子セット内の各データインスタンス識別子と、前記クライアントのデータインスタンス識別子とを比較して、異常が存在するデータインスタンス識別子を取得し、前記異常が存在するデータインスタンス識別子を前処理して、前記第1データインスタンス識別子セットを取得し、すべてのデータインスタンス識別子と前記第1データインスタンス識別子セットとに基づいて、前記第2データインスタンス識別子セットを取得する。
【0067】
本出願の一実施例によると、前記第2学習サブモジュールは、前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するための通知ユニットと、前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するための受信ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する受信ユニットと、各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するための第5決定ユニットと、各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するための第6決定ユニットと、を備える。
【0068】
本出願の一実施例によると、前記第5決定ユニットは、いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するための第2取得サブユニットと、各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するための第3取得サブユニットと、前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するための選択サブユニットと、を備える。
【0069】
本出願の一実施例によると、前記第1勾配情報は、前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含み、前記第2勾配情報は、前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含む。
【0070】
本出願の一実施例によると、前記訓練ノードが予め設定された分割条件を満たしていない場合、前記訓練ノードが葉ノードであると決定し、前記葉ノードの重み値を取得するための決定モジュールと、前記葉ノードの重み値を前記クライアントに送信するための送信モジュールと、をさらに備える。
【0071】
本出願の一実施例によると、前記決定モジュールは、前記葉ノードに属するデータインスタンスを取得するための第1取得ユニットと、前記葉ノードに属する前記データインスタンスの一次勾配情報及び二次勾配情報を取得し、前記一次勾配情報及び前記二次勾配情報に基づいて前記葉ノードの重み値を取得するための第2取得ユニットと、を備える。
【0072】
本出願の一実施例によると、前記決定サブモジュールは、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及び前記ターゲット分割値を含む分割情報を前記クライアントに送信するための送信ユニットをさらに備える。
【0073】
本出願の一実施例によると、前記送信ユニットはさらに、ラベル付けされたクライアントに前記分割情報を送信し、前記ラベル付けされたクライアントから送信された左サブツリー空間セットを受信し、前記左サブツリー空間セットに基づいて、前記第2訓練セットを分割し、前記訓練ノードを前記ラベル付けされたクライアントの識別子に関連付ける。
【0074】
本出願の一実施例によると、前記取得モジュールはさらに、前記クライアントから送信されたデータインスタンス識別子を受信し、前記データインスタンス識別子に基づいて、クライアント間の共通のデータインスタンス識別子を決定し、前記共通のデータインスタンス識別子が、前記第1訓練セットと前記第2訓練セットを決定するように前記クライアントに指示する。
【0075】
本出願の一実施例によると、前記通知モジュールはさらに、更新された前記訓練ノードを取得し、前記生成モジュールはさらに、更新された前記訓練ノードが訓練停止条件を満たすと決定された場合、訓練を停止し、ターゲット連合学習モデルを生成し、前記装置は、検証セットを取得し、連合学習モデルの訓練に参加するクライアントのうちの1つである検証クライアントと連携して前記ターゲット連合学習モデルを検証するための検証モジュールをさらに備える。
【0076】
本出願の一実施例によると、前記検証モジュールは、前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を前記検証クライアントに送信するための第1送信サブモジュールであって、前記検証ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである第1送信サブモジュールと、前記検証クライアントから送信された前記検証ノードに対応するノード進行方向を受信するための第1受信サブモジュールであって、前記ノード進行方向は、前記検証クライアントによって前記データインスタンス識別子と分割情報に基づいて決定される第1受信サブモジュールと、前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするためのノード更新サブモジュールと、前記更新された前記検証ノードが前記予め設定されたノード分割条件を満たす場合、前記検証セット内のデータインスタンス識別子がすべて検証されるまで、前記検証クライアントに前記データインスタンス識別子と前記分割情報を送信することに戻るための第2送信サブモジュールと、を備える。
【0077】
本出願の一実施例によると、前記検証モジュールは、更新された前記検証ノードが前記予め設定されたノード分割条件を満たしていない場合、更新された前記検証ノードが葉ノードであると決定し、前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を取得するための取得サブモジュールをさらに備える。
【0078】
本出願の一実施例によると、前記検証モジュールは、前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記データインスタンスのモデル予測値を前記検証クライアントに送信するための第3送信サブモジュールと、前記検証クライアントから送信された検証指示情報を受信するための第2受信サブモジュールであって、前記検証指示情報は、前記モデル予測値に基づいて取得された、モデルを保留するか否かを指示するための指示情報である第2受信サブモジュールと、前記検証指示情報に基づいて、前記ターゲット連合学習モデルを保留し且つ使用するか否かを決定し、決定結果を前記クライアントに送信するための決定サブモジュールと、をさらに備える。
【0079】
本出願の一実施例によると、前記取得モジュールは、第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するための決定サブモジュールと、を備える。
【0080】
本出願の一実施例によると、前記決定サブモジュールは、前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するための第1決定ユニットと、前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するための第2決定ユニットと、を備える。
【0081】
本出願の一実施例によると、前記第1学習サブモジュールは、前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するための送信ユニットと、前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するための第1受信ユニットと、前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するための第3決定ユニットと、前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するための第4決定ユニットと、を備える。
【0082】
本出願の一実施例によると、前記第3決定ユニットは、前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するための第1決定サブユニットと、前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するための第1取得サブユニットであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含む第1取得サブユニットと、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するための第2決定サブユニットと、を備える。
【0083】
本出願の一実施例によると、前記第1取得サブユニットはさらに、前記クライアントに前記分割閾値を送信し、前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信し、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含み、前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得する。
【0084】
本出願の一実施例によると、前記第2学習サブモジュールは、前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するための通知ユニットと、前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するための第2受信ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2受信ユニットと、各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するための第5決定ユニットと、各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するための第6決定ユニットと、を備える。
【0085】
本出願の一実施例によると、前記第5決定ユニットは、いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するための第2取得サブユニットと、各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するための第3取得サブユニットと、前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するための選択サブユニットと、を備える。
【0086】
本出願の一実施例によると、前記検証セットは前記第1訓練セット及び前記第2訓練セットとそれぞれ相互に排他的である。
【0087】
本出願の第3の態様の実施例は連合学習モデルの訓練装置を提供し、サーバは水平分割方式と垂直分割方式を混合することにより、マッチングする学習方式の傾向性を自動的に選択し、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0088】
上記目的を実現するために、本出願の第4の態様の実施例は、クライアントに適用される連合学習モデルの訓練装置を提供し、訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信するための第1受信モジュールであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである第1受信モジュールと、前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うための分割モジュールと、を備える。
【0089】
本出願の一実施例によると、前記分割モジュールは、第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、前記第1分割値と前記第2分割値を前記サーバに送信するための送信サブモジュールと、を備える。
【0090】
本出願の一実施例によると、前記第1学習サブモジュールは、前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するための第1受信ユニットと、前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するための第1送信ユニットと、前記サーバから送信された前記各特徴の分割閾値を受信するための第2受信ユニットと、前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得して、前記初期データインスタンス識別子セットを前記サーバに送信するための第1取得ユニットであって、ここで、前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含む第1取得ユニットと、を備える。
【0091】
本出願の一実施例によると、前記第1取得ユニットはさらに、いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成する。
【0092】
本出願の一実施例によると、前記第2学習サブモジュールは、前記サーバから送信された勾配情報要求を受信するための第3受信ユニットと、前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するための生成ユニットと、前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するための第2取得ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2取得ユニットと、前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するための第2送信ユニットと、を備える。
【0093】
本出願の一実施例によると、前記第2取得ユニットは、いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するためのパケット化サブユニットと、前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するための第1取得サブユニットと、を備える。
【0094】
本出願の一実施例によると、前記分割モジュールは、前記サーバから送信された分割情報を受信するための受信サブモジュールであって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、および前記ターゲット分割値を含む受信サブモジュールと、前記分割情報に基づいて前記訓練ノードに対してノード分割を行うための分割サブモジュールと、を備える。
【0095】
本出願の一実施例によると、前記分割サブモジュールはさらに、分割して生成された左サブツリー空間を前記サーバに送信する。
【0096】
本出願の一実施例によると、前記訓練ノードが葉ノードである場合、前記サーバから送信された前記葉ノードの重み値を受信するための第2受信モジュールと、前記葉ノードの重み値に基づいて、前記葉ノードに含まれる各データの残差を決定するための決定モジュールと、前記残差を次のブースティングツリーの残差入力とするための入力モジュールと、をさらに備える。
【0097】
本出願の一実施例によると、前記装置は、前記サーバから送信された検証セットを受信し、前記検証セットに基づいて、前記ターゲット連合学習モデルを検証するための検証モジュールをさらに備える。
【0098】
本出願の一実施例によると、前記検証モジュールは、前記サーバから送信された前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を受信するための第1受信サブモジュールであって、前記検証ノードは、複数のブースティングツリーのうちの1つのブースティングツリーのノードである第1受信サブモジュールと、前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するための第1決定サブモジュールと、前記サーバが前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするように、前記サーバに前記ノード進行方向を送信するための第1送信サブモジュールと、を備える。
【0099】
本出願の一実施例によると、前記第1決定サブモジュールは、前記データインスタンス識別子に基づいて、前記データインスタンス識別子に対応する各特徴の特徴値を決定するための第1決定ユニットと、前記分割情報と前記各特徴の前記特徴値とに基づいて、前記ノード進行方向を決定するための第2決定ユニットと、を備える。
【0100】
本出願の一実施例によると、前記検証モジュールは、前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記サーバから送信された前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を受信するための第2受信サブモジュールと、前記モデル予測値に基づいて最終的な検証結果を取得し、前記検証結果を前の検証結果と比較することにより、前記ターゲット連合学習モデルを保留し且つ使用するか否かを指示するための検証指示情報を生成するための生成サブモジュールと、前記サーバに前記検証指示情報を送信するための第2送信サブモジュールと、をさらに備える。
【0101】
本出願の一実施例によると、前記分割モジュールは、第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュールと、第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュールと、前記第1分割値と前記第2分割値を前記サーバに送信するための第3送信サブモジュールと、を含む。
【0102】
本出願の一実施例によると、前記第1学習サブモジュールは、前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するための第1受信ユニットと、前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するための第1送信ユニットと、前記サーバから送信された前記各特徴の分割閾値を受信するための第2受信ユニットと、前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得して、前記初期データインスタンス識別子セットを前記サーバに送信するための第1取得ユニットであって、ここで、前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含む第1取得ユニットと、を備える。
【0103】
本出願の一実施例によると、前記第1取得ユニットはさらに、いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成する。
【0104】
本出願の一実施例によると、前記第2学習サブモジュールは、前記サーバから送信された勾配情報要求を受信するための第3受信ユニットと、前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するための生成ユニットと、前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するための第2取得ユニットであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2取得ユニットと、前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するための第2送信ユニットと、を備える。
【0105】
本出願の一実施例によると、前記第2取得ユニットは、いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するためのパケット化サブユニットと、前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するための第2取得サブユニットと、を備える。
【0106】
本出願の第4の態様の実施例は連合学習モデルの訓練装置を提供し、クライアントは、複数のブースティングツリーのうちの1つのブースティングツリーのノードである訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行うことにより、水平分割方式と垂直分割方式を混合することで、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0107】
上記目的を実現するために、本出願の第5の態様の実施例は、メモリと、プロセッサと、前記メモリに記憶され、前記プロセッサにおいて実行可能なコンピュータプログラムとを含む電子機器を提供し、前記プロセッサは、前記プログラムを実行する場合、本出願の第1の態様の実施例、又は本出願の第3の態様の実施例のいずれか一項に記載の連合学習モデルの訓練方法を実現する。
【0108】
上記目的を実現するために、本出願の第6の態様の実施例は、コンピュータ読み取り可能な記憶媒体を提供し、当該プログラムはプロセッサによって実行される場合、本出願の第1の態様の実施例、又は本出願の第3の態様の実施例のいずれか一項に記載の連合学習モデルの訓練方法が実現される。
【図面の簡単な説明】
【0109】
【
図1】本出願の一実施例によって提供される連合学習の適用シナリオの概略図である。
【
図2】本出願の一実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図3】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図4】本出願の一実施例によって開示されるデータ分布の概略図である。
【
図5】本出願の一実施例によって開示されるノード分割の概略図である。
【
図6】本出願の一実施例によって開示されるデータ分布の概略図である。
【
図7】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図8】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図9】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図10】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図11】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図12】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図13】本出願の一実施例によって開示される、バケットマッピングルールによるパケット化の概略図である。
【
図14】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図15】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図16】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図17】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図18】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図19】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図20】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図21】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図22】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図23】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図24】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図25】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図26】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図27】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図28】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図29】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図30】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図31】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図32】本出願のもう1つの実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【
図33】本出願の一実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図34】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図35】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図36】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図37】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図38】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図39】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図40】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図41】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図42】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図43】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図44】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図45】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図46】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図47】本出願のもう1つの実施例によって開示される連合学習モデルの訓練装置の概略構造図である。
【
図48】本出願の実施例によって提供される電子機器の概略構造図である。
【発明を実施するための形態】
【0110】
上記技術案をよりよく理解するために、以下は図面を参照して本開示の例示的な実施例をより詳しく説明する。図面において本開示の例示的な実施例が開示されているが、様々な形式で本開示を実現でき、ここで説明される実施例に限定されるべきではないことを理解されたい。むしろ、これらの実施例は、本開示をより完全に理解し且つ本開示の範囲を完全に当業者に伝えるために提供される。
【0111】
なお、本出願の実施例に係る「及び/又は」は、関連対象の関連関係を説明し、三種類の関係が存在し得ることを表すことを理解されたい。例えば、A及び/又はBは、Aが単独で存在すること、AとBが同時に存在すること、Bが単独で存在することを表すことができ、ここで、A、Bは単数又は複数であってもよい。「/」という文字は、一般に、前後関連対象が「又は」という関係であることを示す。
【0112】
まず、本出願の実施例に係る一部の用語を説明する。
【0113】
同型データ:異なるデータ提供側によって所有されるデータ記録は同じ特徴属性を有する。
【0114】
異種データ:異なるデータ提供側によって所有されるデータ記録は、データインスタンス識別子(ID)のみが同じで、他の特徴属性がいずれも異なる。
【0115】
XGBoost:略称はXGBで、ブースティングツリーが拡張可能な機械学習システムである。
【0116】
本出願の技術案を説明する前に、まず、本出願の1つの具体的な適用シナリオに合わせて従来技術に存在する問題及び本出願の技術的構想の過程を引き出す。
【0117】
実際の適用では、協力して連合学習を行う複数のデータのすべてが異種又は同型であることを完全に確保することが難しいため、ブースティングツリー(boosting tree)を用いて連合学習訓練を行う場合、一部の同型又は異種のデータを破棄してから、水平連合学習又は垂直連合学習を採用するしかいない。しかしながら、破棄されたデータが多いため、連合学習訓練に基づいて得られたモデルの性能は悪くなる。そして、水平連合学習又は垂直連合学習を用いても、データのラベルが特定の一方に存在し、ランダムに多方に存在できない必要があり、これは現実的にはほとんど不可能であり、よって、従来技術も連合学習の実際の適用を制限することになる。
【0118】
上記問題に対し、発明者は、水平連合学習と垂直連合学習を混合する連合学習という設計を利用することで、従来の連合学習ではデータ分布方式に気を配る必要があるという課題を解決でき、すべてのデータを十分に利用して学習することができないという問題も解決でき、これとともに、データ利用の不十分であるため訓練して得られたモデルの効果が悪いという問題も解決できることを研究により見出した。
【0119】
当該解決案の設計により、異種データが多い場合、解決案は垂直連合学習(即ち垂直ブースティングツリー(boosting tree))の方式を用いる傾向があり、これにより、訓練して得られたモデルはロスレスという特徴を備えるとともに、同型データを利用することもできる。同型データが多い場合、解決案は水平連合学習(即ち水平ブースティングツリー(boosting tree))の方式を用いる傾向があるとともに、異種データを用いてモデル訓練を行い、これにより、訓練して得られたモデルは垂直方式のロスレスの能力を備えるようになり、モデル性能を向上させる。
【0120】
例示的に、
図1は本出願によって提供される連合学習に基づくモデル訓練方法の適用シナリオの概略図である。
図1に示すように、当該適用シナリオは、少なくとも1つのクライアント(
図1にはクライアント111、クライアント112、及びクライアント113という3つのクライアントが示される)、ネットワーク12、及びサーバ13を含むことができる。ここで、各クライアントとサーバ13はいずれもネットワーク12を介して通信することができる。
【0121】
なお、
図1は本出願の実施例によって提供される適用シナリオの概略図に過ぎず、本出願の実施例は
図1に含まれるデバイスを限定せず、
図1のデバイス間の位置関係も限定しない。例えば、
図1に示す適用シナリオでは、データ記憶装置をさらに備えてもよく、当該データ記憶装置はサーバ13に対して外部メモリであってもよく、サーバ13内に集積した内部メモリであってもよい。
【0122】
本出願は、連合学習に基づくモデル訓練方法、装置及び記憶媒体を提供し、水平連合学習と垂直連合学習を混合する設計により、訓練して得られたモデルの性能を向上させる。以下、具体的な実施例によって本出願の技術案を詳しく説明する。なお、以下のいくつかの実施例は互いに組み合わせることができ、同じ又は類似の概念又はプロセスについて一部の実施例において省略する可能性がある。
【0123】
以下、図面を参照しながら、本出願の実施例によって提供される連合学習モデルの訓練方法、装置及び電子機器を説明する。
【0124】
図2は、本出願の一実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【0125】
図2に示すように、サーバを実行主体として、本出願の実施例で提起された連合学習モデルの訓練方法を説明し、具体的には、以下のステップS201~S205を含む。
【0126】
S201、訓練ノードが予め設定された分割条件を満たす場合、訓練ノードに対応するターゲット分割方式を取得し、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである。
【0127】
本出願の実施例では、訓練ノードが予め設定された分割条件を満たす場合は、現在の訓練ノードを引き続き分割する必要があること示し、このような場合では、訓練ノードに対応するターゲット分割方式を取得することができる。
【0128】
ここで、予め設定された分割条件は実際の状況に応じて設定することができ、例えば、予め設定された分割条件を、現在処理されている訓練ノードの所在するレベルが最大のツリー深度要件を満たしていないこと、損失関数が約束条件を満たしていないこと等に設定することができる。
【0129】
ここで、ターゲット分割方式は水平分割方式と垂直分割方式を含む。
【0130】
ここで、ブースティングツリー(Boosting Tree)とは、加算モデル及び前向き分布アルゴリズムを用いて、決定木(Decision Tree)を基底関数とするブースティング方法を指すものである。
【0131】
S202、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知する。
【0132】
本出願の実施例では、訓練ノードに対応するターゲット分割方式が取得された後、サーバは、取得されたターゲット分割方式をクライアントに送信し、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知することができる。これに対応して、クライアントは、サーバのターゲット分割方式を受信し、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行うことができる。
【0133】
S203、更新された訓練ノードが予め設定された分割条件を満たさなくなるまで、訓練ノードが分割されて生成された左サブツリーノードを新たに訓練ノードとして次のラウンドの訓練を行う。
【0134】
本出願の実施例では、サーバは、訓練ノードが分割されて生成された左サブツリーノードを新たに訓練ノードとして次のラウンドの訓練を行うことができ、そして更新された訓練ノードのレベルが予め設定された分割条件を満たすか否かを判断し、更新された訓練ノードを引き続き分割する必要があると判断した時、即ち予め設定された分割条件を満たす時、更新された訓練ノードが予め設定された分割条件を満たさなくなるまで、更新された訓練ノードに対応するターゲット分割方式を引き続き取得し且つターゲット分割方式に基づいてノード分割を引き続き行うようにクライアントに通知する。ここで、予め設定された分割条件はツリー深度閾値、分割後のサンプルの数の閾値又は連合学習モデルの誤差閾値などを含むことができる。
【0135】
S204、1つのブースティングツリーの他の非葉ノードを新たに訓練ノードとして次のラウンドの訓練を行う。
【0136】
本出願の実施例では、サーバは現在のブースティングツリーの他の非葉ノードに遡って、新たに現在の訓練ノードとして次のラウンドの訓練を行うことができる。
【0137】
S205、複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成する。
【0138】
本出願の実施例では、複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成することができる。さらに、生成されたターゲット連合学習モデルを検証し、予め設定された訓練回数になると、情報をクリーンアップしてモデルを保留することができる。
【0139】
これにより、本出願によって提供される連合学習モデルの訓練方法では、サーバは水平分割方式と垂直分割方式を混合することにより、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0140】
なお、本出願では、訓練ノードに対応するターゲット分割方式を取得しようとする場合、クライアントと連携して連合学習を行うことで、対応する分割値を取得し、そして分割値に基づいて、訓練ノードに対応するターゲット分割方式を決定することができる。
【0141】
1つの可能な実現形態として、
図3に示すように、上記実施例を基に、上記ステップでは、訓練ノードに対応するターゲット分割方式を取得するプロセスは、具体的に以下のステップS301~S303を含む。
【0142】
S301、第1訓練セットに基づいて、クライアントと連携して水平連合学習を行って、訓練ノードに対応する第1分割値を取得する。
【0143】
なお、訓練ノードを引き続き分割する必要がある時、分割方式を決定する必要があり、即ち水平分割か垂直分割かを決定する必要がある。ここで、ほとんどのノードは、一回の水平、一回の垂直、合計2回の候補分割が行われ、その後、2種類の候補分割のうち分割ゲイン(gain)の大きい分割方式を当該ノードの最終分割方式として選択する。
【0144】
事前判断をしようとする場合、以下の条件を満たすノードは、垂直分割と水平分割のうちのいずれか一方だけを行い、直接最終分割結果とする。
(1)ツリーが深いほど、ノード上で分割する必要があるサンプルの総数が少なくなる。ノード上のサンプルにおける共通サンプルの割合を判断し、予め設定された値より小さい場合、例えば10%である場合、共通サンプルが極めて少ないことが示され、当該ノード上のデータ分布状況を水平分布処理として、水平分割のみを行うことができる。
(2)ノード上のサンプルにおける共通サンプルの比例は予め設定された値を上回る場合、例えば98%である場合、垂直分割のみを行うことができる。
【0145】
なお、上記2つの事前判断条件の設定は訓練時間を節約するためのものであり、2つの比例は訓練パラメータで設定可能である。
【0146】
以下、水平分割と垂直分割という2種類の分割方式に係るデータを説明する。
【0147】
例えば、
図4に示すように、訓練されるサンプルは合計10000個であり、分割があるノードに到達した時点で100個のサンプルがある。この時、データ分布は以下のとおりである。100個のサンプルのうち70個は2つのプラットフォームの共通サンプルである。プラットフォームAは90個のサンプル(20個のプライベートサンプルと70個の共有サンプルを含む)があり、プラットフォームBは80個のサンプル(10個のプライベートサンプルと70個の共有サンプルを含む)がある。プラットフォームAは18個の特徴(10個のプライベート特徴と8個の共有特徴を含む)を有し、プラットフォームBは18個の特徴(10個のプライベート特徴と8個の共有特徴を含む)を有する。
【0148】
水平分割に対して、当該ノードのすべてのサンプルは分割に参加し、複数の候補特徴と特徴閾値がサーバによって選択される。
【0149】
共通特徴f及びとりうる値vに対して、プラットフォームAがローカルの90個のサンプルを左右サブツリーに割り当て、プラットフォームBがローカルの80個のサンプルを左右サブツリーに割り当て、それぞれサンプル分流の状況をサーバに知らせ、サーバはこの100個のサンプルの左右分流に基づいて分割ゲインを計算して特徴fのゲインとする。
【0150】
プラットフォームAのプライベート特徴f及びとりうる値vに対して、プラットフォームAがローカルの90個のサンプルを左右サブツリーに割り当て、プラットフォームBがローカルの70個の共通サンプルを左右サブツリーに割り当て、特徴fのとりうる値のない10個のサンプルをすべて左サブツリー又は右サブツリーに割り当てて、2種類の分流とし、それぞれサンプル分流の状況をサーバに知らせ、サーバはこの100個のサンプルの2種類の分流に基づいて分割ゲインを計算し、大きい方を特徴fのゲインとする。
【0151】
プラットフォームBのプライベート特徴fととりうる値vに対して、上記と同様である。
【0152】
サーバはすべての特徴のうちの最大のゲインの値をgain1と記載する。
【0153】
垂直分割に対して、当該ノードの共通の70個のサンプルのみが分割に参加する。通常の垂直連合学習と同様に、70個のサンプルにおいて最大の特徴分割ゲインgain2を計算する。
【0154】
水平分割の最大ゲインgain1と垂直分割の最大ゲインgain2のという2つのゲインのうちの大きい方を取り、当該ノードは対応する分割方式を用いて分割される。次のノードに入る。
【0155】
なお、水平分割方式にせよ垂直分割方式にせよ、ノードサンプルセットはいずれも以下のルールに従って分割する。最大ゲインはプラットフォームAのローカル特徴f1からのものであり、最大ゲインは共通特徴f2からのものであり、最大ゲインはプラットフォームBのローカル特徴f3からのものである。
【0156】
例えば、
図5(a)に示すように、ノードはf1に従って分割する場合、Aの90個のサンプルを、特徴のとりうる値が閾値以下であるサンプルを左に、閾値より大きいサンプルを右に分け、Bの10個のサンプルは特徴値がなく、最大ゲインに対応する方式に従い、欠損値サンプルが右サブツリーに属する場合、この10個のサンプルを右に、欠損値サンプルが左サブツリーに属する場合、この10個のサンプルを左に分ける。
【0157】
図5(b)に示すように、ノードはf2に従って分割する場合、すべてのサンプルは特徴値があり、閾値以下のサンプルを左に、閾値より大きいサンプルを右に分ける。
【0158】
図5(c)に示すように、ノードはf3に従って分割する場合、具体的なプロセスは、ノードがf1に従って分割するプロセスと類似するので、詳しい説明を省略する。
【0159】
本出願の実施例では、クライアントは第1訓練セットに基づいて水平連合学習を行って、訓練ノードに対応する第1分割値を取得し、サーバに送信することができる。これに対応して、サーバは訓練ノードに対応する第1分割値を受信することで、訓練ノードに対応する第1分割値を取得することができる。
【0160】
S302、第2訓練セットに基づいて、クライアントと連携して垂直連合学習を行って、訓練ノードに対応する第2分割値を取得する。
【0161】
本出願の実施例では、クライアントは第2訓練セットに基づいて水平連合学習を行って、訓練ノードに対応する第2分割値を取得し、サーバに送信することができる。これに対応して、サーバは訓練ノードに対応する第2分割値を受信することで、訓練ノードに対応する第2分割値を取得することができる。
【0162】
S303、第1分割値と第2分割値に基づいて、訓練ノードに対応するターゲット分割方式を決定する。
【0163】
なお、従来の連合学習は、主に水平連合学習と垂直連合学習を含む。ここで、水平連合学習に対して、特徴が完全に同じであるマルチプラットフォームデータ、即ち水平データ、例えば
図6に示すデータ(1.2)+(3)+(5.1)を使用し、垂直連合学習に対して、サンプルID(Identity Document、身分識別子)が完全に同じであるマルチプラットフォームデータ、即ち垂直データ、例えば、
図6に示すデータ(2)+(3)+(4)を使用する。以上から分かるように、従来技術では、完全に水平又は完全に垂直であるデータのみをモデル化でき、つまり、上記の
図6の一部のデータしか使用できない。
【0164】
本出願の実施例では、水平連合学習に参加するデータである第1訓練セットは、複数のクライアントのすべてのデータサンプルであり、例えば、
図6に示すデータ(1)+(2)+(3)+(4)+(5)であり、垂直連合学習に参加するデータである第2訓練セットは、複数のクライアントの共通データサンプルであり、これらのサンプルのすべての特徴は訓練に参加し、例えば
図6に示す(2)+(3)+(4)である。以上から分かるように、本出願によって提供される連合学習モデルの訓練方法は、水平垂直に交差するデータに適用することができ、つまり、
図6に示すすべてのデータを用いることになる。
【0165】
これにより、本出願の実施例では、第1訓練セットと第2訓練セットに基づいて、クライアントと連携して水平連合学習と垂直連合学習を行って、訓練ノードに対応する第1分割値と第2分割値を取得することができる。
【0166】
なお、本出願では、第1分割値と第2分割値に基づいて、訓練ノードに対応するターゲット分割方式を決定しようとする場合、第1分割値と第2分割値を比較することでターゲット分割値を決定し、そしてターゲット分割値に基づいて、対応するターゲット分割方式を決定することができる。
【0167】
1つの可能な実現形態として、
図7に示すように、上記実施例を基に、上記ステップS303では、第1分割値と第2分割値に基づいて、訓練ノードに対応するターゲット分割方式を決定するプロセスは、具体的に以下のステップS501~S502を含む。
【0168】
S501、第1分割値と第2分割値のうちの大きい方を訓練ノードに対応するターゲット分割値として決定する。
【0169】
本出願の実施例では、サーバは、訓練ノードに対応する第1分割値と第2分割値を取得した後に、第1分割値と第2分割値を比較し、そのうちの大きい方を訓練ノードに対応するターゲット分割値とすることができる。
【0170】
例えば、取得された第1分割値はGain1であり、第2分割値はGain2であり、Gain1>Gain2、この場合、Gain1を訓練ノードに対応するターゲット分割値とすることができる。
【0171】
S502、ターゲット分割値に基づいて、訓練ノードに対応する分割方式を決定する。
【0172】
本出願の実施例では、第1分割値と第2分割値のうちの大きい方を訓練ノードに対応するターゲット分割値とした後に、サーバはターゲット分割値に基づいて、訓練ノードに対応する分割方式を決定することができる。
【0173】
これにより、本出願によって提供される連合学習モデルの訓練方法は、クライアントと連携して水平連合学習と垂直連合学習を行って、それぞれ第1分割値と第2分割値を取得し、そしてとりうる値の大きい方を訓練ノードに対応するターゲット分割値とし、さらに、ターゲット分割値に基づいて、訓練ノードに対応する分割方式を決定することにより、ターゲット分割値に基づいて、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることない。
【0174】
なお、本出願では、第1訓練セットに基づいて、クライアントと連携して水平連合学習を行って、訓練ノードに対応する第1分割値を取得するとする場合、各特徴に対応する水平分割値を取得し、そして水平分割値に基づいて、訓練ノードの第1分割値を決定することができる。
【0175】
1つの可能な実現形態として、
図8に示すように、上記実施例を基に、上記ステップS301では、第1訓練セットに基づいて、クライアントと連携して水平連合学習を行って、訓練ノードに対応する第1分割値を取得するプロセスは、具体的に以下のステップS601~S604を含む。
【0176】
S601、訓練ノードに利用可能な第1特徴サブセットを第1訓練セットから生成して、クライアントに送信する。
【0177】
選択可能に、サーバは、現在の訓練ノードに利用可能な第1特徴サブセットを第1訓練セットからランダムに生成することができ、例えば、現在の第1訓練セットのすべての特徴の半分をランダムに生成して、1つの新しい特徴セットを構成して第1特徴サブセットとし、生成された第1特徴サブセットを各クライアントに送信することができる。これに対応して、各クライアントは第1特徴サブセットを受信し、得られた第1特徴サブセットに基づいてトラバースしてセット内の各特徴の特徴値を取得し、さらに、ローカルデータ、即ちローカルに記憶されている特徴の特徴値に基づいてサーバに送信することができる。
【0178】
S602、クライアントから送信された第1特徴サブセット内の各特徴の特徴値を受信する。
【0179】
本出願の実施例では、クライアントは第1特徴サブセット内の各特徴の特徴値をサーバに送信することができる。これに対応して、サーバは、クライアントから送信された第1特徴サブセット内の各特徴の特徴値を受信することができる。
【0180】
S603、第1特徴サブセット内の各特徴の特徴値に基づいて、各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定する。
【0181】
1つの可能な実現形態として、
図9に示すように、上記実施例を基に、上記ステップS603では、第1特徴サブセット内の各特徴の特徴値に基づいて、各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するプロセスは、具体的に以下のステップS701~S702を含む。
【0182】
S701、第1特徴サブセット内のいずれか1つの特徴に対して、いずれか1つの特徴の特徴値に基づいて、いずれか1つの特徴の分割閾値を決定する。
【0183】
本出願の実施例では、サーバは、クライアントから送信された第1特徴サブセット内の各特徴の特徴値を受信した後、特徴値に基づいて特徴値リストを生成することができる。さらに、第1特徴サブセット内のいずれか1つの特徴に対して、特徴値リストから1つの特徴値をランダムに選択して現在特徴のグローバル最適分割閾値とすることができる。
【0184】
S702、分割閾値に基づいて、いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得し、ここで、第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含む。
【0185】
1つの可能な実現形態として、
図10に示すように、上記実施例を基に、上記ステップS702では、分割閾値に基づいて、いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するプロセスは、具体的に以下のステップS801~S803を含む。
【0186】
S801、クライアントに分割閾値を送信する。
【0187】
本出願の実施例では、いずれか1つの特徴の分割閾値が決定された後に、この分割閾値をクライアントにブロードキャストすることができる。これに対応して、クライアントは当該分割閾値を受信し、各特徴の分割閾値に基づいて、訓練ノードに対応する初期データインスタンス識別子セットを取得して、初期データインスタンス識別子セットをサーバに送信することができる。
【0188】
S802、クライアントから送信された訓練ノードに対応する初期データインスタンス識別子セットを受信し、ここで、初期データインスタンス識別子セットは、クライアントが分割閾値に基づいていずれか1つの特徴に対してノード分割を行うときに生成され、初期データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含む。
【0189】
本出願の実施例では、サーバは、クライアントから送信されたIL、即ち第1左サブツリー空間に属するデータインスタンス識別子を含む初期データインスタンス識別子セットILを受信することができる。
【0190】
S803、初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得する。
【0191】
1つの可能な実現形態として、
図11に示すように、上記実施例を基に、上記ステップS803では、初期データインスタンス識別子セットに基づいて、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するプロセスは、具体的に以下のステップS901~S903を含む。
【0192】
S901、初期データインスタンス識別子セット内の各データインスタンス識別子と、クライアントのデータインスタンス識別子とを比較して、異常が存在するデータインスタンス識別子を取得する。
【0193】
ここで、異常が存在するデータインスタンス識別子は、重複するデータインスタンス識別子や矛盾するデータインスタンス識別子などであってもよい。
【0194】
S902、異常が存在するデータインスタンス識別子を前処理して、第1データインスタンス識別子セットを取得する。
【0195】
本出願の実施例では、サーバはILを受信した後に、各ILセットから重複するインスタンスIDを除外し、矛盾するID情報を処理することで最終的なILを決定することができる。
【0196】
例えば、クライアントAに対して、インスタンスIDをILに追加するのに対し、クライアントBに対して、IDが存在するが、インスタンスを追加しなかった場合、このIDがILに存在すべきであると見なすことができる。
【0197】
S903、すべてのデータインスタンス識別子と第1データインスタンス識別子セットに基づいて、第2データインスタンス識別子セットを取得する。
【0198】
本出願の実施例では、第1データインスタンス識別子セットが取得された後、すべてのデータインスタンス識別子から第1データインスタンス識別子セットILを除外すれば、第2データインスタンス識別子セットIRを取得することができる。
【0199】
なお、本出願では、第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得しようとする時、各特徴に対応する垂直分割値に基づいて、訓練ノードの第2分割値を決定することができる。
【0200】
1つの可能な実現形態として、
図12に示すように、上記実施例を基に、上記ステップでは、訓練ノードに対応するターゲット分割方式を取得するプロセスは、具体的に以下のステップS1001~S1004を含む。
【0201】
S1001、第2訓練セットに基づいて垂直連合学習を行うようにクライアントに通知する。
【0202】
本出願の実施例では、サーバは、第2訓練セットに基づいて垂直連合学習を行うようにクライアントに通知した後、クライアントに勾配情報要求を送信してGkvとHkv情報を取得することができる。これに対応して、クライアントは、共通IDの部分のデータに基づいて、現在のノードの処理されていないデータを取得し、特徴セットをランダムに取得し、セット内の各特徴kおよび対応する特徴のすべてのとりうる値のそれぞれの値vに基づいて、各サンプルに対してパケット化マッピングを行って、左サブツリー空間のGkvとHkvを計算して第1勾配情報とし、準同型暗号化処理を行った後にサーバに送信することができる。
【数1】
ここで、xi,kはデータインスタンスxiの特徴kの値を表す。
【0203】
例えば、元々とりうる値が1~100歳であるグループを20歳以下、20~50歳、50歳以上という3つのパケットにマッピングする。1つのパケット内のサンプルは、すべて左側に分けるか、あるいはすべて右側に分ける。理論上では、サーバに送信されるGとHは累積和であり、上記の例の場合、送信されたGは、1~20歳のGの合計、1~50歳のGの合計、および1~100歳のGの合計(それぞれ左サブツリーのGに対応する)という3つであるべきである。準同型暗号化の暗号文の演算が遅く、暗号文が長くなって通信量を増やすこともあるため、実際には、クライアントによって送信されるのは、この3つのパケットのそれぞれのG、即ち1~20歳のGの合計、20~50歳のGの合計、及び50以上のGの合計である。Label付きのプラットフォームは、この3つのパケットのGを受信した後、まず平文に複号化してから、累積した1~20歳/1~50歳/1~100歳のGを計算する。上記2つの式はこのプロセスを示し、各パケットのgの合計の計算するものである。sk,vは現在のパケットの最大とりうる値(50歳)であり、sk,v-1は1つ前のパケットの最大の特徴とりうる値(20歳)であり、このように、20~50歳のxを除外する。特徴をパケット化する方式により、計算量を削減することができる。
【0204】
S1002、クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信し、ここで、第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、第2左サブツリー空間は、特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる第2左サブツリー空間に対応する。
【0205】
本出願の実施例では、クライアントは、いずれか1つの特徴に対して、いずれか1つの特徴のすべての特徴値を取得し、特徴値に基づいていずれか1つの特徴をパケット化し、いずれか1つの特徴の各パケットの第3データインスタンス識別子セットの第1勾配情報を取得することができる。これに対応して、サーバはクライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信することができる。
【0206】
S1003、各特徴の第1勾配情報と訓練ノードの総勾配情報に基づいて、各特徴の垂直分割値をそれぞれ決定する。
【0207】
S1004、各特徴に対応する垂直分割値に基づいて、訓練ノードの第2分割値を決定する。
【0208】
以下、例の形式で勾配情報を説明する。
【0209】
例えば、
図13に示すように、クライアントAにおける番号がkである特徴を例とすると、現在のノードにおけるすべてのサンプルを並べ替え、特徴kにおける特徴とりうる値を小さい順に並べ替えることができる。さらに、バケットマッピングルールに従って、これらのサンプルを順に複数のデータパケット(小から大への複数の特徴閾値に対応)に分割することができる。さらに、第v個のパケットに含まれるサンプルの一次勾配gの合計G、および二次勾配hの合計H、即ち第v個の特徴閾値vに対応するGkvとHkvを計算することができる。
【0210】
ここで、Gkvは、番号がkである特徴のとりうる値に基づいてノードサンプルを並べ替えて、順次複数のデータパケットに分割し、並べ替え後の第v個のパケット内のすべてのサンプルの一次勾配gの合計を表す。
【0211】
ここで、Hkvはこれらのサンプルの二次勾配hの合計である。
【0212】
なお、前述したバケットマッピングルールは複数の種類があり、本出願はバケットマッピングルールの具体的な方式について限定せず、
図11のとりうる値が1である2つのサンプルのような特徴値が同じであるサンプルが同じデータパケットに分けらればよい。
【0213】
例えば、同じとりうる値のサンプルを1つのパケットとすることができ、即ち、n個のサンプルは、1つの特徴においてm種類のとりうる値がある場合、m個のパケットに分割し、対応する特徴閾値はこのm種類のとりうる値である。
【0214】
また例えば、パケットの個数を限定することができ、例えばできるだけm個のパケットを分割するように制限し、この場合、特徴kのとりうる値がm個より小さい場合、1つ前の方式に従って分けることができ、m個より多い場合、近似的等分の方法に従って、m個のパケットに分ける。
【0215】
なお、各特徴の垂直分割値を決定しようとする時、候補垂直分割値のうちの最大値を、いずれか1つの特徴の垂直分割値として選択することができる。
【0216】
1つの可能な実現形態として、
図14に示すように、上記実施例を基に、上記ステップS1003では、各特徴の第1勾配情報と訓練ノードの総勾配情報に基づいて、各特徴の垂直分割値をそれぞれ決定するプロセスは、具体的に以下のステップS1201~S1203を含む。
【0217】
S1201、いずれか1つの特徴に対して、総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得する。
【0218】
S1202、各第1勾配情報に対して、第1勾配情報、及び第1勾配情報に対応する第2勾配情報に基づいて、いずれか1つの特徴の候補垂直分割値を取得する。
【0219】
S1203、候補垂直分割値のうちの最大値を、いずれか1つの特徴の垂直分割値として選択する。
【0220】
ここで、第1勾配情報は、第2左サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び第2左サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含み、第2勾配情報は、第2右サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び第2右サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含む。
【0221】
1つの可能な実現形態として、本出願の実施例では、サーバは、GkvとHkv情報を取得することを各クライアントに要求する。これに対応して、クライアントは共通IDの部分のデータに基づいて、現在のノードの処理されていないデータを取得し、特徴セットをランダムに取得し、セット内の各特徴k、および対応する特徴のすべてのとりうる値の各値vに基づいて、各サンプルに対してパケットマッピングを行って、左サブツリー空間のGkvとHkvを算出し、準同型暗号化処理を行った後にサーバに送信する。また、クライアントは共通データ識別子とローカルデータに基づいて、損失関数のいくつかの中間結果、例えば損失関数の一次導関数giと二次導関数hiを計算してサーバに送信することができる。
【0222】
さらに、サーバはクライアントから送信されたGkvとHkvを復号化し、現在のノードの共通IDに対応するデータ、および得られたすべてのgiとhiに基づいて、現在のノードの左サブツリー空間のすべてのgiの和GL、右サブツリー空間のすべてのgiの和GR、左サブツリー空間のすべてのhiの和HL、および右サブツリー空間のすべてのhiの和HRを計算することができる。
【0223】
XGBを例とすると、ターゲット関数は以下の式に示すとおりである。
【数2】
【0224】
XGBでは、二次テイラー展開式を用いて上記式を近似的に表すことを提案する。テイラー展開式の二次形式は以下のとおりである。
【数3】
【0225】
ここで、giとhiの計算式は以下のとおりである。
【数4】
【0226】
上記テイラー展開式から分かるように、giは一次導関数、hiは二次導関数である。ここで、GL、HLはそれぞれ以下の式で計算することができる。
【数5】
【0227】
ここで、nは、左サブツリー空間のインスタンスの個数を表し、つまり、この場合では、左サブツリー空間は合計n個のインスタンスがある。
【0228】
さらに、サーバは前述した結果に基づいて、各特徴の最適分割点を算出することができ、そしてこれらの分割点情報に基づいて、グローバル最適分割点(k,v,Gain)を決定する。ここで、幾つかのクライアントが同じ特徴を有する場合、サーバは、受信されたGkvから1つをランダムに選択して現在特徴のGkvとし、同様に、Hkvもこのように処理する。
【0229】
さらに、サーバは(k,v,Gain)に基づいて、対応するクライアントにIL情報を要求することができる。これに対応して、クライアントは分割点情報(k,v,Gain)を受信し、検索して分割点閾値valueを取得し、当該分割点(k,value)情報を記録する。ローカルデータセットを当該分割点に基づいて分割して、ILセットを取得し、(record,IL,value)をサーバに送信する。ここで、recordは、クライアントにおける当該記録のインデックスを表す。
【0230】
さらに、サーバは、クライアントから送信された(record,IL,value)情報を受信し、所在するノード空間のすべての共通IDのインスタンスを分割し、(client id,record)を介して現在のノードとクライアントとを関連付ける。 (client id,record_id,IL,feature_name,feature_value) という情報を記録して、垂直分割の情報、即いずれか1つの特徴の垂直分割値とする。
【0231】
なお、ノード分割は、最適分割点に対応する特徴ととりうる値を選択し、この場合、現在のノードのサンプルを、この特徴のとりうる値に従って、左サブツリー及び右サブツリーノードに分けることができる。
【0232】
S604、各特徴に対応する水平分割値に基づいて、訓練ノードの第1分割値を決定する。
【0233】
本出願の実施例では、選択可能に、先に水平分割を行って、その後に垂直分割を行ってもよい。選択可能に、先に垂直分割を行って、その後に水平分割を行ってもよい。
【0234】
さらに、水平分割方式がすべてのデータを使用するのに対し、垂直分割方式が、IDが同じである部分のデータのみを使用することから分かるように、水平分割方式に対し、利用されるデータがより多くて、よりよい効果を取得する確率がより高く、垂直分割方式に対し、クライアントとサーバとのデータ交換量がより少なく、速度がより早い。したがって、訓練中断時に、できるだけより深層の訓練仮結果を取得するために、先に水平分割を行ってから垂直分割を行うことができる。
【0235】
なお、本出願の実施例では、訓練ノードが予め設定された分割条件を満たす場合は、現在位置する訓練ノードを引き続き分割する必要があることになり、この場合、訓練ノードに対応するターゲット分割方式を取得することができ、訓練ノードが予め設定された分割条件を満たしていない場合、現在位置する訓練ノードを引き続き分割する必要がないことになり、この場合、葉ノードを決定し、葉ノードの重み値をクライアントに送信することができる。
【0236】
1つの可能な実現形態として、
図15に示すように、上記実施例を基に、具体的に以下のステップS1301~S1302を含む。
【0237】
S1301、訓練ノードが予め設定された分割条件を満たしていない場合、訓練ノードが葉ノードであると決定し、葉ノードの重み値を取得する。
【0238】
本出願の実施例では、訓練ノードが予め設定された分割条件を満たしていない場合、サーバは、所在するノードを葉ノードとして、当該葉ノードの重み値wjを計算し、当該wjの値を記憶して、垂直の葉ノードの重み値とする。
【0239】
ここで、葉ノードの重み値Wjは、サンプル予測分数の計算に用いられ、以下の式で計算することができる。
【数6】
ここで、Gjはノードjのすべてのインスタンスに対応するgiの和を示し、Hjはノードjのすべてのインスタンスに対応するhiの和を示す。
【0240】
S1302、葉ノードの重み値をクライアントに送信する。
【0241】
本出願の実施例では、クライアントは、葉ノードの重み値を取得した後、葉ノードの重み値をクライアントに送信し、垂直方式の葉ノード分割を行わないように、つまり、ノード分割の操作を完了するように各クライアントに通知することができる。
【0242】
なお、本出願の実施例では、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知しようとする前に、ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及びターゲット分割値を含む分割情報をクライアントに送信することができる。
【0243】
図16に示すように、上記実施例を基に、ターゲット分割方式が垂直分割方式である場合、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知する前は、具体的に以下のステップS1401~S1404を含むことができる。
【0244】
S1401、ラベル付けされたクライアントに分割情報を送信する。
【0245】
本出願の実施例では、サーバはラベル付けされたクライアントに分割情報を送信することができる。これに対応して、ラベル付けされたクライアントは分割情報を受信し、分割情報に基づいて訓練ノードに対してノード分割を行うことができる。
【0246】
垂直分割方式に対し、選択可能に、サーバは、記録された、(client_id,record_id,IL,feature_name,feature_value)を含む垂直分割情報に基づいて、真のノード分割操作を行うように各クライアントに通知する。ここで、client_idに対応するクライアントはすべての情報を知っており、即ち(client_id,record_id,IL,feature_name,feature_value)を知っているので、他のクライアントはIL情報のみを知ることができればよい。さらに、サーバは現在分割後の左サブツリーノードを現在の処理ノードとする。
【0247】
これに対応して、クライアントは、サーバから送信されたIL又はすべての情報、即ち(client_id,record_id,IL,feature_name,feature_value)を受信して、垂直方式のノード分割操作を行い、(client_id,record_id,IL,feature_name,feature_value)情報が存在する場合、分割時に、クライアントはこれらの情報を記録し且つ記憶する必要がある。さらに、分割完成後に、クライアントは分割後の左サブツリーノードを現在の処理ノードとすることができる。
【0248】
水平分割方式に対して、選択可能に、サーバは水平方式を用いて当該ノード分割を行うことができ、即ち、水平方式で得られた(k,value)情報に基づいて、現在のノードに対して分割操作を行って、IL情報を取得することができ、ILを各クライアントにブロードキャストする。
【0249】
これに対応して、クライアントはサーバの(k,value)情報を受信することができ、共通IDのデータに対してノード分割を行い、分割方式は、共通IDデータの特徴kに対して、値がvalueより小さい場合、当該データのIDをILセット内に投入し、そうでなければIRセット内に投入することである。データに特徴kが存在しない場合、右サブツリー空間に投入する。
【0250】
S1402、ラベル付けされたクライアントから送信された左サブツリー空間セットを受信する。
【0251】
本出願の実施例では、ラベル付けされたクライアントは訓練ノードに対してノード分割を行った後、分割して生成された左サブツリー空間をサーバに送信することができる。これに対応して、サーバは、ラベル付けされたクライアントから送信された左サブツリー空間セットを受信することができる。
【0252】
S1403、左サブツリー空間セットに基づいて、第2訓練セットを分割する。
【0253】
S1404、訓練ノードをラベル付けされたクライアントの識別子に関連付ける。
【0254】
なお、本出願では、現在訓練ノードが予め設定された分割条件を満たすことに応答する前に、初期化を行うことができる。
【0255】
1つの可能な実現形態として、
図17に示すように、上記実施例を基に、具体的に以下のステップS1501~S1502を含む。
【0256】
S1501、クライアントから送信されたデータインスタンス識別子を受信する。
【0257】
本出願の実施例では、クライアントは、自身の各データの一意の識別子IDをサーバに送信することができる。これに対応して、クライアントは、各データの一意の識別子ID、即ちデータインスタンス識別子を受信することができる。
【0258】
S1502、データインスタンス識別子に基づいて、クライアント間の共通のデータインスタンス識別子を決定し、ここで、共通のデータインスタンス識別子が、第1訓練セットと第2訓練セットを決定するようにクライアントに指示する。
【0259】
本出願の実施例では、サーバは各クライアントのすべてのインスタンスIDを収集して、クライアント間の共通IDを取得し、各クライアントに通知することができる。さらに、サーバは、1つのクライアントを検証クライアントとして選択することができ、当該クライアントから、ラベル付けされたデータの一部を検証データセットとして選択し、この部分のデータセットが共通IDのデータセットに存在せず、そして当該クライアントに対応する訓練データセットリストを修正して、検証データセットの情報を初期化する。その後、検証IDリスト、共通IDリストの情報を各クライアントに通知する。これに対応して、クライアントは、サーバから送信された共通IDリストと検証IDリスト(存在する場合)を受信して、グローバルのローカルデータ情報を初期化することができる。
【0260】
さらに、サーバは現在XGBフォレストリストと訓練ラウンドに対して、各ラウンドの訓練の情報初期化を行い、現在のツリーノードと現在のXGBフォレストリストに対して、各ツリーの情報初期化を行い、そして各ラウンドの訓練の情報初期化又は各ツリーの訓練の初期化を行うようにクライアントに通知することができる。
【0261】
さらに、ターゲット連合学習モデルが取得された後に、生成されたターゲット連合学習モデルを検証することができる。
【0262】
選択可能に、サーバは検証セットに基づいて、検証クライアントと連携してターゲット連合学習モデルを検証することができ、検証クライアントは、連合学習モデルの訓練に参加するクライアントのうちの1つであり、検証セットは第1訓練セット及び第2訓練セットとそれぞれ相互に排他的である。
【0263】
1つの可能な実現形態として、サーバは、検証初期化操作を行うようにクライアントに通知することができる。これに対応して、クライアントは検証初期化を行う。
【0264】
さらに、サーバは1つのIDを選択して検証を開始し、XGBツリーを初期化し、検証を開始するようにクライアントに通知することができる。これに対応して、クライアントは検証情報を初期化する。
【0265】
さらに、サーバは現在のツリーに基づいて、分割ノード情報と、検証されるデータIDとを検証クライアントに送信することができる。これに対応して、クライアントはデータIDに基づいて、対応するデータを取得し、そして、サーバから送信された分割ノード情報に基づいて、左サブツリーに分けるか右サブツリーに分けるかを判断し、判断結果をサーバに返すことができる。
【0266】
さらに、サーバはクライアントから返された方向に基づいて、次のノードに入ることができる。その後、葉ノードに到達しているか否かを判断し、葉ノードに到達していない場合、1つのIDを選択して新たに検証を開始し、XGBツリーを初期化し、検証を新たに開始するようにクライアントに通知する。葉ノードに到達した場合、葉ノードの重みを記録し、予測値を計算して記憶することができる。現在予測されているIDがすべての予測IDの最後の1つではない場合、1つのIDを選択して新たに検証を開始し、XGBツリーを初期化し、検証を新たに開始するようにクライアントに通知することができる。現在予測されているIDがすべての予測IDの最後の1つである場合、すべての予測結果をクライアントに送信することができる。これに対応して、クライアントはすべての予測結果を受信し、最終的な検証結果を計算し、前回の検証結果と比較して、現在のモデルを保留し且つ使用する必要があるか否かを判断し、判断結果をサーバに通知することができる。
【0267】
さらに、サーバは、クライアントから返された検証結果に基づいて、現在のモデルを保留し且つ使用するか否かを判断し、判断結果をすべてのクライアントにブロードキャストすることができる。これに対応して、各クライアントはサーバのブロードキャスト情報を受信して処理する。
【0268】
さらに、サーバは、最終的な予測ラウンドに到達しているか否かを判断することができ、最終的な予測ラウンドに到達していない場合、現在のXGBフォレストリスト熱交換訓練ラウンドに対して、各ラウンドの訓練の情報初期化を新たに行うことができ、最終的な予測ラウンドに到達した場合、すべての訓練を終了し、情報を整理し、モデルを保留することができる。これに対応して、クライアントはすべての訓練を終了し、情報を整理し、モデルを保留する。
【0269】
これにより、本出願によって提案される連合学習モデルの訓練方法は、水平分割方式と垂直分割方式を混合することにより、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0270】
図18は本出願の一実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【0271】
図18に示すように、クライアントを実行主体として、本出願の実施例によって提供される連合学習モデルの訓練方法を説明し、具体的に以下のステップS1601~S1602を含む。
【0272】
S1601、訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである。
【0273】
本出願の実施例では、訓練ノードが予め設定された分割条件を満たす場合は、現在位置する訓練ノードを引き継分割する必要があることを表し、この場合、サーバは訓練ノードに対応するターゲット分割方式を取得し、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知することができる。これに対応して、クライアントは、訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信することができる。
【0274】
S1602、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行う。
【0275】
本出願の実施例では、サーバは第1分割値と第2分割値に基づいて、訓練ノードに対応するターゲット分割方式を決定することができる。これに対応して、クライアントは、サーバから送信されたIL又は(client_id,record_id,IL,feature_name,feature_value)情報を受信し、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行うことができる。ここで、(client_id,record_id,IL,feature_name,feature_value)情報が存在する場合、訓練ノードに対してノード分割を行うとき、クライアントはこれらの情報を記録し且つ記憶する必要がある。
【0276】
さらに、分割完成後、クライアントは、分割後の左サブツリーノードを現在の処理ノードとすることができる。
【0277】
これにより、本出願によって提供される連合学習モデルの訓練方法では、クライアントは、複数のブースティングツリーのうちの1つのブースティングツリーのノードである訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行うことにより、水平分割方式と垂直分割方式を混合することで、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0278】
なお、本出願では、クライアントは、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行う前に、サーバと連携して連合学習を行って、対応する分割値を取得することができる。
【0279】
1つの可能な実現形態として、
図19に示すように、上記実施例を基に、具体的にステップS1701~S1703を含む。
【0280】
S1701、第1訓練セットに基づいて水平連合学習を行って、訓練ノードに対応する第1分割値を取得する。
【0281】
なお、本出願では、第1訓練セットに基づいて水平連合学習を行って、訓練ノードに対応する第1分割値を取得しようとする時、訓練ノードに対応する初期データインスタンス識別子セットを取得し、初期データインスタンス識別子セットをサーバに送信することができる。
【0282】
1つの可能な実現形態として、
図20に示すように、上記実施例を基に、具体的に以下のステップS1801~S1804を含む。
【0283】
S1801、サーバによって第1訓練セットから生成された、訓練ノードに利用可能な第1特徴サブセットを受信する。
【0284】
本出願の実施例では、サーバは、第1訓練セットから、現在の訓練ノードに利用可能な第1特徴サブセットをランダムに生成することができ、例えば、現在の第1訓練セットのすべての特徴の半分をランダムに生成して、1つの新しい特徴セットを構成して第1特徴サブセットとし、生成された第1特徴サブセットを各クライアントに送信することができる。これに対応して、各クライアントは第1特徴サブセットを受信することができる。
【0285】
S1802、サーバに第1特徴サブセット内の各特徴の特徴値を送信する。
【0286】
本出願の実施例では、クライアントは、得られた第1特徴サブセットに基づいてトラバースしてセット内の各特徴の特徴値を取得し、そしてローカルデータ、即ちローカルに記憶されている特徴の特徴値に基づいて、当該特徴のすべてのとりうる値のうちの1つをランダムに選択してサーバに送信することができる。これに対応して、サーバは各クライアントから送信された特徴とりうる値情報を受信して、1つのとりうる値リストを構成し、リストから1つをランダムに選択して、現在の特徴のグローバル最適分割閾値とし、この分割閾値を各クライアントにブロードキャストする。
【0287】
S1803、サーバから送信された各特徴の分割閾値を受信する。
【0288】
本出願の実施例では、サーバは、受信された第1特徴サブセット内の各特徴の特徴値に基づいて、各特徴の分割閾値を決定してクライアントに送信することができる。これに対応して、クライアントはサーバから送信された各特徴の分割閾値を受信することができる。
【0289】
S1804、各特徴の分割閾値に基づいて、訓練ノードに対応する初期データインスタンス識別子セットを取得し、初期データインスタンス識別子セットをサーバに送信し、ここで、初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、第1データインスタンス識別子セットと初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含む。
【0290】
本出願の実施例では、各特徴の分割閾値に基づいて、訓練ノードに対応する初期データインスタンス識別子セットを取得しようとする時、いずれか1つの特徴に対して、いずれか1つの特徴の分割閾値をいずれか1つの特徴の特徴値とそれぞれ比較して、特徴値が分割閾値より小さいデータインスタンス識別子を取得して、初期データインスタンス識別子セットを生成することができる。ここで、分割閾値は実際の状況に応じて、訓練を開始する前に設定することができる。
【0291】
1つの可能な実現形態として、クライアントは、受信された特徴分割閾値情報に基づいて、現在特徴に対してノード分割を行って、ILを取得し、サーバに通知することができ、クライアントには対応する特徴が存在しない場合、空のILを返す。
【0292】
ここで、ILは左サブツリー空間内のインスタンスIDセットであり、計算方法は以下のとおりである。サーバから送信された特徴kの閾値valueを受信し、ローカルデータではインスタンスID1に対応する特徴kのとりうる値がvalueより小さい場合、ID1をILセットに追加し、以下の式で表す。
【数7】
ここで、IDkはインスタンスIDの特徴Aのとりうる値を表し、SILはセットILを表す。
【0293】
S1702、第2訓練セットに基づいて垂直連合学習を行って、訓練ノードに対応する第2分割値を取得する。
【0294】
なお、本出願では、第2訓練セットに基づいて垂直連合学習を行って、訓練ノードに対応する第2分割値を取得しようとする前に、少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得し、第3データインスタンス識別子セットの第1勾配情報をサーバに送信することができる。
【0295】
1つの可能な実現形態として、
図21に示すように、上記実施例を基に、具体的に以下のステップを含むことができる。
【0296】
S1901、サーバから送信された勾配情報要求を受信する。
【0297】
本出願の実施例では、サーバは、GkvとHkv情報の取得を要求するようにクライアントに勾配情報要求を送信することができる。これに対応して、クライアントはサーバから送信された勾配情報要求を受信することができる。
【0298】
S1902、勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成する。
【0299】
S1903、第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得し、ここで、第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、第2左サブツリー空間は、特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる第2左サブツリー空間に対応する。
【0300】
1つの可能な実現形態として、
図22に示すように、上記実施例を基に、具体的に以下のステップS2001~S2002を含むことができる。
【0301】
S2001、いずれか1つの特徴に対して、いずれか1つの特徴のすべての特徴値を取得し、特徴値に基づいていずれか1つの特徴をパケット化する。
【0302】
本出願の実施例では、セット内の各特徴k、及び対応する特徴のすべてのとりうる値の各値vに基づいて、各サンプルに対してパケットマッピングを行うことができる。
【0303】
なお、前述したバケットマッピングルールは複数があり、本出願はバケットマッピングルールの具体的な方式を限定せず、特徴値が同じであるサンプル、例えば
図11のとりうる値が1である2つのサンプルが、同じデータパケットに分けられることを確保すればよい。
【0304】
例えば、とりうる値が同じであるサンプルを1つのパケットとすることができ、即ちn個サンプルは、1つの特徴においてm種類のとりうる値がある場合、m個のパケットに分割し、対応する特徴閾値はこのm種類のとりうる値である。
【0305】
また、例えば、パケットの数を限定してもよく、例えば、できるだけm個のパケットを分けるように限定し、この場合、特徴kのとりうる値がm個より少ない場合、前の方式に従って分けることができ、m個より多い場合、近似的等分の方法に従って、m個のパケットに分けることができる。
【0306】
S2002、いずれか1つの特徴の各パケットの第3データインスタンス識別子セットの第1勾配情報を取得する。
【0307】
本出願の実施例では、クライアントはいずれか1つの特徴の各パケットの第3データインスタンス識別子セットの第1勾配情報を取得することができる。これに対応して、サーバはクライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信することができる。
【0308】
S1904、第3データインスタンス識別子セットの第1勾配情報をサーバに送信する。
【0309】
本出願の実施例では、クライアントは共通IDの部分のデータに基づいて、現在のノードの処理されていないデータを取得し、特徴セットをランダムに取得し、セット内の各特徴k、及び対応する特徴のすべてのとりうる値の各値vに基づいて、各サンプルに対してパケットマッピングを行って、左サブツリー空間のGkvとHkvを算出し、準同型暗号化処理を行った後にサーバに送信することができる。
【0310】
S1703、第1分割値と第2分割値をサーバに送信する。
【0311】
本出願の実施例では、クライアントは、第1訓練セットと第2訓練セットに基づいて水平連合学習と垂直連合学習を行って、訓練ノードに対応する第2分割値后を取得した後に、第1分割値と第2分割値をサーバに送信することができる。これに対応して、サーバは第1分割値と第2分割値を受信することができる。
【0312】
なお、本出願では、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行う時、サーバから送信された分割情報に基づいてノード分割を行うことができる。
【0313】
1つの可能な実現形態として、
図23に示すように、上記実施例を基に、具体的に以下のステップS2101~S2102を含む。
【0314】
S2101、サーバから送信された分割情報を受信し、分割情報は、ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、およびターゲット分割値を含む。
【0315】
本出願の実施例では、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知しようとする前に、サーバはターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及びターゲット分割値を含む分割情報をクライアントに送信することができる。これに対応して、クライアントはサーバから送信された分割情報を受信することができる。
【0316】
1つの可能な実現形態として、サーバは水平方式を用いて当該ノード分割を行うことができ、即ち、水平方式で得られた(k,value)情報に基づいて、現在のノードに対して分割操作を行うことができ、そしてIL情報を取得し、ILを各クライアントにブロードキャストすることができる。
【0317】
S2102、分割情報に基づいて訓練ノードに対してノード分割を行う。
【0318】
1つの可能な実現形態として、クライアントは、受信されたサーバの(k,value)情報に基づいて、共通IDのデータに対してノード分割を行うことができ、分割方式は、共通IDデータの特徴kに対して、値がvalueより小さい場合、当該データのIDをILセット内に投入すべきであり、そうでなければIRセット内に投入することである。データに特徴kが存在しない場合、右サブツリー空間内に投入する。
【0319】
さらに、訓練ノードに対してノード分割を行った後に、クライアントは、分割して生成された左サブツリー空間をサーバに送信することができる。これに対応して、サーバは、分割して生成された左サブツリー空間を受信することができる。
【0320】
なお、本出願の実施例では、訓練ノードが予め設定された分割条件を満たす場合は、現在位置する訓練ノードを引き続き分割する必要があることを表し、訓練ノードが予め設定された分割条件を満たしていない場合は、現在位置する訓練ノードを引き続き分割する必要がないことを表し、この場合、クライアントは残差を次のブースティングツリーの残差入力とするとともに、ノードバックトラックを行うことができる。
【0321】
1つの可能な実現形態として、
図24に示すように、上記実施例を基に、具体的に以下のステップS2201~S2203を含む。
【0322】
S2201、訓練ノードが葉ノードである場合、サーバから送信された葉ノードの重み値を受信する。
【0323】
本出願の実施例では、訓練ノードが予め設定された分割条件を満たしていない場合、サーバは、所在するノードを葉ノードとして、当該葉ノードの重み値wjを計算し、当該wjの値を記憶して、垂直の葉ノード重み値とすることができる。これに対応して、クライアントは、サーバから送信された葉ノードの重み値wjを受信することができる。
【0324】
S2202、葉ノードの重み値に基づいて、葉ノードに含まれる各データの残差を決定する。
【0325】
S2203、残差を次のブースティングツリーの残差入力とする。
【0326】
本出願の実施例では、クライアントは[Ij(m),wj]に基づいて、新しいy’(t-1)(i)を計算し、現在のツリーの他の非葉ノードに遡って、現在のノードとすることができる。ここで、y’(t-1)(i)は第i個のインスタンスに対応するLabel(ラベル)残差を表し、tは、現在が第t個のツリーであることを表し、t-1は1つ前のツリーを表す。
【0327】
これにより、本出願によって提供される連合学習モデルの訓練方法では、クライアントは、複数のブースティングツリーのうちの1つのブースティングツリーのノードである訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行うことにより、水平分割方式と垂直分割方式を混合することで、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0328】
なお、本出願の実施例では、連合学習モデルの訓練プロセスは主に、ノード分割、モデル生成及びモデル検証などのいくつかの段階を含む。以下、サーバを実行主体とする場合及び検証クライアントを実行主体とする場合に、連合学習モデルの訓練のノード分割、モデル生成及びモデル検証の段階それぞれを行うことを例として、本出願の実施例に対して提案した連合学習モデルの訓練方法を説明する。
【0329】
サーバを実行主体とする場合、
図25に示すように、本出願の実施例によって提供される連合学習モデルの訓練方法は、具体的に以下のステップS2301~S2304を含む。
【0330】
S2301、訓練ノードが予め設定された分割条件を満たす場合、訓練ノードに対応するターゲット分割方式を取得し、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである。
【0331】
S2302、ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知し、更新された訓練ノードを取得する。
【0332】
S2303、更新された訓練ノードが訓練停止条件を満たすと決定された場合、訓練を停止し、ターゲット連合学習モデルを生成する。
【0333】
なお、ステップS2301~S2303に関連する内容は上記実施例を参照でき、ここで詳しい説明を省略する。
【0334】
S2304、検証セットを取得し、連合学習モデルの訓練に参加するクライアントのうちの1つである検証クライアントと連携して前記ターゲット連合学習モデルを検証する。
【0335】
ここで、検証セットは、通常、訓練セット内の一部のサンプルである。選択可能に、所定の比率に従って、訓練セットからランダムにサンプリングして検証セットとすることができる。本出願の実施例では、検証セットはデータインスタンス識別子を含み、且つ検証セットは第1訓練セット及び第2訓練セットとそれぞれ相互に排他的である。
【0336】
これにより、本出願によって提供される連合学習モデルの訓練方法では、連合学習モデルを生成した後、サーバは検証セットを取得し、検証クライアントと連携してターゲット連合学習モデルを検証することにより、ユーザデータ同型が多い場合、訓練と検証を組み合わせる方法で、連合学習モデルの検証損失を減らし、連合学習モデルの推理効果を向上させ、連合学習モデルの訓練プロセスにおける有効性と信頼性をさらに向上させることができる。
【0337】
なお、本出願の実施例では、更新された訓練ノードは、訓練ノードが分割されて生成された左サブツリーノードと、1つのブースティングツリーの他の非葉ノードとを含む。ここで、更新された訓練が訓練停止条件を満たすことは、更新された訓練ノードがそれ以上予め設定された分割条件を満たさなくなること、又は、更新された訓練ノードが複数のブースティングツリーの最後のノードであることを含む。
【0338】
なお、本出願の実施例では、検証セットを取得して、検証クライアントと連携してターゲット連合学習モデルを検証しようとする時、検証セット内のデータインスタンス識別子がすべて検証されるまで、検証セット内のデータインスタンス識別子を逐一検証することができる。
【0339】
1つの可能な実現形態として、
図26に示すように、上記実施例を基に、上記ステップS2304において検証セットを取得し、検証クライアントと連携してターゲット連合学習モデルを検証するプロセスは、具体的に以下のステップS2401~S2405を含む。
【0340】
S2401、検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を検証クライアントに送信し、検証ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである。
【0341】
本出願の実施例では、サーバはいずれか1つのデータインスタンス識別子を検証クライアントに送信するとともに、検証ノードの分割情報を送信することができる。これに対応して、検証クライアントは当該データインスタンス識別子と検証ノードの分割情報を受信し、データインスタンス識別子に基づいて、対応するデータを取得し、分割情報に基づいて、検証ノードに対応するノード進行方向を判断し、即ちノード進行方向が左サブツリーへのものか、右サブツリーへのものかを判断することができる。
【0342】
ここで、分割情報は、分割用の特徴及び分割閾値を含む。
【0343】
S2402、検証クライアントから送信された検証ノードに対応するノード進行方向を受信し、ここで、ノード進行方向は、検証クライアントによってデータインスタンス識別子と分割情報に基づいて決定される。
【0344】
本出願の実施例では、検証クライアントは、検証ノードに対応するノード進行方向を決定した後、ノード進行方向をサーバに送信することができる。これに対応して、サーバは、検証クライアントから送信された検証ノードに対応するノード進行方向を受信することができる。
【0345】
S2403、ノード進行方向に基づいて次のノードに入って、次のノードを更新された検証ノードとする。
【0346】
本出願の実施例では、サーバは、検証クライアントから返されたノード進行方向に基づいて、次のノードに入って、次のノードを更新された検証ノードとすることができる。さらに、サーバは、更新された検証ノードが予め設定されたノード分割条件を満たすか否かを判断することができ、更新された検証ノードが予め設定されたノード分割条件を満たす場合は、葉ノードに到達していないことを表すので、ステップS2404を実行することができ、更新された検証ノードが予め設定されたノード分割条件を満たしていない場合、葉ノードに到達したことを表すので、ステップS2405を実行することができる。
【0347】
S2404、更新された検証ノードが予め設定されたノード分割条件を満たす場合、検証セット内のデータインスタンス識別子がすべて検証されるまで、検証クライアントにデータインスタンス識別子と分割情報を送信することに戻る。
【0348】
S2405、更新された検証ノードが予め設定されたノード分割条件を満たしていない場合、更新された検証ノードが葉ノードであると決定し、データインスタンス識別子によって表されるデータインスタンスのモデル予測値を取得する。
【0349】
本出願の実施例では、サーバは、更新された検証ノードが葉ノードであると決定した後、葉ノードの重み値を記録し、データインスタンス識別子によって表されるデータインスタンスのモデル予測値を計算して記憶することができる。
【0350】
ここで、データインスタンス識別子によって表されるデータインスタンスのモデル予測値は、各サンプルの予測値を指す。検証を行う時、各サンプルは各ツリーにおいてあるリーフノードに到達した際に、当該リーフのLeaf Score(葉ノード得点)は、即ちこのツリーにおけるサンプルの得点であり、そして、1つのサンプルのすべてのツリーにおける得点の和は予測値である。
【0351】
さらに、上記ステップS2404を完成させた後に、ターゲット連合学習モデルを保留し且つ使用するか否かを決定することができる。
【0352】
1つの可能な実現形態として、
図27に示すように、上記実施例を基に、上記ステップS2404の後は、具体的に以下のステップS2501~S2503を含む。
【0353】
S2501、検証セット内のデータインスタンス識別子がすべて検証された場合、データインスタンスのモデル予測値を検証クライアントに送信する。
【0354】
本出願の実施例では、検証セット内のデータインスタンス識別子がすべて検証された場合、即ち、現在予測されているデータインスタンス識別子がすべての予測データインスタンス識別子のうちの最後の1つである場合、データインスタンスのモデル予測値を検証クライアントに送信することができる。これに対応して、検証クライアントはすべての予測結果を受信して、最終的な検証結果を計算し、そして前回の検証結果と比較して、現在のターゲット連合学習モデルを保留し且つ使用する必要があるか否かを判断し、判断結果に基づいて検証指示情報を生成することができる。
【0355】
なお、クライアントは検証指示情報を生成しようとする時、検証セット内のすべてのサンプルに対して、計算して予測値を取得することができる。検証クライアントには真のLabel値があるため、この場合、クライアントは予測値とLable値に基づいて、両者の間の関連差異指標を計算し、例えばAaccuracy(正確さ、精度とも呼ばれる)、RMSE(Root Mean Squared Error、二乗平均平方根誤差)などの指標を計算し、前述した指標により現在のEpoch内のモデルの性能を決定することができる。
【0356】
ここで、現在のEpochは、現在の世代の訓練とも呼ばれ、すべての訓練サンプルがニューラルネットワークにおいて一回の順方向伝播と一回の逆方向伝播を行ったプロセスを指し、つまり、1つのEpochは、すべての訓練サンプルを一回訓練するプロセスである。これにより、取得された関連差異指標が1つ前のEpochの指標より優れる場合、現在得られたモデルを保留することができ、取得された関連差異指標が1つ前のEpochの指標より劣る場合、現在得られたモデルを破棄することができる。
【0357】
S2502、検証クライアントから送信された検証指示情報を受信し、ここで、検証指示情報は、モデル予測値に基づいて取得された、モデルを保留するか否かを指示するための指示情報である。
【0358】
本出願の実施例では、検証クライアントは、検証指示情報をサーバに送信することができる。これに対応して、サーバは、検証クライアントから送信された検証指示情報を受信することができる。
【0359】
S2503、検証指示情報に基づいて、ターゲット連合学習モデルを保留し且つ使用するか否かを決定し、決定結果をクライアントに送信する。
【0360】
本出願の実施例では、サーバは検証指示情報に基づいて、ターゲット連合学習モデルを保留し且つ使用するか否かを決定し、決定結果をすべてのクライアントに送信することができる。
【0361】
検証クライアントを実行主体とする場合、
図28に示すように、本出願の実施例によって提供される連合学習モデルの訓練方法は、具体的に以下のステップS2601~S2603を含む。
【0362】
S2601、訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである。
【0363】
S2602、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行う。
【0364】
なお、ステップS2601~S2602に関連する内容は上記実施例を参照でき、ここで詳しい説明を省略する。
【0365】
S2603、サーバから送信された検証セットを受信し、検証セットに基づいて、ターゲット連合学習モデルを検証する。
【0366】
本出願の実施例では、サーバは検証セットを取得して検証クライアントに送信することができる。これに対応して、検証クライアントは、サーバから送信されたれた検証セットを受信し、検証セットに基づいてターゲット連合学習モデルを検証することができる。
【0367】
ここで、サーバから送信された検証セットを受信し、検証セットに基づいて、ターゲット連合学習モデルを検証する。
【0368】
これにより、本出願によって提供される連合学習モデルの訓練方法は、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行った後に、検証クライアントは、サーバから送信された検証セットを受信して、検証セットに基づいて、ターゲット連合学習モデルを検証することにより、ユーザデータ同型が多い場合、訓練と検証を組み合わせる方式を用いることで、連合学習モデルの検証損失を減らし、連合学習モデルの推理効果を向上させ、連合学習モデルの訓練プロセスにおける有効性と信頼性をさらに向上させる。
【0369】
なお、本出願の実施例では、検証クライアントが検証セットに基づいてターゲット連合学習モデルを検証しようとする時、検証セット内のデータインスタンス識別子がすべて検証されるまで、検証セット内のデータインスタンス識別子を逐一検証することができる。
【0370】
1つの可能な実現形態として、
図29に示すように、上記実施例を基に、上記ステップS2603において検証セットに基づいてターゲット連合学習モデルを検証するプロセスは、具体的に以下のステップS2701~S2703を含むことができる。
【0371】
S2701、サーバから送信された検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を受信し、ここで、検証ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードである。
【0372】
本出願の実施例では、サーバはいずれか1つのデータインスタンス識別子を検証クライアントに送信するとともに、検証ノードの分割情報を送信することができる。これに対応して、検証クライアントは当該データインスタンス識別子と検証ノードの分割情報を受信することができる。
【0373】
ここで、分割情報は、分割用の特徴及び分割閾値を含む。
【0374】
S2702、データインスタンス識別子と分割情報に基づいて、検証ノードのノード進行方向を決定する。
【0375】
本出願の実施例では、検証クライアントはデータインスタンス識別子に基づいて、対応するデータを取得し、分割情報に基づいて、検証ノードに対応するノード進行方向を判断し、即ちノード進行方向が左サブツリーへのものか右サブツリーへのものかを判断する。
【0376】
1つの可能な実現形態として、
図30に示すように、上記ステップS2702においてデータインスタンス識別子と分割情報に基づいて、検証ノードのノード進行方向を決定するプロセスは、具体的に以下のステップS2801~S2802を含む。
【0377】
S2801、データインスタンス識別子に基づいて、データインスタンス識別子に対応する各特徴の特徴値を決定する。
【0378】
なお、ステップS2801に関連する内容は上記実施例を参照でき、ここで詳しい説明を省略する。
【0379】
S2802、分割情報と各特徴の特徴値に基づいて、ノード進行方向を決定する。
【0380】
本出願の実施例では、検証クライアントは、分割情報に基づいて分割用の特徴を決定し、当該特徴の特徴値と分割閾値に基づいてノード進行方向を決定することができる。
【0381】
S2703、サーバがノード進行方向に基づいて次のノードに入って、次のノードを更新された検証ノードとするように、サーバにノード進行方向を送信する。
【0382】
本出願の実施例では、検証クライアントは、検証ノードに対応するノード進行方向を決定した後、ノード進行方向をサーバに送信することができる。これに対応して、サーバは検証クライアントから送信された検証ノードに対応するノード進行方向を受信することができる。
【0383】
さらに、上記ステップS2703を完成させた後、ターゲット連合学習モデルを保留し且つ使用するか否かを決定することができる。
【0384】
1つの可能な実現形態として、
図27に示すように、上記実施例を基に、上記ステップS2703の後は、具体的に以下のステップS2901~S2903を含む。
【0385】
S2901、検証セット内のデータインスタンス識別子がすべて検証された場合、サーバから送信されたデータインスタンス識別子によって表されるデータインスタンスのモデル予測値を受信する。
【0386】
本出願の実施例では、検証セット内のデータインスタンス識別子がすべて検証された場合、つまり、現在予測されているデータインスタンス識別子がすべての予測データインスタンス識別子のうちの最後の1つである場合、データインスタンスのモデル予測値を検証クライアントに送信することができる。これに対応して、検証クライアントはすべての予測結果を受信し、最終的な検証結果を計算し、そして前回の検証結果と比較して、現在のターゲット連合学習モデルを保留し且つ使用する必要があるか否かを判断し、判断結果に基づいて検証指示情報を生成することができる。
【0387】
なお、検証クライアントは検証指示情報を生成しようとする時、検証セット内のすべてのサンプルに対して、計算して予測値を取得することができる。検証クライアントには真のLabel値があるため、この場合、クライアントは予測値とLable値に基づいて、両者の間の関連差異指標を計算し、例えばAaccuracy(正確さ、精度とも呼ばれる)、RMSE(Root Mean Squared Error、二乗平均平方根誤差)などの指標を計算し、前述した指標により現在のEpoch内のモデルの性能を決定することができる。
【0388】
ここで、現在のEpochは、現在の世代の訓練とも呼ばれ、すべての訓練サンプルがニューラルネットワークにおいて一回の順方向伝播と一回の逆方向伝播を行ったプロセスを指し、つまり、1つのEpochは、すべての訓練サンプルを一回訓練するプロセスである。これにより、取得された関連差異指標が1つ前のEpochの指標より優れる場合、現在得られたモデルを保留することができ、取得された関連差異指標が1つ前のEpochの指標より劣る場合、現在得られたモデルを破棄することができる。
【0389】
S2902、モデル予測値に基づいて最終的な検証結果を取得し、検証結果と前の検証結果とを比較して、ターゲット連合学習モデルを保留し且つ使用するか否かを指示するための検証指示情報を生成する。
【0390】
本出願の実施例では、検証クライアントは検証指示情報をサーバに送信することができる。これに対応して、サーバは、検証クライアントから送信された検証指示情報を受信することができる。
【0391】
S2903、サーバに検証指示情報を送信する。
【0392】
本出願の実施例では、サーバは検証クライアントから送信された検証指示情報に基づいて、ターゲット連合学習モデルを保留し且つ使用するか否かを決定し、決定結果をすべてのクライアントに送信することができる。
【0393】
図32は本出願の一実施例によって開示される連合学習モデルの訓練方法の概略フローチャートである。
【0394】
図32に示すように、XGBを例とすると、サーバとクライアント(検証クライアントを含む)が連合学習モデルの訓練を行う全プロセスを例として、本出願の実施例によって提供される連合学習モデルの訓練方法を説明し、具体的に以下のステップS3001~S3006を含む。
【0395】
S3001、サーバとクライアントがそれぞれ初期化処理を行う。
【0396】
選択可能に、クライアントはデータ識別子をサーバに送信する。具体的に、クライアントは自身の各データのデータ識別子をサーバに送信する。ここで、データ識別子は各データを一意的に区別するものである。これに対応して、サーバは各クライアントから送信されたデータ識別子を受信する。
【0397】
さらに、サーバは、それが受信したデータ識別子に基づいて、クライアント間の共通データ識別子を決定する。共通データ識別子は、サーバが各クライアントによってレポートされたデータ識別子に基づいて決定した、異なるクライアントが有する同じデータ識別子である。
【0398】
さらに、サーバは共通データ識別子をクライアントに送信する。
【0399】
さらに、クライアントは共通データ識別子とローカルデータに基づいて、損失公式の導関数を取得して、準同型暗号化処理を行う。具体的に、クライアントは共通データ識別子とローカルデータに基づいて、損失関数のいくつかの中間結果を計算し、例えば損失関数の一次導関数giと二次導関数hiを計算する。ここで、giとhiの計算式は以下のとおりである。
【数8】
【0400】
ここで、yiはサンプルiの予測結果であり、各符号の意味は関連技術を参照する。
【0401】
【0402】
XGBで提供された、二次テイラー展開式を用いて上記式を近似的に表すことを提案する。テイラー展開式の二次形式は以下のとおりである。
【数10】
【0403】
さらに、クライアントは暗号化後の導関数をサーバに送信する。これに対応して、サーバはクライアントから送信された、暗号化後の導関数を受信する。
【0404】
さらに、サーバは、受信された暗号化後の導関数に対して復号処理を行い、復号後の導関数に対して平均値を求める処理を行って、平均値を取得する。同じ共通データ識別子に対して、各クライアントに対応する導関数に基づいて累積して平均値を求める。例えば、計算方式は上記のように、共通データ識別子に対応する一次導関数giと二次導関数hiをそれぞれ累積してから平均値を求める。具体的に以下のとおりである。
【数11】
【0405】
ここで、nは、有する共通データIDの数を表し、gi(j)はデータjの一次導関数giを表し、hi(j)はデータjの二次導関数hiを表す。
【0406】
さらに、サーバは平均値をクライアントに送信する。例示的に、サーバはリストの形で、平均値をクライアントに送信する。1つの実現では、一次導関数giと二次導関数hiは共通で1つのリストに存在することができ、もう1つの実現では、一次導関数giと二次導関数hiはそれぞれ異なるリストに存在し、例えば、一次導関数giはリストAに存在し、二次導関数hiはリストBに存在する。これに対応して、クライアントはサーバから送信された平均値を受信する。
【0407】
さらに、クライアントはローカルに記憶されている平均値を更新する。
【0408】
S3002、サーバとクライアントが水平XGB処理を開始する。
【0409】
選択可能に、サーバは現在位置するツリーノードを引き続き分割する必要があるか否かを判断する。例えば、サーバは、現在位置するツリーノードの所在するレベルが最大のツリー深度に到達しているか否かに基づいて、ツリーノードを引き続き分割する必要があるか否かを判断し、ツリーノードを引き続き分割する必要がなければ、サーバは、所在するノードを葉ノードとして、当該葉ノードの重み値wjを計算し、当該wj値を記憶して、水平XGBの葉ノードの重み値とし、ツリーノードを引き続き分割する必要がある場合、サーバはすべての特徴のセットから、現在のノードに利用可能な特徴セットをランダムに生成し、この特徴セットを各クライアントに送信する。
【0410】
さらに、サーバはすべての特徴のセットから、現在のノードに利用可能な特徴セットをランダムに生成し、この特徴セットを各クライアントに送信する。
【0411】
さらに、クライアントは、得られた特徴セットに基づいて、特徴セット内の各特徴をトラバースし、ローカルデータに基づいて、当該特徴のすべてのとりうる値のうちの1つをランダムに選択してサーバに送信する。
【0412】
さらに、サーバは、各クライアントから送信された特徴とりうる値情報を受信して、1つのとりうる値リストを構成し、とりうる値リストから1つをランダムに選択して、現在の特徴のグローバル最適分割閾値とし、このグローバル最適分割閾値を各クライアントにブロードキャストする。
【0413】
さらに、クライアントは、受信されたグローバル最適分割閾値に基づいて、現在の特徴に対してノード分割を行って、ILを取得してサーバに通知し、対応する特徴がクライアントに存在しなければ、空のILを返す。
【0414】
ここで、ILは左サブツリー空間内のインスタンスIDセットであり、計算式は以下のとおりである。クライアントはサーバから送信された特徴kのグローバル最適分割閾値valueを受信し、ローカルデータでは、インスタンスID1に対応する特徴kのとりうる値がグローバル最適分割閾値valueより小さい場合、ID1をILセットに追加する。以下の式で表す。
【数12】
【0415】
ここで、IDkはインスタンスIDの特徴kのとりうる値を表し、SILはセットILを表す。
【0416】
さらに、サーバは現在の特徴に対して、各クライアントから送信されたILを受信し、各ILから重複するインスタンスIDをフィルタリングし、矛盾するID情報を処理する。一部のクライアントに対して、インスタンスIDをILに追加するが、一部のクライアントにIDが存在していても追加しておらず、この時、このIDがILに存在すべきであると見なし、最終的なILとIRを決定する。あるクライアントのデータに現在の特徴が存在しなければ、このクライアントのデータインスタンスIDをIRに投入する。その後、GL、GRとHL、HRを計算し、そして現在の特徴の分割値Gainを計算して取得する。
【数13】
【0417】
ここで、GLは左サブツリー空間内のすべての一次導関数giの和であり、GRは右サブツリー空間内のすべての一次導関数giの和であり、HLは左サブツリー空間のすべての二次導関数hiの和であり、HRは右サブツリー空間のすべての二次導関数hiの和である。計算式は以下のとおりである。
【数14】
【0418】
ここで、n1は左サブツリー空間内のインスタンスの数を表し、n2は右サブツリー空間内のインスタンスの数を表す。
【0419】
サーバはクライアントと連携して、ランダムに選択された特徴セット内の各特徴をトラバース処理し、各特徴を、分割ノードによって計算された分割値とし、分割値が最も大きい特徴を、現在のノードの最適効果特徴とすることができる。これとともに、サーバも分割ノードに対応する閾値情報を知っており、分割閾値、分割値Gain、及び選択された特徴などの情報を水平XGBの現在のノードの最適分割の情報とする。
【0420】
さらに、サーバは水平方式のノード分割後の整理操作を行い、サーバは、水平方式のノード分割操作をそれ以上行わないように、即ち水平方式のノード分割操作を完成するように各クライアントに通知する。
【0421】
さらに、サーバは、所在するノードを葉ノードとして、当該葉ノードの重み値wjを計算し、当該wjの値を記憶して水平XGBの葉ノードの重み値とする。
【0422】
ここで、
【数15】
であり、Gmはノードmのすべてのインスタンスに対応するgiの和を表し、Hmはノードmのすべてのインスタンスに対応するhiの和を表す。
【0423】
さらに、サーバは、水平方式のノード分割操作をそれ以上行わないように、即ち水平方式のノード分割操作を完成するように各クライアントに通知する。
【0424】
さらに、クライアントは、水平ノード分割を完成した後の処理を行う。
【0425】
S3003、サーバとクライアントが垂直XGB処理を開始する。
【0426】
選択可能に、サーバは、垂直XGBの処理を行うようにクライアントに通知する。
【0427】
さらに、サーバは、GkvとHkv情報の取得を各クライアントに要求する。
【0428】
さらに、クライアントは、共通データ識別子の部分のデータに基づいて、現在のノードの処理されていないデータを取得し、特徴セットをランダムに取得し、セット内の各特徴k、及び対応する特徴のすべてのとりうる値vに基づいて、各サンプルに対してパケットマッピングを行って、左サブツリー空間のGkvとHkvを計算し、準同型暗号化処理を行った後にサーバに送信する。選択可能に、データセット内の特徴kのとりうる値を並べ替えた後に、パケットに投入する操作を行うことができ、{sk,1,sk,2,sk,3,…,sk,v-1}というパケットに分けられ、GkvとHkvの計算式は以下のとおりである。
【数16】
【0429】
ここで、xi,kはデータxiの特徴kの値を表す。
【0430】
さらに、サーバは各クライアントから送信された[[Gkv]]と[[Hkv]]を復号化し、現在のノードの共通データ識別子の部分のデータ、及びその前に得られたすべてのgiとhiに基づいて、現在のノードのGとHを計算することができる。選択可能に、一部のクライアントが同じ特徴を有する場合、サーバは、受信されたGkvから1つをランダムに選択して現在特徴のGkvとし、Hkvについても同様に処理する。さらに、G、HとGkv、Hkvに基づいて各特徴の最適分割点を計算し、前述分割点情報に基づいて、グローバル最適分割点(k,v,Gain)を決定することができる。
【0431】
本出願の実施例では、受信された情報と予め設定された閾値とを比較することができ、Gainが閾値以下である場合、垂直方式のノード分割を行わず、ステップS3027を実行することができ、Gainが閾値より大きい場合、ステップS3023を実行することができる。
【0432】
さらに、サーバは(k,v,Gain)に基づいて、対応するクライアントにILを要求する。
【0433】
さらに、クライアントCは分割点情報(k,v,Gain)を受信し、検索して分割点閾値valueを取得し、当該分割点(k,value)情報を記録する。ローカルデータセットは当該分割点に基づいて分割して、ILを取得し、(record,IL,value)をサーバに送信する。ここで、recordはクライアントにおける当該記録のインデックスを表し、ILの計算方式は前述したとおりである。
【0434】
さらに、サーバは、クライアントCから送信された(record,IL,value)情報を受信し、所在するノード空間のすべての共通IDのインスタンスを分割し、(client id,record)により現在のノードとクライアントCに関連付ける。本出願の実施例では、サーバは(client id,record_id,IL,feature_name,feature_value)を垂直分割の情報として記録し、ステップS3027を実行することができる。
【0435】
さらに、サーバは所在するノードを葉ノードとして、当該葉ノードの重み値wjを計算し、当該wjを記憶して垂直の葉ノードの重み値とする。
【0436】
さらに、サーバは、垂直方式の葉ノード分割をそれ以上行わないように、即ちノード分割の操作を完成するように各クライアントに通知する。
【0437】
さらに、各クライアントは、垂直ノード分割を完成した後の処理を行う。
【0438】
S3004、サーバとクライアントが水平XGBと垂直XGBの混合処理を開始する。
【0439】
選択可能に、サーバは、現在のノードを分割する必要があるか否かを判断する。本出願の実施例では、現在のノードを分割する必要がない場合、サーバは所在するノードを葉ノードとして、当該葉ノードの重み値wjを計算し、情報[Ij(m),wj]をすべてのクライアントに送信し、現在のノードを分割する必要がある場合、サーバは、水平XGBで得られたGain、及び垂直XGBで得られたGainに基づいて、Gainに基づいてターゲットGainを決定し、これによってノード分割方式を決定してノード分割を行う。
【0440】
さらに、サーバは、水平XGBで得られたGain、及び垂直XGBで得られたGainに基づいて、Gainに基づいてターゲットGainを決定し、これによってノード分割方式を決定してノード分割を行う。本出願の実施例では、水平XGB方式である場合、サーバは水平方式を用いて当該ノード分割を行い、即ち、上記水平方式で得られた(k,value)情報に基づいて、現在のノードに対して分割操作を行って、IL情報を取得し、ILを各クライアントにブロードキャストすることができ、垂直XGB方式である場合、クライアントはサーバによって記録された垂直分割の(client_id,record_id,IL,feature_name,feature_value)に基づいて、真のノード分割操作を行うように各クライアントに通知する。
【0441】
さらに、クライアントは、サーバによって記録された垂直分割の(client_id,record_id,IL,feature_name,feature_value)に基づいて、真のノード分割操作を行うように各クライアントに通知する。ここで、client_idに対応するクライアントは(client_id,record_id,IL,feature_name,feature_value)のすべての情報を知らなければならず、他のクライアントはIL情報だけを知れればよい。
【0442】
サーバは現在の分割後の左サブツリーノードを現在の処理ノードとする。
【0443】
さらに、クライアントは、サーバから送信されたIL又は(client_id,record_id,IL,feature_name,feature_value)を受信し、垂直方式のノード分割操作を行う。(client_id,record_id,IL,feature_name,feature_value)情報が存在する場合、分割時に、クライアントはこれらの情報を記録し且つ記憶する必要がある。本出願の実施例では、分割完了後に、分割後の左サブツリーノードを現在の処理ノードとする。
【0444】
さらに、サーバはステップS3002に戻って後続の処理を行い、且つクライアントはステップS3002に戻ってサーバからのメッセージを待つ。なお、この際に現在のノードの分割が完成しているので、次の層の左サブツリー、右サブツリーノードの分割を行う必要がある。そのため、ステップS3002に戻って、次のノードのノード分割を行う。
【0445】
さらに、サーバは水平方式を用いて当該ノード分割を行い、即ち上記水平方式で得られた(k,value)情報に基づいて、現在のノードに対して分割操作を行い、IL情報を取得し、ILを各クライアントにブロードキャストする。ここで、ILは以下の式で表すことができる。
【数17】
【0446】
ここで、IDkはインスタンスIDの特徴kのとりうる値を表し、SILはセットILを表す。
【0447】
さらに、クライアントは、サーバによってブロードキャストされたILを受信し、ILに基づいてローカル非共通IDのデータと組み合わせて、現在のノードのILとIRを決定してから、ノード分割操作を行うことができる。なお、ILとIRを決定することは、ローカル非共通IDデータのIDを決定することに相当し、サーバから送信されたILセットに存在しなければ、IRセットに存在することになる。
【0448】
さらに、サーバは、水平方式を用いてノード分割を行う場合、選択された特徴kと閾値valueに基づいて、(k,value)をクライアントにブロードキャストする。
【0449】
さらに、各クライアントはサーバの(k,value)情報を受信し、共通IDのデータに対してノード分割を行い、分割方式は共通IDデータの特徴kに対するものである。ここで、値がvalueより小さい場合、当該データのIDをILセット内に投入すべきであり、そうでなければIRセット内に投入する。データに特徴kが存在しない場合、右サブツリー空間内に投入する。
【0450】
さらに、サーバはステップS3002に戻って次のノードの分割操作を行い、且つクライアントはステップS3002に戻って、サーバからのメッセージを待つ。
【0451】
さらに、サーバは、所在するノードを葉ノードとして、当該葉ノードの重み値wjを計算し、情報[Ij(m),wj]をすべてのクライアントに送信する。ここで、Ij(m)は現在のノード空間のインスタンスIDセットであり、wjは現在のノードの重みである。
【0452】
さらに、クライアントは[Ij(m),wj]に基づいて新たしいy`(t-1)(i)を計算し、現在のツリーの他の非葉ノードに遡って、現在のノードとする。ここで、y`(t-1)(i)は第i個のインスタンスに対応するLabel残差を表し、tは現在が第tのツリーであることを表し、t-1は1つ前のツリーを表す。
【0453】
さらに、サーバは現在のツリーの他の非葉ノードに遡って、現在のノードとする。
【0454】
さらに、遡った後の現在のノードが存在し且つ空ではない場合、ステップS3002に戻って次の処理を行い、クライアントはステップS3002に戻って、サーバからのメッセージを待つ。
【0455】
さらに、現在のノードが空である場合、モデルの検証操作を行う。
【0456】
S3005、サーバと検証クライアントがターゲット連合学習モデルの検証を行う。
【0457】
選択可能に、サーバは、検証初期化操作を行うように検証クライアントに通知する。
【0458】
さらに、検証クライアントは検証初期化を行う。
【0459】
さらに、サーバは1つのIDを選択して検証を開始する。XGBツリーを初期化し、検証を開始するように検証クライアントに通知する。
【0460】
さらに、検証クライアントは検証情報を初期化する。
【0461】
さらに、サーバは現在のXGBツリーに基づいて、分割ノード情報と検証されるデータIDを検証クライアントに送信する。
【0462】
さらに、検証クライアントはデータIDに基づいて、対応するデータを取得し、その後、サーバから送信された分割ノード情報に基づいて、左サブツリーに分けるか右サブツリーに分けるかを判断し、サーバに返す。
【0463】
さらに、サーバは検証クライアントから返された方向に基づいて、次のノードに入る。その後、葉ノードに到達しているか否かを判断し、到達している場合、サーバは葉ノードの重みを記録し、予測値を計算して記憶し、逆の場合、サーバは1つのIDを選択して検証を開始する。XGBツリーを初期化し、検証を開始するように検証クライアントに通知する。
【0464】
さらに、サーバは葉ノードの重みを記録し、予測値を計算して記憶する。現在予測されるIDがすべての予測IDの最後の1つである場合、サーバはすべての予測結果をクライアントに送信し、逆の場合、サーバは1つのIDを選択して検証を開始する。XGBツリーを初期化し、検証を開始するように検証クライアントに通知する。
【0465】
さらに、サーバはすべての予測結果をクライアントに送信する。
【0466】
さらに、検証クライアントはすべての予測結果を受信し、最終的な検証結果を計算し、前回の検証結果と比較して、現在のモデルを保留し且つ使用する必要があるか否かを判断し、サーバに通知する。
【0467】
さらに、サーバは検証クライアントから返された検証結果に基づいて、現在のモデルを保留し且つ使用するか否かを判断し、すべてのクライアントに通知する。
【0468】
さらに、各クライアントはサーバのブロードキャスト情報を受信して処理する。
【0469】
さらに、サーバは最終的な予測ラウンドに到達しているか否かを判断し、到達している場合、ステップS3006を実行する。
【0470】
S3006、サーバとクライアントがそれぞれ訓練を終了し、ターゲット連合学習モデルを保留する。
【0471】
選択可能に、サーバはすべての訓練を終了し、情報を整理し、モデルを保留する。
【0472】
さらに、クライアントはすべての訓練を終了し、情報を整理し、モデルを保留する。
【0473】
以上により、本出願の実施例に係る連合学習モデルの訓練方法は、水平分割方式と垂直分割方式を混合することで、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0474】
同じ出願構想に基づいて、本出願の実施例は連合学習モデルの訓練方法に対応する装置をさらに提供する。
【0475】
図33は本出願の実施例によって提供される連合学習モデルの訓練装置の概略構造図である。
【0476】
図33に示すように、サーバに適用される当該連合学習モデルの訓練装置1000は、取得モジュール110、通知モジュール120、第1訓練モジュール130、第2訓練モジュール140、及び生成モジュール150を備える。
【0477】
ここで、取得モジュール110は、複数のブースティングツリーのうちの1つのブースティングツリーのノードである訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得し、通知モジュール120は、前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知し、第1訓練モジュール130は、更新された前記訓練ノードが前記予め設定された分割条件を満たさなくなるまで、前記訓練ノードが分割されて生成された左サブツリーノードを新たに前記訓練ノードとして次のラウンドの訓練を行い、第2訓練モジュール140は、前記1つのブースティングツリーの他の非葉ノードを新たに前記訓練ノードとして次のラウンドの訓練を行い、生成モジュール150は、前記複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成する。
【0478】
本出願の一実施例によると、
図34に示すように、
図33における取得モジュール110は、第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュール111と、第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュール112と、前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するための決定サブモジュール113と、を備える。
【0479】
本出願の一実施例によると、
図35に示すように、
図34における決定サブモジュール113は、前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するための第1決定ユニット1131と、前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するための第2決定ユニット1132と、を備える。
【0480】
本出願の一実施例によると、
図36に示すように、
図33における第1学習サブモジュール111は、前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するための生成ユニット1111と、前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するための第1受信ユニット1112と、前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するための第3決定ユニット1113と、前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するための第4決定ユニット1114と、を備える。
【0481】
本出願の一実施例によると、
図37に示すように、
図36における第3決定ユニット1113は、前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するための第1決定サブユニット11131と、前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するための第1取得サブユニット11132であって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含む第1取得サブユニット11132と、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するための第2決定サブユニット11133と、を備える。
【0482】
本出願の一実施例によると、第1取得サブユニット11132は、さらに、前記クライアントに前記分割閾値を送信し、前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信し、ここで、前記初期データインスタンス識別子セットは、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含み、前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得する。
【0483】
本出願の一実施例によると、第1取得サブユニット11132は、さらに、前記初期データインスタンス識別子セット内の各データインスタンス識別子と、前記クライアントのデータインスタンス識別子とを比較して、異常が存在するデータインスタンス識別子を取得し、前記異常が存在するデータインスタンス識別子を前処理して、前記第1データインスタンス識別子セットを取得し、すべてのデータインスタンス識別子と前記第1データインスタンス識別子セットとに基づいて、前記第2データインスタンス識別子セットを取得する。
【0484】
本出願の一実施例によると、
図38に示すように、
図34における第2学習サブモジュール112は、前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するための通知ユニット1121と、前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するための第2受信ユニット1122であって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2受信ユニット1122と、各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するための第5決定ユニット1123と、各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するための第6決定ユニット1124と、を備える。
【0485】
本出願の一実施例によると、
図39に示すように、
図38における第5決定ユニット1123は、いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するための第2取得サブユニット11231と、各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するための第3取得サブユニット11232と、前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するための選択サブユニット11233と、を備える。
【0486】
本出願の一実施例によると、前記第1勾配情報は、前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2左サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含み、前記第2勾配情報は、前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の一次勾配の和、及び前記第2右サブツリー空間に属するデータインスタンスに対応する特徴の二次勾配の和を含む。
【0487】
本出願の一実施例によると、
図40に示すように、当該連合モデル的訓練装置1000は、前記訓練ノードが予め設定された分割条件を満たしていない場合、前記訓練ノードが葉ノードであると決定し、前記葉ノードの重み値を取得するための決定モジュール160と、前記葉ノードの重み値を前記クライアントに送信するための送信モジュール170と、をさらに備える。
【0488】
本出願の一実施例によると、
図41に示すように、
図40における決定モジュール160は、前記葉ノードに属するデータインスタンスを取得するための第1取得サブモジュール161と、前記葉ノードに属する前記データインスタンスの一次勾配情報及び二次勾配情報を取得し、前記一次勾配情報及び前記二次勾配情報に基づいて前記葉ノードの重み値を取得するための第2取得サブモジュール162と、を備える。
【0489】
本出願の一実施例によると、
図35に示すように、
図34における決定サブモジュール113は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及び前記ターゲット分割値を含む分割情報を前記クライアントに送信するための送信ユニット1133をさらに備える。
【0490】
本出願の一実施例によると、送信ユニット1133はさらに、ラベル付けされたクライアントに前記分割情報を送信し、前記ラベル付けされたクライアントから送信された左サブツリー空間セットを受信し、前記左サブツリー空間セットに基づいて、前記第2訓練セットを分割し、前記訓練ノードを前記ラベル付けされたクライアントの識別子に関連付ける。
【0491】
本出願の一実施例によると、取得モジュール110はさらに、前記クライアントから送信されたデータインスタンス識別子を受信し、前記データインスタンス識別子に基づいて、クライアント間の共通のデータインスタンス識別子を決定し、ここで、前記共通のデータインスタンス識別子は、前記第1訓練セットと前記第2訓練セットを決定するように前記クライアントに指示する。
【0492】
これにより、本出願によって提供される連合学習モデルの訓練装置では、サーバは水平分割方式と垂直分割方式を混合することで、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0493】
同じ出願構想に基づいて、本出願の実施例はもう1つの連合学習モデルのモデル評価方法に対応する装置をさらに提供する。
【0494】
図42は本出願の実施例によって提供される連合学習モデルの訓練装置の概略構造図である。
図42に示すように、クライアントに適用される当該連合学習モデルのモデル評価装置2000は、第1受信モジュール210と分割モジュール220を備える。
【0495】
ここで、第1受信モジュール210は、複数のブースティングツリーのうちの1つのブースティングツリーのノードである訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、分割モジュール220は、前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行う。
【0496】
本出願の一実施例によると、
図43に示すように、
図42における分割モジュール220は、第1訓練セットに基づいて水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するための第1学習サブモジュール221と、第2訓練セットに基づいて垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するための第2学習サブモジュール222と、前記第1分割値と前記第2分割値を前記サーバに送信するための送信サブモジュール223と、を備える。
【0497】
本出願の一実施例によると、
図44に示すように、
図43における第1学習サブモジュール221は、前記サーバによって前記第1訓練セットから生成された、前記訓練ノードに利用可能な第1特徴サブセットを受信するための第1受信ユニット2211と、前記サーバに前記第1特徴サブセット内の各特徴の特徴値を送信するための第1送信ユニット2212と、前記サーバから送信された前記各特徴の分割閾値を受信するための第2受信ユニット2213と、前記各特徴の分割閾値に基づいて、前記訓練ノードに対応する初期データインスタンス識別子セットを取得し、前記初期データインスタンス識別子セットを前記サーバに送信するための第1取得ユニット2214と、を備え、ここで、前記初期データインスタンス識別子セットは、第1データインスタンス識別子セットと第2データインスタンス識別子セットとを生成するようにサーバに指示し、前記第1データインスタンス識別子セットと前記初期データインスタンス識別子セットはいずれも第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットは第1右サブツリー空間に属するデータインスタンス識別子を含む。
【0498】
本出願の一実施例によると、第1取得ユニット2214はさらに、いずれか1つの特徴に対して、前記いずれか1つの特徴の分割閾値を前記いずれか1つの特徴の特徴値とそれぞれ比較して、前記特徴値が前記分割閾値より小さいデータインスタンス識別子を取得して、前記初期データインスタンス識別子セットを生成する。
【0499】
本出願の一実施例によると、
図45に示すように、
図43における第2学習サブモジュール222は、前記サーバから送信された勾配情報要求を受信するための第3受信ユニット2221と、前記勾配情報要求に基づいて、第2訓練セットから第2特徴サブセットを生成するための生成ユニット2222と、前記第2特徴サブセット内の各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を取得するための第2取得ユニット2223であって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応する第2取得ユニット2223と、前記第3データインスタンス識別子セットの第1勾配情報を前記サーバに送信するための第2送信ユニット2224と、を備える。
【0500】
本出願の一実施例によると、
図46に示すように、
図45における第2取得ユニット2223は、いずれか1つの特徴に対して、前記いずれか1つの特徴のすべての特徴値を取得し、前記特徴値に基づいて前記いずれか1つの特徴をパケット化するためのパケット化サブユニット22231と、前記いずれか1つの特徴の各パケットの前記第3データインスタンス識別子セットの第1勾配情報を取得するための第1取得サブユニット22232と、を備える。
【0501】
本出願の一実施例によると、
図43に示すように、
図42における分割モジュール220は、前記サーバから送信された分割情報を受信するための受信サブモジュール224であって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、および前記ターゲット分割値を含む受信サブモジュール224と、前記分割情報に基づいて前記訓練ノードに対してノード分割を行うための分割サブモジュール225と、をさらに備える。
【0502】
本出願の一実施例によると、分割サブモジュール225はさらに、分割して生成された左サブツリー空間を前記サーバに送信する。
【0503】
本出願の一実施例によると、
図47に示すように、当該連合モデルの訓練装置1000は、前記訓練ノードが葉ノードである場合、前記サーバから送信された前記葉ノードの重み値を受信するための第2受信モジュール230と、前記葉ノードの重み値に基づいて、前記葉ノードに含まれる各データの残差を決定するための決定モジュール240と、前記残差を次のブースティングツリーの残差入力とするための入力モジュール250と、をさらに含む。
【0504】
これにより、本出願によって提供される連合学習モデルの訓練装置では、クライアントは、複数のブースティングツリーのうちの1つのブースティングツリーのノードである訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信し、ターゲット分割方式に基づいて訓練ノードに対してノード分割を行うことにより、水平分割方式と垂直分割方式を混合することで、マッチングする学習方式の傾向性を自動的に選択することができ、データ分布方式を気にすることなく、従来の連合学習モデルの訓練プロセスに存在する、すべてのデータを十分に利用して学習することができず、およびデータの利用が不十分であるため訓練の効果が悪いという問題を解決するとともに、連合学習モデルの損失を減らし、連合学習モデルの性能を向上させる。
【0505】
同じ出願構想に基づいて、本出願の実施例は電子機器をさらに提供する。
【0506】
図48は本出願の実施例によって提供される電子機器の概略構造図である。
図48に示すように、当該電子機器3000は、メモリ310、プロセッサ320、及びメモリ310に記憶され、プロセッサ320で実行可能なコンピュータプログラムを含み、プロセッサはプログラムを実行する場合、前述した連合学習モデルの訓練方法が実現される。
【0507】
当業者であれば、本出願の実施例は方法、システム、又はコンピュータプログラム製品として提供することができることを理解すべきである。したがって、本出願は完全なハードウェアの実施例、完全なソフトウェアの実施例、或いはソフトウェアとハードウェアの組み合わせの実施例を用いることができる。そして、本出願は、コンピュータが使用可能なプログラムコードを含む1つ又は複数のコンピュータが利用可能な記憶媒体(ディスクストレージ、CD-ROM、光メモリなどを含むが、これらに限定されたい)において実施されるコンピュータプログラム製品の形式を用いることができる。
【0508】
本出願は、本出願の実施例に係る方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明している。フローチャート及び/又はブロック図の各フロー及び/又はブロック、そしてフローチャート及び/又はブロック図のフロー及び/又はブロックの組み合せをコンピュータプログラム命令により実現できることを理解されたい。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、組み込みプロセッサ又は他のプログラム可能なデータ処理デバイスのプロセッサに提供してマシンを生成することにより、コンピュータ又は他のプログラム可能なデータ処理デバイスのプロセッサによって実行される命令は、フローチャートの1つのフロー又は複数のフロー及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能を実現するための装置を生成する。
【0509】
これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理デバイスを特定の方式で動作するように導くコンピュータ読み取り可能なメモリにも記憶することができるので、当該コンピュータ読み取り可能なメモリに記憶される命令に、命令装置を含む製造品を生成させ、当該命令装置は、フローチャートの1つのフロー又は複数のフロー及び/又はブロック図の1つのブロック又は複数のブロックにおいて指定された機能を実現する。
【0510】
これらのコンピュータプログラム命令はコンピュータ又は他のプログラム可能なデータ処理デバイスにロードすることにより、コンピュータ又は他のプログラム可能なデバイスにおいて一連の操作ステップを実行して、コンピュータによって実現される処理を生成し、したがってコンピュータ又は他のプログラム可能なデバイスにおいて実行される命令は、フローチャートの1つ又は複数のフロー及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能を実現するためのステップに提供される。
【0511】
なお、請求項では、括弧内に配置されたいかなる参照記号が、請求項を制限するものとして解釈すべきではないことに留意されたい。“含む”という単語は、請求項に記載されていない部品又はステップが存在する場合を除外しない。部品の前にある“一”或“1つ”という単語は、このような部品が複数存在する場合を排除しない。本出願は、複数の異なる部品を含むハードウェア及び適切にプログラムされるコンピュータにより実現することができる。複数の装置が列挙された特許請求の範囲において、これらの装置のうちの複数は、同一のハードウェア項目で具体的に体現することができる。第1、第2、および第3などの単語の使用はいかなる順序も示さない。これらの単語を名称として解釈することができる。
【0512】
本出願の好ましい実施例を説明したが、当業者であれば、基本的な創造性概念を知った以上、これらの実施例をさらに変更と修正することができる。したがって、添付の特許請求の範囲は、好ましい実施例、および本出願の範囲内のすべての変更と修正を含むものとして解釈されるべきである。
【0513】
当然のことながら、当業者であれば、本発明の精神と範囲を逸脱することなく、本出願に対して様々な修正と変形を行うことができる。このように、本出願のこれらの修正と変形は、本出願の特許請求の範囲およびその同等の技術的範囲内に属する場合、本出願もこれらの変動と変形を含むことを意図している。
【手続補正書】
【提出日】2023-06-30
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
連合学習モデルの訓練方法であって、サーバに適用され、
訓練ノードが予め設定された分割条件を満たす場合、前記訓練ノードに対応するターゲット分割方式を取得するステップであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、
前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するステップと、
更新された前記訓練ノードが前記予め設定された分割条件を満たさなくなるまで、前記訓練ノードが分割されて生成された左サブツリーノードを新たに前記訓練ノードとして次のラウンドの訓練を行うステップと、
前記1つのブースティングツリーの他の非葉ノードを新たに前記訓練ノードとして次のラウンドの訓練を行うステップと、
前記複数のブースティングツリーのノードデータセットがいずれも空である場合、訓練を停止し、ターゲット連合学習モデルを生成するステップと、
を含む、連合学習モデルの訓練方法。
【請求項2】
前記訓練ノードに対応するターゲット分割方式を取得するステップが、
第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップと、
第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップと、
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップと、
を含む請求項1に記載の連合学習モデルの訓練方法。
【請求項3】
前記第1分割値と前記第2分割値に基づいて、前記訓練ノードに対応するターゲット分割方式を決定するステップが、
前記第1分割値と前記第2分割値のうちの大きい方を前記訓練ノードに対応するターゲット分割値として決定するステップと、
前記ターゲット分割値に基づいて、前記訓練ノードに対応する分割方式を決定するステップと、
を含む請求項2に記載の連合学習モデルの訓練方法。
【請求項4】
前記第1訓練セットに基づいて、前記クライアントと連携して水平連合学習を行って、前記訓練ノードに対応する第1分割値を取得するステップが、
前記訓練ノードに利用可能な第1特徴サブセットを前記第1訓練セットから生成して、前記クライアントに送信するステップと、
前記クライアントから送信された前記第1特徴サブセット内の各特徴の特徴値を受信するステップと、
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップと、
前記各特徴に対応する前記水平分割値に基づいて、前記訓練ノードの前記第1分割値を決定するステップと、
を含む請求項2に記載の連合学習モデルの訓練方法。
【請求項5】
前記第1特徴サブセット内の各特徴の特徴値に基づいて、前記各特徴を分割特徴点とする場合に対応する水平分割値をそれぞれ決定するステップが、
前記第1特徴サブセット内のいずれか1つの特徴に対して、前記いずれか1つの特徴の特徴値に基づいて、前記いずれか1つの特徴の分割閾値を決定するステップと、
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップであって、前記第1データインスタンス識別子セットが、第1左サブツリー空間に属するデータインスタンス識別子を含み、前記第2データインスタンス識別子セットが、第1右サブツリー空間に属するデータインスタンス識別子を含むステップと、
前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとに基づいて、前記いずれか1つの特徴に対応する前記水平分割値を決定するステップと、
を含む請求項4に記載の連合学習モデルの訓練方法。
【請求項6】
前記分割閾値に基づいて、前記いずれか1つの特徴に対応する第1データインスタンス識別子セットと第2データインスタンス識別子セットとを取得するステップが、
前記クライアントに前記分割閾値を送信するステップと、
前記クライアントから送信された前記訓練ノードに対応する初期データインスタンス識別子セットを受信するステップであって、前記初期データインスタンス識別子セットが、前記クライアントが前記分割閾値に基づいて前記いずれか1つの特徴に対してノード分割を行うときに生成され、前記初期データインスタンス識別子セットが、前記第1左サブツリー空間に属するデータインスタンス識別子を含むステップと、
前記初期データインスタンス識別子セットとすべてのデータインスタンス識別子とに基づいて、前記第1データインスタンス識別子セットと前記第2データインスタンス識別子セットとを取得するステップと、
を含む請求項5に記載の連合学習モデルの訓練方法。
【請求項7】
前記第2訓練セットに基づいて、前記クライアントと連携して垂直連合学習を行って、前記訓練ノードに対応する第2分割値を取得するステップが、
前記第2訓練セットに基づいて垂直連合学習を行うように前記クライアントに通知するステップと、
前記クライアントから送信された各特徴の少なくとも1つの第3データインスタンス識別子セットの第1勾配情報を受信するステップであって、前記第3データインスタンス識別子セットが、第2左サブツリー空間に属するデータインスタンス識別子を含み、前記第2左サブツリー空間は、前記特徴の特徴値の1つに応じて分割して形成された左サブツリー空間であり、異なる特徴値が、異なる前記第2左サブツリー空間に対応するステップと、
各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップと、
各特徴に対応する垂直分割値に基づいて、前記訓練ノードの前記第2分割値を決定するステップと、
を含む請求項2に記載の連合学習モデルの訓練方法。
【請求項8】
前記各特徴の前記第1勾配情報と前記訓練ノードの総勾配情報とに基づいて、各特徴の垂直分割値をそれぞれ決定するステップが、
いずれか1つの特徴に対して、前記総勾配情報と各第1勾配情報とに基づいて、各第1勾配情報に対応する第2勾配情報をそれぞれ取得するステップと、
各第1勾配情報に対して、前記第1勾配情報、及び前記第1勾配情報に対応する第2勾配情報に基づいて、前記いずれか1つの特徴の候補垂直分割値を取得するステップと、
前記候補垂直分割値のうちの最大値を、前記いずれか1つの特徴の垂直分割値として選択するステップと、
を含む請求項
7に記載の連合学習モデルの訓練方法。
【請求項9】
前記訓練ノードが予め設定された分割条件を満たしていない場合、前記訓練ノードが葉ノードであると決定し、前記葉ノードの重み値を取得するステップと、
前記葉ノードの重み値を前記クライアントに送信するステップと、
を含む請求項
1に記載の連合学習モデルの訓練方法。
【請求項10】
前記葉ノードの重み値を取得するステップが、
前記葉ノードに属するデータインスタンスを取得するステップと、
前記葉ノードに属する前記データインスタンスの一次勾配情報及び二次勾配情報を取得し、前記一次勾配情報及び前記二次勾配情報に基づいて前記葉ノードの重み値を取得するステップと、
を含む請求項
9に記載の連合学習モデルの訓練方法。
【請求項11】
前記ターゲット分割方式に基づいてノード分割を行うように前記クライアントに通知するステップの前に、
分割情報を前記クライアントに送信するステップであって、前記分割情報は、前記ターゲット分割方式、特徴分割点として選択されるターゲット分割特徴、及び前記ターゲット分割値を含むステップを含む請求項3に記載の連合学習モデルの訓練方法。
【請求項12】
前記ターゲット分割方式が垂直分割方式である場合、
前記ターゲット分割方式に基づいてノード分割を行うように前記クライアントに通知するステップの前に、
ラベル付けされたクライアントに前記分割情報を送信するステップと、
前記ラベル付けされたクライアントから送信された左サブツリー空間セットを受信するステップと、
前記左サブツリー空間セットに基づいて、前記第2訓練セットを分割するステップと、
前記訓練ノードを前記ラベル付けされたクライアントの識別子に関連付けるステップと、
を含む請求項
11に記載の連合学習モデルの訓練方法。
【請求項13】
前記ターゲット分割方式に基づいてノード分割を行うようにクライアントに通知するステップの後に、
更新された前記訓練ノードを取得するステップと、
更新された前記訓練ノードが訓練停止条件を満たすと決定された場合、訓練を停止し、ターゲット連合学習モデルを生成するステップと、
検証セットを取得し、検証クライアントと連携して前記ターゲット連合学習モデルを検証するステップであって、前記検証クライアントは連合学習モデルの訓練に参加するクライアントのうちの1つであるステップと、をさらに含む、
ことを特徴とする請求項1に記載の連合学習モデルの訓練方法。
【請求項14】
連合学習モデルの訓練方法であって、クライアントに適用され、
訓練ノードが予め設定された分割条件を満たすと決定された場合にサーバから送信されたターゲット分割方式を受信するステップであって、前記訓練ノードは複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップと、
を含む、連合学習モデルの訓練方法。
【請求項15】
前記ターゲット分割方式に基づいて前記訓練ノードに対してノード分割を行うステップの後に、
前記サーバから送信された検証セットを受信し、前記検証セットに基づいて、前記ターゲット連合学習モデルを検証するステップを含む請求項
14に記載の連合学習モデルの訓練方法。
【請求項16】
前記検証セットに基づいて、検証クライアントと連携して前記ターゲットモデルを検証するステップが、
前記サーバから送信された前記検証セット内の1つのデータインスタンス識別子、および検証ノードの分割情報を受信するステップであって、前記検証ノードは、複数のブースティングツリーのうちの1つのブースティングツリーのノードであるステップと、
前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するステップと、
前記サーバが前記ノード進行方向に基づいて次のノードに入って、前記次のノードを更新された前記検証ノードとするように、前記サーバに前記ノード進行方向を送信するステップと、
を含む請求項
15に記載の連合学習モデルの訓練方法。
【請求項17】
前記データインスタンス識別子と前記分割情報とに基づいて、前記検証ノードのノード進行方向を決定するステップが、
前記データインスタンス識別子に基づいて、前記データインスタンス識別子に対応する各特徴の特徴値を決定するステップと、
前記分割情報と前記各特徴の前記特徴値とに基づいて、前記ノード進行方向を決定するステップと、
を含む請求項
16に記載の連合学習モデルの訓練方法。
【請求項18】
前記検証セット内のデータインスタンス識別子がすべて検証された場合、前記サーバから送信された前記データインスタンス識別子によって表されるデータインスタンスのモデル予測値を受信するステップと、
前記モデル予測値に基づいて最終的な検証結果を取得し、前記検証結果を前の検証結果と比較することにより、前記ターゲット連合学習モデルを保留し且つ使用するか否かを指示するための検証指示情報を生成するステップと、
前記サーバに前記検証指示情報を送信するステップと、
を含む請求項
16に記載の連合学習モデルの訓練方法。
【請求項19】
メモリと、プロセッサと、前記メモリに記憶され、前記プロセッサで実行可能なコンピュータプログラムと、を含み、前記プロセッサが前記プログラムを実行する場合、請求項1から
13又は請求項
14から
18のいずれか一項に記載の連合学習モデルの訓練方法が実現される電子機器。
【請求項20】
コンピュータプログラムが記憶されているコンピュータ読み取り可能な記憶媒体であって、
当該プログラムはプロセッサによって実行される場合、請求項1から
13又は請求項
14から
18のいずれか一項に記載の連合学習モデルの訓練方法が実現されるコンピュータ読み取り可能な記憶媒体。
【国際調査報告】