CN110832458B - 个性化机器学习模型的隐身模式 - Google Patents

个性化机器学习模型的隐身模式 Download PDF

Info

Publication number
CN110832458B
CN110832458B CN201880044313.3A CN201880044313A CN110832458B CN 110832458 B CN110832458 B CN 110832458B CN 201880044313 A CN201880044313 A CN 201880044313A CN 110832458 B CN110832458 B CN 110832458B
Authority
CN
China
Prior art keywords
computing device
machine learning
training samples
applications
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880044313.3A
Other languages
English (en)
Other versions
CN110832458A (zh
Inventor
S.富兹
V.卡邦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN110832458A publication Critical patent/CN110832458A/zh
Application granted granted Critical
Publication of CN110832458B publication Critical patent/CN110832458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Linguistics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本公开提供用于装置上机器学习的系统和方法。具体地,本公开涉及装置上机器学习平台和相关联技术,其使得进行装置上预测、训练、样本收集和/或其他机器学习任务或功能成为可能。装置上机器学习平台可以包括模式控制器,该模式控制器允许用户提供数据输入,该数据输入指示是在用于存储训练样本的第一收集模式(例如,许可模式)下还是在不用于存储训练样本的第二收集模式(例如,隐身模式)下操作装置上的一个或多个应用程序。训练样本可以基于与一个或多个应用程序的用户交互来生成,并且通过使用特定于用户的训练样本对模型进行重新训练来个性化由(多个)应用程序使用的一个或多个机器学习模型。

Description

个性化机器学习模型的隐身模式
技术领域
本公开总体上涉及机器学习。更具体地,本公开涉及装置上机器学习平台和相关联的技术,其使得动态样本收集和训练、以及相关的机器学习任务或功能成为可能。
背景技术
近年来,机器学习已经越来越多地用于向计算装置的用户提供改进的服务。特别是,许多应用程序或其他计算程序或系统依赖于一个或多个机器学习模型,以基于与程序、装置和/或用户相关联的输入数据来产生推断。(多个)应用程序可以使用(多个)推断来执行或影响任何类型的任务或服务。
用于解决机器学习问题的一种常规训练方案包括在集中位置(例如,服务器装置)处从多个计算装置(例如,诸如智能电话的用户装置)收集多个训练样本。然后机器学习模型可以基于所收集的训练样本在集中位置处进行训练。
另外,在某些实例中,训练的模型可以存储在集中位置处。为了从模型接收推断,要求用户计算装置通过网络将输入数据传输到服务器计算装置,等待服务器装置运行机器学习模型以基于所传输的数据产生(多个)推断,并且然后再次通过网络从服务器计算装置接收(多个)推断。
在这样的场景中,要求(多个)训练样本和/或(多个)推断通过网络在用户计算装置和服务器计算装置之间传输。由于通过网络传输的数据可能易于被拦截,因此这种网络传输存在数据安全性风险。另外,这种网络传输增加了网络通信量,这可能导致通信速度降低。此外,与通过网络来回传输数据相关联的时延可能会导致在提供应用程序的服务时出现延迟。
最近,某些应用程序已经包括机器学习模型,该机器学习模型存储在应用程序内并且在用户装置上由应用程序实现。然而,该架构面临实现难和资源密集的二者的挑战。例如,在这种场景中,要求应用程序存储、管理、训练和/或实现一个或多个机器学习模型。在应用程序本身内包含模型和对应的支持服务可能会增加应用程序的数据大小,从而导致更大的内存占用(memory footprint)。
应用程序内的机器学习还可能需要更加频繁的应用程序更新。例如,在底层(underlying)机器学习引擎被更新或在其他方面提升时,可能需要更新应用程序。在下载和安装更新时,应用程序更新可能不合期望地需要使用网络和用户的停机时间。
此外,由于需要在应用程序自身中内置附加的服务,因此应用程序内的机器学习还可能使应用程序开发复杂化。因此,开发者可能需要学习并且与时俱进地了解不同机器学习引擎的复杂性。
发明内容
本公开的实施例的方面和优点将在以下描述中部分地阐述,或者可以从描述中获悉,或者可以通过实施例的实践而获悉。
本公开的一个示例方面涉及计算机实现的方法。该方法包括:由计算装置从在计算装置上存储的多个应用程序中的第一应用程序接收一个或多个第一新训练样本。该方法还包括由计算装置将一个或多个第一新训练样本存储在计算装置的集中式样本数据库中,其中,该集中式样本数据库被配置为存储训练样本,以用于对在计算装置上存储的一个或多个机器学习模型进行重新训练。该方法还包括由计算装置基于来自用户的数据输入接收通知,该通知指示不再将附加训练样本添加到集中式样本数据库中。该方法还包括由计算装置从计算装置上存储的多个应用程序中的第一应用程序接收一个或多个第二新训练样本,其中,在接收到通知后,接收一个或多个第二新训练样本。响应于接收到通知,该方法还包括:由计算装置停止将一个或多个第二新训练样本存储在计算装置的集中式样本数据库中。在此,术语“新”用于意味着训练样本在被计算装置接收之前不在集中式样本数据库中。训练样本可以在实行该方法的时间期间生成,例如在由计算装置接收到第一训练样本中的至少一个之后,可以生成第一训练样本中的一个或多个以及第二训练样本中的一个或多个。“停止存储一个或多个第二新训练样本”意味着与第一新训练样本不同,没有存储第二新训练样本。
本公开的另一示例方面涉及计算装置,该计算装置包括:一个或多个处理器;和一个或多个非暂时性计算机可读介质,该一个或多个非暂时性计算机可读介质存储以下各项:由一个或多个处理器实现的一个或多个应用程序、至少一个机器学习模型、集中式样本数据库、集中式样本数据库存储从一个或多个应用程序接收的训练样本,以及在一个或多个处理器执行时使计算装置执行操作的指令。该集中式样本数据库存储从一个或多个应用程序接收到的训练样本,并且配置为存储训练样本以用于对至少一个机器学习模型进行重新训练。操作包括从一个或多个应用程序中的第一应用程序接收一个或多个第一新训练样本。操作还包括将一个或多个第一新训练样本存储在集中式样本数据库中。操作还包括基于来自用户的数据输入接收通知,该通知指示不再将附加的训练样本添加到集中式样本数据库。该操作还包括从一个或多个应用程序中的第一应用程序接收一个或多个第二新训练样本,其中,一个或多个第二新训练样本在接收到通知之后被接收。响应于接收到该通知,操作还包括停止在集中式样本数据库中存储一个或多个第二新训练样本。操作还包括至少部分地基于集中式样本数据库所存储的训练样本来对至少一个机器学习模型进行重新训练,其中,至少部分地基于一个或多个第一新训练样本,但不是基于一个或多个第二新训练样本来对至少一个机器学习模型进行重新训练。
本公开的另一示例方面涉及计算机程序产品,该计算机程序产品包括指令(例如,共同地存储指令的一个或多个的非暂时性计算机可读介质,或在通信网络上以暂时形式传输的程序)。指令在由一个或多个处理器执行时,使计算装置实现执行操作的装置上(on-device)机器学习平台。该操作包括向计算装置的用户提供用户界面。用户界面被配置为接收来自用户的数据输入,该数据输入指示计算装置上的一个或多个应用程序是在第一收集模式还是第二收集模式下进行操作。第一收集模式对应于一种模式,在该模式下基于与一个或多个应用程序的用户交互的训练样本将用于重新训练至少一个机器学习模型。第二收集模式对应于一种模式,在该模式下基于与一个或多个应用程序的用户交互的训练样本将不用于重新训练至少一个机器学习模型。该操作还包括至少部分基于在一个或多个应用程序在第一收集模式下进行操作时接收到的训练样本,而不是在一个或多个应用程序在第二收集模式下进行操作时接收到的训练样本,对至少一个机器学习模型进行重新训练。
本公开的其他方面涉及各种系统、装置、计算机程序产品、非暂时性计算机可读介质、用户界面和电子装置。
参考以下描述和所附的权利要求,将更好地理解本公开的各个实施例的这些和其他特征、方面和优点。并入本说明书中并构成本说明书的一部分的附图示出了本公开的示例实施例,并且与描述一起用于解释相关的原理。
附图说明
在说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,该说明书参考了附图,其中:
图1描绘了根据本公开的示例实施例的包括装置上机器学习平台的示例计算装置的框图;
图2描绘了根据本公开的示例实施例的示例机器学习模型训练部署的流程图;
图3描绘了根据本公开的示例实施例的示例个性化和联合学习数据流的图形图;
图4描绘了根据本公开的示例实施例的示例收集模式用户界面的框图。
图5描绘了根据本公开的示例实施例的第一示例方法的流程图;
图6描绘了根据本公开的示例实施例的第二示例方法的流程图;以及
图7描绘了根据本公开的示例实施例的第三示例方法的流程图。
具体实施方式
总体上,本公开涉及用于装置上机器学习的系统和方法。特别是,本公开涉及装置上机器学习平台和相关联技术,其使装置上预测、训练、示例收集和/或其他机器学习任务或功能能够作为对客户端的集中服务(例如,经由一个或多个应用程序编程接口(API)对装置上的应用程序)。另外,在一些实现方式中,装置上机器学习平台可以包括模式控制器,该模式控制器允许用户提供数据输入,该数据输入指示是在用于存储训练样本的第一收集模式(例如,许可模式)下还是在不用于存储训练样本的第二收集模式(例如隐身模式)下在装置上操作一个或多个应用程序。可以基于与一个或多个应用程序的用户交互来生成训练样本,并且所述训练样本通过使用特定于用户的训练样本对模型进行重新训练,来用于使(多个)应用程序使用的一个或多个机器学习模型个性化。通过提供模式控制器和对训练样本的动态确定的积累,所公开的系统和方法可以在需要时有利地适应用户隐私,并且在应用程序或装置在不同上下文(context)中操作时(例如,由不同的用户操作、出于不同的目的等)来改进机器学习模型定制化的准确性。
更特别地,诸如移动计算装置(例如,智能电话)的计算装置可以存储或以其他方式包括一个或多个应用程序(例如,移动应用程序)。该计算装置还可以包括且实现装置上机器学习平台和一个或多个机器学习模型。例如,机器学习模型可以由装置存储在平台管理的集中模型层中。
在一些实现方式中,应用程序可以通过经由客户端/服务关系与装置上机器学习平台进行通信来访问装置上机器学习模型。特别地,在一些实现方式中,机器学习平台可以是可由应用程序引用的独立多租户(multi-tenant)服务。因此,给定的应用程序不需要存储、管理、训练、和/或实现(多个)机器学习模型,而是可以替代地简单地与装置上机器学习平台进行通信以请求和接收来自(多个)模型的推断。在一些实现方式中,应用程序可以经由一个或多个机器学习应用程序编程接口(API)与装置上机器学习平台进行通信。示例API包括但不限于收集API、训练API、和/或预测API。
根据本公开的另一方面,计算装置还可以包括集中式样本数据库,该集中式样本数据库存储从一个或多个应用程序接收的训练样本。特别是,装置上机器学习平台可以经由收集API从应用程序接收训练样本,并且可以在集中式样本数据库中管理样本的存储。例如,作为平台的客户端或租户的每个应用程序可以其自身具有样本的(多个)收集,这些样本的(多个)收集存储在集中式样本数据库中,并且(多个)收集可以用在线方式进行补充和/或管理。
在一些实现方式中,装置上机器学习平台可以根据通常与装置或更具体地与提供训练样本的应用程序相关联的一个或更多个收集模式,动态地管理从应用程序(例如,在其对应的收集内)接收的新训练样本的存储。作为一个示例,收集API可以包括模式控制器或以其他方式与模式控制器进行通信,该模式控制器被配置为接收来自用户的输入指示,其指示是在第一收集模式下还是第二收集模式下对装置上的一个或多个应用程序进行操作。第一收集模式(例如,许可模式)可以对应于一种模式,该模式下基于与应用程序的用户交互的训练样本将用于重新训练至少一个机器学习模型(例如,机器学习模型包含在应用程序中,或以其他方式由应用程序访问)。第二收集模式(例如,隐身模式)可以对应于一种模式,该模式下基于与应用程序的用户交互的训练样本将不用于重新训练至少一个机器学习模型。
更特别地,在一些实现方式中,模式控制器可以提供用户界面,用于从用户接收关于期望的收集模式的数据输入。在一些实现方式中,模式UI可以从用户接收数据输入,该数据输入指示不将训练样本添加到集中式样本数据库中。更特别地,在一些实现方式中,模式UI可以提供可选择的界面元素,其允许用户针对计算装置上操作的所有应用程序在两种模式(例如,第一收集模式和第二收集模式)之间切换。在一些实现方式中,模式UI可以通过提供允许用户针对在计算装置上操作的一个或多个相应的应用程序在两种模式(例如,第一收集模式和第二收集模式)之间切换的多个可选择的界面元素,来向用户提供对在计算装置上操作的应用程序的更细粒(fine-grained)的控制。通过这种方式,经由模式UI从用户接收的数据输入可以通过以下方式来进一步增强模型训练:通过识别何时和如何获得最合适的训练样本,以个性化由用户的装置上的应用程序使用的机器学习模型。
多种因素可能导致用户期望在隐身模式下操作其装置/应用程序,使得训练样本不用于重新训练装置上机器学习模型或更新其他装置上的机器学习模型。例如,隐身模式可以帮助保护收集且提供给机器学习模型的个性化信息,作为提高应用程序性能的一部分。例如,消息传递(messaging)应用程序可以将(多个)接收者和消息的内容用作机器学习模型的样例,以改进基于消息内容的自动接收者选择。替代地,地图应用程序可以将用户的位置和行进方式作为样例添加到机器学习模型中,以预测将来的行进目标。此外,浏览应用程序可以将访问的网站作为样例添加到机器学习模型中,以预测要预取哪些网站以加速浏览。尽管个性化的数据自身典型地不会在装置之外进行共享,但是机器学习模型的更新功能可能会潜在地泄漏有关样例的信息,该样例可能构成收集的训练样本的一部分。
在另一个示例中,隐身模式可以帮助适应不同上下文中的装置和/或应用程序操作。例如,当这样的装置的多个用户以不同的相应方式与该装置交互时,该计算装置可以在不同的上下文中操作。例如,计算装置的主要用户可以允许另一个体(例如,访客用户)与计算装置交互;访客用户与计算装置之间的交互通常将不代表主要用户与计算装置之间的交互。在第二示例中,当单个用户在不同时间以不同方式与计算装置交互时,计算装置可以在不同上下文中操作。例如,给定的用户可以在工作时间期间以某种方式与计算装置交互,而在闲暇时间期间以不同的方式与计算装置交互。在这二者的示例上下文中,如果描述用于与计算装置的用户交互的上下文之一的数据用于训练在用户交互的不同上下文中所使用的机器学习模型,则该数据会使机器学习模型有偏差,并且导致在一个或两个不同的用户交互上下文中机器学习模型的性能降低。
在一些实现方式中,配置为在第一收集模式下进行操作的计算装置可以从在计算装置上存储的应用程序接收一个或多个第一新训练样本。应用程序可以是存储在计算装置上且由计算装置执行的许多应用程序中的一个。可以将在计算装置在第一收集模式下进行操作时接收到的任何第一新训练样本存储在计算装置的集中式样本数据库中。当基于用户输入接收通知,该通知指示不再将附加的训练样本添加到集中式样本数据库(例如,基于在第一收集模式和第二收集模式之间进行切换的用户输入)时,可以改变新训练样本的接收和存储。更特别地,当在接收到这样的通知之后从应用程序接收一个或多个第二新训练样本时,计算装置可以停止将新训练样本存储在集中式样本数据库中,使得在其中没有存储一个或多个第二新训练样本中的任何一个。
根据本公开的另一方面,当装置和/或应用程序在隐身模式下进行操作时,机器学习平台可以被配置为不暴露实际上是否将训练样本添加到应用程序,该应用程序发送训练样本和/或调用机器学习平台的功能。否则,应用程序可能会检测到机器学习隐身模式是否处于打开状态,然后在本地缓存训练样本,使得一旦再次关闭隐身模式就可以将它们重新添加到集中式样本数据库中,从而破坏了模式控制器的作用。
这样,在一些实现方式中,当从请求应用程序接收查询请求,该查询请求请求与在集中式样本数据库中存储的训练样本的状态相关联的信息时,可以响应于该查询请求提供状态更新,该查询请求与所有已添加到集中式样本数据库中的训练样本一致。更特别地,在一些实现方式中,查询请求可以包括计算装置所接收的新训练样本的总计数,其中总计数包括在计算装置和/或应用程序在第一收集模式下进行操作时接收的一个或多个第一新训练样本,以及在计算装置和/或应用程序在第二收集模式(例如,隐身模式)下进行操作时接收的一个或多个第二训练样本。
根据本公开的又一方面,应用程序可以经由训练API与装置上机器学习平台进行通信,以使得基于集中式样本数据库中存储的训练样本对机器学习模型进行重新训练或更新。更具体地,可以基于在特定的计算装置处获得的训练样本来对机器学习模型进行重新训练,以便改善和/或个性化这样的模型。然而,可以仅使用在第一收集模式下进行操作时接收的一个或多个第一新训练样本,而排除在第二收集模式下进行操作时接收的一个或多个第二训练样本,来重新训练机器学习模型。例如,在一些实现方式中,给定训练计划(例如,用于训练模型的指令)的URI(统一资源标识符),基于一个或多个先前收集的第一训练样本,装置上机器学习平台可以运行模型的训练(例如,通过与机器学习引擎交互以使引擎进行模型的训练)。例如,可以在计划的时间和/或在装置空闲时在后台执行训练。
在模型重新训练之后,重新训练的模型可以用于提供推断。例如,应用程序可以经由预测API与装置上机器学习平台进行通信,以提供输入数据且基于输入数据从一个或多个重新训练的机器学习模型获得推断/预测。典型地,由于已经基于特定于用户的数据对模型进行重新训练,因此这些推断的准确度将会更高。因此,装置上机器学习平台可以使得集中式样本数据收集和机器学习模型的对应的个性化作为对应用程序或其他客户端的服务成为可能。
根据另一方面,在一些实现方式中,机器学习平台可以将关于机器学习模型的日志或其他更新上传到云,以用于机器学习指标的详细分析。作为示例,在一些实现方式中,装置上平台可以确定更新,该更新描述了重新训练的机器学习模型的参数,或机器学习模型的参数在模型的重新训练期间发生的改变。平台可以将更新传输到中央服务器计算装置(例如,“云”),以与由其他计算装置提供的其他更新进行聚合。因此,该平台可以使得参与称为“联合学习”的过程成为可能,在该过程中,装置将基于本地存储的数据确定对模型的本地更新,然后将该本地更新通信给云服务(例如,在隐私保护且高效通信的方式下),用于聚合来生成对模型的全局更新。
根据本公开的另一方面,在一些实现方式中,装置上机器学习平台可以完全从底层机器学习引擎提取。例如,机器学习引擎可以是神经网络库或其他引擎,其使得用于推断和/或训练的机器学习模型的实现成为可能。由于这样的提取,机器学习平台可以将模型构件(artifact)视为在云中生成且随后运送到装置(例如,经由动态模型下载的)的斑块(blob),然后在装置处它们被匹配引擎解释。以这种方式,机器学习平台及其支持的应用程序可以对机器学习引擎的变化具有弹性,和/或可以对于所采用的特定引擎或引擎类型是不可知(agnostic)/灵活的。
根据另一方面,与装置上平台互补的工具箱(toolkit)可以提供一套工具(例如Python工具),以在云中创建和模拟模型然后将模型作为构件运送到装置。在一些实现方式中,对于不同版本的机器学习引擎或不同引擎类型,可以从相同源构件(例如,Python源构件)生成工具箱。
在一些实现方式中,装置上机器学习平台可以被包括在应用程序中或被实现为应用程序,例如,移动应用程序。例如,在Android操作系统的上下文中,装置上机器学习平台可以包含在可下载和/或更新的Android套件工具包(Android Package Kit,APK)中。在一个特定示例中,装置上机器学习平台可以被包括在更大的应用程序中或作为更大的应用程序的一部分实现,该更大的应用程序向其他应用程序或装置自身提供许多不同的支持服务。例如,除了装置上机器学习平台之外,更大的应用程序还可以提供使得计算装置能够与数字分发服务进行交互的服务(例如,从“应用程序商店”下载应用程序和/或更新),和/或其他服务。在另一示例中,装置上机器学习平台可以被包括在装置的操作系统的一部分中或实现为该装置的操作系统的一部分,而不是作为独立应用程序。
本公开的系统和方法提供了许多技术效果和益处。作为一个示例技术效果和益处,装置上机器学习平台可以基于本地存储的特定于装置的训练样本来使得机器学习模型的个性化成为可能,从而导致更高准确性的推断。类似地,如本文其他地方所描述,装置上平台可以使得装置参与“联合学习”成为可能,在该联合学习中聚合本地更新以生成全局更新,从而导致提高所有个体的全局模型准确性。
本公开进一步解决了以下技术问题:当存在与计算装置的用户交互的多个上下文时,现有机器学习模块的性能可能降低。例如,计算机装置的多个用户可以以不同的相应方式与该装置交互。例如,计算装置的主要用户可以允许另一个体(例如,访客用户)与计算装置交互;在访客用户和装置之间的交互通常不能代表在主要用户和装置之间的交互。如果描述与系统进行用户交互的上下文之一的数据用于训练在用户交互的不同上下文中所使用的机器学习模型,则该数据会使机器学习模型有偏差,并导致在用户交互的一个或两个上下文中的机器学习模型的性能降低。本公开的某些实施例提供的效果是,它们可以在对要在用户交互的第二上下文中使用的机器学习模型进行训练时不采用代表用户交互的第一上下文的训练样本。因此,在第二上下文中所使用的机器学习模型在用户与计算装置进行交互的第二上下文中具有更高的性能。
本公开进一步解决了与隐私问题有关的技术问题。具体而言,如果在机器学习过程中采用了描述与计算装置的用户交互的数据,则得到的机器学习模型对该数据进行编码。机器学习模型使用编码的数据的方式可能在某些实例中是不可预测的。此外,管理获得训练的机器学习模型的访问权限的任何第三方都可能从中提取描述用户与计算装置进行交互的信息。因此,存在以下技术问题:有关用户与计算装置进行交互的信息可能会从训练的机器学习模型中泄漏。本公开的某些实施例解决了该问题,并且因此具有改进计算装置的安全性的效果。
进一步的示例技术效果和益处提供了特征,用于确保在计算装置上存储的应用程序实际上相对于训练样本数据收集根据用户的期望指令进行操作。更特别地,确保在给定计算机系统上运行的软件应用程序根据计算机系统设置的与机密信息有关的任何要求进行操作,这可能有时在技术上具有挑战性。这样的软件应用程序可以由商业方提供,该商业方将能够未经授权地使用描述与用户的用户交互的信息。正如用户希望,或者甚至如计算机系统可能指示应用程序这么做,不必信任第三方来使用此类信息。本发明的某些实施例具有不必监控软件应用程序的技术操作的效果。
作为另一个示例技术效果和益处,装置上机器学习平台可以提供集中式服务,使得应用程序不需要管理(例如训练和/或运行)机器学习模型或与机器学习引擎进行交互。因此,不需要给定的应用程序来存储、管理、训练和/或实现(多个)机器学习模型,但是替代地可以简单地与装置上机器学习平台进行通信以从(多个)模型中请求和接收推断)。这可以简化应用程序或其他客户端的开发,因为应用程序开发者不需要学习每个不同的机器学习引擎的复杂性,而是替代地可以简单地依赖于平台API的使用。
类似于先前的效果和益处,装置上机器学习平台还可以使得易于更新单个集中服务而不是所有应用成为可能。例如,当启用机器学习引擎的新版本或新类型时,典型地只需要更新装置上平台就能与新引擎进行交互,因为应用程序或其他客户端不与引擎进行交互,而是替代地平台代表它们这样做。这可以消除对应用程序要不断地确保它们与机器学习引擎的最新版本兼容的需求,因为替代地它们可以依靠于装置上平台来与引擎技术的发展保持最新。
作为又一个示例技术效果和益处,装置上机器学习平台可以改进通信网络的效率和使用。也就是说,在过去的范例(其中由服务器而不是在装置上执行机器学习)中,服务器需要通过通信网络(例如,互联网)将各种类型的信息(例如,输入数据、训练样本、推断、模型参数等)传输到装置。然而,由于本公开使得进行装置上的预测、训练、样本收集和/或其他机器学习任务或功能成为可能,因此不需要(至少在每个实例中)在通信网络上传输这样的信息。因此,改进了通信网络的通信量、效率和使用。
现在参考附图,将进一步详细讨论本公开的示例实施例。
示例装置和系统
图1描绘了根据本公开的示例实施例的示例计算装置102的框图,该示例计算装置102包括装置上机器学习平台122。
计算装置102可以是任何类型的计算装置,包括例如桌上型计算机、膝上型计算机、平板计算装置、智能电话、能够穿戴的计算装置、游戏控制台、嵌入式计算装置或其他形式的计算装置。因此,在一些实现方式中,计算装置102可以是移动计算装置和/或用户计算装置。
计算装置102包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理装置(例如,处理器核、微处理器、ASIC、FPGA、控制器、微控制器、等),并且可以是一个处理器或可操作地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,例如RAM、ROM、EEPROM、EPROM、闪速存储器装置、磁盘等,及其组合。存储器114可以存储数据和指令,该指令由处理器112执行以使得计算装置102执行操作。计算装置102还可以包括网络接口116,该网络接口116使得通过一个或多个网络(例如,互联网)进行通信成为可能。
装置上机器学习平台122可以使得装置上预测、训练、样本收集和/或其他机器学习任务或功能,其可以共同地被称为“机器学习功能”。
装置上机器学习平台122可以是在计算装置102(例如,智能电话或平板电脑)上本地存储的一个或多个计算机程序的形式,其在由装置102执行时被配置为执行机器学习管理操作,以代表一个或多个本地存储的应用程序102a-c或其他本地客户端执行装置上机器学习功能。可以使用在计算装置102上本地实现的一个或多个机器学习引擎128来执行装置上机器学习功能中的至少一些。代表一个或多个本地存储的应用程序120a-c或例程(可以称为“客户端”)的装置上机器学习功能的性能可以作为集中式服务来提供给那些客户端,那些客户端可以经由一个或多个应用程序编程接口(API)与装置上机器学习平台122交互。
另外,在一些实现方式中,装置上机器学习平台122可以包括模型控制器126,或以其他方式访问模式控制器126,该模式控制器126允许计算装置102的用户经由模式用户界面(UI)127提供数据输入,该数据输入指示是在用于存储训练样本的第一收集模式(例如,许可模式)下还是在不用于存储训练样本的第二收集模式(例如,隐身模式)下操作装置上的一个或多个应用程序。因此,装置上机器学习平台122可以使得集中训练样本收集、模型训练以及使用机器学习模型132a-c作为对应用程序120a-c或其他客户端的服务成为可能。
更特别地,计算装置102可以存储或以其他方式包括一个或多个应用程序120a-c(例如,移动应用程序)。计算装置102还可包括并且实现装置上机器学习平台122及一个或多个机器学习模型132a-c。例如,机器学习模型132a-c可以由装置102存储在由平台122管理的集中式模型储存库(repository)130中。
根据本公开的一个方面,应用程序120a-c可以经由API(可以称为“预测API”)与装置上机器学习平台122通信,以提供输入数据并且基于输入数据从一个或多个机器学习模型132a-c获得预测。作为示例,在一些实现方式中,给定预测计划(例如,用于运行模型以获得推断/预测的指令)的统一资源标识符(URI)和模型参数,装置上机器学习平台122可以下载URI内容(例如,预测计划和参数)并通过运行模型(例如,通过与机器学习引擎128交互以使由该引擎实现模型)来获得一个或多个推断。另外,平台122可以缓存内容(例如,在储存库130内),使得其可以用于随后的预测请求。
因此,通过经由客户端/服务关系与装置上机器学习平台122进行通信,应用程序120a-c可以访问装置上机器学习模型132a-c。例如,可以为每个应用程序120a-c提供相应的机器学习模型132a-c,并由平台122进行管理。在其他实现方式中,两个或更多个应用程序120a-c可以共享单个机器学习模型132a-c,或者单个应用程序120a-c可以具有两个或更多个模型132a-c。
在一些实现方式中,机器学习平台122可以是可由应用程序120a-c引用的独立多租户服务。因此,给定的应用程序120a-c不需要存储、管理、训练和/或实现机器学习模型132a-c,而是替代地可以简单地与装置上机器学习平台122通信以请求和接收来自(多个)模型132a-c的推断。
根据本公开的另一方面,计算装置102还可以包括集中式样本数据库124,其存储从应用程序120a-c接收的训练样本。特别地,装置上机器学习平台122可以经由API(可以称为“收集API”)从应用程序120a-c接收训练样本,并且可以管理样本在集中式样本数据库124中的存储。例如,作为平台122的客户端或租户的每个应用程序120a-c可以其自身具有样本的(多个)收集,该样本的(多个)收集存储在集中式样本数据库124中,并且(多个)收集可以用在线方式进行补充和/或管理。
在一些实现方式中,装置上机器学习平台122可以根据通常与计算装置102或更具体地与提供训练样本的应用程序120a-c相关联的一个或更多个收集模式,动态地管理从应用程序120a-c接收的新训练样本的存储(例如,在其对应的收集内)。作为一个示例,与装置上机器学习平台122相关联的收集API(例如,图2的收集API 210)可以包括模式控制器126或以其他方式与模式控制器126通信,该模式控制器126被配置为经由模式UI 127接收来自用户的数据输入,该数据输入指示是在第一收集模式下还是在第二收集模式下操作计算装置102上的一个或多个应用程序120a-c。第一收集模式(例如,许可模式)可以对应于以下一种模式:基于与应用程序120a-c的用户交互的训练样本将用于重新训练至少一个机器学习模型(例如,包括在应用程序120a-c中或由应用程序120a-c访问的机器学习模型132a-c),并且因此将该训练样本存储在集中式样本数据库124中。第二收集模式(例如,隐身模式)可以对应于以下一种模式:基于与应用程序120a-c的用户交互的训练样本将不用于重新训练至少一个机器学习模型132a-c,并且因此不存储在集中式样本数据库124中。相对于装置上机器学习平台122的模式控制器126的更多特定方面关于图2进行描绘和描述。
根据本公开的又一个方面,应用程序120a-c可以经由API(可以称为“训练API”)与装置上机器学习平台122通信以使得基于集中式样本数据库124中存储的训练样本对机器学习模型132a-c进行重新训练或更新。作为示例,在某些实现方式中,给定训练计划(例如,用于训练模型的指令)的URI,装置上机器学习平台122可以基于先前收集的样本来运行模型132a-c的训练(例如,通过与机器学习引擎128交互以由引擎128训练模型132a-c)。例如,可以在计划的时间和/或在装置空闲时在后台执行训练。
在重新训练模型132a-c之后,重新训练的模型132a-c可用于提供推断,如本文其他地方所述。典型地,由于已经基于特定于用户的数据对模型132a-c进行重新训练,因此这些推断的准确度将会更高。因此,装置上机器学习平台122可以使得集中式样本数据收集和机器学习模型132a-c的对应的个性化作为对应用程序或其他客户端的服务成为可能。
根据另一方面,在一些实现方式中,机器学习平台122可以将关于机器学习模型132a-c的日志或其他更新上传到云,以用于机器学习指标的详细分析。作为示例,在一些实现方式中,装置上平台122可以确定更新,该更新描述了重新训练的机器学习模型132a-c的参数或者机器学习模型132a-c的参数在模型132a-c的重新训练期间发生的改变(例如,“梯度”)。平台122可以将更新传输到中央服务器计算装置(例如,“云”)以与由其他计算装置提供的其他更新进行聚合。因此,平台122可以使得能够参与被称为“联合学习”的过程,在该过程中,装置基于本地存储的数据来确定对模型132a-c的本地更新,并且然后将该本地更新通信到云服务(例如,在隐私保护且高效通信的方式下),用于聚合来生成对模型132a-c的全局更新。
根据本公开的另一方面,在一些实现方式中,装置上机器学习平台122可以完全从底层机器学习引擎128提取。例如,机器学习引擎128可以是神经网络库或其他引擎,其使得用于推断和/或训练的机器学习模型132a-c的实现成为可能。由于这样的提取,机器学习平台122可以将来自(多个)模型132a-c的模型构件视为在云中生成且随后运送到装置(例如,经由动态模型下载的)的斑块(blob),然后在装置处它们被匹配引擎(例如机器学习引擎128)解释。以这种方式,机器学习平台122及其支持的应用程序120a-c可以对机器学习引擎128的变化具有弹性,并且/或者可以对于所采用的特定引擎或引擎类型是不可知/灵活的。
根据另一方面,与装置上平台122互补的工具箱可以提供一套工具(例如Python工具),以在云中创建和模拟模型然后将模型作为构件运送到装置。在一些实现方式中,对于不同版本的机器学习引擎或不同引擎类型,可以从相同源构件(例如,Python源构件)生成工具箱。
在一些实现方式中,装置上机器学习平台122可以被包括在应用程序中或被实现为应用程序,例如,移动应用程序。例如,在Android操作系统的上下文中,装置上机器学习平台122可以包含在可下载和/或更新的Android套件工具包(Android Package Kit,APK)中。在一个特定示例中,装置上机器学习平台122可以被包括在更大的应用程序中或作为更大的应用程序的一部分实现,该更大的应用程序向其他应用程序120a-c或计算装置102自身提供许多不同的支持服务。例如,除了装置上机器学习平台122之外,更大的应用程序还可以提供使得计算装置能够与数字分发服务进行交互的服务(例如,从“应用程序商店”下载应用程序和/或更新),和/或其他服务。在另一示例中,装置上机器学习平台122可以被包括在计算装置102的操作系统的一部分中或实现为该计算装置102的操作系统的一部分,而不是作为独立应用程序。
图2描绘了根据本公开的示例实施例的示例机器学习模型部署200的流程图。图2的机器学习模型部署200的一些方面类似于图1的计算装置102的方面,并且在这种情况下使用相似的附图标记。更具体地,与操作系统或关联的机器学习平台122不同的第一应用程序120a可以被配置为在计算装置上运行。作为第一应用程序120a的执行的部分,第一应用程序可以包括或以其他方式访问第一机器学习模型(ML模型1)132a。尽管图2仅示出了第一应用程序120a和第一机器学习模型132a,但是应当理解,第一应用程序120a可以与多个机器学习模型交互。附加地或替代地,计算装置可以促进多个应用程序与多个不同的机器学习模型进行交互,如图1所示。在一些实现方式中,第一应用程序120a可以经由一个或多个机器学习应用程序编程接口(API)与装置上机器学习平台122通信。示例API包括但不限于收集API 210、训练API 212和/或预测API 214。
仍然参考图2,第一应用程序120a和/或托管第一应用程序120a的计算装置(例如,计算装置102)被配置为在第一收集模式下或在第二收集模式下进行操作。第一收集模式可以例如对应于许可模式,该许可模式允许将训练样本存储在集中式样本数据库124中。第二收集模式可以例如对应于隐身模式,其阻止训练样本被存储在集中式样本数据库124。更特别地,机器学习平台122(例如,作为计算装置102上的操作系统的部分而被托管的机器学习平台)可以从在计算机上存储的第一应用程序120a接收一个或多个第一新训练样本204。第一应用程序120a可以是在计算装置上存储并由其执行的许多应用程序(例如,应用程序120a-120c)之一。当计算装置在第一收集模式下进行操作时,接收到的任何第一新训练样本204可以存储在计算装置的集中式样本数据库124中。
当基于用户输入接收通知,该通知指示不再将附加的训练样本添加到集中式样本数据库时(例如,基于如经由模式控制器126提供的在第一收集模式和第二收集模式之间切换的用户输入),可以改变新训练样本的接收和存储。更特别地,当在接收到这样的通知之后从第一应用程序120a接收一个或多个第二新训练样本206时,计算装置可以停止将新训练样本存储在集中式样本数据库124中,使得其中没有存储一个或多个第二新训练样本206中的任何一个。
在一些实现方式中,由机器学习平台122对(多个)第一新训练样本204和/或(多个)第二新训练样本206的接收可以由收集API 210来协调。第一新训练样本204和/或第二新训练样本206可以部分地基于训练样本数据202,其可以对应于在与第一应用程序120a的用户交互期间收集的数据。例如,用户可以将输入数据提供给第一应用程序120a,然后将该输入数据用作第一机器学习模型132a的实现的一部分。第一机器学习模型132a的与提供给它的对应输入耦合的输出可以是用于确定一个或多个新训练样本(例如,第一新训练样本204和/或第二新训练样本206)的训练样本数据202的部分。
根据本公开的另一方面,当装置(例如,计算装置102)和/或应用程序(例如,第一应用程序120a)在隐身模式下进行操作时,机器学习平台122可以被配置为不暴露实际上是否将训练样本添加到应用程序(例如,第一应用程序120a)中,该应用程序发送训练样本和/或调用机器学习平台的功能。否则,应用程序120a可能会检测到机器学习隐身模式是否处于打开状态,然后在本地缓存训练样本,使得一旦再次关闭隐身模式就可以将它们重新添加到集中式样本数据库124中,从而破坏了模式控制器126的作用。
这样,在一些实现方式中,当机器学习平台122从请求应用程序接收查询请求,该查询请求与集中式样本数据库124中存储的训练样本的状态相关联的信息时,可以响应于该查询请求提供状态更新,该查询请求与所有已添加到集中式样本数据库中的训练样本一致。更具体地,在一些实现方式中,查询请求可以包括计算装置接收的新训练样本的总计数,其中该总计数包括在计算装置和/或应用程序在第一收集模式下进行操作时接收的一个或多个第一新训练样本204,以及在计算装置和/或应用程序在第二收集模式(例如,隐身模式)下进行操作时接收的一个或多个第二训练样本206。
根据本公开的又一个方面,应用程序(例如,第一应用程序120a)可以经由训练API212与装置上机器学习平台122进行通信,使得基于集中式样本数据库124中存储的训练样本对机器学习模型(例如,第一机器学习模型132a)重新训练或更新。更特别地,可以基于在特定的计算装置处获得的训练样本来对机器学习模型进行重新训练,以便改善和/或个性化这样的模型。然而,可以仅使用在第一收集模式下进行操作时接收的一个或多个第一新训练样本204,而排除在第二收集模式下进行操作时接收的一个或多个第二训练样本206,来重新训练机器学习模型。作为示例,在一些实现方式中,给定训练计划(例如,用于训练模型的指令)的URI(统一资源标识符),基于先前收集的一个或多个第一新训练样本204,装置上机器学习平台122可以运行模型的训练(例如,通过与机器学习引擎交互以由引擎训练模型)。例如,可以在计划的时间和/或在装置(例如,计算装置102)空闲时在后台执行训练。
在对模型(例如,第一机器学习模型132a)进行重新训练之后,重新训练的模型(例如,重新训练的第一机器学习模型132a')可以用于提供推断。例如,应用程序(例如,第一应用程序120a)可以经由预测API 214与装置上机器学习平台122通信,以提供输入数据并且从一个或多个重新训练机器学习模型(例如,重新训练的第一机器学习模型132a')基于输入数据获得推断/预测。典型地,由于已经基于特定于用户的数据对模型进行重新训练,因此这些推断的准确度将会更高。因此,装置上机器学习平台可以使得集中式样本数据收集和机器学习模型的对应的个性化成为可能,作为对应用程序或其他客户端的服务。
图3描绘了根据本公开的示例实施例的样本个性化和联合学习数据流的图形图。
更特别地,图3描绘了三种不同的学习数据流,在某些实例中,它们可以以互补的方式使用。在图3的底部主要用虚线所示的第一数据流中,在用户装置上生成训练数据。训练数据被上传到中央机构,然后中央机构基于上传的数据来训练或重新训练机器学习模型。然后将模型传输到用户装置以供使用(例如,装置上推断)。
在可以被称为个性化或个性化学习的第二数据流中,用户装置上创建的训练数据用于训练或重新训练装置上的模型。然后,这样的装置使用重新训练的模型。这种个性化的学习使得每个装置的模型在没有集中数据收集的情况下进行训练和评估成为可能,从而增强了数据安全性和用户隐私。
在可以被称为联合学习的第三数据流中,用户装置上创建的训练数据用于训练或重新训练装置上的模型。因此,不会将实际的特定于用户的训练数据上传到云中,从而增强了数据安全性和用户隐私。
在这样的装置上学习之后,用户装置可以向中央机构提供更新。例如,更新可以描述重新训练的模型的一个或多个参数,或模型的参数在模型的重新训练期间发生的一个或多个改变。
中央机构可以从多个装置接收许多这样的更新,并且可以聚合更新以生成更新的全局模型。然后可以将更新的全局模型重新传输到用户装置。这种方案使得跨装置模型在没有集中数据收集的情况下进行训练和评估成为可能。
图4描绘了根据本公开的示例实施例的样本收集模式用户界面的框图。更特别地,图4的收集模式用户界面400可以对应于图1的模式UI 127的一个示例实施例。在这样的示例中,图1的模式控制器126可以提供收集模式用户界面400,以从用户接收关于期望的收集模式的数据输入,该收集模式指示是否将从一个或多个应用程序收集的训练样本添加到集中式样本数据库(例如,图1的集中式样本数据库124)。
更特别地参考图4,在一些实现方式中,收集模式用户界面400可以提供交互特征,计算装置(例如,图1的计算装置102)的用户可以通过该交互特征来总体上为计算装置(例如,计算装置102)或为一个或多个应用程序(例如,应用程序120a-c)指定收集许可402。在一些实现方式中,收集模式用户界面400包括可选择的界面元素404,其允许用户对于计算装置上操作的所有应用程序406在两种模式(例如,第一收集模式和第二收集模式)之间进行切换。附加地或替代地,在一些实现方式中,收集模式用户界面400可以通过提供允许用户对于计算装置上操作的一个或多个相应应用程序410a-e在两种模式(第一收集模式和第二收集模式)之间切换的多个可选择的界面元素408a-e,来向用户提供对计算装置上操作的应用程序的更细粒的控制。通过这种方式,经由模式收集用户界面400从用户接收的数据输入可以通过以下来进一步增强模型训练:通过识别何时和如何获得最合适的训练样本,以个性化用户的装置上由应用程序410使用的机器学习模型。
示例方法
图5描绘了根据本公开的示例实施例的示例方法500的流程图,以收集用于执行机器学习的训练样本。
在502处,计算装置可以从计算装置上存储的多个应用程序中的第一应用程序接收一个或多个第一新训练样本。在一些实现方式中,502处接收的一个或多个第一新训练样本至少部分基于与用户与计算装置上存储的第一应用程序的交互相关联的数据。在一些实现方式中,经由计算装置的一个或多个机器学习应用编程接口来实现在502处接收一个或多个第一新训练样本。
在504处,计算装置可以将在502处接收到的一个或多个第一新训练样本存储在计算装置的集中式样本数据库中。集中式样本数据库被配置为存储训练样本,用于重新训练在计算装置上存储的一个或多个机器学习模型。
在506处,计算装置可以向计算装置的用户提供用户界面。506处提供的用户界面可以被配置为接收来自用户的数据输入,该数据输入指示计算装置上的一个或多个应用程序是在第一收集模式下(例如,允许训练样本存储在集中式样本数据库中的许可模式)或是在第二收集模式下(例如,阻止训练样本存储在集中式样本数据库中的隐身模式)进行操作。更特别地,第一收集模式可以对应于一种模式,该模式下基于与一个或多个应用程序的用户交互的训练样本将用于重新训练至少一个机器学习模型,而第二收集模式可以对应于一种模式,该模式下与一个或多个应用程序的用户交互的训练样本将不用于重新训练至少一个机器学习模型。在一些实现方式中,506处提供的用户界面可以提供一个或多个可选择的界面元素,以允许用户对于一个或多个应用程序在第一收集模式和第二收集模式之间进行切换。例如,506处提供的用户界面可以对应于图1的模式UI 127或图4的收集模式用户界面400。在一些实现方式中,506处经由用户界面接收的来自用户的数据输入可通过计算装置的机器学习平台来获得,其中,第一应用程序与机器学习平台不同。
在508处,计算装置可以基于来自用户的数据输入接收通知,该通知指示不再将附加的训练样本添加到集中式样本数据库。在一些实现方式中,508处接收到的通知可以与经由506处提供的用户界面而提供的来自用户的数据输入相关联。
在510处,计算装置可以从计算装置上存储的多个应用程序的第一应用程序接收一个或多个第二新训练样本。在接收到508处接收的通知之后,可以接收510处接收的一个或多个第二新训练样本。在一些实现方式中,510处接收的一个或多个第二新训练样本至少部分地基于用户与计算装置上存储的第一应用程序交互相关联的数据。在一些实现方式中,经由计算装置的一个或多个机器学习应用程序编程接口来实现在510处接收一个或多个第二新训练样本。
在512处,响应于在510处接收到通知,计算装置可以停止将一个或多个第二新训练样本存储在计算装置的集中式样本数据库中。在一些实现方式中,512处停止一个或多个第二新训练样本的存储可以更特别地包括:响应于接收到508处接收的通知,将命令从机器学习平台传输到收集API(例如,图2的收集API 210)。响应于从机器学习平台接收到命令,收集API(例如,收集API 210)可以中断以下一个或多个:从第一应用程序接收一个或多个第二新训练样本,或将一个或多个第二新训练样本存储在计算装置的集中式样本数据库中。
图6描绘了根据本公开的示例实施例的实现机器学习的各方面的示例方法600的流程图。
在602处,计算系统可以至少部分地基于由集中式样本数据库存储的一个或多个第一新训练样本,来从第一应用接收指令以重新训练由计算装置存储的第一机器学习模型。
在604处,计算系统可以至少部分地基于在一个或多个应用程序在第一收集模式下进行操作时接收的训练样本,而不是在一个或多个应用程序在第二收集模式下进行操作时接收的训练样本,对至少一个机器学习模型进行重新训练。在一些实现方式中,计算装置可以至少部分地基于由集中式样本数据库存储的训练样本来使得在604处对第一机器学习模型进行重新训练。604处的机器学习模型重新训练的实现可以是对602处接收的指令的响应。
在606处,计算装置可以确定更新,该更新描述了在604处重新训练的第一机器学习模型的一个或多个参数,或者第一机器学习模型的一个或多个参数在604处重新训练第一机器学习模型期间发生的一个或多个改变。606处确定的更新将不包括关于在接收到通知(例如在508处)之后接收(例如在510处)的一个或多个第二新训练样本的信息。
在608处,计算装置可以将606处确定的更新传输到中央服务器计算装置,以与由其他计算装置提供的其他更新进行聚合。608处的更新的传输可以是对机器学习的联合学习方法的一部分。
在610处,计算装置可以采用604处重新训练的机器学习模型,以至少部分地基于经由第一应用程序提供的输入数据来生成至少一个推断。
在612处,计算装置可以经由一个或多个机器学习应用程序编程接口(例如,预测API)将由重新训练的第一机器学习模型在610处生成的至少一个推断提供给第一应用程序。
图7描绘了根据本公开的示例实施例的实现机器学习的附加的方面的示例方法700的流程图。
在702处,计算装置可以确定由计算装置接收的新训练样本的总计数。702处确定的新训练样本的总计数可以包括一个或多个第一新训练样本(例如,502处接收的一个或多个第一新训练样本)以及一个或多个第二新训练样本(例如,510处接收的一个或多个的第二新训练样本)。
在704处,计算装置可以从计算装置上存储的多个应用程序中的请求应用程序接收查询请求。该查询请求可以请求例如与集中式数据库中存储的训练样本的状态相关联的信息。
在706处,响应于在704处接收到查询请求,计算装置可以向请求应用程序提供状态更新。在一些实现方式中,在706处提供给请求应用程序的状态更新可以指示集中式样本数据库的状态,该状态与在已经将通知的接收添加到集中式样本数据库之后接收的一个或多个第二新训练样本一致。在一些实现方式中,706处向请求应用程序提供的状态更新可以包括702处确定的新训练样本的总计数。
附加的公开
本文中讨论的技术参考服务器、数据库、软件应用程序和其他基于计算机的系统,以及对这样的系统采取的行动和与这样的系统传输的信息。基于计算机的系统的固有灵活性允许在组件之间进行多种可能的配置、组合以及任务和功能的划分。例如,可以使用单个装置或组件或者组合工作的多个装置或组件来实现本文中讨论的过程。数据库和应用程序可以在单个系统上实现,或者可以跨多个系统分布。分布式组件可以顺序或并行进行操作。
尽管已经针对本主题的各种指定示例实施例详细地描述了本主题,但是每个示例都是通过说明而非限制本公开的方式提供的。本领域技术人员一旦理解前述内容,可以容易产生对这样的实施例进行替换、变型和等同。因此,本公开内容不排除如对本领域普通技术人员显而易见的对本主题的此类修改、变型和/或添加。例如,作为一个实施例的一部分示出或描述的特征可以与另一实施例一起使用以产生又一实施例。因此,意图是本公开覆盖这样的变更,变型和等同。
特别地,尽管出于说明和讨论的目的,图5-7分别描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或调整方法500、600和700的各个步骤。

