CN109314722A - 用于测量针对通知的用户可行性或接受能力的方法、装置和机器可读介质 - Google Patents
用于测量针对通知的用户可行性或接受能力的方法、装置和机器可读介质 Download PDFInfo
- Publication number
- CN109314722A CN109314722A CN201780038655.XA CN201780038655A CN109314722A CN 109314722 A CN109314722 A CN 109314722A CN 201780038655 A CN201780038655 A CN 201780038655A CN 109314722 A CN109314722 A CN 109314722A
- Authority
- CN
- China
- Prior art keywords
- user
- training
- equipment
- instruction
- client 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/62—Establishing a time schedule for servicing the requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
Abstract
本文描述的各种实施例涉及一种用于确定用户交互的适当时间的方法、系统和非瞬态机器可读存储介质,包括以下中的一项或多项:所述方法包括:接收来自客户端应用的针对用户是否开放以参与用户交互的指示的请求;获得关于所述用户在用户设备上的近期活动的使用信息;将至少一个训练的预测模型应用到所述使用信息以识别所述用户的当前情境状态,其中,所述当前情境状态包括以下中的至少一个:表示所述用户执行与所述用户交互相关联的物理动作的当前能力的可行性度量,以及表示所述用户注意所述用户交互的当前能力的接受能力度量;基于所述用户的情境状态来确定时机指示;并且向所述客户端应用提供所述时机指示。
Description
技术领域
本文描述的各种实施例涉及用户交互,并且更具体地但非排他地涉及用于确定向用户提供通知、消息或其他交互的适当时间的服务。
背景技术
诸如智能电话和平板计算机的移动设备已成为大多数人的主要联系点,不仅用于人与人通信,而且也用于来自应用和服务的通信。这些设备可以特别强大,用于经由通知或其他消息将信息推送给用户,而不是要求用户首先征求输入。例如,训练计划能够将建议和信息推送给用户,以帮助他们全天实现该计划的目标。这使得用户无需主动遵循训练计划即可完成他们的一天。在一天中的任何时刻,用户可以从训练服务接收消息并阅读信息或采取建议的动作(例如,步行而不是开车去吃午餐)。
发明内容
虽然向用户推送消息的自由可以有益于应用的目标,但是当用户没有空或以其他方式开放以参与用户交互时,将通知推送给用户也没有帮助。例如,如果用户当前正在驾驶他们的汽车,则他们不能阅读到来的消息。作为另一示例,如果用户正在工作会议中,则他们不能离开并参与建议的身体活动(但是可能能够阅读消息,这取决于会议)。
提供一种用于识别与用户交互的适当时间的方法和系统将是有益的。如下面将更详细描述的,各种实施例利用由移动设备报告的使用(例如,文本消息传送、应用切换、正在使用的应用的类型)来估计用户当前是否能够对建议采取行动或接受以阅读信息性消息。
因此,本文描述的各种实施例涉及一种由预测设备执行的用于确定用户交互的适当时间的方法,所述方法包括:接收来自客户端应用的针对用户是否开放以参与用户交互的指示的请求;获得关于所述用户在用户设备上的近期活动的使用信息;将至少一个训练的预测模型应用到所述使用信息以识别所述用户的当前情境状态,其中,所述当前情境状态包括以下中的至少一个:表示所述用户执行与所述用户交互相关联的物理动作的当前能力的可行性度量,以及表示所述用户注意所述用户交互的当前能力的接受能力度量;基于所述用户的情境状态来确定时机指示;并且向所述客户端应用提供所述时机指示。
本文描述的各种实施例涉及一种用于确定用户交互的适当时间的预测设备,所述预测设备包括:存储器,其被配置为存储用于识别用户的当前情境状态的至少一个训练的预测模型,其中,所述当前情境状态包括以下中的至少一个:表示所述用户执行与所述用户交互相关联的物理动作的当前能力的可行性度量,以及表示所述用户注意所述用户交互的当前能力的接受能力度量;以及与所述存储器通信的处理器,所述处理器被配置为:接收来自客户端应用的针对用户是否开放以参与用户交互的指示的请求;获得关于所述用户在用户设备上的近期活动的使用信息;将所述至少一个训练的预测模型应用到所述使用信息;基于所述用户的情境状态来确定时机指示;并且向所述客户端应用提供所述时机指示。
本文描述的各种实施例涉及一种非瞬态机器可读介质,其由用于确定用户交互的适当时间的预测设备执行编码,所述非瞬态机器可读介质包括:用于接收来自客户端应用的针对用户是否开放以参与用户交互的指示的请求的指令;用于获得关于所述用户在用户设备上的近期活动的使用信息的指令;用于将至少一个训练的预测模型应用到所述使用信息以识别所述用户的当前情境状态的指令,其中,所述当前情境状态包括以下中的至少一个:表示所述用户执行与所述用户交互相关联的物理动作的当前能力的可行性度量,以及表示所述用户注意所述用户交互的当前能力的接受能力度量;用于基于所述用户的情境状态来确定时机指示的指令;以及用于向所述客户端应用提供所述时机指示的指令。
描述了各种实施例,其中,所述时机指示包括所述当前情境状态。
描述了各种实施例,其中,所述使用信息的至少部分是经由所述用户设备的操作系统应用编程接口(API)获得的。
描述了各种实施例,其中,接收、获得、应用、确定和提供的步骤是由所述用户设备的处理器执行的。
各种实施例还包括从远程预测模型训练设备接收所述至少一个训练的预测模型。
各种实施例还包括:在向所述客户端应用提供所述时机指示之后:获得关于所述用户对所述客户端应用的反应的反馈信息;从所述反馈信息中辨别关于所述用户的可行性和接受能力中的至少一个的标签;通过将所述标签与所述使用信息相关联来生成训练示例;通过至少将所述训练示例添加到现有训练集来更新所述现有训练集以生成更新后的训练集;并且基于所述更新后的训练集来重新训练所述至少一个训练的预测模型。
描述了各种实施例,其中,辨别的步骤包括将训练的反馈解读模型应用到所述反馈信息以接收所述标签。
描述了各种实施例,其中,所述反馈信息描述在向所述客户端应用提供所述时机指示之后所述用户在所述用户设备上的活动。
描述了各种实施例,其中,辨别的步骤包括一起分析所述反馈信息和所述使用信息以确定用户是否改变了他们的使用行为。
附图说明
为了更好地理解各种示例实施例,参考附图,其中:
图1示出了用于在适当时间执行用户交互的功能系统的示例;
图2示出了用于实施用于在适当时间执行用户交互的系统(或其一部分)的硬件设备的示例;
图3示出了用于在适当时间执行用户交互的系统的第一实施例;
图4示出了用于在适当时间执行用户交互的系统的第二实施例;
图5示出了用于从设备操作系统收集使用信息的方法的示例;
图6示出了用于生成用于在预测模型训练或应用中使用的特征集的方法的示例;
图7示出了用于训练一个或多个预测模型的训练集的示例;
图8示出了用于处理特征集以创建训练示例并生成情境状态预测的方法的示例;
图9示出了用于基于接收到的反馈来更新预测模型的方法的示例;并且
图10示出了用于训练模型的方法的示例。
具体实施方式
本文呈现的描述和附图说明了各种原理。将认识到,本领域技术人员将能够设想各种布置,虽然这些布置未在本文中明确描述或示出,但体现了这些原理并且包含于本公开的范围内。如本文所使用的,除非另有说明(例如,“否则”或“或在替代方案中”),否则如本文所使用的术语“或”是指非排他性的或(即,和/或)。另外,本文描述的各种实施例不一定是相互排斥的,并且可以被组合以产生包含本文描述的原理的额外实施例。
图1示出了用于在适当时间执行用户交互的功能系统100的示例。虽然各种功能设备被示出并且各自在物理设备或其部分中实现,但是将理解,在各种实施例中,功能设备可以并置在单个设备上,跨多个设备复制,或者分布在多个设备之中。例如,每个功能设备可以在专用物理设备中实现,所有功能设备可以在单个物理设备(例如,诸如平板计算机或智能电话的用户移动设备)或其间的任何中间布置中实现。作为另一示例,可以跨地理上分布的物理服务器提供多个中断服务设备120,以基于预测设备的输出冗余地向各种客户端应用设备110提供时机指示。作为又一示例,在使用情境状态的多个度量(例如,可行性和接受能力)的实施例中,可以为每个这样的度量提供单独的训练集创建设备150、预测模型训练设备160或预测设备170,并且这种功能设备可以跨不同的物理服务器分布。
如图所示,客户端应用设备110可以是根据其自身的操作和目的与用户进行交互的设备,例如用户经由他们的智能设备或其他渠道(例如,经由app、SMS、电子邮件、电话、可穿戴通知等)向用户发送具有信息或动作建议的通知。客户端应用设备可以是例如用户的智能设备(例如,将客户端应用作为app运行),远离用户的服务器(例如,将客户端应用作为web或其他服务运行的虚拟机),或能够执行与用户进行交互的客户端应用的任何设备,其能够延迟、灵活输送或调整其定时的其他能力。
中断服务设备120实际上可以是任何物理设备(例如,用户的智能设备、运行虚拟机的远程服务器等),其能够解读由预测设备提供的用户的情境状态的度量并将这样的指示提供回客户端应用设备110。例如,中断服务设备120可以解读多个这样的度量并提供单个时机指示(例如,与诸如“未开放”、“接受但不可行”、“接受并可行”等的概念相关的令牌),或可以简单地转发这样的度量作为时机指示。中断服务设备120可以根据需要向客户端应用设备110提供这样的时机指示(例如,作为查询服务),或者基于情境状态的相关变化,向客户端应用设备110提供先前已经指示希望接收这样的更新(例如,作为订阅服务)。然后,客户端应用110可以使用这些接收到的指示来估计何时适合发起用户交互。
在客户端应用设备110和中断服务设备120在单独的物理设备中实现的情况下,查询或订阅通信可以例如经由一个或多个联网信道进行。例如,如果两个设备在物理上彼此靠近(例如,如果客户端应用设备110是可穿戴腕表设备并且中断服务设备120是用户的移动电话),则通信可以根据短程无线通信协议进行,短程无线通信协议例如近场通信(NFC)、蓝牙(包括蓝牙低能量)、Wi-Fi等。在其中两个设备彼此更远的实施例中,通信可以遍历一个或多个无线或有线网络,例如Wi-Fi、3G、4G、LTE或以太网网络。这些网络可以包括或形成例如移动运营商网络、云计算数据中心网络、互联网等的一部分。在这两个设备在相同的物理硬件中实现的情况下,本文描述的通信可以经由可以由本地设备的操作系统提供的一个或多个进程间通信进行。这样的方法可以包括记录要由另一进程读取的文件,将数据发送到与各个套接字相关联的套接字,在处理之间建立一个或多个管道,将数据写入共享存储器,通过事件总线推送事件等。在两个设备被实现为相同进程的一部分的一些实施例中,本文描述的通信可以通过调用或传递数据到与其他功能设备相关联的函数、将数据写入共同位置(例如为进程留出的配置文件或存储器集)来实现。在可以实现功能设备的各种物理和过程情境中,功能设备之间的各种其他通信方法将是显而易见的。另外,取决于被实施的系统100的特定实施例,这些方法中的任何一种可以应用于本文描述的其他功能设备130-170或未示出的其他设备之间的通信。
智能设备监视器130是监视一种或多种类型的原始设备(例如,移动电话或平板计算机)使用信息的设备,例如,当前设备屏幕(例如,锁定、解锁、主屏幕、在app中、在app切换器中等),振铃设置(例如,高音量、低音量、高振动、低振动、静音等),自最后解锁起的时间,锁定/解锁的历史日志,电池状态(例如,充电/不充电、电池电量、放电时间),消息(例如,消息/通知的模式,消息/通知的数量,接收者的数量),在给定时间窗口内进出的通信频率,电话呼叫(例如,在通话中/不在通话中,拨打/接听电话模式,错过/拒接电话的模式,拨打/接听/错过/拒接的电话的号码,在给定时间窗内拨打/接听/错过/拒接电话时其他方的号码等),当前使用的应用(例如,名称、类别[效率、游戏、实用工具等],在当前app中的时间等),应用使用模式(例如,在给定时间窗内使用的app的数量和类别),网络连接(例如,无、Wi-Fi、蜂窝、特定载波/频率等),当前的Wi-Fi网络(例如,SSID名称、信号强度、频率等),范围内的当前Wi-Fi网络的签名,当前连接的设备的签名(例如,经由蓝牙、NFC等)等。在一些实施例中,该信息中的一些或多个可能不能直接从OS或其他应用(即,以原始形式)获得,而是代替地从可用的原始使用信息中提取出(如下面将关于特征提取设备140更详细地描述的)。
在一些实施例中,原始使用信息可以全部或部分地由智能设备本身的操作系统(OS)收集,其因此可以构成智能设备监视器130。在一些这样的实施例中,OS可以经由应用编程接口(API)使这种原始使用信息直接可用于特征提取设备130,如将理解的,所述API可以根据推送或拉动协议操作。在一些实施例中,在智能设备上运行的另一过程或app可以通过直接观察用户与app的交互或通过经由相应的API轮询来自OS或其他app的其他原始使用信息来收集原始使用信息中的一些或全部。例如,OS API可以提供到另一处理器或app的当前网络连接的即时视图,该另一处理器或app然后可以编译在一段时间内看到的所有网络连接状态的日志。编译原始使用信息的各种其他方法将是显而易见的。
特征提取设备140可以是能够从原始使用信息提取额外有用信息的任何设备。该“提取的使用信息”实际上可以是尚未包含于原始使用信息中(例如,尚不可通过日志记录或观察OS状态获得)但能够从其导出的任何信息。例如,网络切换的频率,在特定文本交谈中花费的中值时间,或当前呼叫的分类(例如,重要的、随意的、不受欢迎的)。可以根据包括统计算法或训练的机器学习模型的任何方法来获得这样的特征。
在一些实施例中,特征提取设备140可以是部署后可扩展的以改变所提取的特征。例如,特征提取设备140可以存储一个或多个脚本、编译得指令或定义用于特征提取的算法的其他项。特征提取设备140可以在提取特征时执行或解读每个这样的可获得的项,并且向训练集创建设备150或预测设备170下游证明所有结果数据。为了修改哪些特征被提取,可以修改、删除或补充这些项的集合。
特征提取设备140将原始使用信息和提取的使用信息两者(即,与一个或多个训练的模型一起使用的特征或其至少一个子集)提供给训练集创建设备150用于训练一个或多个模型,以及提供给预测设备170用于应用训练的模型以生成用户的当前情境状态的度量。特征提取设备140可以连续地发送信息(例如,以一致的流或者可用的方式),或者可以在更加充裕的时间收集用于批量传输的数据。在要批量发送来自多个时隙的使用信息的情况下,特征提取设备140可以聚集并压缩这些特征以进行传输。传输方法不需要与训练集创建设备150和预测设备170两者相同。例如,特征提取设备140可以每小时向训练集创建设备150发送聚集并压缩的使用信息集,但是,随着使用信息变得可用,可以立即将使用信息发送到预测设备。在训练集创建设备150远离特征提取设备140定位但是预测设备在与特征提取设备140相同的硬件本地或并置在与该特征提取设备相同的硬件中的情况下,这可能是特别有益的。
训练集创建设备150可以是能够构建一个或多个训练集的任何设备,用于根据接收到的使用信息、反馈和任何其他有用的情境信息来训练一个或多个机器学习模型。因此,训练集创建设备150可以在例如用户的智能设备或托管VM的远程服务器中实现。显而易见的是,训练集创建设备150的操作和所产生的(一个或多个)训练集的布置将取决于由预测模型训练设备160所采用的机器学习方法和模型。例如,在预测模型训练设备160使用监督(或半监督)学习方法的情况下,训练集创建设备150可以生成标记的训练集(例如,其中每个特征集与指示表示被发现或推测为对应于该特征集的用户的可行性、接受能力等的布尔值或数值的标签配对)。为了提供这样的标签,人类操作员(例如,用户或另一操作员)可以查看特征集并手动提供这些标签。备选地,客户端应用110可以在输送用户交互之后基于实际观察到的用户行为而返回这样的标签作为反馈。在一些实施例中,可以遵循半监督方法而不是直接提供标签。例如,可以将一个或多个单独训练的机器学习模型(例如,用于每个情境状态度量的逻辑回归模型)应用到特征集或反馈信息(其可以构成关于用户在用户交互输送之前、期间或之后观察到的使用信息或其他信息)以确定针对每个训练示例的一个或多个标签(例如,离散地或作为每个潜在标签适用的可能性)。用于标记特征集的一些有用反馈可以包括描述用户如何与输送的通知(或其他发起的用户交互)交互(例如,忽略、在2秒内阅读和拒接、等等)的信息或者在用户交互之后传输的数据。通过应用这样的模型,训练集创建设备150能够确定用户的行为是否以及在什么程度上响应于发起的用户交互而改变,由此估计该用户交互的成功。
在一些实施例中,训练集创建设备150还可以从训练集中删除旧的或非个性化的训练样本,因为收集了新的个性化示例。例如,当客户端应用设备110首先开始针对特定用户使用中断服务设备120时,可以基于从大众群体中或从人口统计学或其他方面类似该用户的群体中提取的训练示例来生成该用户的模型172、174。由于收集了针对该用户特定的训练示例,所以旧示例可以从训练集中逐步淘汰(或者比新示例相对较少地加权)以提供更完全定制的模型。类似地,个性化但旧的训练示例也可以被逐步淘汰(或相对较少地加权),以支持较新的训练示例来说明用户行为或态度的变化。然后可以将得到的标记的数据集提供给预测模型训练设备160。
预测模型训练设备160可以是能够基于训练集来训练一个或多个模型的任何设备。例如,预测模型训练设备160可以是移动设备或远程服务器。可以使用用于提供情境状态的度量的各种训练的模型和机器学习算法。例如,预测模型训练设备160可以使用梯度下降的版本来训练回归(线性或逻辑)或神经网络模型以分析训练集。因此,得到的模型可以包括学习的权重(例如,θ值)的集合,其可以被发送到预测设备170以应用到当前特征集以用于对用户的情境状态的实时预测。
预测设备170可以是能够将一个或多个训练的模型应用到来自一个或多个特征提取设备140的输入特征集的任何设备。预测设备170可以存储从预测模型训练设备160接收到的一个或多个模型(例如,接受能力模型172和可行性模型174)。在从特征提取设备140接收了特征集后,预测设备170将模型172、174应用到特征集(例如,通过将特征输入到训练的回归或神经网络函数中)。模型172、174的输出(例如,情境状态度量)然后可以被提供给中断服务设备120,以用于以上述方式向客户端应用设备110提供时机指示。
将显而易见的是,虽然在本文描述的各种实施例中,一些功能设备被描述为与智能设备操作系统(例如,智能设备监视器130)协调,但是在其他实施例中,功能设备中的一个或多个可以被实现为操作系统的一部分。例如,智能设备监视器130或特征提取设备140可以用作操作系统部件操作,用于(例如,经由操作系统API)向外部设备/服务报告特征。作为额外的示例,所有功能设备110-170或实时中断服务流水线130、140、170、120可以被实现为操作系统自身的部件。
图2示出了用于实现用于在适当时间执行用户交互的系统(或其一部分)的硬件设备200的示例。硬件设备200可以实现图1的功能设备中的一个或多个,并且因此可以实现各种设备之一,例如可穿戴设备、移动电话、平板计算机或服务器(例如,运行实现本文描述的软件过程的虚拟机的服务器)。如图所示,设备200包括经由一个或多个系统总线210互连的处理器220、存储器230、用户接口240、网络接口250和存储设备260。在一些方面,将理解图2构成抽象,并且设备200的部件的实际组织可能比图示的更复杂。此外,虽然该示例将各种特征描述为由智能设备实现并且其他特征由服务器实现,但是应该理解,这仅仅是示例实施例。如上所述,各种功能可以以许多不同的布置分布在一个或多个设备之中;为了实现这样的备选布置对软件和存储设备260内容的修改将变得显而易见。
处理器220可以是能够执行存储在存储器230或存储设备260中的指令或以其他方式处理数据的任何硬件设备。因此,处理器可以包括微处理器、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或其他类似设备。显而易见的是,在处理器包括以硬件实现本文描述的功能中的一个或多个功能的一个或多个ASIC(或其他处理设备)的实施例中,可以省略在其他实施例中被描述为对应于这样的功能的软件。
存储器230可以包括各种存储器,例如L1、L2或L3高速缓存或系统存储器。因此,存储器230可以包括静态随机存取存储器(SRAM)、动态RAM(DRAM)、闪存、只读存储器(ROM)或其他类似的存储器设备。
用户接口240可以包括用于实现与诸如管理员的用户的通信的一个或多个设备。例如,用户接口240可以包括用于接收用户命令的显示器、鼠标和键盘。在一些实施例中,用户接口240可以包括命令行接口或图形用户接口,其可以经由通信接口250呈现给远程终端。
通信接口250可以包括用于实现与其他硬件设备通信的一个或多个设备。例如,通信接口250可以包括被配置为根据以太网协议进行通信的有线或无线网络接口卡(NIC)。另外,网络接口250可以实现用于根据TCP/IP协议进行通信的TCP/IP栈。另外或备选地,通信接口250可以包括用于与附近设备进行通信的硬件,例如用于根据NFC、蓝牙、Wi-Fi或其他本地无线或有线协议进行通信的硬件。用于通信接口250的各种备选或额外硬件或配置将是显而易见的。
存储设备260可以包括一个或多个机器可读存储介质,例如只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质,光存储介质,闪存设备或类似存储介质。在各种实施例中,存储设备260可以存储用于由处理器220执行的指令或者处理器220可以操作的数据。
例如,在设备200实现用户的智能设备(例如,移动电话或平板计算机)的情况下,存储设备260可以存储智能设备操作系统261,用于控制硬件200的各种基本操作。例如,智能设备操作系统261可以提供用于执行客户端应用并与其交互、管理各种网络连接性、实现电话和消息传送通信等的环境。在所示实施例中,智能设备操作系统261包括使用信息报告指令262,用于提供描述由用户对智能设备的使用(例如上述度量中的一个或多个)的各种信息。因此,在该示例实施例中,OS实现图1的智能设备监视器130。特征提取指令263可以实现特征提取设备140,并且因此可以包括用于提取一个或多个特征264的指令以及用于向实现训练集创建设备150或预测设备170的设备(例如,周期性地或实时地)报告那些特征265的指令。
智能设备还可以托管并执行一个或多个客户端应用266(其可以实现图1的客户端应用设备110),其对利用时机指示来确定何时发起用户交互感兴趣(如所希望的那样,由于所述客户端app的独立目的和操作而发起)。因此,客户端应用266中的一个或多个可以包括用于查询(即,拉动请求)中断服务设备120的时机查询指令267,或用于从中断服务设备120请求更新(即,推送请求)的时机订阅指令268。例如,客户端应用266可能希望向用户显示建议用户去运行的消息。在显示消息之前,客户端应用266可以经由时机查询指令267查询中断服务设备120,并且获知用户当前不能对这样的用户交互进行操作。作为响应,客户端应用266可以对消息进行排队以供稍后输送,并且经由时机订阅指令268请求中断服务设备120在用户变得可行时通知客户端应用266。稍后,在接收到这样的更新时,客户端应用266可以将消息输出给用户(例如,经由智能设备操作系统261的通知服务)。客户端应用266还可以包括反馈指令269,用于向训练集创建设备150报告是否发现用户对用户交互可行/接受/等(或对得出这样的结论有用的使用信息或其他反馈信息)。
在设备200实现支持服务器的情况下,存储设备260可以存储服务器操作系统。在其中服务器被部署在云计算架构中的一些实施例中,服务器操作系统可以包括用于协调一个或多个虚拟机的超级管理器,所述一个或多个虚拟机转而可以包括额外指令和数据272-279。训练集创建指令272可以实现训练集创建设备150,并且因此可以从特征报告设备130接收特征集并根据其创建新的训练示例,从而形成训练集274。反馈解读指令273可以解读来自客户端应用设备110或其他来源(例如,使用训练的反馈解读模型,未示出)的反馈,以标记训练样本用于在训练预测模型中使用。
预测模型训练指令275可以实现预测模型训练设备160,并且因此可以基于训练集274或其部分来训练一个或多个预测模型276。例如,预测模型训练指令275可以实现梯度下降的形式以学习一个或多个θ权重值,以用于实例化回归或神经网络(包括深度学习)预测模型276。利用训练的模型277,模型应用指令277可以通过从特征提取设备140接收特征然后应用(一个或多个)模型276以获得用户的情境状态的一个或多个度量来实现预测设备170。然后,查询服务指令278或订阅服务指令可以通过分别以拉动或推送方式向客户端应用设备110提供时机指示(例如,“可行”、“接受但不可行”或情境状态度量本身)来实现中断服务设备120。
将显而易见的是,被描述为存储在存储设备260中的各种信息可以另外或备选地存储在存储器230中。在这方面,存储器230也可以被认为构成“存储设备”,并且存储设备260可以被认为是“存储器”。各种其他布置将是显而易见的。此外,存储器230和存储设备260都可以被认为是“非瞬态机器可读介质”。如本文所使用的,术语“非瞬态”将被理解为不包括瞬态信号但包括所有形式的存储设备,包括易失性和非易失性存储器。
虽然主机设备200被示出为包括每个所描述的部件中的一个,但是在各种实施例中可以复制各种部件。例如,处理器220可以包括多个微处理器,其被配置为独立地执行本文描述的方法或被配置为执行本文描述的方法的步骤或子例程,使得多个处理器协作以实现本文描述的功能。此外,在云计算系统中实现设备200的情况下,各种硬件部件可以属于单独的物理系统。例如,处理器220可以包括第一服务器中的第一处理器和第二服务器中的第二处理器。
图3示出了用于在适当时间执行用户交互的系统300的第一实施例。系统300可以包括将智能设备320(例如移动电话或平板计算机)互连到云虚拟机服务器330的网络310(例如载波网络、LAN、云网络、互联网或其组合)。系统300可以构成图1的功能系统100的实施方式;具体地,如图所示,智能设备320可以构成两个客户端应用设备110、智能设备监视器130和特征提取设备140,而云VM 330可以构成训练集创建设备150、预测模型训练设备160、预测设备170和中断服务设备120。
如图所示,智能设备320包括用于执行使用监视的使用监视过程322(例如,在智能设备OS的API内或经由智能设备OS的API),以及用于从由使用监视过程324收集的原始使用信息中提取额外特征的特征提取过程324(例如,在智能设备OS的API内或经由智能设备OS的API)。智能设备320将相关的使用信息特征(无论是原始的还是提取的)发送到云VM 330,其中训练集构建过程332将特征作为训练集334中的一个或多个新训练示例提交。不管这些记录最初是否未被标记,一旦获得足够的反馈以辨别适当的标签,训练集构建过程332就可以随后标记示例。然后,模型训练过程336可以(立即或稍后)使用训练集334来创建或更新如上所述的一个或多个预测模型338。
同时,模型应用过程342将预测模型338的十个当前版本应用到输入特征集以确定用户的情境状态中的一个或多个度量,并使该信息可用于查询服务344和订阅服务346过程。客户端应用1 326想要发起用户交互并将查询发送到查询服务344。作为响应,查询服务344基于由模型应用过程342提供的(一个或多个)度量将时机指示发送回客户端应用1326。然后,客户端应用1 326可以使用该指示来确定是否是发起用户交互的适当时间。如果发起用户交互,则客户端应用1 326可以将反馈报告回训练集构建过程332。
另一方面,客户端应用2 328可能先前已向订阅服务过程346指示希望接收关于对用户可行性的更新的推送通知。例如,客户端应用可以订阅对时机指示的所有变化或时机指示到其定义的值或组或范围的任何变化。在基于由模型应用过程342报告的(一个或多个)度量而改变时机指示后,订阅服务346可以将新时机指示推送到客户端应用2 328。然后,客户端应用2 328可以使用该指示以确定是否是发起用户交互的适当时间。如果发起了用户交互,则客户端应用2 328可以将反馈报告回训练集构造过程332。
图4示出了用于在适当时间执行用户交互的系统400的第二实施例。系统400可以包括将智能设备420(例如移动电话或平板计算机)互连到云虚拟机服务器430的网络410(例如,载波网络、LAN、云网络、互联网或其组合)。系统300可以构成图1的功能系统100的实施方式;具体地,如图所示,智能设备420可以构成智能设备监视器130、特征提取设备140、训练集创建设备150、预测模型训练设备160、预测设备170和中断服务设备120;VM1 440可以构成客户端应用设备110和另一中断服务设备120;并且VM2 450可以构成另一客户端应用设备。
如图所示,在该第二实施例中,大多数功能设备体现在智能设备420本身中。情境监视过程422收集原始使用数据,并且特征提取过程424从其中提取额外特征。训练集构建过程426使用这些特征和反馈信息来创建训练集428,模型训练过程432根据该训练集创建一个或多个预测模型434,用于确定用户的当前情境状态的一个或多个度量(例如,可行性和接受能力)。模型应用过程436将(一个或多个)模型434应用到新特征集以确定这些度量,然后,订阅服务过程438基于这些度量将时机指示转发给先前已订阅以接收用于对时机指示的变化的推送通知的VM1 440。
VM1 440被建立为在周期性地确定用户的情境状态的智能设备420与托管将通知(或其他用户交互)推送到在智能设备420上运行的通知接收app(或OS模块)439的客户端应用452的VM2 450之间的中介。例如,通知推送应用452可以是训练服务的服务器侧,而通知接收应用439可以是训练服务的客户端侧(例如,仪表板或消息中心)。中介VM1 440可以订阅来自智能设备420的时机指示更新,并且按照请求将这样的时机指示提供给VM2 450。因此,VM1 440向VM2 450提供查询服务,用于确定用户交互的适当时间,而不要求智能设备420提供这种的按需可行性。在一些实施例中,VM1 440可以从多个智能设备420或针对多个用户接收更新,并为VM2 450或托管客户端应用的其他服务器提供单点查询。因此,VM1 440包括订阅客户端过程442,其接收来自智能设备420的时机指示,专用于存储报告的时机指示444的存储器,以及用于在请求时将这些时机指示转发到VM2 450的查询服务过程446。如上所述,VM2 450包括通知推送应用452,其自身实现时机查询软件模块454。例如,时机查询模块454可以根据查询服务446的API要求的适当过程和格式在应用452的其他部分的请求处处理请求的时机指示。
应当理解,图3-4的示例仅仅是图1的功能系统的两种可能的实例,并且在该示例系统100的范围内可以有更多的布置。例如,第三实施例可以将智能设备监视器130定位在可穿戴设备(例如,具有加速度计和脉搏传感器的可穿戴腕表设备)上;将另一智能设备监视器130、特征提取设备140、预测设备170、中断服务设备120、以及客户端应用设备110定位在移动电话上;并且将训练集创建设备150和预测模型训练设备160定位在远程服务器上。在这样的实施例中,仅将训练集标记和预测模型训练的相对资源密集型操作从移动电话“外包”到远程服务器。各种额外的实施例将是显而易见的。在又一实施例中,可以修改第二实施例以将时机查询模块454移动到智能设备420上。在这样的实施例中,通知推送应用452可以将通知推送到通知接收应用439,然后该通知接收应用可以执行查询以确定是否或何时向用户呈现接收到的通知。在这样的实施例的变型中,查询可以是远程VM1 440上的查询服务446,或者可以在智能设备420处本地执行(例如,也通过在智能设备420中实现查询服务446)。
图5示出了用于从设备操作系统收集使用信息的方法500的示例。方法500可以对应于由智能设备监视器130执行的用于收集原始使用信息的操作,其中原始信息仅由底层OS(或来自其他地方)暂时提供。在一些实施例中,方法500(或与其类似的方法)可以由使用信息报告指令262执行,无论是实现为操作系统261的一部分还是实现为另一app(例如,与特征提取指令263一起)。方法500示出了收集6种不同类型的原始使用信息。各种其他额外或替备选原始使用信息和用于从可从OS、app或其他来源获得的信息中收集这样的原始使用信息的方法将是显而易见的。将进一步显而易见的是,在其他实施例中,这些(或其他)类型的原始使用信息中的一些可以由OS、app或其他来源直接提供。例如,在一些实施例中,OS可以通过正常操作经由API向方法500提供接收和发送的消息的日志。在其他实施例中,方法500可以由OS本身实现,并且可以与其他OS模块、app和其他来源接口连接以收集原始使用信息。为了实现这些备选实施例对方法500的各种修改将是显而易见的。
方法500在步骤505中开始,其中该方法接收一个或多个OS事件的指示(例如,经由由OS提供的事件总线)。在步骤510中,方法500确定接收到的事件是否指示用户已经解锁了他们的电话。确定接收到的事件传达什么信息的具体方法将特定于方法500与之交互的OS;考虑到OS,实现该决定510(以及随后的决定)的具体步骤将是显而易见的。如果事件确实涉及解锁事件,则方法500前进到步骤515,其中设备更新存储最后一个设备解锁的时间的跟踪的变量。
接下来,在步骤520中,设备确定OS事件是否指示已经发送或接收到消息(例如,文本或多媒体消息)。如果是,则设备日志记录消息525(例如,消息内容、时间、发送者或接收者),并通过参考通过连续执行步骤525而创建的消息日志来更新在最后5分钟(或某个其他有用时间窗)内接收到的消息的运行计数。可以存储消息日志和计数两者,以供稍后用作特征或从其中提取额外特征。在步骤535中,设备确定OS事件是否指示用户已经切换到不同的应用。如果是,则设备在步骤540中在运行日志中记录切换(例如,时间、先前应用和新应用),在步骤545中对在前面5分钟(或其他时间窗)内的应用切换的数量进行重新计数,并且在步骤545中对由用户在前面5分钟(或其他时间窗)内发起的应用切换的数量进行重新计数,并且在步骤550中对由用户在前面5分钟(或其他时间窗)内激活的独特应用的数量进行重新计数。可以存储切换日志和计数以供稍后用作特征或用于从其中提取额外特征。然后,方法500可以前进以在步骤555中结束。
将显而易见的是,方法500仅是用于收集原始使用信息的方法的一个示例,并且可以遵循各种备选方法。例如,在一些实施例中,可以为每种类型的OS事件或其多个分组定义专用算法。例如,在向针对每种类型的OS事件的事件总线进行注册时,设备可以注册用于处理该类型的OS事件的专用算法。这样,事件总线实际上执行步骤510、520、535的工作,因为仅调用用于处理特定OS事件的算法。
图6示出了用于生成用于在预测模型训练或应用中使用的特征集的方法600的示例。方法600可以对应于由特征提取设备执行的操作,用于提取使用信息并将原始使用信息和提取的使用信息两者收集到要由一个或多个预测模型使用的特征集中。在一些实施例中,方法600可以对应于特征提取指令263或特征报告指令265。方法600可以在各种时间执行,例如,在执行方法500之后周期性地或立即执行。
方法600在步骤605中开始(例如,基于作为被配置为周期性地进行的调度任务的执行)并且前进到步骤610,其中设备创建空特征集数据对象。在步骤615中,设备将针对通过监视OS或其他来源(例如,根据方法500或与其类似的方法)已经跟踪的原始使用信息的任何当前值复制到空特征集中。例如,可以将最后解锁的时间、消息日志和应用日志复制到特征集中。接下来,在步骤620中,设备轮询OS以获得要用作可从OS(或其他app或其他来源)直接获得的特征的任何原始使用信息。例如,OS能够提供诸如当前连接信息(例如,网络、数据使用)或当前设备状态的信息。然后,该信息也可以在步骤625中被复制到特征集中。
在步骤630中,设备确定是否存在可用于从存在的使用信息中提取特征的任何算法。例如,设备可以存储将针对每个特征集按顺序执行的脚本、JAR文件等的集合。各种备选方案是可能的,例如简单地将特征提取编码到方法600本身中。如果存在要应用的特征提取算法,则在步骤635中执行这些算法中的每一个(例如,作为函数被调用或作为脚本被执行),并且在步骤640中将其结果复制到特征集中。然后该方法前进以在步骤645中结束。然后,在方法600在步骤645中结束之前,可以在将来的某刻或作为最后的步骤(未示出)将特征发送到训练集创建设备150或预测设备170。在一些实施例中,设备可以收集多个特征集(例如,每5分钟一个新特征集),并将它们作为一批一起发送到其他设备中的一个(例如,每小时或其他时间段,或者根据另一设备的请求)。传输调度不需要与发送到训练集创建设备150和预测设备170相同。例如,特征提取设备140可以每小时向训练集创建设备发送成批的特征,但是在其变得可用时将每个新的特征集发送给预测设备,以实现最新的时机指示。各种其他修改将是显而易见的。
图7示出了用于训练一个或多个预测模型的训练集700的示例。该训练集700可以对应于训练集274,并且可以由训练集创建设备150根据报告的特征集和反馈来创建。如图所示,该集合包括多个标签,并且因此可以用于训练多个预测模型(例如,接受能力模型和可行性模型)。应该理解,可以使用用于存储一个或多个训练集的各种备选布置。例如,在一些实施例中,可以为要被训练的每个模型建立单独的训练集。这样的训练集可以包括不同的标签或不同的特征集(例如,没有共同的特征或者仅在包括的特征中的一些重叠)。备选地,在一些实施例中,训练集700可以不被标记(例如,用于无监督或半监督学习),或者标签可以被存储在与特征不同的数据结构中。另外,用于存储数据集的底层数据结构可以不是表格,并且可以采用各种其他形式,例如数组、列表、树或其他数据结构。用于特征、标签或其他信息的额外字段(例如,在一些实施例中也可以用作特征的时间戳或从其导出的特征,例如一天中的时间)将是显而易见的。
如图所示,训练集700包括特征集710和标签集720。该特征集710可以包括用于存储针对每个训练示例的报告的特征的各种字段。作为示例,训练集700包括用于存储当前设备状态的设备状态字段712,用于存储关于用户参与的通信(例如,呼叫和文本消息)的信息的通信字段714,用于存储关于用户使用的app的信息的app使用字段716,以及用于存储设备的当前连接信息的连接性字段718。标签720包括用于存储用户是否被视为“能够”物理地参与用户交互的标签的可行字段722,以及用于存储用户是否被视为“接受”精神上参与用户交互的标签的接受字段724。虽然示出了布尔标签(并且可以用于训练逻辑回归模型),但是在其他实施例中,可以提供数值作为这两个度量的标签(例如,用于训练线性回归模型)。这些数值可以对应于标签应用的概率或标签应用的程度(例如,100的可行性可以指示用户现在可以去慢跑,而20的可行性可以指示用户不可以去慢跑,但可以在办公室周围简单散步)。还将显而易见的是,可以提供各种备选度量。例如,可行性可以被分解为多个标签,每个标签对应于用户可行的不同类型、分组或程度的身体活动,由此实现针对多个程度的可行性、接受能力或用户情境状态的其他度量中的每个对不同的模型进行训练。实际上,也可以采用本文关于预测模型描述的训练集创建、模型训练和模型应用的任何方法来实现标记模型的操作。
作为示例,训练示例730指示对于特定特征集(包括到称为“工作SSID”的WiFi接入点的连接并且当前使用“网络浏览器app”),用户被判断为接受输入用户交互但不能立即对它们进行操作。训练示例740可以指示对于不同的特征集(包括用户当前正处于到目前为止已经持续35分钟的呼叫中),用户已经被判断为既不接受也不能接收用户交互。第三个训练示例存储尚未被标记的另一报告的特征集(包括设备当前被锁定且在最后5分钟内未使用任何app)。在已经接收到反馈信息之后,训练集创建设备150可以返回到该示例750以提供标签。例如,在反馈是来自用户、另一人类用户或客户端应用的手动输入的情况下,反馈可以包括要被附接到示例750的标签本身。在反馈是后续使用信息或者是尚未包括标签的其他信息的情况下,训练集创建设备150可以解读反馈以生成用于附接到示例750的(一个或多个)标签。例如,训练集可以包括针对每个潜在标签的训练的模型(例如,回归模型或神经网络),其被应用到数据结构或接收到的反馈中的特征,以确定每个相应的标签是否应用到示例。未与由预测设备170应用的预测模型混淆的这些标记模型基于可能已经由人类用户手动标记的又一训练集(未示出)进行训练。可以应用各种学习方法(例如梯度下降的版本)来实现这种训练。
图8示出了用于处理特征集以创建训练示例并生成情境状态预测的方法800的示例。方法800可以对应于由训练集创建设备150、预测设备170和中断服务设备120执行的操作。在一些实施例中,方法800可以对应于训练集创建指令272、模型应用指令272或查询服务指令278。将显而易见的是,可以实现各种备选方法;例如,在一些实施例中,可以定义单独的且不同的算法以更新训练集和应用预测模型。
方法800在步骤805中开始(例如,响应于从特征提取设备获得新的特征集或基于调度的任务)并且前进到步骤810,其中设备确定当前是否为与接收到的特征集相关联的用户标记了训练(例如,在一些实施例中,可以在认为预测模型被充分训练时关闭训练以节省存储器和处理资源)。如果关闭训练,则方法800可以向前跳到步骤825;否则,设备创建训练示例的新的记录,其存储接收到的特征集并将新的训练示例存储为现有训练集的一部分。如将理解的,取决于正在执行指令的设备,可以从各种来源获得特征集。获得可以包括从另一设备接收特征集(例如,其中特征提取设备140和预测设备170在物理上分离的设备中实现)或从另一本地进程接收特征集(例如,经由套接字或共享存储器)(例如,其中,特征提取设备140和预测设备170被实现为同一设备中的单独进程或OS模块)。
在步骤825中,设备将一个或多个预测模型应用到接收到的特征集以获得用户的当前情境状态的一个或多个度量。在步骤830中,设备确定所确定的情境状态是否不同于先前确定的情境状态(例如,如果用户在先前不可行的情况下现在可行,或者如果接受能力已经从值60减少到20),并且如果是的话,则前进到步骤835,其中设备将所确定的情境状态存储为当前情境状态(可能重写先前的情境状态)。
在步骤840中,订阅服务设备确定是否有任何客户端应用先前订阅了关于该用户的更新,并且如果是的话,则在步骤845中将新的情境状态推送到订阅的应用。这种方法对于其中客户端应用简单地订阅所有更新的实施例可能是足够的。在其他实施例中,其中客户端应用可以指定何时应该推送更新的一个或多个标准时(例如,当用户变得可行时,当接受能力或可行性增加时,或者当接受能力至少为50时),可以在步骤840和845之间实现额外的条件框,以确定哪些客户端应用的标准已满足以确定将更新推送到哪些客户端应用。该方法然后前进以在步骤850中结束。
图9示出了用于基于接收到的反馈来更新预测模型的方法900的示例。方法900可以对应于由训练集创建设备150和预测模型训练设备160执行的操作。在一些实施例中,方法900可以对应于训练集创建指令272(或反馈解读指令273)或预测模型训练指令275。将显而易见的是,可以实现各种备选方法;例如,在一些实施例中,可以定义单独的且不同的算法以更新训练集和训练预测模型。
该方法在步骤905中开始(例如,响应于接收到反馈信息或基于调度的任务)并且前进到步骤910,其中设备从接收到的反馈中解读一个或多个标签。例如,步骤910可以包括简单地从反馈中读取手动提供的标签,或者将单独的训练的模型(例如,诸如逻辑回归的分类模型)应用到反馈(并且在一些实施例中,存储于要被标记的相关训练记录中的特征)。在步骤915中,设备可以定位与反馈同时的任何记录(例如,基于存储在其中的特征集何时被创建或接收的时间戳)。在一些实施例中,仅有尚未标记的训练示例可以位于该步骤中,而在其他实施例中,可以获得未标记的示例和标记的示例两者,以便基于额外反馈来更新先前标记的示例。在步骤920中,设备根据解读的(一个或多个)标签来标记每个取回的训练示例记录。
在步骤925中,设备可以确定是否启用训练集衰变。例如,在一些实施例中,当添加新记录时,可以从训练集(至少关于当前反馈所应用的用户)删除旧训练示例。这在首先使用基于从用户群体中抽取的示例的一般训练集合并且利用基于特定用户创建的示例来逐渐补充和替换的情况下尤其有用,从而使系统的操作个性化适应用户的行为和习惯。如果启用了衰变,则设备在步骤935中从训练集中移除最旧的记录(例如,通过删除它们或将它们标记为不用于针对当前用户的训练模型)。在一些实施例中,当启用衰变时,可以针对每个新训练示例移除一个旧训练示例,但是其他比例是可能的。
在步骤935中,设备确定自上次(一个或多个)训练预测模型被训练起已经添加了多少新记录(或已经标记了多少记录)。如果该数量超过5(或认为合适的某个其他阈值),则方法900前进到步骤945以重新训练关于训练集的当前迭代的(一个或多个)预测模型。用于识别模型再训练的适当时间的各种备选方法(例如在排程的时间重新训练模型)将是显而易见的。方法900然后前进以在步骤950中结束。
图10示出了用于训练模型的方法1000的示例。方法1000可以对应于由预测模型训练设备160执行的操作,并且可以由预测模型训练指令275实现。模型训练的各种备选方法将是显而易见的,例如,程序员定义的算法、神经网络、贝叶斯网络等
该方法在步骤1002中开始并前进到步骤1004,其中设备获得针对将创建模型的给定参数的标记的数据集(例如,用于训练预测模型的训练集700或用于训练标记模型的另一训练集(未示出))。用于根据未标记的训练集来训练模型的各种备选方法将是显而易见的。在各种实施例中,训练集可以包括指定一个或多个特征(例如,如上所述的各种使用信息或反馈信息等)的训练样本的多个记录以及要从该特征集中得出的适当结论。
在步骤1006中,设备识别在数据集中识别的特征的数量(或者,其中模型不利用数据集中的每个特征,与正在训练的模型相关的特征的数量),并且在步骤1008中,初始化要在得到的模型中使用的系数集。根据各种实施例,为每个特征创建一个系数以及一个额外系数以用作常数。在模型被训练以输出数值的情况下,可以使用线性回归方法,其中最终模型函数可以采取以下形式:
h(X)=θ0+θ1x1+θ2x2…
其中,X是特征集{x1,x2,...}并且系数{θ0,θ1,θ2,...}将由方法1100调谐以提供适当的相关性估计作为输出,与从训练数据集中学习的趋势一致。在一些实施例中,最终模型函数可以包含如下的Sigmoid函数:
其中,系数的调谐导致函数h(X)输出0和1之间的值,其用作对提供的相关性的估计。根据各种实施例,系数全部被初始化为零值。将显而易见的是,在一些实施例中,可以根据训练集中的特征(例如,x1 2或x1x2)来构建用于包含于h(X)(和相关联的系数)中的额外特征。
该方法通过分别在步骤1010、1012中将两个循环变量i和p初始化为0来开始训练系数。然后,在步骤1014中,设备获得成本函数J(θ)在当前系数θp上的偏导数,其中在一些实施例中可以将成本函数定义为:
其中,m是训练数据集中的训练样本的数量,hθ(x)是使用当前系数集θ的训练函数,x(j)是第j个训练样本的特征集,y(j)是第j个训练示例的期望输出(即标签)。因此,在批量梯度下降法之后,在系数p(θp)上的偏导数可以为:
其中,xp (j)是第j个训练示例中的第p个特征(或当p=0时,xp (j)=1)。
在步骤1016中,设备使p递增,并且在步骤1018中,设备通过确定p现在是否超过要包括在h(X)中的特征的总数来确定是否已经在当前循环中寻址了所有系数。如果否,则该方法循环回到步骤1014以找到下一个偏导数项。
在为当前迭代找到所有偏导数之后,方法1000前进以在步骤1020中将循环变量p重置为零。然后,在步骤1022中,设备基于在步骤1114中找到的对应偏导数并基于预设学习速率来更新第p个系数θp。例如,设备可以应用以下更新规则:
其中,α是学习速率,例如,0.1、0.3、1或在每次迭代中针对期望变化速率适当选择的任何其他值。
在步骤1024中,设备使p递增,并且在步骤1026中,设备通过确定p现在是否超过要包括在h(X)中的特征的总数来确定是否已经在当前循环中寻址了所有系数。如果否,则该方法循环回到步骤1022以更新下一系数。注意,根据方法1000,在实际修改第二循环中的系数之前,在第一循环中找到所有偏导数,使得不基于部分更新的值来获取偏导数。其他实施例可能不实现对系数的这样的“同时”更新。
在更新了所有系数之后,该方法前进到步骤1028,其中变量i被递增。在步骤1030中,设备确定i现在是否超过预先定义的最大迭代次数,以确保方法1000不会无限循环。可以选择足够高的最大迭代次数,例如1000、5000、100000等。如果尚未达到最大迭代,则方法1000前进到步骤1032,其中设备基于训练集使用成本函数J(θ)来计算当前成本。在步骤1034中,设备通过确定从最后一次迭代到当前迭代的成本的变化是否未能满足最小阈值来确定函数h(X)是否已经收敛到可接受的解。如果变化超过阈值,则该方法循环回到步骤1012以执行另一系数更新循环。另一方面,如果达到最大迭代或者成本变化低于最小阈值,则方法1000前进到步骤1036,其中设备存储系数作为用于提取参数的新模型的一部分,并且方法1000前进以在步骤1038中结束。
将显而易见的是,除了回归外的以下方法之外,其他实施例可以使用不同的方法来调谐除批量梯度下降之外的回归方法中的系数。例如,一些实施例可以使用随机梯度下降,其中基于单个训练示例来执行每个系数更新(由此从偏导数中去除求和),并且该方法另外迭代通过每个这样的示例。在其他实施例中,用于回归的正规方程可以用于使用基于矩阵的非迭代方法来找到适当的系数,其中,系数集被计算为:
θ=(XTX)-1XTy
其中,X是来自所有训练示例的特征的矩阵,y是标签的相关联的向量。
根据前述内容,各种实施例提供了一种用于使客户端应用确定用于发起用户交互的适当时间的方式。通过监视智能电话或其他设备使用,操作系统或其他服务可以识别用户何时开放以接收各种类型的交互的时间。此外,通过针对不同类型的时机(例如,精神时机与物理时机或其等级)训练不同的机器学习模型,可以针对由客户端应用建议的或期望发起的用户交互的特定类型、格式、介质或内容进一步调谐对交互的适当时间的识别。鉴于前述内容,各种额外的益处将是显而易见的。
从前面的描述中应该显而易见的是,本发明的各种示例性实施例可以以硬件或固件实现。此外,各种示例性实施例可以被实现为存储在机器可读存储介质上的指令,其可以由至少一个处理器读取和执行以执行本文详细描述的操作。机器可读存储介质可以包括用于存储机器可读形式的信息的任何机制,例如个人或膝上型计算机、服务器或其他计算设备。因此,机器可读存储介质可以包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备和类似的存储介质。
本领域技术人员应该认识到,本文的任何框图表示体现本发明的原理的说明性电路的概念图。类似地,应当认识到,任何流程图表、流程图、状态转换图、伪代码等表示可以基本上在机器可读介质中表示并且因此由计算机或处理器执行的各种过程,无论这样的计算机或处理器是否明确示出。
虽然已经具体参考其特定示例性方面详细描述了各种示例性实施例,但是应该理解,本发明能够具有其他实施例,并且其细节能够在各种明显的方面进行修改。对于本领域技术人员显而易见的是,可以在保持在本发明的精神和范围内的同时进行变化和修改。因此,前述公开内容、说明书和附图仅用于说明性目的,并不以任何方式限制本发明,本发明仅由权利要求限定。
Claims (27)
1.一种由预测设备执行的用于确定用户交互的适当时间的方法,所述方法包括:
接收来自客户端应用的针对用户是否开放以参与用户交互的指示的请求;
获得关于所述用户在用户设备上的近期活动的使用信息;
将至少一个训练的预测模型应用到所述使用信息以识别所述用户的当前情境状态,其中,所述当前情境状态包括以下中的至少一个:
表示所述用户执行与所述用户交互相关联的物理动作的当前能力的可行性度量,以及
表示所述用户注意所述用户交互的当前能力的接受能力度量;
基于所述用户的情境状态来确定时机指示;并且
向所述客户端应用提供所述时机指示。
2.根据权利要求1所述的方法,其中,所述时机指示包括所述当前情境状态。
3.根据权利要求1所述的方法,其中,所述使用信息的至少部分是经由所述用户设备的操作系统应用编程接口(API)获得的。
4.根据权利要求1所述的方法,其中,接收、获得、应用、确定和提供的步骤是由所述用户设备的处理器执行的。
5.根据权利要求1所述的方法,还包括:
从远程预测模型训练设备接收所述至少一个训练的预测模型。
6.根据权利要求1所述的方法,还包括:在向所述客户端应用提供所述时机指示之后:
获得关于所述用户对所述客户端应用的反应的反馈信息;
从所述反馈信息中辨别关于所述用户的可行性和接受能力中的至少一个的标签;
通过将所述标签与所述使用信息相关联来生成训练示例;
通过至少将所述训练示例添加到现有训练集来更新所述现有训练集以生成更新后的训练集;并且
基于所述更新后的训练集来重新训练所述至少一个训练的预测模型。
7.根据权利要求6所述的方法,其中,辨别的步骤包括将训练的反馈解读模型应用到所述反馈信息以接收所述标签。
8.根据权利要求6所述的方法,其中,所述反馈信息描述在向所述客户端应用提供所述时机指示之后所述用户在所述用户设备上的活动。
9.根据权利要求8所述的方法,其中,辨别的步骤包括一起分析所述反馈信息和所述使用信息以确定所述用户是否改变了他们的使用行为。
10.一种用于确定用户交互的适当时间的预测设备,所述预测设备包括:
存储器,其被配置为存储用于识别用户的当前情境状态的至少一个训练的预测模型,其中,所述当前情境状态包括以下中的至少一个:
表示所述用户执行与所述用户交互相关联的物理动作的当前能力的可行性度量,以及
表示所述用户注意所述用户交互的当前能力的接受能力度量;以及
与所述存储器通信的处理器,所述处理器被配置为:
接收来自客户端应用的针对用户是否开放以参与用户交互的指示的请求;
获得关于所述用户在用户设备上的近期活动的使用信息;
将所述至少一个训练的预测模型应用到所述使用信息;
基于所述用户的情境状态来确定时机指示;并且
向所述客户端应用提供所述时机指示。
11.根据权利要求10所述的预测设备,其中,所述时机指示包括所述当前情境状态。
12.根据权利要求10所述的预测设备,其中,所述使用信息的至少部分是经由所述用户设备的操作系统应用编程接口(API)获得的。
13.根据权利要求10所述的预测设备,其中,所述预测设备包括用户设备,并且所述存储器和所述处理器是所述用户设备的部件。
14.根据权利要求10所述的预测设备,其中,所述处理器还被配置为:
从远程预测模型训练设备接收所述至少一个训练的预测模型。
15.根据权利要求10所述的预测设备,其中,所述处理器还被配置为在向所述客户端应用提供所述时机指示之后:
获得关于所述用户对所述客户端应用的反应的反馈信息;
从所述反馈信息中辨别关于用户的可行性和接受能力中的至少一个的标签;
通过将所述标签与所述使用信息相关联来生成训练示例;
通过至少将所述训练示例添加到现有训练集来更新所述现有训练集以生成更新后的训练集;并且
基于所述更新后的训练集来重新训练所述至少一个训练的预测模型。
16.根据权利要求15所述的预测设备,其中,在辨别中,所述处理器被配置为将训练的反馈解读模型应用到所述反馈信息以接收所述标签。
17.根据权利要求15所述的预测设备,其中,所述反馈信息描述在向所述客户端应用提供所述时机指示之后所述用户在所述用户设备上的活动。
18.根据权利要求17所述的预测设备,其中,在辨别中,所述处理器被配置为一起分析所述反馈信息和所述使用信息以确定所述用户是否改变了他们的使用行为。
19.一种非瞬态机器可读介质,其由用于确定用户交互的适当时间的预测设备执行编码,所述非瞬态机器可读介质包括:
用于接收来自客户端应用的针对用户是否开放以参与用户交互的指示的请求的指令;
用于获得关于所述用户在用户设备上的近期活动的使用信息的指令;
用于将至少一个训练的预测模型应用到所述使用信息以识别所述用户的当前情境状态的指令,其中,所述当前情境状态包括以下中的至少一个:
表示所述用户执行与所述用户交互相关联的物理动作的当前能力的可行性度量,以及
表示所述用户注意所述用户交互的当前能力的接受能力度量;
用于基于所述用户的情境状态来确定时机指示的指令;以及
用于向所述客户端应用提供所述时机指示的指令。
20.根据权利要求19所述的非瞬态机器可读介质,其中,所述时机指示包括所述当前情境状态。
21.根据权利要求19所述的非瞬态机器可读介质,其中,所述使用信息的至少部分是经由所述用户设备的操作系统应用编程接口(API)获得的。
22.根据权利要求19所述的非瞬态机器可读介质,其中,接收、获得、应用、确定和提供的步骤是由所述用户设备的处理器执行的。
23.根据权利要求19所述的非瞬态机器可读介质,还包括:
从远程预测模型训练设备接收所述至少一个训练的预测模型。
24.根据权利要求19所述的非瞬态机器可读介质,还包括:在向所述客户端应用提供所述时机指示之后:
获得关于所述用户对所述客户端应用的反应的反馈信息;
从所述反馈信息中辨别关于所述用户的可行性和接受能力中的至少一个的标签;
通过将所述标签与所述使用信息相关联来生成训练示例;
通过至少将所述训练示例添加到现有训练集来更新所述现有训练集以生成更新后的训练集;并且
基于所述更新后的训练集来重新训练所述至少一个训练的预测模型。
25.根据权利要求24所述的非瞬态机器可读介质,其中,辨别的步骤包括将训练的反馈解读模型应用到所述反馈信息以接收所述标签。
26.根据权利要求24所述的非瞬态机器可读介质,其中,所述反馈信息描述在向所述客户端应用提供所述时机指示之后所述用户在所述用户设备上的活动。
27.根据权利要求26所述的非瞬态机器可读介质,其中,辨别的步骤包括一起分析所述反馈信息和所述使用信息以确定所述用户是否改变了他们的使用行为。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662353601P | 2016-06-23 | 2016-06-23 | |
US62/353,601 | 2016-06-23 | ||
PCT/EP2017/065468 WO2017220752A1 (en) | 2016-06-23 | 2017-06-22 | Method, apparatus and machine readable medium for measuring user availability or receptiveness to notifications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109314722A true CN109314722A (zh) | 2019-02-05 |
Family
ID=59215770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780038655.XA Pending CN109314722A (zh) | 2016-06-23 | 2017-06-22 | 用于测量针对通知的用户可行性或接受能力的方法、装置和机器可读介质 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20190253519A1 (zh) |
EP (1) | EP3476103B1 (zh) |
JP (1) | JP6653774B2 (zh) |
CN (1) | CN109314722A (zh) |
CA (1) | CA3028531A1 (zh) |
MX (1) | MX2018015434A (zh) |
WO (1) | WO2017220752A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881399A (zh) * | 2020-07-20 | 2020-11-03 | 汉海信息技术(上海)有限公司 | 一种消息推送方法及装置 |
CN112929751A (zh) * | 2019-12-06 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 用于确定动作执行的系统、方法及终端 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10841364B2 (en) | 2017-03-27 | 2020-11-17 | International Business Machines Corporation | Using and comparing known and current activity states to determine receptiveness |
US10621019B1 (en) * | 2017-11-22 | 2020-04-14 | Amazon Technologies, Inc. | Using a client to manage remote machine learning jobs |
US11645507B2 (en) * | 2018-03-23 | 2023-05-09 | Vmware, Inc. | Providing models to client devices |
US10826852B2 (en) * | 2018-10-31 | 2020-11-03 | Salesforce.Com, Inc. | Communication frequency optimization |
US11226833B2 (en) * | 2018-11-12 | 2022-01-18 | International Business Machines Corporation | Determination and initiation of a computing interface for computer-initiated task response |
IT201900016142A1 (it) * | 2019-09-12 | 2021-03-12 | St Microelectronics Srl | Sistema e metodo di rilevamento di passi a doppia convalida |
US10834219B1 (en) * | 2020-01-10 | 2020-11-10 | International Business Machines Corporation | Intelligent distribution of push notifications |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003042A1 (en) * | 2001-06-28 | 2004-01-01 | Horvitz Eric J. | Methods and architecture for cross-device activity monitoring, reasoning, and visualization for providing status and forecasts of a users' presence and availability |
CN102707806A (zh) * | 2012-05-18 | 2012-10-03 | 北京航空航天大学 | 一种基于加速度传感器的运动识别方法 |
CN102882936A (zh) * | 2012-09-06 | 2013-01-16 | 百度在线网络技术(北京)有限公司 | 云推送的方法、系统和装置 |
CN104094287A (zh) * | 2011-12-21 | 2014-10-08 | 诺基亚公司 | 用于情境识别的方法、装置以及计算机软件 |
CN105007525A (zh) * | 2015-06-09 | 2015-10-28 | 济南大学 | 一种面向智能电视应用的交互情景事件关联智能感知方法 |
CN105424043A (zh) * | 2015-11-02 | 2016-03-23 | 北京航空航天大学 | 一种基于判断机动的运动状态估计方法 |
CN105513395A (zh) * | 2015-11-30 | 2016-04-20 | 华南理工大学 | 一种基于车辆目的地预测的智能信息推送系统和方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7493369B2 (en) * | 2001-06-28 | 2009-02-17 | Microsoft Corporation | Composable presence and availability services |
US7689521B2 (en) * | 2001-06-28 | 2010-03-30 | Microsoft Corporation | Continuous time bayesian network models for predicting users' presence, activities, and component usage |
JP2013250132A (ja) * | 2012-05-31 | 2013-12-12 | Clarion Co Ltd | 車載装置、車載情報システム |
JP6645438B2 (ja) * | 2014-10-27 | 2020-02-14 | ソニー株式会社 | 情報処理装置、情報処理方法およびコンピュータプログラム |
-
2017
- 2017-06-22 US US16/310,402 patent/US20190253519A1/en not_active Abandoned
- 2017-06-22 CA CA3028531A patent/CA3028531A1/en not_active Abandoned
- 2017-06-22 CN CN201780038655.XA patent/CN109314722A/zh active Pending
- 2017-06-22 JP JP2018566472A patent/JP6653774B2/ja not_active Expired - Fee Related
- 2017-06-22 MX MX2018015434A patent/MX2018015434A/es unknown
- 2017-06-22 EP EP17732882.0A patent/EP3476103B1/en active Active
- 2017-06-22 WO PCT/EP2017/065468 patent/WO2017220752A1/en unknown
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040003042A1 (en) * | 2001-06-28 | 2004-01-01 | Horvitz Eric J. | Methods and architecture for cross-device activity monitoring, reasoning, and visualization for providing status and forecasts of a users' presence and availability |
CN104094287A (zh) * | 2011-12-21 | 2014-10-08 | 诺基亚公司 | 用于情境识别的方法、装置以及计算机软件 |
CN102707806A (zh) * | 2012-05-18 | 2012-10-03 | 北京航空航天大学 | 一种基于加速度传感器的运动识别方法 |
CN102882936A (zh) * | 2012-09-06 | 2013-01-16 | 百度在线网络技术(北京)有限公司 | 云推送的方法、系统和装置 |
CN105007525A (zh) * | 2015-06-09 | 2015-10-28 | 济南大学 | 一种面向智能电视应用的交互情景事件关联智能感知方法 |
CN105424043A (zh) * | 2015-11-02 | 2016-03-23 | 北京航空航天大学 | 一种基于判断机动的运动状态估计方法 |
CN105513395A (zh) * | 2015-11-30 | 2016-04-20 | 华南理工大学 | 一种基于车辆目的地预测的智能信息推送系统和方法 |
Non-Patent Citations (2)
Title |
---|
陈诚等: ""个性化信息推送服务的用户模型研究"", 《情报科学》 * |
黄明恩: ""基于Android平台的云推送服务的设计与实现"", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112929751A (zh) * | 2019-12-06 | 2021-06-08 | 北京达佳互联信息技术有限公司 | 用于确定动作执行的系统、方法及终端 |
CN112929751B (zh) * | 2019-12-06 | 2022-11-18 | 北京达佳互联信息技术有限公司 | 用于确定动作执行的系统、方法及终端 |
CN111881399A (zh) * | 2020-07-20 | 2020-11-03 | 汉海信息技术(上海)有限公司 | 一种消息推送方法及装置 |
CN111881399B (zh) * | 2020-07-20 | 2023-10-27 | 汉海信息技术(上海)有限公司 | 一种消息推送方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2017220752A1 (en) | 2017-12-28 |
US20190253519A1 (en) | 2019-08-15 |
JP2019527403A (ja) | 2019-09-26 |
EP3476103A1 (en) | 2019-05-01 |
CA3028531A1 (en) | 2017-12-28 |
JP6653774B2 (ja) | 2020-02-26 |
MX2018015434A (es) | 2019-04-22 |
EP3476103B1 (en) | 2020-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109314722A (zh) | 用于测量针对通知的用户可行性或接受能力的方法、装置和机器可读介质 | |
Xu et al. | Edge intelligence: Architectures, challenges, and applications | |
US11502914B2 (en) | Systems and methods for behavioural and contextual data analytics | |
CN108076224B (zh) | 应用程序控制方法、装置及存储介质和移动终端 | |
CN108134691B (zh) | 模型构建方法、网络资源预加载方法、装置、介质及终端 | |
CN106021463B (zh) | 基于人工智能提供智能服务的方法、智能服务系统及智能终端 | |
Shin et al. | Understanding and prediction of mobile application usage for smart phones | |
CN104067305B (zh) | 用于生成富集用户简档的方法和装置 | |
CN108764304A (zh) | 场景识别方法、装置、存储介质及电子设备 | |
CN108734293A (zh) | 任务管理系统、方法和装置 | |
CN109933214A (zh) | 上下文预测提前键入查询建议 | |
Nguyen et al. | User-aware and flexible proactive caching using LSTM and ensemble learning in IoT-MEC networks | |
Chu et al. | Metaslicing: A novel resource allocation framework for metaverse | |
CN108153463A (zh) | 应用界面显示控制方法、装置及存储介质和移动终端 | |
Zhu et al. | Group-driven reinforcement learning for personalized mhealth intervention | |
CN108664651A (zh) | 一种图案推荐方法、装置及存储介质 | |
JP2022551104A (ja) | 不均一モデルタイプおよびアーキテクチャを使用した連合学習 | |
CN110097193A (zh) | 训练模型的方法及系统和预测序列数据的方法及系统 | |
Shuja et al. | Applying machine learning techniques for caching in edge networks: A comprehensive survey | |
EP4182854A1 (en) | Federated learning using heterogeneous labels | |
CN110033301A (zh) | 本地数字显示组件和包括这种组件的数字内容广播网络 | |
CN108053260A (zh) | 一种根据统计数据兴趣度确定扩展用户的方法和系统 | |
CN108182600A (zh) | 一种根据加权计算来确定扩展用户的方法和系统 | |
CN114584471A (zh) | 一种基于联邦学习的网络数据分析功能的模型训练方法及装置 | |
Danner et al. | Improving Gossip Learning via Limited Model Merging |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190205 |
|
WD01 | Invention patent application deemed withdrawn after publication |