使用代理以实现设备上的机器学习的制作方法

文档序号:17286933发布日期:2019-04-03 03:38阅读:125来源:国知局
使用代理以实现设备上的机器学习的制作方法

本美国专利申请依据35u.s.c.§119(e)要求2016年7月20日提交的名称为“usingproxiestoenableon-devicemachinelearning”(使用代理实现设备上的机器学习)的美国临时专利申请no.62/364,810(代理人案卷号4860.p31848z)的优先权,并且该申请在与本公开一致的程度上以引用方式并入本文。

本公开涉及客户端设备上的机器学习的领域。



背景技术:

常规的机器学习依赖于从大用户样本收集大型数据集并训练预测模型。训练预测模型以在训练数据集上实现可能最高的预测精确度,但将常常需要通过考虑特定用户的个人数据而针对个体用户进行个性化。一个示例是适于特定用户的书写方式的手写识别算法或者适于或经校准适于特定用户心跳或活动模式的健康传感器算法。语音识别子系统可能需要针对特定用户的语音模式或语调进行调节。优选针对特定用户的口味、偏好和收听模式调节音乐建议子系统。

在现有技术中,可以仅使用特定用户的数据在客户端设备上训练用于增强特定用户体验的机器学习。仅使用设备上的数据进行训练可以训练精确度和时间为代价保护隐私。机器学习算法通常需要在机器学习能够生成相当准确的预测模型之前收集大量数据。在一些情况下,诸如测量用户身体的一个或多个属性的健康传感器,传感器可能需要在机器学习算法能够使用所收集数据为该用户在客户端设备上生成预测器之前针对该人被校准。针对特定的人校准传感器可能是侵入性的、非常个人化的,并且耗时很久,因此是用户可能不希望采取的不希望步骤。

生成可用于增强用户的设备上体验的机器学习预测模型的另一种方式可以包括服务器系统,该服务器系统收集可用于生成一个或多个预测模型的大量众包数据。训练预测器的这种方法收集用户的个人数据,并且可能侵犯隐私,即使对所收集的信息进行了去识别化。如果维护隐私,那么使用众包数据训练预测器的另一个问题在于,服务器不知道特定客户端应当使用例如针对音乐偏好的多个预测模型中的哪个预测模型。维护隐私意味着确保服务器无法识别具有任何特异性的特定客户端。如果服务器无法识别具有特异性的特定客户端,例如由于隐私约束,则服务器不能向客户端设备提供个性化预测模型以增强用户的设备上体验。



技术实现要素:

公开了通过为客户端设备上多个应用程序的每个提供多个预测模型而增强用户使用客户端设备时体验的系统和方法。提供与客户端设备的实际用户更紧密匹配的预测模型可改善代表客户端设备用户的预测模型的机器学习的速度和精确度。如本文所用,在一个实施方案中,术语“模型”是指数据分布或数据分布的草图,连同机器学习模型。因此,每个模型都具有对应的数据分布。如本文所用,短语“匹配模型”或“比较模型”,在一个实施方案中,是指对第一模型的数据分布和第二模型的数据分布进行偏离估计,以确定第一数据分布和第二数据分布之间的估计偏离。

多个预测模型由服务器生成并被提供给多个客户端。对于特定应用程序而言,客户端设备可使用先前收集的私有用户数据来为应用程序选择多个预测模型之一作为特定用户的最密切匹配的预测模型。多个预测模型中所选择的密切或最密切匹配的一个被用作客户端设备实际用户的代理预测模型(“代理模型”)。客户端设备可使用客户端设备上的私有用户数据来进一步训练或调整代理模型以更精确地针对客户端设备的用户预测或表示传感器的偏好、特征或校准。

在一个实施方案中,服务器可收集大量匿名化或去识别化的用户数据(众包数据),或自愿给出的用户数据(或一些或全部此类数据的组合),以针对应用程序或使用情形生成多个代理模型。在一个实施方案中,代理模型可使用多个预测模型之一作为用于校准特定用户和传感器的代理模型,来针对用户校准一个或多个传感器。在一个实施方案中,代理模型向用户提供适用于应用程序的单词、短语或媒体的建议或选择。在一个实施方案中,服务器可针对媒体呈现应用程序构建多个代理模型。可以为例如特定流派的音乐、年龄人口统计信息、艺术家、乐器、媒体上下文生成代理模型。在一个实施方案中,上下文可以是用于锻炼的音乐、用于工作期间后台收听的音乐、用于驾车的音乐、用于聚会的音乐等。不同的代理模型可以考虑特定用户类型或人口统计信息的偏好。可以为用于撰写或编辑文本的应用程序(诸如消息程序、文字处理程序等)生成代理模型。