Claims (20)

1.一种计算机实现的方法,包括:
由计算装置从所述计算装置上存储的多个应用程序中的第一应用程序接收一个或多个第一新训练样本;
由所述计算装置将所述一个或多个第一新训练样本存储在所述计算装置的集中式样本数据库中,其中,所述集中式样本数据库被配置为存储训练样本,用于对在所述计算装置上存储的一个或多个机器学习模型进行重新训练;
由所述计算装置访问由所述计算装置的用户输入的模式控制器数据,所述模式控制器数据指示是在许可收集模式下还是在隐身收集模式下操作所述第一应用程序,在所述许可收集模式下,基于与所述第一应用程序的用户交互的训练示例将用于重新训练所述一个或多个机器学习模型,在所述隐身收集模式下,基于与所述第一应用程序的用户交互的训练示例将不用于重新训练所述一个或多个机器学习模型;
由所述计算装置基于由用户输入的对应于所述隐身收集模式的所述模式控制器数据接收通知,所述通知指示不再将附加的训练样本添加到所述集中式样本数据库中;
由所述计算装置从所述计算装置上存储的多个应用程序中的第一应用程序接收一个或多个第二新训练样本,其中,在接收到所述通知后,接收所述一个或多个第二新训练样本;
响应于接收到所述通知,由所述计算装置停止将所述一个或多个第二新训练样本存储在所述计算装置的集中式样本数据库中;
从所述多个应用程序中的请求应用程序接收查询请求;以及
响应于所述查询请求的接收,向所述请求应用程序发送响应,所述响应不暴露所述一个或多个第一和第二新训练样本中的哪个被存储在所述集中式样本数据库中,使得所述请求应用程序不能检测所述第一应用程序在隐身收集模式下的操作。
2.根据权利要求1所述的计算机实现的方法,还包括:
由所述计算装置至少部分地基于由所述集中式样本数据库存储的训练样本来使得第一机器学习模型被重新训练,其中,所述第一机器学习模型至少部分地基于所述一个或多个第一新训练样本进行重新训练。
3.根据权利要求2所述的计算机实现的方法,还包括:
由所述计算装置接收来自所述第一应用程序的指令,以至少部分地基于由所述集中式样本数据库存储的所述一个或多个第一新训练样本对由所述计算装置存储的第一机器学习模型进行重新训练;并且
其中,由所述计算装置至少部分地基于由所述集中式样本数据库存储的所述一个或多个第一新训练样本,使得对第一机器学习模型进行重新训练是响应于所述指令来实现的。
4.根据权利要求3所述的计算机实现的方法,还包括:
由所述计算装置使用重新训练的第一机器学习模型,以至少部分地基于经由所述第一应用程序提供的输入数据来生成至少一个推断;以及
由所述计算装置经由一个或多个机器学习应用程序编程接口将由重新训练的第一机器学习模型生成的所述至少一个推断提供给所述第一应用程序。
5.根据权利要求3所述的计算机实现的方法,还包括:
由所述计算装置确定更新,所述更新描述重新训练的第一机器学习模型的一个或多个参数,或者在所述第一机器学习模型的重新训练期间发生的对所述第一机器学习模型的一个或多个参数的一个或多个改变;以及
将所述更新传输到中央服务器计算装置,以与由其他计算装置提供的其他更新进行聚合。
6.根据权利要求1所述的计算机实现的方法,还包括:
由所述计算装置确定由所述计算装置接收到的新训练样本的总计数,其中,所述新训练样本的总计数包括所述一个或多个第一新训练样本和所述一个或多个第二新训练样本二者;以及
由所述计算装置从在所述计算装置上存储的多个应用程序中的请求应用程序接收查询请求,所述查询请求对与所述集中式样本数据库中存储的所述训练样本的状态相关联的信息进行请求;以及
响应于接收到所述查询请求,由所述计算装置将所述新训练样本的总计数提供给所述请求应用程序。
7.根据权利要求1所述的计算机实现的方法,其中,经由所述计算装置的一个或多个机器学习应用程序编程接口来实现:由所述计算装置从在所述计算装置上存储的多个应用程序中的第一应用程序接收一个或多个第一新训练样本,并且由所述计算装置从在所述计算装置上存储的多个应用程序中的第一应用程序接收一个或多个第二新训练样本。
8.根据权利要求1所述的计算机实现的方法,其中,所述一个或多个第一新训练样本至少部分地基于与所述用户与在所述计算装置上存储的第一应用程序的交互相关联的数据。
9.根据权利要求1所述的计算机实现的方法,其中,由用户输入的模式控制器数据是经由用户界面接收的,所述用户界面包括分别对应于所述多个应用程序的多个可选择的界面元素。
10.根据权利要求9所述的计算机实现的方法,其中,响应于接收到所述通知,由所述计算装置停止将所述一个或多个第二新训练样本存储在所述计算装置的集中式样本数据库中包括:
响应于接收到所述通知,由所述计算装置将来自机器学习平台的命令传输到第一应用程序;以及
响应于从所述机器学习平台接收所述命令,由在所述计算装置上存储的第一应用程序中断以下的一个或多个:从所述第一应用程序接收所述一个或多个第二新训练样本;或者将所述一个或多个第二新训练样本存储在所述计算装置的集中式样本数据库中。
11.一种计算装置,包括:
一个或多个处理器;和
一个或多个非暂时性计算机可读介质,所述一个或多个非暂时性计算机可读介质存储以下各项:
由所述一个或多个处理器实现的一个或多个应用程序;
至少一个机器学习模型;
集中式样本数据库,所述集中式样本数据库存储从所述一个或多个应用程序接收的训练样本,所述集中式样本数据库配置为存储用于对所述至少一个机器学习模型进行重新训练的训练样本;以及
指令,当由所述一个或多个处理器执行时,使得所述计算装置执行操作,所述操作包括:
从所述一个或多个应用程序中的第一应用程序接收一个或多个第一新训练样本;
将所述一个或多个第一新训练样本存储在所述集中式样本数据库中:
访问由所述计算装置的用户输入的模式控制器数据,所述模式控制器数据指示是在许可收集模式下还是在隐身收集模式下操作所述第一应用程序,在所述许可收集模式下,基于与所述第一应用程序的用户交互的训练示例将用于重新训练所述至少一个机器学习模型,在所述隐身收集模式下,基于与所述第一应用程序的用户交互的训练示例将不用于重新训练所述至少一个机器学习模型;
基于由用户输入的对应于所述隐身收集模式的所述模式控制器数据接收通知,所述通知指示不再将附加的训练样本添加到所述集中式样本数据库中;
从所述一个或多个应用程序中的第一应用程序接收一个或多个第二新训练样本,其中,在接收到通知之后,接收所述一个或多个第二新训练样本;
响应于接收到所述通知,停止在所述集中式样本数据库中存储所述一个或多个第二新训练样本;
至少部分地基于在所述集中式样本数据库中存储的所述训练样本来对所述至少一个机器学习模型进行重新训练,其中,所述至少一个机器学习模型至少部分地基于所述一个或多个第一新训练样本进行重新训练;以及
以不暴露在所述重新训练中利用了一个或多个第一和第二新训练样本中的哪一个的方式,使用重新训练的至少一个机器学习模型,使得所述第一应用程序在隐身收集模式下的操作不能被检测到。
12.根据权利要求11所述的计算装置,其中:
所述一个或多个应用程序包括多个应用程序;并且
所述集中式样本数据库存储从所述多个应用程序中的两个或多个不同应用程序接收的训练样本。
13.根据权利要求12所述的计算装置,其中,由所述用户输入的所述模式控制器数据指示不再将附加的训练样本添加到所述集中式样本数据库中,这使得对于所述多个应用程序中的所有应用程序,停止在所述集中式样本数据库中存储所述一个或多个第二新训练样本。
14.根据权利要求12所述的计算装置,其中,由所述用户输入的所述模式控制器数据指示不再将附加的训练样本添加到所述集中式样本数据库中,这指定从之接收附加的训练样本的所述多个应用程序中的两个或更多个不同的应用程序中的哪些应用程序不应该再被添加到所述集中式样本数据库中。
15.根据权利要求11所述的计算装置,其中,所述操作还包括:
确定更新,所述更新描述了重新训练的至少一个机器学习模型的一个或多个参数,或者在所述至少一个机器学习模型的重新训练期间发生的对所述至少一个机器学习模型的一个或多个参数的一个或多个改变;以及
将所述更新传输到中央服务器计算装置,以与由其他计算装置提供的其他更新进行聚合。
16.根据权利要求11所述的计算装置,其中,所述计算装置包括移动计算装置,并且所述一个或多个应用程序包括一个或多个移动应用程序。
17.根据权利要求11所述的计算装置,其中,所述操作还包括:
从所述一个或多个应用程序中的请求应用程序接收查询请求;
响应于接收到所述查询请求,向所述请求应用程序传输指示所述集中式样本数据库的状态的响应,所述状态与在接收所述通知之后接收的、已经添加到所述集中式样本数据库中的所述一个或多个第二新训练样本一致。
18.一种计算机可读记录介质,存储指令,当所述指令由一个或多个处理器执行时,使计算装置实现执行操作的装置上机器学习平台,所述操作包括:
向计算装置的用户提供用户界面,所述用户界面配置为接收来自所述用户的数据输入,所述数据输入指示在所述计算装置上的一个或多个应用程序是在第一收集模式下还是第二收集模式下进行操作;
其中,来自所述用户的数据输入是经由所述计算装置的机器学习平台可用的用户界面接收的,所述一个或多个应用程序不同于所述机器学习平台,所述用户界面包括分别对应于一个或多个应用程序的一个或多个可选择的界面元素;
其中,所述第一收集模式对应于许可模式,在许可模式下,基于与所述一个或多个应用程序的用户交互的训练样本将用于重新训练至少一个机器学习模型;
其中,所述第二收集模式对应于隐身模式,在隐身模式下,基于与所述一个或多个应用程序的用户交互的训练样本将不用于重新训练所述至少一个机器学习模型;
至少部分地基于在所述一个或多个应用程序在所述第一收集模式下进行操作时接收到的训练样本,重新训练所述至少一个机器学习模型;以及
以防止检测到所述计算装置上的一个或多个应用程序何时在第一收集模式或第二收集模式下操作的方式,使用重新训练的至少一个机器学习模型。
19.根据权利要求18所述的计算机可读记录介质,其中,所述操作还包括:将命令传输到以下中的一个或多个:所述计算装置的操作系统,或在所述计算装置上操作的所述一个或多个应用程序,以当所述一个或多个应用程序在所述第二收集模式下进行操作时,禁止将训练样本添加到集中式训练数据库中。
20.根据权利要求18所述的计算机可读记录介质,其中,向所述计算装置的用户提供的所述用户界面提供一个或多个可选择的界面元素,所述可选择的界面元素允许所述用户在所述一个或多个应用程序的所述第一收集模式和所述第二收集模式之间切换。
CN201880044313.3A 2017-11-07 2018-08-30 个性化机器学习模型的隐身模式 Active CN110832458B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/805,484 2017-11-07
US15/805,484 US11216745B2 (en) 2017-11-07 2017-11-07 Incognito mode for personalized machine-learned models
PCT/US2018/048668 WO2019094092A1 (en) 2017-11-07 2018-08-30 Incognito mode for personalized machine-learned models

