本說明書涉及評(píng)估全局模型以確定特定于用戶的特性。
通常生成全局模型以預(yù)測與活動(dòng)相關(guān)聯(lián)的特性。通過使用從用戶集合收集的數(shù)據(jù)訓(xùn)練模型來生成典型的全局模型。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本說明書中描述的主題的一個(gè)創(chuàng)新方面,可以由服務(wù)器系統(tǒng)使用從用戶集合收集的人口水平數(shù)據(jù)來訓(xùn)練用于活動(dòng)或行為的全局模型。全局模型可以被分發(fā)到用戶設(shè)備??梢栽谟脩粼O(shè)備上本地評(píng)估全局模型以預(yù)測與用戶設(shè)備的用戶的活動(dòng)或行為相關(guān)聯(lián)的特性??梢詫㈩A(yù)測的特性與觀察到的特定于用戶的特性進(jìn)行比較,以生成本地觀察和這些觀察的預(yù)測之間的差異。該差異可以表示用戶的個(gè)人簽名,并且可以用于訓(xùn)練特定于用戶的模型。
一般來說,本說明書中描述的主題的一個(gè)創(chuàng)新方面可以體現(xiàn)在包括下述動(dòng)作的方法中,所述動(dòng)作為:獲得用于特定活動(dòng)的全局模型,所述全局模型基于輸入數(shù)據(jù)來導(dǎo)出,所述輸入數(shù)據(jù)表示與由用戶集合執(zhí)行的所述特定活動(dòng)相關(guān)聯(lián)的多個(gè)觀察;使用所述全局模型來確定預(yù)期數(shù)據(jù),所述預(yù)期數(shù)據(jù)表示與由特定用戶執(zhí)行的所述特定活動(dòng)相關(guān)聯(lián)的預(yù)期觀察;由所述特定用戶操作的計(jì)算設(shè)備接收特定數(shù)據(jù),所述特定數(shù)據(jù)表示與由所述特定用戶執(zhí)行的所述特定活動(dòng)相關(guān)聯(lián)的實(shí)際觀察;由所述計(jì)算設(shè)備使用(i)所述預(yù)期數(shù)據(jù)和(ii)所述特定數(shù)據(jù)來確定所述特定用戶的殘余數(shù)據(jù);以及基于所述殘余數(shù)據(jù)導(dǎo)出所述特定用戶的本地模型。
這些和其他實(shí)現(xiàn)方式可以各自可選地包括以下特征中的一個(gè)或多個(gè)。使用(i)預(yù)期數(shù)據(jù)和(ii)特定數(shù)據(jù)來確定殘余數(shù)據(jù)可以包括基于預(yù)期數(shù)據(jù)和特定數(shù)據(jù)之間的差異來確定殘余數(shù)據(jù)。動(dòng)作可以包括使用本地模型來確定特定預(yù)期數(shù)據(jù),所述特定預(yù)期數(shù)據(jù)表示與特定用戶執(zhí)行的特定活動(dòng)相關(guān)聯(lián)的預(yù)期觀察,其中由本地模型確定的特定預(yù)期數(shù)據(jù)基本上與特定數(shù)據(jù)匹配。
本地模型可以由計(jì)算設(shè)備導(dǎo)出。動(dòng)作可以包括從計(jì)算設(shè)備向一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)傳送特定用戶的本地模型作為特定用戶的表示。
導(dǎo)出特定用戶的本地模型可以包括從計(jì)算設(shè)備向一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)傳送殘余數(shù)據(jù),以及由一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)導(dǎo)出本地模型。全局模型可以包括由第一多個(gè)主軸構(gòu)成的第一向量空間,并且本地模型可以包括由第二多個(gè)主軸構(gòu)成的第二向量空間,所述第二多個(gè)主軸不同于所述第一多個(gè)主軸。
動(dòng)作可以包括:獲得用于不同于所述特定活動(dòng)的第二活動(dòng)的第二全局模型,所述第二全局模型基于第二輸入數(shù)據(jù)來導(dǎo)出,所述第二輸入數(shù)據(jù)表示與由用戶集合執(zhí)行的所述第二活動(dòng)相關(guān)聯(lián)的多個(gè)觀察;使用所述第二全局模型來確定第二預(yù)期數(shù)據(jù),所述第二預(yù)期數(shù)據(jù)表示與由所述特定用戶執(zhí)行的所述第二活動(dòng)相關(guān)聯(lián)的預(yù)期觀察;由所述特定用戶操作的所述計(jì)算設(shè)備接收第二特定數(shù)據(jù),所述第二特定數(shù)據(jù)表示與由所述特定用戶執(zhí)行的所述第二活動(dòng)相關(guān)聯(lián)的實(shí)際觀察;以及,由所述計(jì)算設(shè)備使用(i)所述第二預(yù)期數(shù)據(jù)和(ii)所述第二特定數(shù)據(jù)來確定所述特定用戶的第二殘余數(shù)據(jù)。
導(dǎo)出特定用戶的本地模型可以包括至少基于(i)殘余數(shù)據(jù)和(ii)第二殘余數(shù)據(jù)導(dǎo)出特定用戶的本地模型。
有利的實(shí)施方式可以包括以下特征中的一個(gè)或多個(gè)。本地觀察和預(yù)期觀察之間的差異可以在用戶設(shè)備上本地確定,并且因此可以保護(hù)用戶隱私。特定于用戶的特性或本地觀察和預(yù)期觀察之間的差異可以隨后用于認(rèn)證用戶的身份??梢允褂锰囟ㄓ谟脩舻奶匦曰虿町悂碛?xùn)練更準(zhǔn)確的用戶本地模型。本地模型可以被傳送到遠(yuǎn)程服務(wù)器以表示用戶,而不向遠(yuǎn)程服務(wù)器公開用戶的實(shí)際觀察,并且因此可以進(jìn)一步保護(hù)用戶隱私。通過收集在多個(gè)客戶端設(shè)備上訓(xùn)練的本地模型,中央服務(wù)器系統(tǒng)可以學(xué)習(xí)所部署的全局模型所造成的系統(tǒng)錯(cuò)誤??梢钥紤]所收集的本地模型來訓(xùn)練改進(jìn)的全局模型。
該方面和其他方面的其他實(shí)施方式包括被配置為執(zhí)行編碼在計(jì)算機(jī)存儲(chǔ)設(shè)備上的方法的動(dòng)作的對(duì)應(yīng)系統(tǒng),裝置和計(jì)算機(jī)程序。一個(gè)或多個(gè)計(jì)算機(jī)的系統(tǒng)可以借助于安裝在系統(tǒng)上的、在操作中使得系統(tǒng)執(zhí)行動(dòng)作的軟件、固件、硬件或它們的組合來如此配置。一個(gè)或多個(gè)計(jì)算機(jī)程序借助于具有當(dāng)由數(shù)據(jù)處理裝置執(zhí)行時(shí)使得裝置執(zhí)行動(dòng)作的指令來如此配置。
在附圖和下面的描述中闡述了一個(gè)或多個(gè)實(shí)施方式的細(xì)節(jié)。其他潛在的特征和優(yōu)點(diǎn)將從描述、附圖、和權(quán)利要求變得顯而易見。
附圖說明
圖1A是示例系統(tǒng)的框圖。
圖1B是可以使用殘余數(shù)據(jù)來訓(xùn)練用戶的本地模型的示例系統(tǒng)的框圖。
圖1C是可以使用殘余數(shù)據(jù)來認(rèn)證用戶的身份的示例系統(tǒng)的框圖。
圖2是可以使用多個(gè)活動(dòng)的殘余數(shù)據(jù)來訓(xùn)練用戶的本地模型的示例系統(tǒng)的框圖。
圖3是圖示出用于導(dǎo)出本地模型的示例過程的流程圖。
圖4是圖示出用于基于主成分分析導(dǎo)出本地模型的示例過程的流程圖。
在各個(gè)附圖中相同的附圖標(biāo)記和名稱指示相同的元件。
具體實(shí)施方式
圖1A是示例系統(tǒng)100的框圖。系統(tǒng)100可以用于評(píng)估全局模型以確定用戶活動(dòng)的預(yù)期觀察。系統(tǒng)100還可以用于基于預(yù)期觀察和實(shí)際觀察之間的比較來確定殘余數(shù)據(jù)。全局模型是指使用來自操作一個(gè)或多個(gè)相應(yīng)計(jì)算設(shè)備的用戶集合的人口水平數(shù)據(jù)訓(xùn)練的模型。全局模型可以被傳送到特定用戶的特定計(jì)算設(shè)備并在其上本地評(píng)估。通過全局模型預(yù)測的預(yù)期觀察與用戶的實(shí)際觀察之間的比較提供了可以表示用戶的唯一特性的殘余數(shù)據(jù)。
系統(tǒng)100包括客戶端設(shè)備110、計(jì)算系統(tǒng)120、和網(wǎng)絡(luò)130。一般來說,計(jì)算系統(tǒng)120可以是遠(yuǎn)程服務(wù)器系統(tǒng),其基于經(jīng)訓(xùn)練的全局模型142提供代表性全局模型144到客戶端設(shè)備110。計(jì)算系統(tǒng)120包括模型訓(xùn)練模塊140,用于導(dǎo)出經(jīng)訓(xùn)練的全局模型142,以提供與訓(xùn)練用戶組相關(guān)聯(lián)的一個(gè)或多個(gè)活動(dòng)或行為的人口水平基線。由計(jì)算系統(tǒng)120執(zhí)行的功能可以由個(gè)體的計(jì)算機(jī)系統(tǒng)執(zhí)行或者可以分布在多個(gè)計(jì)算機(jī)系統(tǒng)上。
在系統(tǒng)100中,客戶端設(shè)備110可以是例如桌面型計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、可穿戴計(jì)算機(jī)、蜂窩電話、智能電話、音樂播放器、電子書閱讀器、導(dǎo)航系統(tǒng)或任何其它適當(dāng)?shù)挠?jì)算設(shè)備。在一些實(shí)施方式中,客戶端設(shè)備110可以包括用于測量客戶端設(shè)備110的用戶的一個(gè)或多個(gè)特性的一個(gè)或多個(gè)傳感器。例如,客戶端設(shè)備110可以包括加速度計(jì)、GPS接收器、陀螺儀、磁力計(jì)、麥克風(fēng)、觸摸面板、相機(jī)、用戶操作(例如,鍵盤、應(yīng)用使用等)或任何其它適當(dāng)?shù)膫鞲衅鳌T谝恍?shí)施方式中,對(duì)用戶的活動(dòng)的觀察包括在活動(dòng)期間來自用戶的一個(gè)或多個(gè)測量特性的組合。在一些實(shí)施方式中,觀察可以包括由一個(gè)或多個(gè)軟件模塊或引擎處理的一個(gè)或多個(gè)測量特性的組合?;顒?dòng)的示例包括步行、跑步、駕駛、發(fā)短信、在電話上說話、記錄照片、記錄視頻、或客戶端設(shè)備110可以測量的任何其他活動(dòng)。
在一些實(shí)施方式中,客戶端設(shè)備110(例如,用戶的電話)可以從計(jì)算系統(tǒng)120接收代表性全局模型144,其中代表性全局模型144可以是經(jīng)訓(xùn)練的全局模型142的壓縮或簡化版本。客戶端設(shè)備110包括用于確定殘余數(shù)據(jù)158的殘余模塊150??蛻舳嗽O(shè)備110可以存儲(chǔ)代表性全局模型144,并且本地地評(píng)估代表性全局模型144并確定殘余數(shù)據(jù)158,而不與遠(yuǎn)程服務(wù)器系統(tǒng)(例如,計(jì)算系統(tǒng)120)進(jìn)行通信。結(jié)果,可以從遠(yuǎn)程服務(wù)器系統(tǒng)阻止用戶102的具體觀察。此外,如下面參考圖1B更詳細(xì)地描述的,殘余數(shù)據(jù)158可以用于訓(xùn)練用戶102的本地模型以提供用戶102的更準(zhǔn)確的表示。
網(wǎng)絡(luò)130可以是有線的或無線的或兩者的組合。網(wǎng)絡(luò)130可以包括例如無線蜂窩網(wǎng)絡(luò)、無線局域網(wǎng)(WLAN)或Wi-Fi網(wǎng)絡(luò)、第三代(3G)或第四代(4G)移動(dòng)電信網(wǎng)絡(luò)、有線以太網(wǎng)網(wǎng)絡(luò)、諸如內(nèi)聯(lián)網(wǎng)的專用網(wǎng)絡(luò)、諸如互聯(lián)網(wǎng)的公共網(wǎng)絡(luò)或者網(wǎng)絡(luò)的任何適當(dāng)組合。
圖1A還圖示出了階段(A)至(F)所示的示例性數(shù)據(jù)流。階段(A)至(F)可以以所圖示的序列發(fā)生,或者它們可以以與所圖示序列不同的合適序列發(fā)生。在一些實(shí)施方式中,階段(A)至(F)中的一個(gè)或多個(gè)可以離線發(fā)生,其中計(jì)算系統(tǒng)120或客戶端設(shè)備110可以在客戶端設(shè)備110未連接到網(wǎng)絡(luò)130時(shí)執(zhí)行計(jì)算。
在階段(A)期間,計(jì)算系統(tǒng)120獲得人口水平訓(xùn)練數(shù)據(jù)122的集合,并將人口水平訓(xùn)練數(shù)據(jù)122輸入到模型訓(xùn)練模塊140。一般來說,人口水平訓(xùn)練數(shù)據(jù)122表示由多個(gè)客戶端設(shè)備收集的多個(gè)觀察,其中所述觀察與由用戶集合中的每一個(gè)用戶執(zhí)行的一個(gè)或多個(gè)活動(dòng)相關(guān)聯(lián)。在一些實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以由計(jì)算系統(tǒng)120存儲(chǔ)并可訪問。例如,客戶端設(shè)備可以包括一個(gè)或多個(gè)傳感器,用于測量定向、位置、運(yùn)動(dòng)、速度、打字模式、電話使用或其他客戶端設(shè)備可測量的參數(shù)。這些測量可以與由客戶端設(shè)備的用戶執(zhí)行的活動(dòng)相關(guān),以生成對(duì)活動(dòng)的觀察。來自多個(gè)客戶端設(shè)備的觀察可以被聚合以形成人口水平訓(xùn)練數(shù)據(jù)122的集合。在一些實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以包括由用戶執(zhí)行的單個(gè)觀察。在一些其他實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以包括由相同用戶執(zhí)行的多個(gè)觀察。
在一些實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以包括與活動(dòng)相關(guān)聯(lián)的特定類型的測量數(shù)據(jù)。在一些其他實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以包括與活動(dòng)相關(guān)聯(lián)的多種類型的測量數(shù)據(jù)。在一些實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以包括表示用戶集合的人口統(tǒng)計(jì)數(shù)據(jù)的數(shù)據(jù)。例如,計(jì)算系統(tǒng)120可以基于人口水平訓(xùn)練數(shù)據(jù)122的用戶的性別來選擇訓(xùn)練數(shù)據(jù)。在一些實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以是匿名的。
在一些實(shí)施方式中,人口水平訓(xùn)練數(shù)據(jù)122可以被標(biāo)準(zhǔn)化為指定的格式。例如,從不同制造商制造的客戶端設(shè)備收集的訓(xùn)練數(shù)據(jù)可以在聚合成人口水平訓(xùn)練數(shù)據(jù)122之前被標(biāo)準(zhǔn)化為標(biāo)準(zhǔn)格式。作為另一示例,從運(yùn)行不同操作系統(tǒng)的客戶端設(shè)備收集的訓(xùn)練數(shù)據(jù)可以在聚合成人口水平訓(xùn)練數(shù)據(jù)122之前被標(biāo)準(zhǔn)化為標(biāo)準(zhǔn)格式。在一些實(shí)施方式中,多種類型的測量數(shù)據(jù)可以被標(biāo)準(zhǔn)化為特定格式。例如,與用戶的特定活動(dòng)相關(guān)聯(lián)的多種類型的測量數(shù)據(jù)可以由單個(gè)向量表示。在一些實(shí)施方式中,可以將一個(gè)或多個(gè)權(quán)重分配給多種類型的測量數(shù)據(jù)中的一種或多種。
在階段(B)期間,計(jì)算系統(tǒng)120的模型訓(xùn)練模塊140使用人口水平訓(xùn)練數(shù)據(jù)122來訓(xùn)練全局模型,得到經(jīng)訓(xùn)練的全局模型142。例如,模型訓(xùn)練模塊140可以基于主成分分析(PCA)來訓(xùn)練全局模型。作為另一示例,可以基于隨機(jī)梯度下降來訓(xùn)練非時(shí)間序列全局模型。非時(shí)間序列模型的示例的描述可以在Proceedings of the International Joint Conference on Artificial Intelligence,IJCAI(2011)(人工智能國際聯(lián)合會(huì)議記錄)的Weston等人的“Wsabie:Scaling Up To Large Vocabulary Image Annotation(擴(kuò)展到大詞匯圖像標(biāo)注)”中找到。作為另一示例,可以使用向量值的人口水平訓(xùn)練數(shù)據(jù)來訓(xùn)練諸如循環(huán)神經(jīng)網(wǎng)絡(luò)的時(shí)間序列全局模型。示例時(shí)間序列模型的描述可以在CoRR abs/1308.0850的Graves等人的“Generating sequences with recurrent neural networks(遞歸神經(jīng)網(wǎng)絡(luò)的生成序列)”中找到。在一些實(shí)施方式中,基于與特定活動(dòng)相關(guān)聯(lián)的人口水平訓(xùn)練數(shù)據(jù)122來訓(xùn)練全局模型。在一些其他實(shí)施方式中,基于與多個(gè)活動(dòng)相關(guān)聯(lián)的人口水平訓(xùn)練數(shù)據(jù)122來訓(xùn)練全局模型。
在訓(xùn)練期間,可以提供一個(gè)或多個(gè)目標(biāo)函數(shù)124作為對(duì)模型訓(xùn)練模塊140的輸入。在一些實(shí)施方式中,目標(biāo)函數(shù)124可以是被指定作為經(jīng)訓(xùn)練的全局模型在訓(xùn)練之后應(yīng)產(chǎn)生的預(yù)期輸出的目標(biāo)向量。目標(biāo)函數(shù)124可以指定用于優(yōu)化經(jīng)訓(xùn)練的全局模型142的閾值。例如,目標(biāo)函數(shù)124可以指定用于基于PCA導(dǎo)出全局模型的信號(hào)和噪聲方差的最小信噪比。目標(biāo)函數(shù)124可以提供用于在經(jīng)訓(xùn)練的全局模型142中對(duì)人口水平訓(xùn)練數(shù)據(jù)122進(jìn)行分類的一個(gè)或多個(gè)條件。例如,目標(biāo)函數(shù)124可以指定用于表征用戶正在行走的第一條件,并且可以指定用于表征用戶正在跑步的第二條件。
滿足一個(gè)或多個(gè)目標(biāo)函數(shù)124的模型可以被指定為經(jīng)訓(xùn)練的全局模型142。在一些實(shí)施方式中,模型訓(xùn)練模塊140的參數(shù)由計(jì)算系統(tǒng)120自動(dòng)調(diào)整。在一些其他實(shí)施方式中,模型訓(xùn)練模塊140的參數(shù)由計(jì)算系統(tǒng)120的操作者手動(dòng)調(diào)整。
在階段(C)期間,一旦已經(jīng)訓(xùn)練了全局模型,則基于經(jīng)訓(xùn)練的全局模型142的代表性全局模型144通過網(wǎng)絡(luò)130從計(jì)算系統(tǒng)120傳送到客戶端設(shè)備110。在一些實(shí)施方式中,代表性全局模型144可以是經(jīng)訓(xùn)練的全局模型142的壓縮或簡化版本,使得代表性全局模型144可包括經(jīng)訓(xùn)練的全局模型142的一部分或子集。例如,如果經(jīng)訓(xùn)練的全局模型142在PCA下被訓(xùn)練為具有m個(gè)正交軸的向量空間,則代表性全局模型144可以包括具有(m-1)個(gè)正交軸的向量空間,其中m是大于1的整數(shù)。
在階段(D)期間,操作客戶端設(shè)備110的用戶102向客戶端設(shè)備110提供活動(dòng)數(shù)據(jù)152。活動(dòng)數(shù)據(jù)152可以是在用戶102執(zhí)行特定活動(dòng)的同時(shí)由客戶端設(shè)備110上的一個(gè)或多個(gè)傳感器測量的數(shù)據(jù)。在一些實(shí)施方式中,活動(dòng)數(shù)據(jù)152包括與活動(dòng)相關(guān)聯(lián)的特定類型的測量數(shù)據(jù)。在一些其它實(shí)施方式中,活動(dòng)數(shù)據(jù)152包括與活動(dòng)相關(guān)聯(lián)的多種類型的測量數(shù)據(jù)??蛻舳嗽O(shè)備110可以與用戶102驗(yàn)證以確認(rèn)用戶102已經(jīng)執(zhí)行了特定活動(dòng)。在一些實(shí)施方式中,客戶端設(shè)備110存儲(chǔ)活動(dòng)數(shù)據(jù)152。
活動(dòng)數(shù)據(jù)152可以包括在單個(gè)觀察上測量的數(shù)據(jù)。替選地,活動(dòng)數(shù)據(jù)152可以包括在多個(gè)觀察上測量的數(shù)據(jù)。例如,用戶102可以帶著客戶端設(shè)備110在幾天內(nèi)的一段時(shí)間內(nèi)慢跑?;顒?dòng)數(shù)據(jù)152可以包括在一天中的一次跑步期間測量的數(shù)據(jù)或在多天中的多次跑步期間測量的數(shù)據(jù)。
客戶端設(shè)備110可以將活動(dòng)數(shù)據(jù)152標(biāo)準(zhǔn)化為特定格式。另外,一個(gè)或多個(gè)權(quán)重可以被分配給活動(dòng)數(shù)據(jù)152的一個(gè)或多個(gè)測量。
在階段(E)期間,客戶端設(shè)備110評(píng)估代表性全局模型144以確定預(yù)期輸出數(shù)據(jù)156。通常,預(yù)期輸出數(shù)據(jù)156表示與用戶102執(zhí)行的活動(dòng)相關(guān)聯(lián)的特性的預(yù)測。在在一些實(shí)施方式中,預(yù)期輸出數(shù)據(jù)156可以是向量。例如,代表性全局模型144可以是具有基于PCA的(m-1)個(gè)主軸的降維向量空間的模型,其中沿著每個(gè)主軸的數(shù)據(jù)是高斯分布的。代表性全局模型144可以確定降維向量空間中的取平均值的向量,然后將取平均值的向量投影回具有m個(gè)正交軸的原始向量空間。預(yù)期輸出數(shù)據(jù)156可以是原始向量空間中的投影向量。
在一些實(shí)施方式中,客戶端設(shè)備110可以將用戶102的簡檔數(shù)據(jù)輸入到代表性全局模型144以確定預(yù)期輸出數(shù)據(jù)156。例如,客戶端設(shè)備110可以將用戶102的年齡輸入到代表性全局模型144以確定用戶102的年齡組的預(yù)期輸出數(shù)據(jù)156。該確定在客戶端設(shè)備110上本地執(zhí)行,并且因此用戶的簡檔不被傳送到計(jì)算系統(tǒng)120。
在階段(F)期間,客戶端設(shè)備110的殘余模塊150比較活動(dòng)數(shù)據(jù)152和來自代表性全局模型144的預(yù)期輸出數(shù)據(jù)156,并且確定殘余數(shù)據(jù)158。通常,殘余數(shù)據(jù)158表示用戶102的個(gè)性簽名。一些實(shí)施方式中,殘余模塊150通過確定活動(dòng)數(shù)據(jù)152和預(yù)期輸出數(shù)據(jù)156之間的差異來確定殘余數(shù)據(jù)158。例如,殘余模塊150可以通過確定活動(dòng)數(shù)據(jù)152的第一向量和表示預(yù)期輸出數(shù)據(jù)156的第二向量之間的向量距離來確定殘余數(shù)據(jù)158。
圖1B是可以使用殘余數(shù)據(jù)來訓(xùn)練用戶102的本地模型的示例系統(tǒng)100的框圖。一般來說,模型(例如,全局模型或本地模型)可以指代任何可逆的表示模型f(x),其中在給定由f(x)輸出表示的情況下,可以找到最大似然偽觀察f-1(f(x))。例如,可以訓(xùn)練本地模型以預(yù)測被賦值f-1(f(x))-x的向量。在一些實(shí)施方式中,模型可以指代不可逆的表示模型f(x),但是可以將推理函數(shù)g應(yīng)用于f(x)輸出的表示以估計(jì)偽觀察g(f(x))。例如,全局模型或本地模型可以是具有多個(gè)隱藏層的神經(jīng)網(wǎng)絡(luò),使得反轉(zhuǎn)輸出可能是有挑戰(zhàn)性的,但是可以將推理函數(shù)應(yīng)用于輸出以估計(jì)輸入觀察。
一般來說,客戶端設(shè)備110包括模型訓(xùn)練模塊160,其被配置為訓(xùn)練比代表性全局模型144更精確地表示用戶102的本地模型。本地模型可以作為用戶102的表示被傳送到計(jì)算系統(tǒng)120而不公開在觀察期間測量的實(shí)際數(shù)據(jù)。有利地,用戶102的隱私受到保護(hù),因?yàn)閷?shí)際觀察被本地存儲(chǔ)在客戶端設(shè)備110中,并且不被傳送到計(jì)算系統(tǒng)120。在一些實(shí)施方式中,用戶102可以控制向計(jì)算系統(tǒng)公開實(shí)際觀察120。
圖1B還圖示出了階段(G)至(I)中所示的示例性數(shù)據(jù)流。階段(G)至(I)可以以所圖示的序列發(fā)生,或者它們可以以與所示序列不同的合適序列發(fā)生。在一些實(shí)施方式中,階段(G)到(I)中的一個(gè)或多個(gè)可以離線發(fā)生,其中計(jì)算系統(tǒng)120或客戶端設(shè)備110可以在客戶端設(shè)備110未連接到網(wǎng)絡(luò)130時(shí)執(zhí)行計(jì)算。
在階段(G)期間,客戶端設(shè)備110將殘余數(shù)據(jù)158、代表性全局模型144、和一個(gè)或多個(gè)目標(biāo)函數(shù)162輸入到模型訓(xùn)練模塊160。在階段(H)期間,模型訓(xùn)練模塊160為用戶102確定經(jīng)訓(xùn)練的本地模型164。在一些實(shí)施方式中,本地模型的訓(xùn)練過程類似于全局模型的訓(xùn)練過程。例如,使用PCA,模型訓(xùn)練模塊160可以使用殘余數(shù)據(jù)158來確定代表性全局模型144的經(jīng)更新的主軸,其最小化來自實(shí)際觀察的信號(hào)和噪聲方差的信噪比。在一些實(shí)施方式中,用于本地模型的訓(xùn)練過程可以使用不同的模型類。例如,模型訓(xùn)練模塊160可以使用殘余數(shù)據(jù)158來確定與不同活動(dòng)相關(guān)聯(lián)的本地模型。
訓(xùn)練過程可以在用戶102沒有操作客戶端設(shè)備110時(shí)發(fā)生。替選地或補(bǔ)充地,訓(xùn)練過程可以在客戶端設(shè)備110連接到電源插座時(shí)發(fā)生。在一些實(shí)施方式中,客戶端設(shè)備110批量地執(zhí)行訓(xùn)練過程,其中可以針對(duì)不同的活動(dòng)訓(xùn)練多個(gè)本地模型。在一些實(shí)施方式中,客戶端設(shè)備110在接收到殘余數(shù)據(jù)158時(shí)立即執(zhí)行訓(xùn)練過程。在一些實(shí)施方式中,客戶端設(shè)備110定期地執(zhí)行訓(xùn)練過程。
在一些實(shí)施方式中,模型訓(xùn)練模塊160隨時(shí)間更新經(jīng)訓(xùn)練的本地模型164。例如,如果用戶102每天進(jìn)行一次跑步,則殘余模塊150可以將表示這些跑步的實(shí)際觀察的數(shù)據(jù)與由當(dāng)前經(jīng)訓(xùn)練的本地模型164確定的預(yù)期輸出數(shù)據(jù)進(jìn)行比較。殘余模塊150可以確定更新的殘余數(shù)據(jù),其中模型訓(xùn)練模塊160可以相應(yīng)地確定更新的本地模型。該過程允許客戶端設(shè)備110捕獲用戶102可能隨著時(shí)間經(jīng)歷的姿勢或其他改變。
在階段(I)期間,客戶端設(shè)備110將代表性本地模型166傳送到計(jì)算系統(tǒng)120。在一些實(shí)施方式中,代表性本地模型166不同于經(jīng)訓(xùn)練的本地模型164。例如,代表性本地模型166可以是經(jīng)訓(xùn)練的本地模型164的壓縮版本。作為另一示例,客戶端設(shè)備110可以從經(jīng)訓(xùn)練的本地模型164中移除關(guān)于用戶102的私人信息,以生成代表性本地模型166。
雖然在圖1B中未示出,但是在一些實(shí)施方式中,本地模型由計(jì)算系統(tǒng)120訓(xùn)練。例如,客戶端設(shè)備110可以向計(jì)算系統(tǒng)120傳送殘余數(shù)據(jù)158,其中計(jì)算系統(tǒng)120可以使用殘余數(shù)據(jù)158在訓(xùn)練經(jīng)更新的模型中作為訓(xùn)練數(shù)據(jù)或目標(biāo)函數(shù)以用于表示用戶102。
圖1C是可以使用殘余數(shù)據(jù)來認(rèn)證用戶的身份的示例系統(tǒng)101的框圖。一般來說,在客戶端設(shè)備110已經(jīng)確定了殘余數(shù)據(jù)158之后,客戶端設(shè)備110可以將在稍后時(shí)間生成的新的殘余數(shù)據(jù)與殘余數(shù)據(jù)158進(jìn)行比較以驗(yàn)證用戶102的身份??蛻舳嗽O(shè)備110包括驗(yàn)證模塊170,其被配置為基于用戶102的特殊習(xí)慣來驗(yàn)證用戶102的身份。
圖1C還圖示出了階段(J)至(O)所示的示例性數(shù)據(jù)流。階段(J)至(O)可以以所圖示的序列發(fā)生,或者它們可以以與所圖示序列不同的合適序列發(fā)生。在一些實(shí)施方式中,階段(J)到(O)中的一個(gè)或多個(gè)可以離線發(fā)生,其中客戶端設(shè)備110可以在客戶端設(shè)備110未連接到網(wǎng)絡(luò)130時(shí)執(zhí)行計(jì)算。
在階段(J)期間,用戶102執(zhí)行活動(dòng),并且客戶端設(shè)備110測量和收集第二活動(dòng)數(shù)據(jù)172。例如,當(dāng)行走時(shí),用戶102可以將客戶端設(shè)備110保持在特定定向??蛻舳嗽O(shè)備110可以連續(xù)地或定期地測量客戶端設(shè)備110的定向。作為另一示例,當(dāng)跑步時(shí),用戶102可以以特定范圍的速度移動(dòng)??蛻舳嗽O(shè)備110可以連續(xù)地或定期地測量客戶端設(shè)備110的移動(dòng)。作為另一示例,當(dāng)在客戶端設(shè)備110上說話時(shí),用戶102可以以一個(gè)或多個(gè)語音特征談話。客戶端設(shè)備110可以測量用戶的話語并且連續(xù)地或定期地分析語音特征。在階段(K)期間,第二活動(dòng)172和預(yù)期輸出數(shù)據(jù)156用作殘余模塊150的輸入。在階段(L)期間,殘余模塊150確定第二殘余數(shù)據(jù)178。
在階段(M)期間,殘余數(shù)據(jù)158和第二殘余數(shù)據(jù)178被用作驗(yàn)證模塊180的輸入。在階段(N)期間,驗(yàn)證模塊180確定第二殘余數(shù)據(jù)178是否基本上與用戶102的殘余數(shù)據(jù)158匹配。在一些實(shí)施方式中,如果第二殘余數(shù)據(jù)178和殘余數(shù)據(jù)158之間的差異滿足閾值條件,則第二殘余數(shù)據(jù)178基本上與殘余數(shù)據(jù)158匹配。驗(yàn)證模塊180可以輸出驗(yàn)證結(jié)果182。
在階段(O)期間,客戶端設(shè)備110可以向用戶102提供表示驗(yàn)證結(jié)果182的指示。在一些實(shí)施方式中,如果客戶端設(shè)備110已經(jīng)接受了用戶102的身份,則客戶端設(shè)備110可以向用戶102發(fā)送驗(yàn)證成功的視覺或音頻指示。在一些其他實(shí)施方式中,如果客戶端設(shè)備110已經(jīng)接受用戶102的身份,則客戶端設(shè)備110可以繼續(xù)其操作,而不向用戶102呈現(xiàn)驗(yàn)證結(jié)果182。
如果客戶端設(shè)備110已經(jīng)拒絕了用戶102的身份,則客戶端設(shè)備110可以向用戶102發(fā)送驗(yàn)證被拒絕的視覺或音頻指示。在一些實(shí)施方式中,如果客戶端設(shè)備110已經(jīng)拒絕了用戶102的身份,則客戶端設(shè)備110提示用戶102驗(yàn)證用戶102的身份的另一種方式。如果嘗試次數(shù)超過閾值,則客戶端設(shè)備110可以不允許用戶102進(jìn)一步嘗試驗(yàn)證用戶的身份。
圖2是使用多個(gè)活動(dòng)的殘余數(shù)據(jù)來訓(xùn)練用戶的本地模型的示例系統(tǒng)200的框圖。一般來說,計(jì)算系統(tǒng)120可以為每個(gè)活動(dòng)訓(xùn)練相應(yīng)的全局模型。一旦客戶端系統(tǒng)110確定與每個(gè)活動(dòng)相關(guān)聯(lián)的特殊習(xí)慣或殘余數(shù)據(jù),可以訓(xùn)練綜合用戶模型以表示用戶的綜合簡檔。例如,客戶端設(shè)備110可以使用綜合用戶模型來對(duì)正由用戶執(zhí)行的各種活動(dòng)進(jìn)行分類。作為另一示例,如果多個(gè)綜合用戶模型已經(jīng)存儲(chǔ)在客戶端設(shè)備110中,則客戶端設(shè)備110可以通過特定用戶的特殊習(xí)慣來識(shí)別多個(gè)潛在用戶中的特定用戶。
系統(tǒng)200包括綜合模型訓(xùn)練模塊207,其被配置為接收多個(gè)殘余數(shù)據(jù)201a-201n作為輸入,并確定用戶模型209作為輸出。在一些實(shí)施方式中,可以在客戶端設(shè)備(例如,圖1B的客戶端設(shè)備110)上訓(xùn)練用戶模型209。在一些其他實(shí)施方式中,可以在計(jì)算系統(tǒng)(例如,圖1A的計(jì)算系統(tǒng)120)上訓(xùn)練用戶模型209。
在一些實(shí)施方式中,綜合模型訓(xùn)練模塊207接收一個(gè)或多個(gè)附加輸入信號(hào)203作為輸入。輸入信號(hào)203可以包括綜合模型訓(xùn)練模塊207可以用來生成用戶模型209的數(shù)據(jù)、模型、目標(biāo)函數(shù)或其他信號(hào)中的一個(gè)或多個(gè)。例如,輸入信號(hào)203可以包括一個(gè)或更多的活動(dòng)的預(yù)期輸出。作為另一示例,輸入信號(hào)203可以包括一個(gè)或多個(gè)活動(dòng)的實(shí)際觀察。作為另一示例,輸入信號(hào)203可以包括用于一個(gè)或多個(gè)活動(dòng)的一個(gè)或多個(gè)全局模型和/或一個(gè)或多個(gè)本地模型。
在一些實(shí)施方式中,綜合模型訓(xùn)練模塊207隨時(shí)間更新用戶模型209。例如,綜合模型訓(xùn)練模塊207可以定期地更新用戶模型209。替選地,在另一示例中,綜合模型訓(xùn)練模塊207可以響應(yīng)于正被更新的一個(gè)或多個(gè)活動(dòng)的殘余數(shù)據(jù)來更新用戶模型209。
圖3是圖示出用于導(dǎo)出本地模型的示例過程300的流程圖。過程300可以由數(shù)據(jù)處理裝置執(zhí)行,諸如上述客戶端設(shè)備110。替選地或補(bǔ)充地,過程300可以由計(jì)算系統(tǒng)120或另一數(shù)據(jù)處理裝置執(zhí)行。
系統(tǒng)獲得特定活動(dòng)的全局模型(302)。在一些實(shí)施方式中,可以基于表示與由用戶集合執(zhí)行的特定活動(dòng)相關(guān)聯(lián)的多個(gè)觀察的輸入數(shù)據(jù)來導(dǎo)出全局模型。例如,客戶端設(shè)備110可以從計(jì)算系統(tǒng)120接收代表性全局模型144。
系統(tǒng)使用全局模型來確定表示與特定用戶所執(zhí)行的特定活動(dòng)相關(guān)聯(lián)的預(yù)期觀察的預(yù)期數(shù)據(jù)(304)。例如,客戶端設(shè)備110可以使用代表性全局模型144來確定預(yù)期輸出數(shù)據(jù)156。
系統(tǒng)接收表示與特定用戶所執(zhí)行的特定活動(dòng)相關(guān)聯(lián)的實(shí)際觀察的特定數(shù)據(jù)(306)。例如,客戶端設(shè)備110可以從用戶102接收活動(dòng)數(shù)據(jù)152。
系統(tǒng)使用(i)預(yù)期數(shù)據(jù)和(ii)特定數(shù)據(jù)來確定殘余數(shù)據(jù)(308)。例如,殘余模塊150可以基于活動(dòng)數(shù)據(jù)152和預(yù)期輸出數(shù)據(jù)156來確定殘余數(shù)據(jù)158。
在一些實(shí)施方式中,系統(tǒng)基于預(yù)期數(shù)據(jù)和特定數(shù)據(jù)之間的差異確定殘余數(shù)據(jù)。例如,如果預(yù)期輸出數(shù)據(jù)156和活動(dòng)數(shù)據(jù)152是相等維度的向量,則殘余模塊150可以基于兩個(gè)向量之間的差異來確定殘余數(shù)據(jù)158。
在一些實(shí)施方式中,系統(tǒng)接收與特定活動(dòng)相關(guān)聯(lián)的第二特定數(shù)據(jù)。例如,客戶端設(shè)備110可以從用戶102接收第二活動(dòng)數(shù)據(jù)172。系統(tǒng)可以使用(i)預(yù)期數(shù)據(jù)和(ii)第二特定數(shù)據(jù)來確定第二殘余數(shù)據(jù)。例如,殘余模塊150可以基于第二活動(dòng)數(shù)據(jù)172和預(yù)期輸出數(shù)據(jù)156來確定第二殘余數(shù)據(jù)178。系統(tǒng)可以確定第二殘余數(shù)據(jù)基本上不與殘余數(shù)據(jù)匹配。例如,驗(yàn)證模塊180可以確定第二殘余數(shù)據(jù)178基本上不與殘余數(shù)據(jù)158匹配。在一些實(shí)施方式中,如果第二殘余數(shù)據(jù)178和殘余數(shù)據(jù)158之間的差異不滿足閾值,則第二殘余數(shù)據(jù)178基本上不與殘余數(shù)據(jù)158匹配。響應(yīng)于確定第二殘余數(shù)據(jù)基本上不與殘余數(shù)據(jù)匹配,系統(tǒng)可以確定特定用戶的身份未被驗(yàn)證。例如,驗(yàn)證模塊180可輸出驗(yàn)證結(jié)果182,并向用戶通知用戶102的身份未被驗(yàn)證。
系統(tǒng)基于殘余數(shù)據(jù)導(dǎo)出特定用戶的本地模型(310)。在一些實(shí)施方式中,本地模型可以由計(jì)算設(shè)備導(dǎo)出。例如,客戶端設(shè)備110的模型訓(xùn)練模塊160可以導(dǎo)出本地模型164。計(jì)算設(shè)備可以將特定用戶的本地模型作為特定用戶的表示傳送到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)。例如,客戶端設(shè)備110可以將代表性本地模型166傳送到計(jì)算系統(tǒng)120。
在一些實(shí)施方式中,計(jì)算設(shè)備可以將殘余數(shù)據(jù)傳送到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),其中本地模型可以由一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)導(dǎo)出。例如,客戶端設(shè)備110可以將殘余數(shù)據(jù)158傳送到計(jì)算系統(tǒng)120,其中計(jì)算系統(tǒng)120的模型訓(xùn)練模塊140可以為用戶102導(dǎo)出本地模型。
在一些實(shí)施方式中,系統(tǒng)使用本地模型確定特定預(yù)期數(shù)據(jù),所述特定預(yù)期數(shù)據(jù)表示與特定用戶執(zhí)行的特定活動(dòng)相關(guān)聯(lián)的預(yù)期觀察,其中由本地模型確定的特定預(yù)期數(shù)據(jù)基本上與特定數(shù)據(jù)匹配。例如,客戶端設(shè)備110可以使用經(jīng)訓(xùn)練的本地模型164來生成與活動(dòng)相關(guān)聯(lián)的預(yù)期輸出數(shù)據(jù),其中預(yù)期輸出數(shù)據(jù)基本上與活動(dòng)數(shù)據(jù)152匹配。如果特定預(yù)期數(shù)據(jù)和特定數(shù)據(jù)之間的差異滿足閾值,則特定預(yù)期數(shù)據(jù)可以被確定為基本上與特定數(shù)據(jù)匹配。
在一些實(shí)施方式中,系統(tǒng)獲得用于不同于特定活動(dòng)的第二活動(dòng)的第二全局模型。可基于第二輸入數(shù)據(jù)來導(dǎo)出第二全局模型,所述第二輸入數(shù)據(jù)表示與由多個(gè)用戶所執(zhí)行的第二活動(dòng)相關(guān)聯(lián)的多個(gè)觀察。系統(tǒng)可以使用第二全局模型來確定第二預(yù)期數(shù)據(jù),所述第二預(yù)期數(shù)據(jù)表示與用戶執(zhí)行的第二活動(dòng)相關(guān)聯(lián)的預(yù)期觀察。系統(tǒng)可以通過由特定用戶操作的計(jì)算設(shè)備來接收第二特定數(shù)據(jù),所述第二特定數(shù)據(jù)表示與特定用戶執(zhí)行的第二活動(dòng)相關(guān)聯(lián)的實(shí)際觀察。系統(tǒng)可以通過計(jì)算設(shè)備使用(i)第二預(yù)期數(shù)據(jù)和(ii)第二特定數(shù)據(jù)來確定特定用戶的第二殘余數(shù)據(jù)。
在一些實(shí)施方式中,系統(tǒng)可以至少基于(i)殘余數(shù)據(jù)和(ii)第二殘余數(shù)據(jù)來導(dǎo)出特定用戶的本地模型。例如,綜合模型訓(xùn)練模塊207可以基于殘余數(shù)據(jù)201a-n來導(dǎo)出用戶模型209。
圖4是圖示出用于基于主成分分析導(dǎo)出本地模型的示例過程400的流程圖。過程400可以由數(shù)據(jù)處理裝置(諸如上述系統(tǒng)100或另一數(shù)據(jù)處理裝置)執(zhí)行。
計(jì)算系統(tǒng)120接收人口水平訓(xùn)練數(shù)據(jù)(402)。例如,對(duì)于已經(jīng)執(zhí)行了特定活動(dòng)的所有訓(xùn)練用戶,相應(yīng)的客戶端設(shè)備可以向計(jì)算系統(tǒng)120提供總共n個(gè)觀察,其中n是等于或大于1的整數(shù)。每個(gè)觀察可以包括m種類型的測量結(jié)果,其中m是等于或大于1的整數(shù)。人口水平訓(xùn)練數(shù)據(jù)可以被構(gòu)造為m×n矩陣。
計(jì)算系統(tǒng)120將人口水平訓(xùn)練數(shù)據(jù)映射到m維向量空間,其中m可以是大于或等于1的整數(shù)(404)。例如,通過將m種測量結(jié)果中的每一種分配為一個(gè)維度,可以為n個(gè)觀察中的每一個(gè)分配大小為m的向量。計(jì)算系統(tǒng)120可以將n個(gè)向量映射到具有m個(gè)正交軸的向量空間。
計(jì)算系統(tǒng)120基于映射的人口水平訓(xùn)練數(shù)據(jù)確定一個(gè)或多個(gè)主軸(406)。例如,使用主分量分析,計(jì)算系統(tǒng)120可以找到協(xié)方差的特征向量以確定向量空間的主軸。
計(jì)算系統(tǒng)120導(dǎo)出具有降低的向量空間維度的全局模型(408)。例如,計(jì)算系統(tǒng)120可以確定沿每個(gè)主軸的方差。如果特定主軸的方差滿足閾值,則計(jì)算系統(tǒng)120可以確定沿著特定主軸的數(shù)據(jù)表示實(shí)質(zhì)數(shù)據(jù)。如果特定主軸的方差不滿足閾值,則計(jì)算系統(tǒng)120可以確定沿著特定主軸的數(shù)據(jù)表示噪聲,并且計(jì)算系統(tǒng)120可以從該向量空間移除特定主軸以降低向量空間的維度。例如,如果計(jì)算系統(tǒng)120確定一個(gè)主軸不攜帶實(shí)質(zhì)數(shù)據(jù),則計(jì)算系統(tǒng)120可以生成具有主軸為(m-1)個(gè)的向量空間的全局模型。因此,n個(gè)觀察被映射到降低的向量空間,其中每個(gè)向量具有(m-1)個(gè)元素。
客戶端設(shè)備110接收全局模型(410)。例如,客戶端設(shè)備110可以接收具有(m-1)個(gè)主軸且具有n個(gè)向量的降低的向量空間作為全局模型。
客戶端設(shè)備110確定預(yù)期數(shù)據(jù)(412)。例如,客戶端設(shè)備可以使用降低的向量空間中的n個(gè)向量來確定均值向量。均值向量具有(m-1)個(gè)元素。
客戶端設(shè)備110將預(yù)期數(shù)據(jù)重映射到m維向量空間(414)。例如,客戶端設(shè)備110可以將均值向量重新映射回具有m個(gè)正交軸的原始向量空間。重映射的均值向量表示執(zhí)行活動(dòng)的用戶的預(yù)期偽觀察。
客戶端設(shè)備110接收用戶數(shù)據(jù)(416)。例如,客戶端設(shè)備110可以在用戶102正在執(zhí)行活動(dòng)時(shí)從用戶102接收包括m種類型的測量數(shù)據(jù)的觀察。在一些實(shí)施方式中,客戶端設(shè)備110可以從用戶102接收k個(gè)觀察,其中k是等于或大于1的整數(shù)。
客戶端設(shè)備110將用戶數(shù)據(jù)映射到m維向量空間(418)。例如,客戶端設(shè)備110可以將實(shí)際觀察映射到原始向量空間。
客戶端設(shè)備110確定殘余數(shù)據(jù)(420)。例如,客戶端設(shè)備110可以確定映射的實(shí)際觀察和重新映射的均值向量之間的向量距離作為殘余數(shù)據(jù)。
客戶端設(shè)備110導(dǎo)出本地模型(422)。例如,客戶端設(shè)備110可以在導(dǎo)出用戶102的本地模型時(shí)使用向量距離作為訓(xùn)練目標(biāo)。
已經(jīng)描述了多種實(shí)施方式。然而,應(yīng)當(dāng)理解,在不脫離本公開的精神和范圍的情況下可以進(jìn)行各種修改。例如,可以使用上面所示的各種形式的流程,其中重新排序、添加或移除步驟。
本說明書中描述的實(shí)施例和所有功能操作可以實(shí)現(xiàn)在數(shù)字電子電路中或在計(jì)算機(jī)軟件、固件或硬件中,包括本說明書中公開的結(jié)構(gòu)及其結(jié)構(gòu)等同物或者它們的一個(gè)或多個(gè)更多的組合。實(shí)施例可以實(shí)現(xiàn)為一個(gè)或多個(gè)計(jì)算機(jī)程序產(chǎn)品,即,編碼在計(jì)算機(jī)可讀介質(zhì)上的用于由數(shù)據(jù)處理裝置執(zhí)行或控制數(shù)據(jù)處理裝置的操作的計(jì)算機(jī)程序指令的一個(gè)或多個(gè)模塊。計(jì)算機(jī)可讀介質(zhì)可以是機(jī)器可讀存儲(chǔ)設(shè)備、機(jī)器可讀存儲(chǔ)基板、存儲(chǔ)器設(shè)備、影響機(jī)器可讀傳播信號(hào)的物質(zhì)組成、或它們中的一個(gè)或多個(gè)的組合。計(jì)算機(jī)可讀介質(zhì)可以是非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)。術(shù)語“數(shù)據(jù)處理裝置”包括用于處理數(shù)據(jù)的所有種類的裝置、設(shè)備和機(jī)器,例如包括可編程處理器、計(jì)算機(jī)或多個(gè)處理器或計(jì)算機(jī)。除硬件之外,該裝置可以包括創(chuàng)建用于討論中的計(jì)算機(jī)程序的執(zhí)行環(huán)境的代碼,例如構(gòu)成處理器固件、協(xié)議棧、數(shù)據(jù)庫管理系統(tǒng)、操作系統(tǒng)、或它們中的一個(gè)或多個(gè)的組合的代碼。傳播信號(hào)是人工生成的信號(hào),例如,機(jī)器生成的電、光、或電磁信號(hào),其被生成以編碼用于傳輸?shù)胶线m的接收機(jī)設(shè)備的信息。
計(jì)算機(jī)程序(也稱為程序、軟件、軟件應(yīng)用、腳本或代碼)可以以任何形式的編程語言編寫,包括編譯或解釋語言、聲明性或過程語言,并且它可以以任何形式部署,包括作為獨(dú)立程序或作為適于在計(jì)算環(huán)境中使用的模塊、組件、子例程、或其他單元。計(jì)算機(jī)程序可以但不需要對(duì)應(yīng)于文件系統(tǒng)中的文件。程序可以存儲(chǔ)在保存其他程序或數(shù)據(jù)的文件的一部分中(例如,存儲(chǔ)在標(biāo)記語言文檔中的一個(gè)或多個(gè)腳本)、在專用于所述程序的單個(gè)文件中或者在多個(gè)協(xié)同文件中(例如,存儲(chǔ)一個(gè)或多個(gè)模塊、子程序、或代碼部分的文件)。計(jì)算機(jī)程序可以被部署為在一個(gè)計(jì)算機(jī)上或在位于一個(gè)地點(diǎn)或分布在多個(gè)地點(diǎn)并通過通信網(wǎng)絡(luò)互連的多個(gè)計(jì)算機(jī)上執(zhí)行。
本說明書中描述的過程和邏輯流程可以由一個(gè)或多個(gè)可編程處理器執(zhí)行,該一個(gè)或多個(gè)可編程處理器執(zhí)行一個(gè)或多個(gè)計(jì)算機(jī)程序以通過對(duì)輸入數(shù)據(jù)進(jìn)行操作并生成輸出來執(zhí)行動(dòng)作。過程和邏輯流程也可以由專用邏輯電路(例如,F(xiàn)PGA(現(xiàn)場可編程門陣列)或ASIC(專用集成電路))來執(zhí)行,并且裝置也可以實(shí)現(xiàn)為專用邏輯電路。
適合于執(zhí)行計(jì)算機(jī)程序的處理器包括例如通用和專用微處理器以及任何種類的數(shù)字計(jì)算機(jī)的任何一個(gè)或多個(gè)處理器。通常,處理器將從只讀存儲(chǔ)器或隨機(jī)存取存儲(chǔ)器或兩者接收指令和數(shù)據(jù)。計(jì)算機(jī)的基本元件是用于執(zhí)行指令的處理器和用于存儲(chǔ)指令和數(shù)據(jù)的一個(gè)或多個(gè)存儲(chǔ)器設(shè)備。通常,計(jì)算機(jī)還將包括用于存儲(chǔ)數(shù)據(jù)的一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備,例如,磁盤、磁光盤或光盤,或者計(jì)算機(jī)可操作地耦合以從其接收數(shù)據(jù)或向其傳送數(shù)據(jù)或兩者。然而,計(jì)算機(jī)不需要具有這樣的設(shè)備。此外,計(jì)算機(jī)可以嵌入在另一設(shè)備中,該另一個(gè)設(shè)備例如是平板計(jì)算機(jī)、移動(dòng)電話、個(gè)人數(shù)字助理(PDA)、移動(dòng)音頻播放器、全球定位系統(tǒng)(GPS)接收器,這里僅舉了幾個(gè)例子。用于存儲(chǔ)計(jì)算機(jī)程序指令和數(shù)據(jù)的設(shè)備包括所有形式的非易失性存儲(chǔ)器、介質(zhì)和存儲(chǔ)設(shè)備,例如包括:半導(dǎo)體存儲(chǔ)器設(shè)備,例如EPROM,EEPROM和閃存設(shè)備;磁盤,例如,內(nèi)部硬盤或可移動(dòng)盤;磁光盤;以及,CD-ROM和DVD-ROM盤。處理器和存儲(chǔ)器可以由專用邏輯電路補(bǔ)充或并入專用邏輯電路中。
為了提供與用戶的交互,實(shí)施例可以實(shí)現(xiàn)在計(jì)算機(jī)上,該計(jì)算機(jī)具有:用于向用戶顯示信息的顯示設(shè)備(例如,CRT(陰極射線管)或LCD(液晶顯示器)監(jiān)視器);以及,鍵盤和例如鼠標(biāo)或軌跡球的指示設(shè)備,用戶可以通過該指示設(shè)備向計(jì)算機(jī)提供輸入。其他類型的設(shè)備也可以用于提供與用戶的交互;例如,提供給用戶的反饋可以是任何形式的感覺反饋,例如視覺反饋、聽覺反饋、或觸覺反饋;并且可以以任何形式接收來自用戶的輸入,包括聲音、語音或觸覺輸入。
實(shí)施例可以實(shí)現(xiàn)在計(jì)算系統(tǒng)中,該計(jì)算系統(tǒng)包括例如作為數(shù)據(jù)服務(wù)器的后端組件,或者包括例如應(yīng)用服務(wù)器的中間件組件,或者包括例如具有圖形用戶界面或Web瀏覽器(用戶可以通過該Web瀏覽器與所公開的技術(shù)的實(shí)施方式交互)的客戶端計(jì)算機(jī)的前端組件,或者包括一個(gè)或多個(gè)這樣的后端、中間件或前端組件的任何組合。系統(tǒng)的組件可以通過任何形式或介質(zhì)的數(shù)字?jǐn)?shù)據(jù)通信(例如,通信網(wǎng)絡(luò))互連。通信網(wǎng)絡(luò)的示例包括局域網(wǎng)(“LAN”)和廣域網(wǎng)(“WAN”),例如,互聯(lián)網(wǎng)。
計(jì)算系統(tǒng)可以包括客戶端和服務(wù)器??蛻舳撕头?wù)器通常彼此遠(yuǎn)離并且通常通過通信網(wǎng)絡(luò)交互??蛻舳撕头?wù)器的關(guān)系借助于在相應(yīng)計(jì)算機(jī)上運(yùn)行并且彼此具有客戶端-服務(wù)器關(guān)系的計(jì)算機(jī)程序而產(chǎn)生。
雖然本說明書包含許多具體實(shí)施細(xì)節(jié),但是這些不應(yīng)被解釋為限制,而是作為對(duì)特定于特定實(shí)施例的特征的描述。在本說明書中在分離的實(shí)施例的上下文中描述的某些特征也可以在單個(gè)實(shí)施例中組合實(shí)現(xiàn)。相反,在單個(gè)實(shí)施例的上下文中描述的各種特征也可以在多個(gè)實(shí)施例中分離地或以任何合適的子組合來實(shí)現(xiàn)。此外,雖然特征可以在上面描述為在某些組合中起作用并且甚至最初如此要求保護(hù),但是來自所要求保護(hù)的組合的一個(gè)或多個(gè)特征在一些情況下可以從組合中去除,并且所要求保護(hù)的組合可以針對(duì)子組合或子組合的變化形式。
類似地,雖然在附圖中以特定順序描繪操作,但是這不應(yīng)被理解為要求這些操作以所示的特定順序或以依序順序執(zhí)行,或者所有所圖示的操作被執(zhí)行以實(shí)現(xiàn)期望的結(jié)果。在某些情況下,多任務(wù)和并行處理可能是有利的。此外,上述實(shí)施例中的各種系統(tǒng)組件的分離不應(yīng)被理解為在所有實(shí)施例中都需要這樣的分離,并且應(yīng)當(dāng)理解,所描述的程序組件和系統(tǒng)通??梢砸黄鸺稍趩蝹€(gè)軟件產(chǎn)品中或封裝到多個(gè)軟件產(chǎn)品內(nèi)。
因此,已經(jīng)描述了特定實(shí)施例。其他實(shí)施例在所附權(quán)利要求的范圍內(nèi)。例如,權(quán)利要求中記載的動(dòng)作可以以不同的順序執(zhí)行并且仍然實(shí)現(xiàn)期望的結(jié)果。