在一个实施方案中,客户端设备可包括多个应用程序,每个应用程序都可使用预测模型来增强用户在操作客户端设备时的体验。应用程序可包括,例如语音识别、针对用户校准健康传感器、针对特定主题(例如法律)自动完成文本、识别用户的语音、识别用户的手写体以及为用户建议媒体选择。客户端设备可针对每个应用程序获得多个预测模型(代理模型),从其中选择最密切匹配的代理模型作为训练起点,以训练精确表示客户端设备的用户操作。在一个实施方案中,客户端设备具有多个初始安装于客户端设备上的代理模型。在一个实施方案中,客户端设备可在客户端设备初始化期间从模型服务器请求针对一个或多个应用程序的多个代理模型。在一个实施方案中,客户端设备上的模型选择逻辑初始可以从针对应用程序的多个代理模型中选择默认或通用代理模型作为机器学习的起点。在用户与客户端设备交互时,可以由客户端设备收集私有用户数据。偏离估计算法可确定私有用户数据的数据分布中与代理模型之一的数据分布最密切的匹配。可以为应用程序或数据的不同方面选择不同的代理模型。可以由客户端设备对收集的私有用户数据使用机器学习以调整初始选择的代理模型,或者可以使用代理数据和用户数据的混合来训练新的混合模型。可以将初始选择的代理模型或用户数据分布与针对应用程序的多个代理模型的其他模型进行比较,以确定最密切匹配的代理模型。在一些实施方案中,可使用被采集并认为在模型库中有效的其他不同代理模型的适当加权混合来合成代理模型。可使用偏离估计技术进行代理模型的比较(即,比较私有用户数据的数据分布与一个或多个代理模型的数据分布)。如果最密切匹配的代理模型与初始选择并训练的代理模型在阈值相似度,例如90%或更大匹配之内(10%或更少偏离),那么可选择最密切匹配代理模型用于该应用程序并在客户端设备上使用机器学习进行训练。如果针对该应用程序的多个代理模型中没有代理模型充分匹配初始选择并训练的代理模型,则客户端设备可通知模型服务器,该用户不能为应用程序找到匹配的代理模型。模型服务器可以用户提供其私有用户数据的请求做出响应,以换取合适的补偿,使得模型服务器能够为客户端设备的用户生成匹配的代理模型。在一个实施方案中,客户端设备可请求针对应用程序的更新的代理模型。

在一个实施方案中,可提示客户端设备的用户回答简短调查,以辅助针对应用程序的初始代理模型选择过程。该调查回答可作为用户私有数据保留在客户端设备上。例如,可询问用户其年龄、专业、一般健康(例如身高、体重)、肤色、运动频率、音乐或其他媒体的一般偏好等。也可以在选择适当代理模型和训练所选择的代理模型时使用对调查的回答。

在一个实施方案中,可从多个代理模型通过合成方式生成特征属性的加权混合作为最佳匹配代理。加权因子可由某些特征的相邻性来确定(例如,在一些实施方案中,诸如身高、体重的物理特征)。

在一个实施方案中,非暂态计算机可读介质可以存储可执行指令,该可执行指令在由处理系统执行时可以执行上述任何功能。

在又一实施方案中,耦接到编程有可执行指令的存储器的处理系统可以在执行该指令时,执行上述任何功能。

本文所述的一些实施方案包括环境中的一个或多个应用编程接口(api),其中调用程序代码与通过一个或多个接口而受调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用还可包括各种参数,这些调用可以经由调用程序和被调用代码之间的apl而传输。此外,api可以给调用程序代码提供使用在api中定义的、并在被调用程序代码中实现的数据类型或类别的能力。

通过附图并且通过详细描述,其他特征和好处将显而易见。

本公开认识到在本发明技术中从大量用户收集的个人信息数据的使用可以用于所有或许多用户的利益,同时仍然维护个体用户的隐私。例如,可识别并在预测模型中包括从众包数据获知的客户端设备使用信息,该预测模型针对客户端设备上的传感器校准用户,提供关于设备上词典的建议以提供趋势项的排序列表,例如作为建议。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。

本公开还设想负责此类个人信息数据的收集、分析、公开、发送、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应当仅在接收用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,这种实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。

不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。

附图说明

本发明的实施方案以举例的方式进行说明,而不仅限于各个附图的图示,在附图中类似的附图标号是指类似的元件。

图1以框图形式示出了根据一些实施方案,用于学习客户端使用的代理模型,同时保留客户端隐私的系统的概况。

图2以框图形式示出了根据一些实施方案,用于学习客户端使用的代理模型,同时保留客户端隐私的系统的详细视图。

图3以框图形式示出了根据一些实施方案,使用服务器生成的代理模型的客户端侧过程的方法。

图4以框图形式示出了根据一些实施方案,服务器学习客户端使用的代理模型,同时保留客户端设备隐私的方法。

图5以框图形式示出了根据一些实施方案,模型服务器从付费用户数据、公共数据和所接收用户数据学习新代理模型的方法。

图6示出了可在本发明的一些实施方案中使用的软件栈的示例性实施方案。

图7为计算系统的一个实施方案的框图。

图8a示出了心跳的特征。

图8b示出了根据一些实施方案的媒体元数据的特征。

具体实施方式