Publications (2)

Publication Number Publication Date
CN110832458A CN110832458A (zh) 2020-02-21
CN110832458B true CN110832458B (zh) 2023-08-22

Family

ID=63407547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880044313.3A Active CN110832458B (zh) 2017-11-07 2018-08-30 个性化机器学习模型的隐身模式

Country Status (4)

Country Link
US (2) US11216745B2 (zh)
EP (2) EP4435598A2 (zh)
CN (1) CN110832458B (zh)
WO (1) WO2019094092A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11011162B2 (en) * 2018-06-01 2021-05-18 Soundhound, Inc. Custom acoustic models
US10990850B1 (en) * 2018-12-12 2021-04-27 Amazon Technologies, Inc. Knowledge distillation and automatic model retraining via edge device sample collection
US11948096B2 (en) 2020-03-13 2024-04-02 International Business Machines Corporation Adaptively adjusting influence in federated learning model updates
US20220101174A1 (en) * 2020-09-28 2022-03-31 International Business Machines Corporation Sharing and executing custom machine learning algorithms
CN112307331B (zh) * 2020-10-14 2023-11-24 湖南天河国云科技有限公司 一种基于区块链高校毕业生智能招聘信息推送方法、系统及终端设备
US11586676B2 (en) 2020-12-18 2023-02-21 International Business Machines Corporation Mode-specific search query processing
CN114844915A (zh) * 2021-01-14 2022-08-02 新智数字科技有限公司 一种基于联合训练全流程框架的模型训练方法
US11443245B1 (en) 2021-07-22 2022-09-13 Alipay Labs (singapore) Pte. Ltd. Method and system for federated adversarial domain adaptation

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647108A (zh) * 2002-04-19 2005-07-27 计算机联合思想公司 通过本地网的自动模型维护
US8429103B1 (en) * 2012-06-22 2013-04-23 Google Inc. Native machine learning service for user adaptation on a mobile platform

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9111540B2 (en) 2009-06-09 2015-08-18 Microsoft Technology Licensing, Llc Local and remote aggregation of feedback data for speech recognition
US8533224B2 (en) * 2011-05-04 2013-09-10 Google Inc. Assessing accuracy of trained predictive models
US8732569B2 (en) 2011-05-04 2014-05-20 Google Inc. Predicting user navigation events
US10853505B2 (en) * 2011-12-30 2020-12-01 Microsoft Technology Licensing, Llc Data policies for online services
US20130227352A1 (en) * 2012-02-24 2013-08-29 Commvault Systems, Inc. Log monitoring
US9195388B2 (en) * 2013-03-15 2015-11-24 Apple Inc. Specifying applications to share in a shared access mode
US9324022B2 (en) * 2014-03-04 2016-04-26 Signal/Sense, Inc. Classifying data with deep learning neural records incrementally refined through expert input
US9602609B2 (en) 2014-03-28 2017-03-21 Google Inc. Incognito mode in a media application
US20150324690A1 (en) 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US9881613B2 (en) 2015-06-29 2018-01-30 Google Llc Privacy-preserving training corpus selection
US10803391B2 (en) 2015-07-29 2020-10-13 Google Llc Modeling personal entities on a mobile device using embeddings
US20170097996A1 (en) * 2015-10-06 2017-04-06 Green Dot Corporation Systems and Methods for Privacy Preservation
US10402469B2 (en) 2015-10-16 2019-09-03 Google Llc Systems and methods of distributed optimization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647108A (zh) * 2002-04-19 2005-07-27 计算机联合思想公司 通过本地网的自动模型维护
US8429103B1 (en) * 2012-06-22 2013-04-23 Google Inc. Native machine learning service for user adaptation on a mobile platform

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
federated learning of deep networks using model averaging;H. Brendan McMahan等;《arXiv:1602.05629v1[cs.LG]》;20160217;第1-11页 *

