下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬於本發明保護的範圍。應當理解,儘管在本發明可能採用術語第一、第二、第三等來描述各種資訊,但這些資訊不應限於這些術語。這些術語僅用來將同一類型的資訊彼此區分開。例如,在不脫離本發明範圍的情況下,第一資訊也可以被稱為第二資訊,類似地,第二資訊也可以被稱為第一資訊。
模型參數最佳化方法可以包括梯度下降法、牛頓法等等。所述牛頓法可以包括原始牛頓法以及基於原始牛頓法的各種變形方法(諸如阻尼牛頓法、正則化牛頓法等等;正則化牛頓法是指附帶了正則化項的牛頓法;正則化可以降低模型的複雜度和不穩定程度,從而降低過擬合的危險)。考慮到相較於梯度下降法,牛頓法有著更快的收斂速度。因此若合作建模各方通過秘密分享的方式,利用牛頓法協作確定資料處理模型的模型參數,則不僅可以保護合作建模各方的資料隱私,還可以減少模型參數最佳化調整的次數,提高資料處理模型的訓練效率。
秘密分享(SS,Secret Sharing)是一種保護資料隱私安全的演算法。多個資料方可以在不洩漏自身資料的前提下,使用秘密分享演算法進行協作計算,得到秘密資訊。每個資料方可以獲得該秘密資訊的一份份額。單個資料方無法恢復該秘密資訊。只有多個資料方一同協作才能恢復該秘密資訊。例如資料方P
1
擁有資料x
1
,資料方P
2
擁有資料x
2
。採用秘密分享演算法,資料方P
1
和資料方P
2
可以進行協作計算,得到秘密資訊
。資料方P
1
在計算後可以獲得秘密資訊y的份額y
1
,資料方P
2
在計算後可以獲得秘密資訊y的份額y
2
。
在合作安全建模的場景中,出於保護資料隱私的考慮,多個資料方可以在不洩漏自身所擁有的資料的前提下,基於自身擁有的資料,對資料處理模型進行協作訓練。所述資料處理模型包括但不限於邏輯回歸模型和神經網路模型等。在對資料處理模型進行訓練的過程中,可以利用模型參數最佳化方法對資料處理模型的模型參數進行最佳化調整。考慮到在合作安全建模的場景中,用於對資料處理模型進行訓練的資料分散在合作建模的各資料方。因此在合作安全建模的場景中,所述模型參數最佳化方法可以採用秘密分享演算法來實現。
損失函數(Loss Function)可以用於衡量資料處理模型的預測值與真實值之間不一致的程度。損失函數的值越小,表示資料處理模型的穩健性越好。所述損失函數包括但不限於對數損失函數(Logarithmic Loss Function)、平方損失函數(Square Loss)等。
海森矩陣(Hessian Matrix),又稱為黑塞矩陣、海瑟矩陣或海塞矩陣等,是損失函數的二階偏導數所構成的方陣,用於表示損失函數的局部曲率。
激勵函數(Activation Function),又稱為啟動函數,可以用於構建資料處理模型。激勵函式定義了在給定輸入下的輸出。通過激勵函數可以在資料處理模型中加入非線性因素,提高資料處理模型的表達能力。所述激勵函數例如可以包括Sigmoid函數、Tanh函數和ReLU函數等等。
本發明提供一種模型參數確定系統的實施例。
請參閱圖1。在該實施例中,所述模型參數確定系統可以包括第一資料方、第二資料方和可信任的第三方(TTP,Trusted Third Party)。
所述第三方可以為一個伺服器;或者,還可以為包括多個伺服器的伺服器集群。所述第三方可以用於向所述第一資料方和所述第二資料方提供亂數。具體地,所述第三方可以產生亂數矩陣,可以將所述亂數矩陣中的各個亂數拆分為兩個份額,可以將其中一個份額作為第一份額,將其中另一個份額作為第二份額。所述第三方可以將所述亂數矩陣中各個亂數的第一份額形成的矩陣作為所述亂數矩陣的第一份額,將所述亂數矩陣中各個亂數的第二份額形成的矩陣作為所述亂數矩陣的第二份額;可以向所述第一資料方發送所述亂數矩陣的第一份額,可以向所述第二資料方發送所述亂數矩陣的第二份額。其中,所述亂數矩陣的第一份額和所述亂數矩陣的第二份額的和等於所述亂數矩陣。
所述第一資料方和所述第二資料方分別為合作安全建模的雙方。所述第一資料方可以為不擁有標籤的資料方,所述第二資料方可以為擁有標籤的資料方。例如,所述第一資料方可以擁有完整的樣本資料,所述第二資料方可以擁有樣本資料的標籤。或者,所述第一資料方可以擁有樣本資料的一部分資料項目,所述第二資料方可以擁有樣本資料的另一部分資料項目和標籤。具體地,例如,樣本資料可以包括使用者的儲蓄金額和借貸金額。所述第一資料方可以擁有使用者的儲蓄金額,所述第二資料方可以擁有使用者的借貸金額和樣本資料的標籤。所述標籤可以用於區分不同類型的樣本資料,具體數值例如可以取自0和1。這裡的資料方可以為電子設備。所述電子設備可以包括個人電腦、伺服器、手持設備、可攜式設備、平板型設備、多處理器裝置;或者,還可以包括由以上任何多個裝置或設備所構成的集群等。另外,樣本資料及其對應的標籤共同構成了樣本資料,樣本資料可以用於對資料處理模型進行訓練。
在合作安全建模的場景中,所述第一資料方和所述第二資料方可以分別獲得原始模型參數的一份份額。這裡可以將所述第一資料方獲得份額作為原始模型參數的第一份額,可以將所述第二資料方獲得份額作為原始模型參數的第二份額。原始模型參數的第一份額和原始模型參數的第二份額的和等於原始模型參數。
所述第一資料方可以接收亂數矩陣的第一份額。所述第二資料方可以接收亂數矩陣的第二份額。所述第一資料方可以基於原始模型參數的第一份額、樣本資料和亂數矩陣的第一份額,所述第二資料方可以基於原始模型參數的第二份額、標籤和亂數矩陣的第二份額,採用秘密分享的方式,協作確定新的模型參數。所述第一資料方和所述第二資料方可以分別獲得新的模型參數的一份份額。具體過程可以參見後面的模型參數確定方法實施例。
本發明還提供一種模型參數確定方法的實施例。
該實施例可以利用牛頓法來確定模型參數。請參閱圖2。該實施例可以包括以下步驟。
步驟S11:第一資料方根據樣本資料和激勵函數取值的第一份額,第二資料方根據激勵函數取值的第二份額,秘密分享海森矩陣。第一資料方獲得海森矩陣的第一份額,第二資料方獲得海森矩陣的第二份額。
步驟S13:第一資料方根據海森矩陣的第一份額,第二資料方根據海森矩陣的第二份額,秘密分享第一逆矩陣。第一資料方獲得第一逆矩陣的第一份額,第二資料方獲得第一逆矩陣的第二份額。第一逆矩陣為海森矩陣的逆矩陣。
步驟S15:第一資料方根據原始模型參數的第一份額、第一逆矩陣的第一份額和損失函數梯度的第一份額,第二資料方根據原始模型參數的第二份額、第一逆矩陣的第二份額和損失函數梯度的第二份額,秘密分享新的模型參數。第一資料方獲得新的模型參數的第一份額,第二資料方獲得新的模型參數的第二份額。
下面介紹在實施例中涉及的一些術語。
(一)、第一乘積、第二乘積和第三乘積。所述第一乘積可以為原始模型參數和樣本資料之間的乘積。所述第二乘積可以為亂數矩陣和海森矩陣之間的乘積。所述第三乘積可以為海森矩陣的逆矩陣和損失函數梯度之間的乘積。
在一些場景示例中,所述第一乘積可以表示為
![Figure 02_image003](https://patentimages.storage.googleapis.com/69/0e/0f/f49749db1acbba/02_image003.png)
;其中,
表示原始模型參數,具體為原始模型參數構成的向量;
表示樣本資料,具體為樣本資料構成的矩陣。
所述第二乘積可以表示為
,其中,
表示海森矩陣,
表示亂數矩陣。
所述第三乘積可以表示為
,其中,
表示海森矩陣的逆矩陣,
表示損失函數的梯度,
為向量。
(二)、第一逆矩陣和第二逆矩陣。鑒於海森矩陣為方陣,因而可以對海森矩陣進行求逆處理,可以將海森矩陣的逆矩陣作為第一逆矩陣。所述第二乘積可以為方陣,因而可以對所述第二乘積進行求逆處理,可以將所述第二乘積的逆矩陣作為第二逆矩陣。
延續前面的場景示例,所述第一逆矩陣可以表示為
,所述第二逆矩陣可以表示為
。
在一些實施例中,在步驟S11之前,所述第一資料方可以根據樣本資料和擁有的原始模型參數的第一份額,所述第二資料方可以根據擁有的原始模型參數的第二份額,秘密分享第一乘積。所述第一資料方和所述第二資料方可以分別獲得所述第一乘積的一份份額。為了便於描述,可以將所述第一資料方獲得的份額作為第一乘積的第一份額,可以將所述第二資料方獲得的份額作為第一乘積的第二份額。第一乘積的第一份額和第一乘積的第二份額的和等於第一乘積。
延續前面的場景示例,原始模型參數的第一份額可以表示為
,原始模型參數的第二份額可以表示為
,
。所述第一資料方可以根據
和
,所述第二資料方可以根據
,秘密分享第一乘積
。所述第一資料方可以獲得第一乘積的第一份額
,所述第二資料方可以獲得第一乘積的第二份額
。
。
進一步地,所述第一資料方還可以根據第一乘積的第一份額,所述第二資料方還可以根據第一乘積的第二份額,秘密分享多項式的取值。所述第一資料方和所述第二資料方可以分別獲得所述多項式取值的一份份額。所述多項式可以用於擬合所述資料處理模型的激勵函數。如此可以將所述第一資料方獲得的份額作為激勵函數取值的第一份額,可以將所述第二資料方獲得的份額作為激勵函數取值的第二份額。激勵函數取值的第一份額和激勵函數取值的第二份額的和等於激勵函數的取值。當然,本發明並不限於上述採用多項式擬合的方式實現對激勵函數取值的秘密分享,還可以採用其它方式實現對激勵函數取值的秘密分享。
延續前面的場景示例,所述激勵函數可以為Sigmoid函數。所述激勵函數的取值可以表示為
。所述激勵函數取值的第一份額可以表示為
,所述激勵函數取值的第二份額可以表示為
。其中,
。
、
和
分別為向量。
進一步地,所述第一資料方還可以根據樣本資料和激勵函數取值的第一份額,所述第二資料方還可以根據標籤和激勵函數取值的第二份額,秘密分享損失函數的梯度。所述第一資料方和所述第二資料方可以分別獲得所述損失函數梯度的一份份額。為了便於描述,可以將所述第一資料方獲得的份額作為損失函數梯度的第一份額,可以將所述第二資料方獲得的份額作為損失函數梯度的第二份額。損失函數梯度的第一份額和損失函數梯度的第二份額的和等於損失函數的梯度。
延續前面的場景示例,所述第一資料方可以根據
和
,所述第二資料方可以根據標籤Y和
,秘密分享損失函數的梯度
(具體為向量)。所述第一資料方可以獲得損失函數梯度的第一份額
,所述第二資料方可以獲得損失函數梯度的第二份額
。
下面介紹所述第一資料方和所述第二資料方秘密分享損失函數
的詳細過程。
所述第一資料方可以根據
,所述第二資料方可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方還可以根據
,所述第二資料方還可以根據標籤Y(具體為標籤構成的向量),秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方可以計算
;可以計算
作為損失函數梯度
的第一份額
。所述第二資料方可以計算
作為損失函數梯度
的第二份額
。
。
在一些實施例中,在步驟S11中,所述第一資料方可以根據樣本資料和激勵函數取值的第一份額,所述第二資料方可以根據激勵函數取值的第二份額,秘密分享海森矩陣。所述第一資料方和所述第二資料方可以分別獲得所述海森矩陣的一份份額。為了便於描述,可以將所述第一資料方獲得的份額作為所述海森矩陣的第一份額,可以將所述第二資料方獲得的份額作為所述海森矩陣的第二份額。海森矩陣的第一份額和海森矩陣的第二份額的和等於海森矩陣。
具體地,所述第一資料方可以根據激勵函數取值的第一份額,所述第二資料方可以根據激勵函數取值的第二份額,秘密分享對角矩陣。所述第一資料方和所述第二資料方可以分別獲得所述對角矩陣的一份份額。為了便於描述,可以將所述第一資料方獲得的份額作為所述對角矩陣的第一份額,可以將所述第二資料方獲得的份額作為所述對角矩陣的第二份額。對角矩陣的第一份額和對角矩陣的第二份額的和等於對角矩陣。如此所述第一資料方可以根據樣本資料和所述對角矩陣的第一份額,所述第二資料方可以根據所述對角矩陣的第二份額,秘密分享海森矩陣。所述第一資料方可以獲得所述海森矩陣的第一份額,所述第二資料方可以獲得所述海森矩陣的第二份額。
延續前面的場景示例,所述第一資料方可以根據
,所述第二資料方可以根據
,秘密分享對角矩陣
。所述第一資料方可以獲得對角矩陣的第一份額
,所述第二資料方可以獲得對角矩陣的第二份額
。
下面介紹所述第一資料方和所述第二資料方秘密分享對角矩陣
的詳細過程。
所述第一資料方可以根據
,所述第二資料方可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。其中,
表示按位相乘運算。例如,向量
,向量
。那麼,
。
所述第一資料方可以計算
,所述第二資料方可以計算
。
。
、
和
分別為向量。因而所述第一資料方可以根據
產生對角矩陣
的第一份額
,所述第二資料方可以根據
產生對角矩陣
的第二份額
。
。其中,對角矩陣
的第一份額
和第二份額
均可以為一個對角矩陣。在實際處理過程中,所述第一資料方可以將
中的資料元素作為
主對角線上的資料元素,這樣便實現了根據
產生
;可以將
中的資料元素作為
主對角線上的資料元素,這樣便實現了根據
產生
。
所述第一資料方可以根據
和
,所述第二資料方可以根據
,秘密分享海森矩陣
。所述第一資料方可以獲得海森矩陣的第一份額
,所述第二資料方可以獲得海森矩陣的第二份額
。
下面介紹所述第一資料方和所述第二資料方秘密分享海森矩陣
的詳細過程。
所述第一資料方可以根據
,所述第二資料方可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方還可以根據
,所述第二資料方還可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方可以計算
作為海森矩陣
的第一份額
。所述第二資料方可以將
作為海森矩陣
的第二份額
。
。
在一些實施例中,第三方可以向第一資料方下發亂數矩陣的第一份額;可以向第二資料方下發亂數矩陣的第二份額。亂數矩陣的第一份額和亂數矩陣的第二份額的和等於亂數矩陣。所述第一資料方可以接收亂數矩陣的第一份額,所述第二資料方可以接收亂數矩陣的第二份額。如此在步驟S13中,所述第一資料方可以根據亂數矩陣的第一份額和海森矩陣的第一份額,所述第二資料方可以根據亂數矩陣的第二份額和海森矩陣的第二份額,秘密分享第二乘積。所述第一資料方和所述第二資料方可以分別獲得所述第二乘積的一份份額。為了便於描述,可以將所述第一資料方獲得的份額作為第二乘積的第一份額,可以將所述第二資料方獲得的份額作為第二乘積的第二份額。第二乘積的第一份額和第二乘積的第二份額的和等於第二乘積。
在本實施例的一些實施方式中,可以由所述第二資料方對所述第二乘積進行求逆處理。具體地,所述第一資料方可以向所述第二資料方發送第二乘積的第一份額。所述第二資料方可以接收第二乘積的第一份額;可以將第二乘積的第一份額與自身擁有的第二乘積的第二份額相加,得到第二乘積。鑒於所述第二乘積為方陣,因而所述第二資料方可以對所述第二乘積進行求逆處理,得到所述第二乘積的逆矩陣作為第二逆矩陣;可以向所述第一資料方發送所述第二逆矩陣。所述第一資料方可以接收所述第二逆矩陣。或者,在本實施例的另一些實施方式中,還可以由所述第一資料方對所述第二乘積進行求逆處理。具體地,所述第二資料方可以向所述第一資料方發送第二乘積的第二份額。所述第一資料方可以接收第二乘積的第二份額;可以將第二乘積的第二份額與自身擁有的第二乘積的第一份額相加,得到第二乘積。鑒於所述第二乘積為方陣,因而所述第一資料方可以對所述第二乘積進行求逆處理,得到所述第二乘積的逆矩陣作為第二逆矩陣;可以向所述第二資料方發送所述第二逆矩陣。所述第二資料方可以接收所述第二逆矩陣。
所述第一資料方可以將亂數矩陣的第一份額與所述第二逆矩陣相乘,得到第一逆矩陣的第一份額。所述第二資料方可以將亂數矩陣的第二份額與所述第二逆矩陣相乘,得到第一逆矩陣的第二份額。第一逆矩陣的第一份額和第一逆矩陣的第二份額的和等於第一逆矩陣。
延續前面的場景示例,亂數矩陣的第一份額可以表示為
,亂數矩陣的第二份額可以表示為
,
。所述第一資料方可以根據
和
,所述第二資料方可以根據
和
,秘密分享第二乘積
。所述第一資料方可以獲得第二乘積的第一份額
,所述第二資料方可以獲得第二乘積第二份額
。
下面介紹所述第一資料方和所述第二資料方秘密分享第二乘積
的詳細過程。
所述第一資料方可以根據
,所述第二資料方可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方還可以根據
,所述第二資料方還可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方可以計算
作為第二乘積的第一份額
。所述第二資料方可以計算
作為第二乘積的第二份額
。
。
這裡由所述第二資料方對第二乘積
進行求逆處理。具體地,所述第一資料方可以向所述第二資料方發送第二乘積的第一份額
。所述第二資料方可以接收第二乘積的第一份額
;可以將第二乘積的第一份額
與自身擁有的第二乘積的第二份額
相加,得到第二乘積
;可以對第二乘積
進行求逆處理,得到第二逆矩陣
;可以向所述第一資料方發送第二逆矩陣
。所述第一資料方可以接收第二逆矩陣
。
所述第一資料方可以將第二逆矩陣
與亂數矩陣的第一份額
相乘,得到第一逆矩陣
的第一份額
。所述第二資料方可以將第二逆矩陣
與亂數矩陣的第二份額
相乘,得到第一逆矩陣
的第一份額
。
。
在一些實施例中,在步驟S15中,所述第一資料方可以根據第一逆矩陣的第一份額和損失函數梯度的第一份額,所述第二資料方可以根據第一逆矩陣的第二份額和損失函數梯度的第二份額,秘密分享第三乘積。所述第一資料方和所述第二資料方可以分別獲得所述第三乘積的一份份額。為了便於描述,可以將所述第一資料方獲得的份額作為第三乘積的第一份額,可以將所述第二資料方獲得的份額作為第三乘積的第二份額。第三乘積的第一份額和第三乘積的第二份額的和等於第三乘積。
所述第一資料方可以將原始模型參數的第一份額與第三乘積的第一份額相減,得到新的模型參數的第一份額。所述第二資料方可以將原始模型參數的第二份額與第三乘積的第二份額相減,得到新的模型參數的第二份額。
值得說明的是,在實際應用中,可以將新的模型參數作為新的原始模型參數,重複執行步驟S11、步驟S13和步驟S15。通過重複執行本實施例的模型參數確定方法,可以實現對資料處理模型的模型參數進行反覆運算最佳化調整。
延續前面的場景示例,所述第一資料方可以根據
和
,所述第二資料方可以根據
和
,秘密分享第三乘積
。所述第一資料方可以獲得第三乘積的第一份額
,所述第二資料方可以獲得第三乘積的第二份額
。
下面介紹所述第一資料方和所述第二資料方秘密分享第三乘積
的詳細過程。
所述第一資料方可以根據
,所述第二資料方可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方還可以根據
,所述第二資料方還可以根據
,秘密分享
。所述第一資料方可以獲得
,所述第二資料方可以獲得
。
。
所述第一資料方可以計算
作為第三乘積的第一份額
。所述第二資料方可以計算
作為第三乘積的第二份額
。
所述第一資料方可以計算
,所述第二資料方可以計算
,
表示新的模型參數的第一份額,
表示新的模型參數的第二份額,
表示新的模型參數。
![Figure 02_image264](https://patentimages.storage.googleapis.com/c1/33/c8/73a1117d919f9d/02_image264.png)
。
在本實施例中,第一資料方和第二資料方可以利用秘密分享演算法,在不洩漏自身所擁有的資料的前提下,協作確定資料處理模型的模型參數。另外,由於使用了牛頓法,因而本實施例的模型參數確定方法有較快的收斂速度,可以減少模型參數最佳化調整的次數,提高資料處理模型的訓練效率。
基於同樣的發明構思,本發明還提供另一種模型參數確定方法的實施例。該實施例以第一資料方為執行主體,所述第一資料方可以持有樣本資料和原始模型參數的份額。請參閱圖3。該實施例可以包括以下步驟。
步驟S21:根據樣本資料和激勵函數取值的份額與合作方秘密分享海森矩陣,得到海森矩陣的份額。
在一些實施例中,所述合作方可以理解為與所述第一資料方進行合作安全建模的資料方,具體可以為前面的第二資料方。所述第一資料方可以根據第一乘積的份額與合作方秘密分享多項式的取值,得到多項式取值的份額作為激勵函數取值的份額。所述第一乘積可以為原始模型參數和樣本資料之間的乘積。所述第一資料方可以根據樣本資料和原始模型參數的份額與合作方秘密分享第一乘積,得到第一乘積的份額。所述多項式用於擬合所述激勵函數。
所述第一資料方可以根據樣本資料和激勵函數取值的份額與合作方秘密分享損失函數的梯度,得到損失函數梯度的份額。
在一些實施例中,所述第一資料方可以根據激勵函數取值的份額與合作方秘密分享對角矩陣,得到對角矩陣的份額;可以根據樣本資料和對角矩陣的份額與合作方秘密分享海森矩陣,得到海森矩陣的份額。具體過程可以參見前面步驟S11中的相關描述,在此不再贅述。
步驟S23:根據海森矩陣的份額與合作方秘密分享第一逆矩陣,得到第一逆矩陣的份額,所述第一逆矩陣為海森矩陣的逆矩陣。
在一些實施例中,所述第一資料方可以根據亂數矩陣的份額和海森矩陣的份額與合作方秘密分享第二乘積,得到第二乘積的份額。所述第二乘積可以為亂數矩陣和海森矩陣之間的乘積。所述第一資料方可以向合作方發送第二乘積的份額;可以接收合作方回饋的第二逆矩陣,所述第二逆矩陣為所述第二乘積的逆矩陣;可以將第二逆矩陣與亂數矩陣的份額相乘,得到第一逆矩陣的份額。具體過程可以參見前面步驟S13中的相關描述,在此不再贅述。
或者,在另一些實施例中,所述第一資料方可以根據亂數矩陣的份額和海森矩陣的份額與合作方秘密分享第二乘積,得到第二乘積的第一份額。所述第二乘積可以為亂數矩陣和海森矩陣之間的乘積。所述第一資料方可以接收合作方發來的第二乘積的第二份額;可以根據第二乘積的第一份額和第二乘積的第二份額確定第二逆矩陣,所述第二逆矩陣為所述第二乘積的逆矩陣;可以將第二逆矩陣與亂數矩陣的份額相乘,得到第一逆矩陣的份額。具體過程可以參見前面步驟S13中的相關描述,在此不再贅述。
步驟S25:根據原始模型參數的份額、第一逆矩陣的份額和損失函數梯度的份額與合作方秘密分享新的模型參數,得到新的模型參數的份額。
在一些實施例中,所述第一資料方可以根據第一逆矩陣的份額和損失函數梯度的份額與合作方秘密分享第三乘積,得到第三乘積的份額。所述第三乘積可以為第一逆矩陣和損失函數梯度之間的乘積。所述第一資料方可以將原始模型參數的份額與第三乘積的份額相減,得到新的模型參數的份額。具體過程可以參見前面步驟S15中的相關描述,在此不再贅述。
在本實施例中,第一資料方可以利用秘密分享演算法,在不洩漏自身所擁有的資料的前提下,與合作方協作確定資料處理模型的模型參數,得到新的模型參數的份額。
基於同樣的發明構思,本發明還提供另一種模型參數確定方法的實施例。該實施例以第二資料方為執行主體,所述第二資料方可以持有標籤和原始模型參數的份額。請參閱圖4。該實施例可以包括以下步驟。
步驟S31:根據激勵函數取值的份額與合作方秘密分享海森矩陣,得到海森矩陣的份額。
在一些實施例中,所述合作方可以理解為與所述第二資料方進行合作安全建模的資料方,具體可以為前面的第一資料方。所述第二資料方可以根據第一乘積的份額與合作方秘密分享多項式的取值,得到多項式取值的份額作為激勵函數取值的份額。所述第一乘積可以為原始模型參數和樣本資料之間的乘積。所述第二資料方可以根據原始模型參數的份額與合作方秘密分享第一乘積,得到第一乘積的份額。所述多項式用於擬合所述激勵函數。
所述第二資料方可以根據標籤和激勵函數取值的份額與合作方秘密分享損失函數的梯度,得到損失函數梯度的份額。
在一些實施例中,所述第二資料方可以根據激勵函數取值的份額與合作方秘密分享對角矩陣,得到對角矩陣的份額;可以根據對角矩陣的份額與合作方秘密分享海森矩陣,得到海森矩陣的份額。具體過程可以參見前面步驟S11中的相關描述,在此不再贅述。
步驟S33:根據海森矩陣的份額與合作方秘密分享第一逆矩陣,得到第一逆矩陣的份額,所述第一逆矩陣為海森矩陣的逆矩陣。
在一些實施例中,所述第二資料方可以根據亂數矩陣的份額和海森矩陣的份額與合作方秘密分享第二乘積,得到第二乘積的份額。所述第二乘積可以為亂數矩陣和海森矩陣之間的乘積。所述第二資料方可以向合作方發送第二乘積的份額;可以接收合作方回饋的第二逆矩陣,所述第二逆矩陣為所述第二乘積的逆矩陣;可以將第二逆矩陣與亂數矩陣的份額相乘,得到第一逆矩陣的份額。具體過程可以參見前面步驟S13中的相關描述,在此不再贅述。
或者,在另一些實施例中,所述第二資料方可以根據亂數矩陣的份額和海森矩陣的份額與合作方秘密分享第二乘積,得到第二乘積的第一份額。所述第二乘積可以為亂數矩陣和海森矩陣之間的乘積。所述第二資料方可以接收合作方發來的第二乘積的第二份額;可以根據第二乘積的第一份額和第二乘積的第二份額確定第二逆矩陣,所述第二逆矩陣為所述第二乘積的逆矩陣;可以將第二逆矩陣與亂數矩陣的份額相乘,得到第一逆矩陣的份額。具體過程可以參見前面步驟S13中的相關描述,在此不再贅述。
步驟S35:根據原始模型參數的份額、第一逆矩陣的份額和損失函數梯度的份額與合作方秘密分享新的模型參數,得到新的模型參數的份額。
在一些實施例中,所述第二資料方可以根據第一逆矩陣的份額和損失函數梯度的份額與合作方秘密分享第三乘積,得到第三乘積的份額。所述第三乘積可以為第一逆矩陣和損失函數梯度之間的乘積。所述第二資料方可以將原始模型參數的份額與第三乘積的份額相減,得到新的模型參數的份額。具體過程可以參見前面步驟S15中的相關描述,在此不再贅述。
在本實施例中,第二資料方可以利用秘密分享演算法,在不洩漏自身所擁有的資料的前提下,與合作方協作確定資料處理模型的模型參數,得到新的模型參數的份額。
基於同樣的發明構思,本發明還提供一種模型參數確定裝置的實施例。請參閱圖5。該實施例可以應用於第一資料方,可以包括以下單元。
第一秘密分享單元41,用於根據樣本資料和激勵函數取值的份額與合作方秘密分享海森矩陣,得到海森矩陣的份額;
第二秘密分享單元43,用於根據海森矩陣的份額與合作方秘密分享第一逆矩陣,得到第一逆矩陣的份額,所述第一逆矩陣為海森矩陣的逆矩陣;
第三秘密分享單元45,用於根據原始模型參數的份額、第一逆矩陣的份額和損失函數梯度的份額與合作方秘密分享新的模型參數,得到新的模型參數的份額。
基於同樣的發明構思,本發明還提供一種模型參數確定裝置的實施例。請參閱圖6。該實施例可以應用於第二資料方,可以包括以下單元。
第一秘密分享單元51,用於根據激勵函數取值的份額與合作方秘密分享海森矩陣,得到海森矩陣的份額;
第二秘密分享單元53,用於根據海森矩陣的份額與合作方秘密分享第一逆矩陣,得到第一逆矩陣的份額,所述第一逆矩陣為海森矩陣的逆矩陣;
第三秘密分享單元55,用於根據原始模型參數的份額、第一逆矩陣的份額和損失函數梯度的份額與合作方秘密分享新的模型參數,得到新的模型參數的份額。
下面介紹本發明電子設備的一個實施例。圖7是該實施例中一種電子設備的硬體結構示意圖。如圖7所示,所述電子設備可以包括一個或多個(圖中僅示出一個)處理器、記憶體和傳輸模組。當然,本領域普通技術人員可以理解,圖7所示的硬體結構僅為示意,其並不對上述電子設備的硬體結構造成限定。在實際中所述電子設備還可以包括比圖7所示更多或者更少的元件單元;或者,具有與圖7所示不同的配置。
所述記憶體可以包括高速隨機記憶體;或者,還可以包括非揮發性記憶體,例如一個或者多個磁性儲存裝置、快閃記憶體、或者其他非揮發性固態記憶體。當然,所述記憶體還可以包括遠端設置的網路記憶體。所述遠端設置的網路記憶體可以通過諸如網際網路、企業內部網、區域網、移動通信網等網路連接至所述電子設備。所述記憶體可以用於儲存應用軟體的程式指令或模組,例如本發明圖3所對應實施例的程式指令或模組;和/或,本發明圖4所對應實施例的程式指令或模組。
所述處理器可以按任何適當的方式實現。例如,所述處理器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀介質、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可程式化邏輯控制器和嵌入微控制器的形式等等。所述處理器可以讀取並執行所述記憶體中的程式指令或模組。
所述傳輸模組可以用於經由網路進行資料傳輸,例如經由諸如網際網路、企業內部網、區域網、移動通信網等網路進行資料傳輸。
需要說明的是,本發明中的各個實施例均採用遞進的方式描述,各個實施例之間相同或相似的部分互相參見即可,每個實施例重點說明的都是與其它實施例的不同之處。尤其,對於裝置實施例和電子設備實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。另外,可以理解的是,本領域技術人員在閱讀本發明檔之後,可以無需創造性勞動想到將本發明列舉的部分或全部實施例進行任意組合,這些組合也在本發明公開和保護的範圍內。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都通過將改進的方法流程程式設計到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式化邏輯裝置(Programmable Logic Device, PLD)(例如現場可程式化閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由使用者對裝置程式設計來確定。由設計人員自行程式設計來把一個數位系統“整合”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式設計也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始代碼也得用特定的程式設計語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL 也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language ) 與Verilog2。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式設計並程式設計到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、筆記型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放機、導航設備、電子郵件設備、遊戲控制台、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地瞭解到本發明可借助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品可以儲存在儲存介質中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。
本發明可用於眾多通用或專用的電腦系統環境或配置中。例如:個人電腦、伺服器電腦、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、機頂盒、可程式化的消費電子設備、網路PC、小型電腦、大型電腦、包括以上任何系統或設備的分散式運算環境等等。
本發明可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、元件、資料結構等等。也可以在分散式運算環境中實踐本發明,在這些分散式運算環境中,由通過通信網路而被連接的遠端處理設備來執行任務。在分散式運算環境中,程式模組可以位於包括存放裝置在內的本地和遠端電腦儲存介質中。
雖然通過實施例描繪了本發明,本領域普通技術人員知道,本發明有許多變形和變化而不脫離本發明的精神,希望所附的申請專利範圍包括這些變形和變化而不脫離本發明的精神。