在以下对实施方案的详细描述中将引用附图,附图中类似的附图标记表示相似的元素,并且其中以示例方式示出了可实践的具体实施方案。这些实施方案被足够详细地描述以允许本领域的技术人员实践本发明,并且应当理解,可使用其他实施方案,并可在不脱离本公开内容的范围的情况下进行逻辑修改、机械修改、电气修改、功能修改和其他修改。因此,下面的详细描述不应该被理解为限制性的意义,并且本发明的范围仅由所附权利要求书所限定。

图1以框图形式示出了根据一些实施方案,用于学习客户端设备110使用的代理模型,同时保留客户端隐私的概况。客户端设备110上的一个或多个应用程序可使用代理模型来针对客户端设备110的特定用户校准客户端设备110上的一个或多个传感器。还可使用代理模型来预测、建议或选择用于呈现给客户端设备110的用户的单词、短语、内容、媒体或其他项目,以使用户对客户端设备110的体验个性化,而不会影响客户端设备110的用户隐私。在用户与客户端设备110上的应用程序交互时,客户端设备110上的本地机器学习可获知用户的行为和操作客户端设备110和客户端设备110上的应用程序的模式。可以将本地机器学习与模型服务器130提供的代理模型的一个或多个比较,以确定与客户端设备110的实际用户最密切匹配的代理模型。客户端设备110可选择代理模型并使用代理模型(任选地由客户端设备110上收集的私有用户数据修改),以增强用户在操作设备时的体验。之后,客户端设备110可为特定应用程序或使用情形使用并且继续训练所选择的代理模型。在一个实施方案中,客户端设备110可初始选择通用代理模型以促进和加速客户端设备110的初始训练。可以使用在客户端设备工作期间收集的私有用户数据训练通用代理模型以更密切地匹配用户。在稍后的时间,可将偏离估计算法针对应用程序或使用情形,应用于每个代理模型的所积累的私有用户数据和用户输入(众包、公共或付费用户数据),以确定更好的最密切匹配的代理模型。

每个与大量多个用户中的用户相关联的客户端设备110都可以经由网络120耦接到一个或多个模型服务器130。每个客户端设备110上的一个或多个应用程序能够生成保留在客户端设备110上的私有数据。私有数据可包括键入的特定单词或短语、用户准备的文档类型、用户对url的选择、深层链接、用户键入的表情符号、用户选择、观看或回放的媒体。私有数据还可包括由客户端设备110的语音识别模块捕获的语音。私有数据还可包括针对客户端设备110上的一个或多个传感器,用户的可测量身体属性,诸如心跳、呼吸率、皮肤黑色素含量、皮肤温度等的校准。私有数据保留在客户端设备110上。在一个实施方案中,用户可以同意与模型服务器130自愿共享用户私有数据的一些或全部。在一个实施方案中,用户私有数据中的一些可以被匿名化或去识别化并与模型服务器130共享。

网络120可以是任何类型的网络,例如以太网、令牌环、火线、usb、光纤信道或其他网络类型。

模型服务器130可包括一个或多个硬件处理器、内存、诸如一个或多个硬盘的存储设备、固态存储设备、cd-rom存储器、dvd-rom存储器、存储设备等。模型服务器130的示例性部件如下面参考图7所述。

图2以框图形式示出了根据一些实施方案,用于学习客户端设备110使用的代理模型,同时保留客户端隐私的系统100的详细视图。

客户端设备110的内部部件可包括多个存储模块205和210、个性化模块225和多个应用程序230,例如应用程序1、应用程序2和应用程序3。应用程序230可以调用一个或多个应用编程接口(api)、框架、系统调用或其他接口以访问个性化模块225的功能。下面参考图6详细描述api。

存储模块205-210可包括私有用户训练数据205和代理模型210。代理模型210可预装在新制造的客户端设备110上。代理模型210可以由客户端设备110请求并响应于该请求而从模型服务器130被接收。还可从模型服务器130经由向客户端设备110发送或由客户端设备110下载的升级包,向客户端设备110提供代理模型210。

个性化模块225可包括机器学习模块212、偏离估计模块215和模型选择模块220。

机器学习模块212可向由一个或多个应用程序230收集的私有用户数据205应用一种或多种机器学习算法。机器学习算法可包括bayes、naivebayes、线性回归以及其他形式的机器学习。可以由机器学习算法或由预先识别的特征在私有用户数据205之内识别特征,预先识别的特征可能存在于元数据或在客户端设备上收集私有用户数据205的数据结构之内。例如,可以通过在心跳的样本系列的频域中执行傅里叶变换来获得心跳模型的特征。可以从样本傅里叶变换的分析提取心跳的特征。下文参考图8a描述心跳的特征。可以从与媒体内容项的选择相关联的元数据或数据结构获得媒体预测模型的特征。例如,用户选择的每个音乐内容项可以具有流派、艺术家、版本数据、运行时间、实况或演播室指示、唱片参考等。与用户选择或播放的每个媒体项目相关联的元数据或数据结构可以被存储为用户私有数据205。机器学习模块212可以在选择或播放的媒体数据中的特征上进行训练。模型的特征可以进一步与用户活动相关联,例如工作、运动、休闲、驾驶等,使得该机器学习模块212获知特定用户在运动的同时希望听到的音乐。例如,下文参考图8b描述了媒体元数据的特征。从语音模块收集的用户数据的特征可包括用户的母语、语音模块所识别语音的语言(其可不同于用户的母语)、表示声音短片段的功率谱的梅尔频率倒谱系数(mfcc)、语音的频率谱等。可以分析声音的短片段的mfcc来确定用户具有例如第一母语并正在以第二非母语讲话。例如,机器学习模块212可获知用户的第一语言可能是法语,并且用户正在向语音模块讲英语。用户私有语音数据205可用于在客户端设备110上构建语音校准模型,该语音校准模型用于将语音模块校准到用户的语音。