Also Published As

Publication number Publication date
US20220101200A1 (en) 2022-03-31
EP3631699A1 (en) 2020-04-08
CN110832458A (zh) 2020-02-21
EP4435598A2 (en) 2024-09-25
WO2019094092A1 (en) 2019-05-16
EP3631699B1 (en) 2024-08-07
US11216745B2 (en) 2022-01-04
US20190138940A1 (en) 2019-05-09
US11983613B2 (en) 2024-05-14

Similar Documents

Publication Publication Date Title
CN110832458B (zh) 个性化机器学习模型的隐身模式
JP7252286B2 (ja) オンデバイス機械学習プラットフォーム
JP6923676B2 (ja) オンデバイス機械学習プラットフォーム
US10481875B2 (en) Generation of an application from template
US12020127B2 (en) On-device machine learning platform to enable sharing of machine learned models between applications
US11238377B2 (en) Techniques for integrating segments of code into machine-learning model
US11665221B2 (en) Common services model for multi-cloud platform
US12118042B2 (en) Method, system, and non-transitory computer-readable record medium for providing multiple models of federated learning using personalization
US10701057B2 (en) Assembly manager
CN115443458A (zh) 数据同步中的多模式版本支持
CN117130647A (zh) 代码管理方法、装置及系统
US20230237402A1 (en) Methods, systems, apparatus, and articles of manufacture to enable manual user interaction with automated processes
US11799864B2 (en) Computer systems for regulating access to electronic content using usage telemetry data
US20240111832A1 (en) Solver execution service management

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant