用于联邦位置指纹定位的方法和设备
技术领域
本公开的实例实施例大体上涉及识别客户端的上下文,且更明确地说,涉及在维持数据隐私和匿名的同时识别客户端的上下文。
背景技术
几个世纪以来,地图一直用于提供路线几何和地理信息。包含来自历史快照的道路和地理特征的静态图像的常规纸质地图已让位于计算机和移动装置上呈现的数字地图,并且通过使用图形用户接口来增强导航。
数字地图和导航可在用户沿着路线行进时向用户提供动态路线导引,或向用户提供一般辅助,包含兴趣点识别或关于位置的一般信息。典型的数字地图和导航系统可具有大量可用信息。
移动装置和能够跟踪人移动的位置的装置的普及产生了大量基于位置的数据,其有用性仍在探索中。了解区域内人的移动可向此类数据的各种消费者提供信息。位置信息可包含行人、骑行者、车辆等的位置和移动,使得可通过各种实体以各种方式使用数据以了解人、车辆等的移动。数据消费者可包含交通规划者、商家、开发人员(住宅/商业)、城市规划者等。然而,数据隐私和匿名是许多可能想要限制共享多少信息的用户的关注点。
发明内容
因此,提供一种用于识别客户端的上下文的方法、设备和计算机程序产品,且更明确地说,提供一种用于在维持数据隐私和匿名的同时识别客户端的上下文的方法、设备和计算机程序产品。本文中所提供的实施例包含一种设备,所述设备至少一个处理器和至少一个包含计算机程序代码指令的非暂时性存储器。计算机程序代码指令被配置成在被执行时使得设备至少:接收机器学习模型;识别位置或轨迹中的至少一个;基于位置或轨迹中的至少一个的上下文而生成上下文矢量;使用机器学习模型对上下文矢量进行降维以生成状态矢量;提供状态矢量;以及响应于状态矢量而接收与位置相关的信息或服务。
使得设备基于位置或轨迹中的至少一个的上下文而生成上下文矢量可包含使得设备:识别接近位置或轨迹中的至少一个的多个兴趣点;识别多个兴趣点的类别;确定相应类别的兴趣点计数;以及基于相应类别的兴趣点计数而生成上下文矢量。使得设备基于相应类别的兴趣点计数而生成上下文矢量可包含使得设备基于相应类别的兴趣点计数与相应类别的兴趣点平均值计数的相对关系而生成上下文矢量。
可使得一些实施例的设备将上下文矢量连同用于多个所存储的上下文矢量的先前存储的上下文矢量一起存储在存储器中。可使得一些实施例的设备:接收对客户端更新后的机器学习模型的请求;使用机器倾斜模型和多个所存储的上下文矢量生成客户端更新后的机器学习模型;以及响应于对客户端更新后的机器学习模型的请求而提供客户端更新后的机器学习模型的表示。
根据一些实施例,可使得设备:接收服务器更新后的机器学习模型,其中服务器更新后的机器学习模型至少部分地基于客户端更新后的机器学习模型的表示;以及依赖于服务器更新后的机器学习模型而不是机器学习模型。可使得设备:建立客户端更新后的机器学习模型与机器学习模型之间的增量,其中客户端更新后的机器学习模型的表示包含客户端更新后的机器学习模型与机器学习模型之间的增量。客户端更新后的机器学习模型的表示可包含客户端更新后的机器学习模型。
本文中所提供的实施例可包含一种计算机程序产品,所述计算机程序产品具有至少一个非暂时性计算机可读存储介质,所述至少一个非暂时性计算机可读存储介质具有存储在其中的计算机可执行程序代码指令。计算机可执行程序代码指令可包含用于以下的程序代码指令:接收机器学习模型;识别位置或轨迹中的至少一个;基于位置或轨迹中的至少一个的上下文而生成上下文矢量;使用机器学习模型对上下文矢量进行降维以生成状态矢量;提供状态矢量;以及响应于状态矢量而接收与位置相关的信息或服务。
用于基于位置或轨迹中的至少一个的上下文而生成上下文矢量的程序代码指令可包含用于以下的程序代码指令:识别接近位置或轨迹中的至少一个的多个兴趣点;识别多个兴趣点的类别;确定相应类别的兴趣点计数;以及基于相应类别的兴趣点计数而生成上下文矢量。用于基于相应类别的兴趣点计数而生成上下文矢量的程序代码指令可包含用于基于相应类别的兴趣点计数与相应类别的兴趣点平均值计数的相对关系而生成上下文矢量的程序代码指令。
实施例可包含用于将上下文矢量连同用于多个所存储的上下文矢量的先前存储的上下文矢量一起存储在存储器中的程序代码指令。实施例可包含用于以下的程序代码指令:接收对客户端更新后的机器学习模型的请求;使用机器学习模型和多个所存储的上下文矢量生成客户端更新后的机器学习模型;以及响应于对客户端更新后的机器学习模型的请求而提供客户端更新后的机器学习模型的表示。
根据一些实施例,计算机程序产品可包含用于以下的程序代码指令:接收服务器更新后的机器学习模型,其中服务器更新后的机器学习模型至少部分地基于客户端更新后的机器学习模型的表示;以及依赖于服务器更新后的机器学习模型而不是机器学习模型。实施例可包含用于以下的程序代码指令:建立客户端更新后的机器学习模型与机器学习模型之间的增量,其中客户端更新后的机器学习模型的表示包含客户端更新后的机器学习模型与机器学习模型之间的增量。客户端更新后的机器学习模型的表示可包含客户端更新后的机器学习模型。
本文中所提供的实施例可包含一种方法,所述方法包含:接收机器学习模型;识别位置或轨迹中的至少一个;基于位置或轨迹中的至少一个的上下文而生成上下文矢量;使用机器学习模型对上下文矢量进行降维以生成状态矢量;提供状态矢量;以及响应于状态矢量而接收与位置相关的信息或服务。
根据一些实施例,基于位置或轨迹中的至少一个的上下文而生成上下文矢量可包含:识别接近位置或轨迹中的至少一个的多个兴趣点;识别多个兴趣点的类别;确定相应类别的兴趣点计数;以及基于相应类别的兴趣点计数而生成上下文矢量。基于相应类别的兴趣点计数而生成上下文矢量可包含基于相应类别的兴趣点计数与相应类别的兴趣点平均值计数的相对关系而生成上下文矢量。方法可包含将上下文矢量连同用于多个所存储的上下文矢量的先前存储的上下文矢量一起存储在存储器中。
本文中所提供的实施例可包含一种设备,所述设备包含:用于接收机器学习模型的构件;用于识别位置或轨迹中的至少一个的构件;用于基于位置或轨迹中的至少一个的上下文而生成上下文矢量的构件;用于使用机器学习模型对上下文矢量进行降维以生成状态矢量的构件;用于提供状态矢量的构件;以及用于响应于状态矢量而接收与位置相关的信息或服务的构件。
根据一些实施例,用于基于位置或轨迹中的至少一个的上下文而生成上下文矢量的构件可包含:用于识别接近位置或轨迹中的至少一个的多个兴趣点的构件;用于识别多个兴趣点的类别的构件;用于确定相应类别的兴趣点计数的构件;以及用于基于相应类别的兴趣点计数而生成上下文矢量的构件。用于基于相应类别的兴趣点计数而生成上下文矢量的构件可包含用于基于相应类别的兴趣点计数与相应类别的兴趣点平均值计数的相对关系而生成上下文矢量的构件。实例设备可包含用于将上下文矢量连同用于多个所存储的上下文矢量的先前存储的上下文矢量一起存储在存储器中的构件。
本文中所提供的实施例可包含一种设备,所述设备具有至少一个处理器和至少一个包含计算机程序代码指令的非暂时性存储器。计算机程序代码指令被配置成在被执行时使得设备至少:向客户端提供机器学习模型;从客户端接收状态矢量;基于使用状态矢量作为机器学习模型的输入而确定客户端的代表性位置;以及基于客户端的代表性位置而向客户端提供与位置相关的服务或信息。客户端的代表性位置可包含上下文矢量。上下文矢量可包含针对多个兴趣点类别的相应类别的兴趣点计数的指示。
根据一些实施例,可使得设备:向客户端提供对客户端更新后的机器学习模型的请求;以及接收客户端更新后的机器学习模型的表示。可使得设备至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型。使得设备至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型可包含使得设备:将学习速率乘以多个客户端更新后的机器学习模型的平均值,以获得更新增量;以及将更新增量与机器学习模型相加,得到更新后的机器学习模型。可使得设备:向客户端提供更新后的机器学习模型,以促进对更新后的机器学习模型而不是机器学习模型的依赖。
本文中所提供的实施例可包含一种计算机程序产品,所述计算机程序产品具有至少一个非暂时性计算机可读存储介质,所述至少一个非暂时性计算机可读存储介质具有存储在其中的计算机可执行程序代码指令。计算机程序代码指令包含用于以下的程序代码指令:向客户端提供机器学习模型;从客户端接收状态矢量;基于使用状态矢量作为机器学习模型的输入而确定客户端的代表性位置;以及基于客户端的代表性位置而向客户端提供与位置相关的服务或信息。客户端的代表性位置可包含上下文矢量。上下文矢量可包含针对多个兴趣点类别的相应类别的兴趣点计数的指示。
一些实施例的计算机程序产品可包含用于以下的程序代码指令:至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型。用于至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型的程序代码指令可包含用于以下的程序代码指令:将学习速率乘以多个客户端更新后的机器学习模型的平均值,以获得更新增量;以及将更新增量与机器学习模型相加,得到更新后的机器学习模型。实施例可包含程序代码指令,所述程序代码指令用于向客户端提供更新后的机器学习模型,以促进对更新后的机器学习模型而不是机器学习模型的依赖。
本文中所提供的实施例可包含一种方法,所述方法包含:向客户端提供机器学习模型;从客户端接收状态矢量;基于使用状态矢量作为机器学习模型的输入而确定客户端的代表性位置;以及基于客户端的代表性位置而向客户端提供与位置相关的服务或信息。客户端的代表性位置可包含上下文矢量。上下文矢量可包含针对多个兴趣点类别的相应类别的兴趣点计数的指示。
方法可包含:向客户端提供对客户端更新后的机器学习模型的请求;以及接收客户端更新后的机器学习模型的表示。方法可包含至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型。至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型可包含:将学习速率乘以多个客户端更新后的机器学习模型的平均值,以获得更新增量;以及将更新增量与机器学习模型相加,得到更新后的机器学习模型。
本文中所提供的实施例可提供一种设备,所述设备包含:用于向客户端提供机器学习模型的构件;用于从客户端接收状态矢量的构件;用于基于使用状态矢量作为机器学习模型的输入而确定客户端的代表性位置的构件;以及用于基于客户端的代表性位置而向客户端提供与位置相关的服务或信息的构件。客户端的代表性位置可包含上下文矢量。上下文矢量可包含针对多个兴趣点类别的相应类别的兴趣点计数的指示。
实例设备可包含:用于向客户端提供对客户端更新后的机器学习模型的请求的构件;以及用于接收客户端更新后的机器学习模型的表示的构件。实例设备可包含用于至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型的构件。用于至少部分地基于客户端更新后的机器学习模型的表示而更新机器学习模型的构件可包含:用于将学习速率乘以多个客户端更新后的机器学习模型的平均值以获得更新增量的构件;以及用于将更新增量与机器学习模型相加以得到更新后的机器学习模型的构件。
提供上述发明内容仅仅是为了总结一些实例实施例,以提供对本发明的一些方面的基本理解。因此,将理解的是,上述实施例仅是实例,而不应被解释为以任何方式限制本发明的范围或精神。将理解的是,本发明的范围除了这里总结的那些实施例之外还包括许多潜在的实施例,其中一些将在下面进一步描述。
附图说明
因此,已概括地描述了本公开的某些实例实施例,在下文中将参考附图,这些附图不一定按比例绘制,并且其中:
图1是根据本公开的实例实施例的被配置成用于执行本文中所描述的操作中的一些的实例设备的示意图;
图2说明根据本公开的实例实施例的包含多个轨迹的地图,其中超出数字元素识别符的地图的文本是不重要的;
图3说明根据本公开的实例实施例的接近图2的轨迹的多种类别的兴趣点的数目的指示;
图4说明根据本公开的实例实施例的包含许多轨迹的地图,其中超出数字元素识别符的地图的文本是不重要的;
图5说明了根据本公开的实例实施例的图4的地图,所述地图具有应用于轨迹以识别轨迹的三个集群的集群技术,其中超出数字元素识别符的地图的文本是不重要的;
图6说明根据本公开的实例实施例的接近图6的集群的多种类别的兴趣点的数目的指示;
图7说明根据本公开的实例实施例的包含服务器和多个客户端的系统;
图8说明根据本公开的实例实施例的其中客户端正向服务器提供状态矢量的图7的系统;
图9说明根据本公开的实例实施例的其中选择客户端以用于更新服务器的机器学习模型的图7的系统;
图10说明根据本公开的实例实施例的其中客户端建立对机器学习模型的更新的图7的系统;
图11说明根据本公开的实例实施例的其中服务器基于来自客户端的更新而更新机器学习模型的图7的系统;
图12说明根据本公开的实例实施例的其中服务器将更新后的机器学习模型分配给客户端的图7的系统;
图13是根据本公开的实例实施例的在维持数据隐私和匿名的同时识别客户端的上下文的方法的流程图;以及
图14是根据本公开的实例实施例的在维持数据隐私和匿名的同时识别客户端的上下文的方法的另一流程图。
具体实施方式
现在将在下文中参考附图更全面地描述本发明的一些实施例,其中展示了本发明的一些但不是全部实施例。实际上,本发明的各种实施例可以许多不同的形式实施,并且不应被解释为限于本文中所阐述的实施例;相反,提供这些实施例是为了使本公开内容满足适用的法律要求。相同的附图标记始终指代相同的元件。如本文中所使用,术语“数据”、“内容”、“信息”和类似术语可以可互换地用来指代能够根据本发明的实施例被传输、接收和/或存储的数据。因此,任何此类术语的使用不应被视为限制本发明的实施例的精神和范围。
根据本公开的实例实施例提供一种用于在维持数据隐私和匿名的同时识别客户端的上下文的方法、设备和计算机程序产品。移动装置或客户端的用户想要向他们提供相关且有用的信息;然而,用户通常想要尽可能共享极少个人数据和信息。这些要求是冲突的,因为向用户提供有用信息的最佳方式是尽可能多地了解所述用户。
分析广告支持的且基于位置的服务的用户可向用户提供有用的信息,同时将这些用户与可向用户提供产品和服务的商家联系起来。理解用户的上下文是广告技术的重要方面,使得可将相关信息展示给用户。用不相关的广告轰击用户使用户对广告不敏感且使用户变得厌倦广告,进而降低了广告的效果。广告商想要瞄准与他们的产品和服务相关的潜在客户,以最大化其广告支出。广告商购买针对例如“咖啡店消费者”或“常客”等用户群体的广告印象。对于移动应用程序,位置可有助于进行此类细分;然而,这可能会损害隐私。本文中所描述的实施例提供了隐私保护机器学习,以解决机器学习方法的有用性与其用户的隐私成本之间的紧张关系。实施例使得能够在维持用户隐私的同时高精度地识别用户的上下文。
提供在线服务的产品和服务提供商可能想要通过考虑用户位置来改善用户细分。直接方法是用户仅将其位置发送给服务提供商,并且服务识别关于所述位置的额外信息(例如,所述位置周围的兴趣点或POI的类型)以进行进一步推断。然而,这以高频率揭示用户的准确位置为代价。随着用户越来越意识到可共享的关于他们的数据量,此方法受到越来越严格的审查,因此移动操作系统现在正在积极抵消此类方法,并且在不同移动装置应用程序跟踪他们的位置时提醒用户注意。
本文中所提供的实施例不基于用户的实际位置来执行用户细分,而是使其客户端装置在高度降维的抽象状态空间中计算其状态。将位置及其上下文转换为抽象状态空间的模型以分布式“联邦”方式进行计算和更新,使得观测到的位置和位置上下文可用于训练模型,而无需公开其准确上下文。接收到的信息的用户(例如广告商或服务提供商)可将降维后的位置从原始空间还原回原型特征矢量,并且因此可了解发送特定状态的用户的平均上下文。
图1是被配置用于执行本文中所描述的操作中的一些,特别是识别上下文、基于上下文而生成特征矢量以及建立客户端装置的状态的操作的实例设备的示意图。实例设备可任选地被配置成用于接收客户端装置的状态,以及基于状态矢量的机器学习模型,识别特征矢量且估计客户端装置的上下文。设备20是可由多种计算装置中的任一种实施或与多种计算设备中的任一种相关联的实例实施例,所述计算装置包含被配置成用于提供高级驾驶辅助特征的装置或以其它方式与被配置成用于提供高级驾驶员辅助特征的装置相关联。举例而言,计算装置可体现或部分体现为移动终端,例如个人数字助理(PDA)、移动电话、智能电话、个人导航装置、平板计算机、相机或前述系统的任何组合。一些实施例的计算装置可为车辆的导航系统或高级驾驶员辅助系统(ADAS)。任选地,计算装置可为固定计算装置,例如桌上型计算机、服务器等。
任选地,设备可由多个计算装置体现或者与多个计算装置相关联,所述计算装置彼此通信或以其它方式彼此联网,使得由设备执行的各种功能可在彼此协作操作的多个计算装置之间划分。
设备20可装备有任何数目的传感器21,例如全球定位系统(GPS)、加速计、图像传感器和/或陀螺仪。传感器中的任一个可用于感测关于用于识别装置的位置的装置的位置、移动、定位或定向的信息,如本文中根据实例实施例所描述。在一些实例实施例中,此类传感器可在车辆或其它远程设备(例如移动装置)中实施,并且检测到的信息可例如通过近场通信(NFC)(包含但不限于BluetoothTM通信、Wi-Fi通信等)发射到设备20。
设备20可包含通信接口22、处理器24、存储器装置26和用户接口28,与其相关联或可以其它方式与其通信。在一些实施例中,处理器(和/或协处理器或辅助所述处理器或以其它方式与所述处理器相关联的任何其它处理电路系统)可经由用于在设备的组件之间传递信息的总线与存储器装置进行通信。存储器装置可为非暂时性的并且可包含例如一个或多个易失性和/或非易失性存储器。换句话说,例如,存储器装置可为电子存储装置(例如,计算机可读存储介质),所述电子存储装置包括被配置成存储可由机器(例如计算装置,如处理器)检索的数据(例如,比特)的门。存储器装置可被配置成存储信息、数据、内容、应用程序、指令等,以使得设备能够执行根据本发明的实例实施例的各种功能。例如,存储器装置可被配置成缓冲输入数据以由处理器处理。此外或可替代地,存储器装置可被配置成存储指令以由处理器执行。
处理器24可以若干不同方式体现。举例而言,处理器可体现为各种硬件处理构件中的一个或多个,例如协处理器、微处理器、控制器、数字信号处理器(DSP)、有或无附带DSP的处理元件、或各种其它处理电路系统,所述其它处理电路系统包含集成电路,例如ASIC(专用集成电路)、FPGA(现场可编程门阵列)、微控制器单元(MCU)、硬件加速器、专用计算机芯片等。因而,在一些实施例中,处理器可包含被配置成独立地执行的一个或多个处理核心。多核处理器可在单个物理封装体内实现多重处理。此外或可替代地,处理器可包含经由总线串联配置的一个或多个处理器,以实现独立执行指令、流水线和/或多线程。
在实例实施例中,处理器24可被配置成执行存储在存储器装置26中或可以其它方式由处理器存取的指令。可替代地或此外,处理器可被配置成执行硬编码功能性。因而,无论是通过硬件方法或软件方法还是通过其组合配置,处理器可表示能够在相应配置时执行根据本发明的实施例的操作的实体(例如,物理地体现在电路系统中)。因此,例如,在处理器体现为ASIC、FPGA等时,处理器可为用于执行本文中所描述的操作的被具体地配置的硬件。可替代地,作为另一实例,在处理器体现为软件指令的执行器时,指令可具体地配置处理器以在指令被执行时执行本文中所描述的算法和/或操作。然而,在一些情况下,通过借助于用于执行本文中所描述的算法和/或操作的指令进一步配置处理器,处理器可为被配置成采用本发明的实施例的专用装置(例如,计算装置)的处理器。除了别的以外,处理器可包含时钟、算术逻辑单元(ALU)和被配置成支持处理器的操作的逻辑门。
实例实施例的设备20还可包含用户接口28或以其它方式与其通信。用户接口可包含触摸屏显示器、扬声器、物理按钮和/或其它输入/输出机构。在实例实施例中,处理器24可包括用户接口电路系统,所述用户接口电路系统被配置成控制一个或多个输入/输出机构的至少一些功能。处理器和/或包括处理器的用户接口电路系统可被配置成通过存储在处理器可存取的存储器(例如,存储器装置24等)上的计算机程序指令(例如,软件和/或固件)来控制一个或多个输入/输出机构的一个或多个功能。
实例实施例的设备20还可任选地包含通信接口22,所述通信接口可为任何构件,例如以硬件或硬件和软件的组合体现的装置或电路系统,所述装置或电路系统被配置成从与例如通过如上文所描述的NFC等设备通信的其它电子装置接收和/或发射数据。此外或可替代地,通信接口22可被配置成通过全球移动通信系统(GSM)通信,例如但不限于长期演进(LTE)。在此方面中,通信接口22可包含例如用于实现与无线通信网络通信的天线(或多个天线)和支持硬件和/或软件。此外或可替代地,通信接口22可包含用于与一个或多个天线交互以使得经由一个或多个天线发射信号或者处理经由一个或多个天线接收到的信号的接收的电路系统。在一些环境中,通信接口22可任选地支持有线通信和/或可替代地支持车辆到车辆或车辆到基础设施无线链路。此外,经由通信接口22接收到的信号可经处理以用于识别装置的位置。
本文中所描述的实施例在维持数据隐私和匿名的同时识别客户端的上下文。根据实例实施例,位置指纹定位可用于识别客户端装置的上下文。图2说明区域的地图100。在地图100内识别的是四个轨迹102、104、106和108。轨迹表示通过用户,或更具体地说,相应用户的移动装置获得的路径。在识别轨迹时,实施例类似地应用于单个位置而非路径。
对于四个轨迹102、104、106和108中的每一个,分析接近每一点或轨迹的兴趣点,并且对每个类别的兴趣点的数目进行计数。兴趣点可包含广泛多种地方中的任一个,例如餐馆、企业、纪念碑、博物馆、信息站等。本质上,兴趣点是可由用户寻求的任何业务、服务、位置等。图3说明由轨迹识别符(traj_id)表示的四个轨迹102、104、106和108,所述轨迹识别符具有针对每一轨迹周围的多种类别110的兴趣点的数目的指示。如所展示,类别110被识别为商业服务、管理和查询服务、律师、餐馆等。
术语“接近”是指兴趣点或轨迹周围的距离或者距离和方向(例如,距离和前进方向)。距离或者距离和方向可为可调谐参数,其中操作员或服务提供商可基于通过上下文矢量和状态矢量建立位置的精确性而调谐实施例。在其中可考虑兴趣点的接近度可为距离参数(例如,半径)、视线或视野参数等。另外,可部分地基于兴趣点的密度而建立其中可考虑兴趣点的接近度。举例而言,如果“接近”建立在如预限定半径内,则在具有高密度的兴趣点的环境中,例如在城市或都市环境中,半径可相对较小。在具有低密度兴趣点的环境中,例如在农村或甚至郊区环境中,半径可相对较大。
虽然将位置点建立为单个时间点处的单个位置,但轨迹包含在一段时间内的两个或更多个位置。在基于预定时间帧(例如,三十秒间隔)内的位置点、尾随时间段(例如,位置信息的最后两分钟)、固定尺寸的地理围栏内的路径、装置的总路径的片段等建立轨迹的位置时,可考虑使用轨迹进行联邦学习。因此,轨迹可为行进路径的部分或潜在地行进路径的全部。本文中所描述的实施例可使用轨迹来识别轨迹内的位置序列的位置信息,向用于位置序列而非单个位置点的装置提供上下文感知信息。
对于每一轨迹,在图表中显示每一类别的兴趣点的数目的指示,其中所述数目通过相对量度来指示。如112处所展示,指示每一类别的兴趣点的数目与轨迹102的平均值的相对关系。类似地,在114、116和118处,指示每一类别的兴趣点的数目与轨迹104、106和108的平均值的相对关系。举例而言,轨迹102包含比轨迹102附近的商业服务的平均数高得多的商业服务,而轨迹104具有比平均值大体上更少的商业服务。轨迹108比其它轨迹中的任一个接近更多房地产服务。图3的类别计数说明兴趣点的相对计数而非绝对计数,以说明更明显的模式且总体上抵消具有较高计数的一些类别的视觉效果。
112、114、116和118的列表示每一相应轨迹的高维矢量。虽然图3描绘了十个类别,但存在可供本公开的实例实施例使用的数百个兴趣点类别。图3说明十个可能被选择为最能体现轨迹之间的区别的类别。
如上文所描述创建的高维矢量可经降维以产生广义的位置指纹。可通过集群技术来对实施例进行降维,其中位置或轨迹可直接减小为若干种类(例如预设数目的三个种类)中的一个。限定那些种类可基于机器学习且基于输入数据。在前述实例的基础上展开,图4说明显示于地图200的区域中的一千条轨迹202。通过将集群技术应用于兴趣点类别矢量,例如图3中所说明的那些矢量,可获得若干种类。在图5中说明三个集群,图6中表示三个集群的POI矢量。
如所展示,图5的集群204包含的餐馆数量高得多,而消费者服务不存在。集群206包含较低密度的餐馆,但较高密度的消费者服务,而集群208说明较高密度的餐馆和相对较低密度的消费者服务。这些集群提供与集群的共同轨迹相关联的用户可如何适用于细分而不必知道其准确位置的说明。举例而言,集群204的轨迹中的用户接近许多餐馆,而通常不接近任何消费者服务。
本文中所描述的实施例可任选地将轨迹和特征矢量的数目减少到连续的较低维度状态。实例实施例可将其减小到n维空间,其中n显著低于原始维度。这可例如通过如上文相对于集群技术所描述的类似方法来实现,但对于每一数据点表达属于每一集群的程度而不是仅最接近集群的索引。任选地,可采用更专门构建的方法,例如通过在二维或三维地图中给每一数据点一个位置来可视化高维数据的“t-SNE”技术,或可采用更确定的自组织地图(SOM)算法,其确保从输入到输出空间的映射的特定性质。举例而言,许多位置或轨迹POI矢量可映射在二维平面(n=2维空间)中,其中可识别标绘图的更多和更少类似区域,并且那些位置或轨迹处的用户可通过其在此空间而非其地理邻近区域中的接近度而进行合理分组。
本文中所描述的实施例可涉及对位置和/或轨迹的POI矢量的降维进行众包。存在用户位置/轨迹的三个可能状态。第一个是一个或多个原始位置,其中一个或若干个经度/纬度对表示给定时刻处的用户位置。第二状态是通过其上下文表示原始位置的n维矢量的上下文矢量。如上文所描述,n是POI类别的数目,并且上下文是接近一位置或在给定范围内的每类别POI的计数。这是可如何将位置或轨迹变成上下文矢量的实例。第三状态是“状态矢量”,其是具有远小于n的m的m维矢量。m维矢量表示上下文矢量的低维编码。
基于用户位置/轨迹的这三个不同状态,存在关于客户端装置可将其上下文发送到服务器以传送其上下文的三个不同情境,以便服务器提供基于位置的服务,例如广告。原始位置是客户端装置可与服务器共享其位置的最容易且最透明的方式。然而,此方法是最不隐私的,并且向服务提供用户特定的位置,所述服务可使用其选择的数据,并且可出售损害用户隐私的用户位置数据。上下文矢量可由用户装置或客户端生成,并且上下文矢量可发送到服务器以大体上识别用户的位置。此方法在某种程度上改进隐私,因为上下文矢量并不提供用户的准确位置。然而,上下文矢量可具有如上文所描述的高维度,并且在上下文矢量具有高维度的情况下,可识别位置,进而遭受与原始位置类似的缺点。客户端装置可如何将与位置相关的信息发送到服务器的第三情境是使用状态矢量。在此情形中,客户端可获得上下文矢量且将所述上下文矢量转换为状态矢量以提供给服务器。
降维算法使用原始数据点的采样来起作用。此处,上下文矢量用作输入的原始数据点,以用于进行降维。由于实施例旨在避免将上下文矢量发送到服务器,而是代之以在维度上减上下文矢量,因此需要在客户端处进行降维。客户端处的此功能性还用于生成训练数据,服务器在联邦学习的技术中利用所述训练数据。本文中所描述的实施例使用联邦学习来改进对上下文矢量的降维,并且提供关于客户端的改进的位置感知,而无需与服务器共享太多信息并牺牲隐私。
为了实施如本文中所描述的联邦学习,服务器向客户端提供用于降维的中心模型,以用于上下文矢量的维度缩减。在客户端针对特定经纬度(lat,lon)从服务器请求基于位置的信息时,客户端处的过程可首先将位置转换为上下文矢量(c1、…、cn)。接着使用从服务器接收到的客户端处的模型,将上下文矢量(c1、…、cn)转换为状态矢量(x、y、…)。接着可在针对基于位置的信息的请求中向服务器提供状态矢量,以提供客户端的位置。
采用与客户端上所部署的模型相同的模型的服务器可使用所获得的状态矢量来重构与状态矢量相关联的平均上下文矢量,并且使用平均上下文矢量以提供来自服务器的基于位置的服务。以此方式,服务器不接收客户端的准确上下文矢量,而是提供由客户端提供的状态矢量的平均上下文矢量的响应,其充当客户端的代表性位置。这向客户端提供来自服务器的上下文相关信息或服务,同时维持服务器的实质匿名,因为服务器仅具有呈平均上下文矢量形式的客户端的代表性位置。为了不断改进模型,将客户端的上下文矢量存储为样本以用于在稍后阶段进行无监督学习。
在由系统的操作员配置的间隔处,所述间隔可基于系统的所要行为和客户端装置的可用性,例如,服务器可运行更新其模型的时期。这涉及选择参与所述训练的候选装置。候选客户端装置可为可在对客户端装置(例如插入到电源中的客户端装置)无负面影响的情况下存取、具有足够带宽、具有可用处理能力且已发现上下文矢量的最小数目个实例的装置。每一候选装置可在给定时间窗内接收对所提议的模型更新的请求。所选择的候选客户端基于本地保存的先前存储的上下文矢量更新其模型。向服务器提供更新后的模型。
通常,机器学习模型可由一组矢量w表示。客户端可在训练之后到达模型w_更新后,并且将所提议的更新发送到服务器,其中更新是更新后的模型与先前版本的模型之间的增量,表示为增量(w)=(w_更新后-w_原始)。增量是原始模型与更新后的模型之间的差值。服务器从每一参与客户端i接收所提议的模型更新增量(w)_i。服务器可将那些改变应用于服务器处的模型,其中更新规则可建模为:
中心模型可根据以下内容进行更新:
w中心+学习速率*增量(w)_均值
一旦新模型完成,就可将其作为新版本的模型推送到所有客户端。
图7说明本公开的实例实施例,其中服务器300(其可为提供与位置相关的服务的服务器)将降维模型310(展示为模型版本一或“模型v.1”)分配给多个客户端,包含实例客户端A 302、实例客户端B 304以及实例客户端C 306。客户端A可使用如图8中所展示的本文中所描述的实例实施例请求基于位置的服务,其中输入数据322包含可呈经纬度形式的位置。任选地,输入数据可为其中形式可包含多个经纬度对的轨迹。输入数据可由客户端302转换成上下文矢量,如上文根据图3所描述。可接着由模型310处理上下文矢量以用于将其降维为状态矢量326。状态矢量326可提供到服务器300,所述服务器通过同一模型310处理状态矢量以获得平均上下文矢量328。此平均上下文矢量向客户端302提供一定程度的匿名,同时还使得服务器300能够提供基于相关位置的服务和信息。在客户端A 302处生成的上下文矢量326还被本地保存在存储器中312以用于进行后续无监督学习。对于每一客户端,包含图8的客户端B 304和客户端C 306,可能发生此同一过程。
如上文所描述,在配置的间隔处,服务器300可通过选择参与训练的候选装置以运行更新其模型的时期或时段。根据图9的实施例,选择客户端A 302和客户端B 304。选择客户端A和客户端B的原因可能是由于客户端的可用功率、带宽、处理能力等。在选择用于更新机器学习模型的客户端时可考虑各种度量。
客户端A 302和客户端B 304可基于本地存储的上下文矢量而更新其相应模型。如图10中所展示,客户端A的模型v.1 310用存储器312的上下文矢量更新以变成模型v.1A322。类似地,客户端B 304的模型v.1 300用来自存储器314的上下文矢量更新以变成模型v.1B 324。
图11说明原始模型v.1 310与修改后的模型v.1A 322之间以及原始模型v.1 310与修改后的模型v.1B 324之间的所计算的增量,所述增量响应于向客户端A 302和客户端B304发送对更新后的模型的请求的来自服务器的请求而提供到服务器300。服务器基于学习速率328乘以客户端修改后的模型(模型v.1A 322和模型v.1B 324)与原始模型(模型v.1310)之间的差的总和除以提供模型的客户端的数目(在此情况下,数目为二)而更新中心模型以变成模型v.2 330。
修改后的模型(模型v.2 330)级联到包含客户端A 302、客户端B 304以及客户端C306的客户端,即使客户端C不是经选择以用于更新的客户端。因此,此机器学习模型得到了不断改进,进而在保持匿名的同时优化了定位客户端的能力,并且根据需要为客户端提供上下文感知位置信息。
图13和14说明描绘根据本公开的实例实施例的方法的流程图。将理解的是,流程图的每一框和流程图中的框的组合可通过各种构件来实施,例如硬件、固件、处理器、电路系统和/或与包含一个或多个计算机程序指令的软件的执行相关联的其它通信装置。举例而言,上文所描述的程序中的一个或多个可由计算机程序指令体现。在此方面,体现上文所描述的程序的计算机程序指令可由采用本发明的实施例的设备20的存储器装置26存储,并且由设备20的处理器24执行。如将理解的,可将任何此类计算机程序指令加载到计算机或其它可编程设备(例如,硬件)上以生产机器,使得所得到的计算机或其它可编程设备实施流程图框中指定的功能。这些计算机程序指令还可存储在非暂时性计算机可读存储器中,所述计算机可读存储器可引导计算机或其它可编程设备以特定方式起作用,使得存储在计算机可读存储器中的指令产生制造品,所述制造品的执行实施流程图框中指定的功能。计算机程序指令还可加载到计算机或其它可编程设备上,以使得在计算机或其它可编程设备上执行一系列操作以产生计算机实施的过程,使得在计算机或其它可编程设备上执行的指令提供用于实施流程图框中指定的功能的操作。
因此,流程图的框支持用于执行指定功能的用于执行指定功能的构件的组合和用于执行指定功能的操作的组合。还将理解的是,流程图的一个或多个框以及流程图中的框的组合可通过执行指定功能的基于专用硬件的计算机系统或专用硬件和计算机指令的组合来实施。
图13是用于向服务器提供降维位置信息以便在维持一定程度的位置隐私的同时接收基于位置的服务或信息的方法的流程图。在410处,例如由客户端接收机器学习模型。在420处识别客户端的位置或轨迹。在430处,基于位置或轨迹的上下文而生成上下文矢量。在440处,对上下文矢量进行降维以生成状态矢量。接着在450处向例如服务器或服务提供商提供状态矢量。随后,在460处,客户端响应于状态矢量而接收与位置相关的信息或服务。
图14是用于解译降维位置信息以便提供基于相关位置的信息或服务的方法的流程图。如所展示,在510处,向客户端提供机器学习模型。在520处从客户端接收状态矢量。在530处,基于使用状态矢量作为机器学习模型的输入而确定客户端的代表性位置。在540处,基于客户端的代表性位置而向客户端提供与位置相关的服务或信息。
在实例实施例中,用于执行上述图13和14的方法的设备可包括被配置成执行上文所描述的操作(410-460和/或510-540)中的一些或每一个的处理器(例如,处理器24)。举例而言,处理器可被配置成通过执行硬件实施的逻辑功能、执行存储的指令或执行用于执行操作中的每一个的算法来执行操作(410-460和/或510-540)。替代地,设备可包括用于执行上文所描述的操作中的每一个的构件。在此方面,根据实例实施例,用于执行操作410-460和/或510-540的构件的实例可包括例如处理器24、计算机程序产品和/或用于执行指令或执行用于处理如上文所描述的信息的算法的装置或电路。
得益于前文描述和相关联附图中呈现的教示的本文中阐述的发明所相关的领域中的技术人员将了解这些发明的许多修改和其它实施例。因此,应理解的是,本发明不应限于所公开的具体实施例,并且修改和其它实施例旨在包含在所附权利要求的范围内。此外,尽管前述描述和相关联的附图在元件和/或功能的某些实例组合的上下文中描述了实例实施例,但是应理解的是,在不脱离所附权利要求的范围的情况下,可通过替代性实施例提供元件和/或功能的不同组合。在此方面,例如,如可在所附权利要求中的一些中所阐述的,还设想了与上文明确描述的组合不同的元件和/或功能组合。尽管本文采用了具体术语,但其仅用于一般性和描述性意义,而不是出于限制的目的。