偏离估计模块215可用于找到与从客户端设备上的私有用户数据205生成的模型的最密切匹配的代理模型。在一个实施方案中,偏离估计算法包括k最近邻算法、非参数发散估计、微分熵和相对熵的参数化贝叶斯估计。在如下文献中描述了示例偏离估计算法:“nonparametricdivergenceestimationwithapplicationstomachinelearningondistributions,”barnabáspóczos,xiong,jeffschneider,(carnegiemellonuniversity);“onestimatingdivergence,”akshaykrishamurthy,barnabáspóczos,kirthevasankandasamy,andlarrywasserman,(proceedingsofthe18thinternationalconferenceonartificialintelligenceandstatistics(aistats)2015,sandiego,ca);“parametricbayesianestimationofdifferentialentropyandrelativeentropy,”mayaguptaandsantoshsrivastava,(entropy2010);以及“alpha-divergenceforclassification,indexingandretrieval,”alfred.hero,bingma,oliviermichel,andjohngorman,(communicationsandsignalprocessinglaboratorytechnicalreportcspl-328,may2001)。偏离的其他示例包括kullback-leibler偏离、renyi’s偏离和f偏离或csiszarf偏离。

模型服务器130可包括接收数据的模块250、根据分类系统对接收的数据分类的模块255以及从所接收的、匿名化、去识别化的数据和/或从用户同意向模型服务器130提供的私有用户数据生成代理模型的工作260。模型服务器130还可包括存储模块,诸如代理模型存储模块270、公共数据存储模块275和付费用户数据存储模块280。在一个实施方案中,用户可同意向模型服务器130提供用户私有数据205,用于某种形式的补偿,例如,金钱、免费音乐下载的量等。模型服务器130接收的私有用户数据205可以存储于付费用户存储模块280中。在已经从付费用户数据280生成并存储一个或多个代理模型270之后,可以将付费用户数据280并入公共数据存储模块275中。在一个实施方案中,在已经使用付费用户数据280生成一个或多个代理模型270并将付费用户数据存储于公共数据存储模块275中之后,可以从付费用户数据存储模块280删除付费用户数据。

接收模块250可以从大量客户端设备110(“众包数据”)接收匿名化私有数据(“公共数据275”)。接收模块250可以从接收的私有数据中去除任何潜在的标识符,例如ip地址、元数据、会话标识符或可以标识发送私有数据(也称为“公共数据275”)的特定客户端设备110的其他数据。接收数据模块250还可从同意无匿名提供其私有数据205的一个或多个客户端设备110接收用户私有数据205(“付费用户数据280”)。可能已经基于其私有数据不充分匹配针对特定应用或使用情形的任何现有代理模型而已经特别选择或请求了这样的用户。在一个实施方案中,当客户端设备110不能在偏离估计阈值之内将用户的私有数据205匹配到代理模型时,那么客户端设备110能够从模型服务器130请求一个或多个更新的代理模型。如果客户端设备110确定响应于客户端设备请求而接收的代理模型不充分匹配用户私有数据205,客户端设备110能够通知模型服务器130没有代理模型充分匹配用户私有数据205的事实。模型服务器130可请求客户端设备110的用户接收对提供用户私有数据205的补偿,使得模型服务器130可从用户的私有数据205构建代理模型。如果用户同意向模型服务器130提供用户私有数据205,然后模型服务器130即可从私有用户数据构建代理模型。在将模型部署到任何其他用户客户端设备110之前,模型服务器130可从由用户私有数据205构建的任何代理模型对用户私有数据205去识别化或匿名化。

接收数据分类模块255可根据可使用从所接收数据250构建的代理模型的应用程序230对所接收数据分类。在一个实施方案中,分类可包括健康传感器数据、语音数据、文本数据和媒体数据。每种分类可具有子分类。例如,可将健康传感器数据细分为生成数据的健康传感器的类型,例如温度传感器、心跳传感器、肤色传感器、呼吸传感器等。媒体用户数据可被细分为关于视频内容、音乐内容、播客等的用户数据。分类可帮助针对特定应用程序230或使用情形生成代理模型。

生成代理模型工作260可周期性地处理所接收的去识别化数据(“公共数据275”)和私有用户数据(“付费用户数据280”),以针对用户数据的类别或子类生成一个或多个代理模型。在付费用户数据280被用于生成一个或多个代理模型并且已被匿名化和/或去识别化之后,可将付费用户数据280移到公共数据275。对于用户数据的分类或子分类而言,生成代理模型工作260可选择用户的数据并使用机器学习算法生成用户数据的模型。可在用于生成模型的数据的数据分布以及在该分类或子分类中用于生成现有模型的数据的数据分布之间计算偏离估计。如果用于生成模型的数据的数据分布以及现有模型的数据的数据分布之间的偏离估计距离充分小,那么用于生成所生成模型的用户数据可以被丢弃,或者可以用于强化所生成模型在阈值相似性之内的现有模型的学习。如果所生成模型与现有模型之间的偏离估计距离与分类中的所有其他代理模型足够大,则可以保持该模型作为新的代理模型。否则,生成的模型可以被丢弃,或保留用于进一步的训练或供未来使用。新的和更新的代理模型可以存储在代理模型270中。

更新客户端模块265可将更新的代理模型270通过网络120传输到一个或多个客户端设备110。在一个实施方案中,响应于来自客户端设备110的请求,将更新的代理模型270传输到一个或多个客户端设备110。在一个实施方案中,模型服务器130可将更新的代理模型270传输到一个或多个客户端设备110,作为更新过程的一部分。

图3以框图形式示出了根据一些实施方案,使用模型服务器130生成的代理模型的客户端侧过程的方法300。

在操作305中,客户端设备110可任选地从模型服务器130接收多个代理模型。在一个实施方案中,多个代理模块已经从例如制造时或从代理模型上一次更新时安装在客户端设备上。

在操作307中,客户端设备110可以收集正在与客户端设备110上的应用程序230交互的用户所生成的私有用户数据。

在操作310中,客户端设备个性化模块225的模型选择模块220可从客户端设备110上可用于应用程序230或使用情形(例如语音识别)的多个代理模型210中选择模型。使用情形是一个或多个应用程序230使用的功能。在一个实施方案中,模型选择模块220可为应用程序230选择默认模型。在一个实施方案中,应用程序230的默认模型可为针对应用程序或使用情形的通用模型。

在操作315中,用户可使用应用程序230与客户端设备110进行交互。由应用程序230生成的数据可被用作针对所选择的代理模型的训练数据。机器学习模块212可使用用户的私有训练数据来训练所选择的代理模型。

在操作320中,偏离估计模块215可计算已经利用用户私有数据训练的所选择的代理模型和用于应用程序230的多个代理模型210中的一个或多个其他代理模型之间的偏离估计。用于应用程序230的多个代理模型中的特定代理模型可以与利用用户私有数据训练的所选择的代理模型最密切匹配,即,与所选择的代理模型之间偏离最小。

在操作325中,模块选择模块220可以确定与被训练代理模型具有最小偏离的该代理模型是否充分类似于被训练的通用模型。在一个实施方案中,如果代理模型与使用私有用户数据训练的所选择的代理模型至少匹配90%(偏离10%或更小),那么该代理模型充分类似于已训练的代理模型。

如果在操作325中,确定最密切匹配的代理模型充分类似于经过训练的通用模型,则方法300在操作345处继续。

如果在操作325中确定最密切匹配的代理模型不充分类似于利用私有用户数据训练的所选择的模型(例如,匹配小于90%或偏离估计大于10%),那么在操作330中,客户端设备110可以从模型服务器130为应用程序230或使用情形请求一个或多个新代理模型。在客户端设备110最近接收到代理模型265的更新的时间之间,有可能已经在模型服务器130上为应用程序230或使用情形添加了新的代理模型270。客户端设备110可以请求这些新的代理模型270中的一个或多个。在一个实施方案中,客户端对应用程序230的更新代理模型的请求可以包括关于客户端设备110上当前可用的代理模型270的版本信息,以辅助模型服务器利用适当的代理模型270完成请求。

在操作335中,偏离估计模块215和模型选择模块220可从来自模型服务器130的多个新接收的代理模型中确定最密切匹配的代理模型。操作335类似于操作320,不同的是操作335是响应于操作330中的请求而在接收的代理模型上执行的。

在操作340中,可以确定新接收的代理模型的最密切匹配的代理模型是否充分类似于客户端设备110上经过训练的通用模型。操作340类似于操作325,不同的是操作340是响应于操作330的请求而在接收的代理模型上执行的。

如果在操作340中,确定最密切匹配的代理模型充分类似于操作310选择且在操作315中训练的模型,则方法300在操作345处继续。

如果在操作340中,确定没有任何代理模型充分匹配在操作310中选择且在操作315中训练的模型,则方法300在操作350处继续。

在操作345中,可以选择最密切匹配的代理模型,以在客户端设备110上针对应用程序230或使用情形进行训练和使用。然后,将最密切匹配的代理模型与使用该代理模型所预期的功能的一个或多个应用程序230相关联,例如,语音识别、健康传感器校准、文本预测、媒体内容预测等。方法300然后在操作315处继续。

在操作350中,客户端设备110可通知模型服务器130没有代理模型充分匹配在操作310中选择且在操作315中训练的针对应用程序230的代理模型。模型服务器130可自动请求客户端设备110的用户向模型服务器130提供针对应用程序230的其私有数据205,使得模型服务器130能够生成并训练适合这一特定用户和其他类似用户的代理模型。在一个实施方案中,模型服务器130的管理员或其他人员可请求客户端设备110的用户提供其私有用户数据205,以供模型服务器130在生成将适合客户端设备110的用户的代理模型时使用。方法300然后在操作355处继续。

在操作355中,可确定在操作310中选择且在操作315中训练的代理模型是否非常类似于客户端设备100上或由客户端设备100接收的针对应用程序230的多个代理模型的任何代理模型,从而应当禁用通过使用代理模型表示这一用户的属性提供的功能。在一个实施方案中,如果在操作310中选择的代理模型与任何代理模型匹配小于60%(偏离40%或更多),那么在操作360中,可以针对这一应用程序230或使用情形任选地禁用代理模型功能,直到获得或训练出充分匹配的代理模型为止。否则,方法300在操作315处继续。

图4以框图形式示出了根据一些实施方案,服务器学习客户端使用的代理模型,同时保留客户端隐私的方法400。可以针对代理模型的特定分类或子分类执行方法400。

在操作405中,模型服务器130、接收数据模块250可以接收匿名化或私有(付费)用户数据。在一个实施方案中,接收数据模块250可对所接收的用户数据去识别化。接收数据分类模块255可对所接收且去识别化的用户数据分类,成为一个或多个分类以及任选的子类。分类可以是,例如,提供用户模型以针对用户校准客户端设备传感器的用户数据;预测用户可能在文档或消息中键入的单词、短语或其他文本的预测模型;能够预测用户会喜欢的媒体项目的预测模块等。例如,媒体预测模型的子类会是按照媒体类型(视频和音乐)、流派(摇滚、爵士、乡村、r&b)、上下文(健身、工作、休闲、聚会、约会)等进行的预测模型。

在操作500中,生成代理模型工作260可从分类的所接收用户数据255针对代理模型的分类或子分类生成多个代理模型270。下面参考图5描述了操作500。

在操作415中,生成代理模型工作260可从多个代理模型选择并指定“通用”模型。通用代理模型是一种代理模型,其充分匹配在操作500中生成的多个代理模型的至少子集,从而可以将代理模型指定为很好的起点,供大多数用户训练通用代理模型以在合理的训练时间段之内代表用户的行为、偏好或特征。在一个实施方案中,对于多个代理模型的至少子集而言,对于代理模型的大部分特征,通用模型至少匹配70%。在一个实施方案中,通用代理模型与多个代理模型的子集基本均等偏离。

在操作420中,生成代理模型工作260可任选地调用更新客户端模块265,以部署用于该分类的多个更新的代理模型270。

在操作425中,可确定模型服务器130是否已经从一个或多个客户端设备110接收到对新代理模型270的一个或多个请求。在一个实施方案中,响应于客户端设备110确定没有任何针对分类的现有代理模型与客户端设备110上使用客户端设备用户的私有数据训练的模型在阈值匹配相似性之内,模型服务器130可接收对更新的代理模型270的请求。在一个实施方案中,模型服务器130可响应于客户端设备110在第一时间通电而接收对更新的代理模型270的请求。在一个实施方案中,模型服务器130可响应于客户端设备110的应用程序230第一次运行针对分类而接收对更新的代理模型270的请求。在一个实施方案中,模型服务器130可响应于客户端设备110使用代理模型的分类的应用程序230在任何时间被运行而接收对更新的代理模型270的请求。

如果在操作425中,模型服务器130未接收用于分类的更新的代理模型270的请求,则方法400可在操作405处继续。在一个实施方案中,方法400在于操作405处继续之前等待预先确定的时间段。在一个实施方案中,生成新代理模型工作260以预先确定的间隔运行。在一个实施方案中,在接收数据模块250接收到针对分类的阈值量的数据时,运行生成新代理模型工作260,可以从所接收的数据生成新代理模型。

如果在操作425中从客户端设备110接收到对更新的代理模型270的请求,则在操作430中,模型服务器130可调用更新客户端模型265以将针对该分类的一个或多个更新的代理模型270传输至请求的客户端设备110。

图5以框图形式示出了根据一些实施方案,模型服务器130从付费用户数据280、公共数据275和所接收用户数据250学习新代理模型270的方法500。可以根据分类或子分类生成代理模型。在一个实施方案中,模型服务器130上的生成代理模型工作260可以利用针对该分类的一个或多个现有代理模型270作为训练针对该分类的新代理模型270的起点。

在操作505-520中,使用分类的所接收数据255、公共数据275和付费用户数据280生成针对分类的多个代理模型。在操作525-545中,按照偏离估计将多个代理模型彼此进行比较,以确定每个代理模型彼此之间有多么类似或多么不同。如果两个代理模型非常类似,例如90%或更大匹配(即10%或更小偏离),则可以使用代理模型中的一个来加强对另一个代理模型的训练,并且可以删除一个代理模型。如果两个代理模型非常不相似,例如10%或更小的匹配(即,90%或更大的偏离),则两个代理模型都可以保留为代表两种不同类型用户的代理模型。

在操作505中,生成代理模型工作260可从所接收的用户数据中选择数据的分类,生成代理模型工作260将使用其生成用于分类的一个或多个新代理模型270。在一个实施方案中,生成代理模型工作260还可从公共数据275或付费用户数据280选择针对该分类的用户数据和/或现有代理模型,以在生成新代理模型270时使用。

在操作510中,生成代理模型工作260可从分类的所接收数据255选择用户的用户数据。

在操作515中,生成代理模型工作260可使用所选择的分类接收数据255训练模型。在一个实施方案中,可使用现有的代理模型作为使用分类接收数据260训练代理模型的起点。训练可包括使用机器学习算法来训练代理模型以确定用于分类的代理模型的特征。机器学习算法可包括bayes、naivebayes、线性回归以及其他形式的机器学习。可以由机器学习算法或由预先识别的特征在私有用户数据205之内识别特征,预先识别的特征可能存在于元数据或在客户端设备上收集私有用户数据205的数据结构之内。

在操作520中,可以确定分类的接收数据255中是否有更多用户的数据要处理。如果是,则方法500在操作510处恢复。否则,方法500在操作525处继续。

以下操作确定任意两个代理模型的相似性或不相似性的量。

在操作525中,可选择在操作505-520中生成的多个候选代理模型之一。

在操作530中,可以在所选择的代理模型和针对分类的现有与新生成代理模型的每个之间计算偏离估计。

在操作535中,对于所选择的代理模型和现有与新生成的代理模型之间的每个偏离估计,可以确定所选择的代理模型的偏离估计是否表明与现有或新生成的代理模型匹配。匹配阈值可以是与现有或新生成代理模型90%或更大匹配,即,10%或更小偏离。

如果在操作535中确定所选择的代理模型是现有或新生成代理模型的匹配,那么在操作540中,可以使用所选择的新生成代理模型加强匹配代理模型,且方法500在操作555处继续。否则,方法500在操作545处继续。

在操作545中,可以确定所选择的代理模型是否与现有和新生成代理模型的每个充分偏离,即,大于90%的偏离(10%或更少类似)。如果是这样,那么方法500在操作550处继续,其中确定应当保留所选择的代理模型,该方法在操作555处继续。

如果在操作545中确定所选择的代理模型与现有和新生成代理模型的每个偏离少于90%(大于10%相似),那么方法500在操作555处继续。

在操作555中,确定是否要分析更多代理模型以获知偏离估计。如果是,则方法500在操作525处继续,其中选择下一个新生成的代理模型。否则,方法500在操作560处继续。

在操作560中,如果存在尚未被归入另一代理模型的增强的任何新生成的代理模型,则可更新代理模型270。上文参考图4在方法400中描述了已更新代理模型的传播。

在图6(“软件栈”)中,作为示例性实施方案,应用程序可以使用若干服务api调用服务1或2,以及使用若干osapi调用操作系统(os)。服务1和2可使用若干osapi调用操作系统。

请注意,服务2具有两个api,其中一个(服务2api1)从应用程序1接收调用并向其返回值,另一个(服务2api2)从应用程序2接收调用并向其返回值,服务1(其可以是,例如软件库)对osapi1进行调用并自其接收返回值,服务2(其可以是,例如软件库)对api1和osapi2进行调用并自其接收返回值,应用程序2调用api2并自其接收返回值。

图7为计算系统700的一个实施方案的框图。图7中所示的计算系统旨在表示一系列计算系统(有线或无线),包括例如台式计算机系统、膝上型计算机系统、平板电脑系统、蜂窝电话,包括支持蜂窝型pda电话的个人数字助理(pda)、机顶盒、娱乐系统或其他消费电子设备。另选的计算系统可以包括更多、更少和/或不同的部件。图7的计算系统可被用于提供计算设备和/或服务器设备。

计算机系统700包括总线705或用于传送信息的其他通信设备,和与总线705耦接的可处理信息的处理器710。

虽然计算系统700被图示为具有单个处理器,但是计算系统700可以包括多个处理器和/或协处理器710。计算系统700还可以包括随机存取存储器(ram)或其他动态存储设备720(称为主存储器),其耦接到总线705并且可以存储可由处理器710执行的信息和指令。在由处理器710执行指令期间,主存储器720还可用于存储临时变量或其他中间信息。

计算系统700还可包括只读存储器(rom)和/或耦接到总线705的可存储用于处理器710的静态信息和指令的其他静态存储设备740。数据存储设备740可以耦接到总线705以存储信息和指令。数据存储设备740(诸如闪存存储器或磁盘或光盘)以及对应的驱动器可以被耦接到计算系统700。

计算系统700还可以经由总线705耦接到显示设备750,诸如阴极射线管(crt)或液晶显示器(lcd),以向用户显示信息。计算系统700还可包括数字字母混合输入设备760,该设备包括数字字母键和其他键,其可耦接到总线705以将信息和命令选择传递到一个或多个处理器710。另一种用户输入设备是光标控件770,诸如触控板、鼠标、轨迹球或光标方向键,用于向处理器710传递方向信息和命令选择以及在显示器750上控制光标移动。计算系统700还可以经由一个或多个网络接口780从通信地耦接到计算系统700的远程设备接收用户输入。

计算系统700还可以包括一个或多个网络接口780,以提供对诸如局域网的网络的访问。网络接口780可以包括,例如具有天线785的无线网络接口,该天线可以表示一个或多个天线。计算系统700可以包括多个无线网络接口,诸如wifi、和蜂窝电话接口的组合。一个或多个网络接口780还可包括例如有线网络接口,以经由网络电缆787与远程设备通信,该电缆可是例如以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。

在一个实施方案中,一个或多个网络接口780可以例如通过符合ieee802.11b和/或ieee802.11g标准来提供对局域网的接入,并且/或者无线网络接口可以例如通过符合蓝牙标准来提供对个人区域网络的接入。其他无线网络接口和/或协议也可得到支持。除了经由无线lan标准进行通信之外或替代经由无线lan标准进行通信之外,网络接口780可以使用例如时分多址(tdma)协议、全球移动通信系统(gsm)协议、码分多址(cdma)协议,和/或任何其他类型的无线通信协议来提供无线通信。

图8a示出了根据一些实施方案的心跳的特征。

代理模型的一种使用情形是针对特定用户校准传感器,例如心跳传感器。心跳具有多个属性,如下文所述。这些属性在用户之间可能有所不同。可使用诸如快速傅立叶变换(fft)的数字算法来分析心跳传感器信息。在图8a的心跳示例中可看到,单次心跳的特征可能出现在0.2秒的窗口之内。采样窗口太宽,例如0.5秒,则心跳传感器可能错过峰值并可能将心跳次数错计一半。报告不正确的心率会给用户带来严重后果。

心跳波形的p波是心房肌肉收缩的表示,并且具有大约60-100毫秒(ms)的持续时间。它具有大约0.1-0.25毫伏(mv)的低幅度,通常发现在心跳的开始。在如下文献中描述了心跳的以下特征:“individualidentificationusinglinearprojectionofheartbeatfeatures,”yogendranarainsingh,(appliedcomputationintelligenceandsoftcomputingvolume2014,articleid602813,august10,2014)。下文所述的心跳间隔参考图8a上所示的字母来命名,字母指示所述心跳的部分。例如,qrs间隔表示心跳心室的主要收缩。

qrs波是持续时间大约为80-120ms的锋利双相或三相波,并且示出了根据人而变化的显著幅度偏转。可以针对用户,使用适当的代理模型,校准幅度的这种变化以及双相和三相波形。pr间隔是离子电势从窦房结通过心房肌扩散并进入心室所花的时间,大约为120-200ms。心室具有300-420ms的较长离子电势持续时间,称为qt间隔。离子电势的平台部分约在qrs间隔之后80-120ms并被称为st段。心室肌肉回到其静止离子状态导致t波,t波具有约0.1-0.5mv的幅度和120-180ms的持续时间。从心室休息到开始心房收缩的下一个周期的持续时间称为tp段,是升高可忽略的长平台部分。

图8b表示可用于描述用户所选择的媒体的元数据和数据结构。可以由生成代理模型工作260使用去识别化的众包数据、付费用户数据和公共数据构建代理模型。

某人选择的音乐可基于用户在给定时间执行的活动。例如,用户可在开车时选择一种音乐,在锻炼时选择另一种,在工作时选择另一种,在行走时选择另一种。使用客户端设备110的板载传感器,例如gps、环境噪声、用户心率、客户端设备的运动感测、在客户端设备110上运行的应用程序(例如锻炼程序、gps驾驶地图),无论设备是否停靠和/或充电,wifi被启用并维持固定wifi或小区塔参考一段时间,客户端设备110可以以合理精确度确定用户是在行走、跑步、驾驶、锻炼还是可能在工作。以上客户端设备使用上下文信息用于媒体使用代理模型的分类的子分类。

用户可选择的媒体项目可具有与其相关联的元数据。音乐媒体元数据可包括艺术家、专辑、曲目编号、持续时间、版本数据、一个或多个音乐流派、欣赏元数据中标识的音乐的典型人口统计信息、媒体的格式(诸如mp3)、比特率、比特深度和其他媒体元数据。媒体元数据的这些示例可被用作特征,连同上述客户端设备使用上下文特征,以生成预测用户的媒体使用情形的代理模型。

在以上说明书中,结合本发明的具体实施方案已描述了本发明。然而显而易见的是,在不脱离本发明的更广泛的实质和范围的情况下,可对其进行各种修改和变更。相应地,说明书和附图应被视为具有例示性的而非限制性的意义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1