学习新字词的制作方法

文档序号:30496521发布日期:2022-06-22 04:59阅读:96来源:国知局
学习新字词的制作方法
学习新字词
1.本技术是国际申请日为2017年6月8日、发明名称为“学习新字词”的进入中国国家阶段的pct国际申请no.201780031211.3的分案申请。
2.相关专利申请
3.本专利申请要求于2017年6月8日提交的名称为“学习新字词”(learning new words)的国际申请pct/us2017/036576(代理人案卷号1984p31223wo1)的优先权。本专利申请还根据35u.s.c.
§
119(e)要求于2016年6月12日提交的名称为“学习新字词”(learning new words)的美国专利申请62/348,988(代理人案卷号4860.p31223z)的优先权,并且要求于2016年8月5日提交的名称为“学习新字词”(learning new words)的美国专利申请62/371,657(代理人案卷号4860.p31223z2)的优先权,上述所有申请均在与本公开一致的程度上以引用方式并入本文。
4.本专利申请与2016年9月24日提交的名称为“学习新字词”(learning new words)的美国专利申请15/275,356(代理人案卷号4860.p31223us2)有关,并且该申请在与本公开一致的程度上以引用方式并入本文。
技术领域
5.本公开涉及服务器学习在客户端设备上生成的新字词的领域。


背景技术:

6.客户端设备的用户依赖于一个或多个字词词典进行拼写检查,在打字期间建议字词,以及对已知字词进行其他使用。此类客户端词典很难用可能经众包使用而变得流行的新字词来保持更新而不损害隐私。
7.当前服务器可以通过检查用户在使用服务器时输入的明文来学习用户正在输入的字词。例如,一些现有技术文本消息服务和电子邮件服务(统称为消息)会接收明文消息。将消息路由到客户端设备的消息服务器可以读取该明文,并使用从用户消息的明文中获取的字词向用户呈现广告。但是,服务器学会的字词会保留在服务器上,而不会对设备自带词典进行更新以包含新字词。此外,使用服务器明文会损害用户的隐私。另外,在客户端设备上生成的新字词,例如在客户端设备的文档内使用以及未传输至服务器的字词,服务器无法学习,因为所述字词被本地化到客户端设备。进一步的,如果客户端设备采用端到端的加密消息传递服务,例如imessage,那么服务器根本无法学习用户消息中包含的字词,因此服务器无法使用众包数据更新用户客户端词典。


技术实现要素:

8.本发明公开了用于服务器学习由用户客户端设备以众包方式生成的新字词同时保持客户端设备的本地差异隐私的系统和方法。在众包客户端/服务器环境中,本地差异隐私在客户端与服务器共享用户数据之前将随机性引入了用户数据。服务器可以从所有客户端的众包数据的聚合中学习,但是服务器不能学习任何特定客户端提供的数据。
9.在实施方案中,本地差异隐私在共享用户数据之前将随机性引入了客户端用户数据。每个数据输入di不是具有集中数据源d={d1,...,dn},而是属于单独的客户端i。鉴于与客户端i交互的抄本ti,如果要将数据元素替换为null,则对手不可能将ti与生成的抄本区分开来。不可区分度由通常被认为是小常数的ε参数化。以下是对本地差异隐私的正式定义。
10.设n为客户端-服务器系统中的客户端数量,设γ为从任何单个客户端-服务器交互生成的所有可能的抄本的集合,并且设ti为在与客户端i交互时由差异隐私算法a生成的抄本。设di∈s为客户端i的数据元素。如果对于所有子集以下等式成立,则算法a为ε本地差异隐私:
[0011][0012]
这里,di=null指的是删除客户端i的数据元素的情况。
[0013]
本文公开的系统和方法包括ε-本地差异隐私计数中值草图(cms)和hadamardε-本地差异隐私计数中值草图(cms),它们与现有技术方法在错误、通信负载、使用的空间,以及客户端和服务器计算方面相比较更有利,同时保留用户隐私,如下表所示。
[0014][0015]
在实施方案中,客户端设备可确定在客户端设备上键入的字词是不包含在客户端设备上的词典或资产目录中的新字词。新字词可与娱乐、健康、金融等分类相关联。分类是相似类型信息的集合。在实施方案中,每个分类可与一个或多个会话相关联,其中每个会话可与一个应用程序或产品类型相关联。例如,健康分类可与个人健身或健康应用相关联。健康或健身应用产生的新字词可分类为健康词汇。例如,“zika”这个趋向医学术语可分类为健康词汇。类似地,分类可与浏览器会话的财务应用程序或财务选项卡相关联。由财务应用程序或财务选项卡生成的新字词可以归入财务分类。例如,“公司倒置”(corporate inversion)这个趋向金融术语可以分类在金融分类中。客户端设备上的差异隐私系统可以包括用于新字词的每个分类的隐私预算。由用户生成的新字词可以存储在传输缓冲器中以准备传输到新字词学习服务器。字词可存储在通过分类组织的传输缓冲器中。可以在传输缓冲器中存储比可用于传输字词的隐私预算更多的字词。为了保留隐私预算,可以周期性地对传输缓冲器进行采样以获得用于传输到新字词学习服务器的字词。如果有足够的保密
预算用于分类,则可将取样的字词分割成n-gram,其中n-gram可选自多个n-gram并使用本地差异隐私进行处理,然后传输至服务器。n-gram可以选择为特定长度,例如1个字符(one-gram),2个字符(bi-gram)等。在整个公开内容中,术语“n-gram”用于一般性地指代具有指定过程长度的字符序列。在实施方案中,选择长度为2(bi-gram)以降低搜索空间复杂度。可使用更长或更短的n-gram。在实施方案中,可以基于要学习的字词的语言来选择n-gram长度。在一个实施方案中,客户端设备可以使用本地差异隐私来在与将学习新字词的服务器共享数据前将随机性引入客户端数据。在实施方案中,服务器可以测试从多个客户端接收的差异隐私数据,以确定差异隐私数据中的随机化量是否足以维持客户端数据的差异隐私。
[0016]
在实施方案中,非暂态计算机可读介质可以存储可执行指令,该可执行指令在由处理系统执行时可以执行上述任何功能。
[0017]
在又一实施方案中,耦接到编程有可执行指令的存储器的处理系统可以在执行该指令时,执行上述任何功能。
[0018]
本文所述的一些实施方案包括环境中的一个或多个应用编程接口(api),其中调用程序代码与通过一个或多个接口而受调用的其他程序代码进行交互。各种功能调用、消息或其他类型的调用还可包括各种参数,这些调用可以经由调用程序和被调用代码之间的apl而传输。此外,api可以给调用程序代码提供使用在api中定义的、并在被调用程序代码中实现的数据类型或类别的能力。
[0019]
通过附图并且通过详细描述,其他特征和优点将显而易见。
[0020]
本发明公开认识到在本发明技术中从大量用户收集的个人信息数据的使用可以用于所有或许多用户的利益。例如,可以识别被引入流行词汇的字词并将其包括在设备上的词典中。因此,使用此类个人信息数据使得能够对所递送的内容进行有计划的控制。此外,本公开还预期个人信息数据有益于用户的其他用途。
[0021]
本公开还设想负责此类个人信息数据的收集、分析、公开、发送、存储或其他用途的实体将遵守已确立的隐私政策和/或隐私实践。具体地,此类实体应当实行并坚持使用被公认为满足或超出对维护个人信息数据的隐私性和安全性的行业或政府要求的隐私政策和实践。例如,来自用户的个人信息应当被收集用于实体的合法且合理的用途,并且不在这些合法使用之外共享或出售。另外,此类收集应当仅在用户知情同意之后进行。另外,此类实体应采取任何所需的步骤,以保障和保护对此类个人信息数据的访问,并且确保能够访问个人信息数据的其他人遵守他们的隐私政策和程序。另外,此类实体可使其本身经受第三方评估以证明其遵守广泛接受的隐私政策和实践。
[0022]
不管前述情况如何,本公开还预期用户选择性地阻止使用或访问个人信息数据的实施方案。即本公开预期可提供硬件元件和/或软件元件,以防止或阻止对此类个人信息数据的访问。例如,就广告递送服务而言,本发明的技术可被配置为在注册服务期间允许用户选择“加入”或“退出”参与对个人信息数据的收集。又如,用户可选择不为目标内容递送服务提供位置信息。再如,用户可选择不提供精确的位置信息,但准许传输位置区域信息。
附图说明
[0023]
本发明的实施方案以举例的方式进行说明,而不仅限于各个附图的图示,在附图
中类似的附图标号是指类似的元件。
[0024]
图1以框图形式示出了根据一些实施方案的用于学习由客户端使用的新字词同时保留客户端隐私的系统环境的概述。
[0025]
图2以框图形式示出了根据一些实施方案的用于学习由客户端使用的新字词同时保留客户端隐私的系统环境的详细视图。
[0026]
图3a和3b以框图形式示出了一种根据一些实施方案的用于服务器从众包数据学习新字词同时保留客户端隐私的客户端侧处理方法。
[0027]
图4示出了根据一些实施方案的客户端设备将新字词分解为差异隐私的n-gram以准备将差异隐私的n-gram传输到新术语学习服务器同时保留客户端隐私的方法。
[0028]
图5示出了根据一些实施方案的客户端将差异隐私算法应用于新字词的n-gram的方法。
[0029]
图6示出了根据一些实施方案的服务器累积从众包数据接收差异隐私字词和n-gram的频率同时保留客户端隐私的方法。
[0030]
图7示出了根据一些实施方案的服务器使用从众包数据接收的差异隐私字词和n-gram的累积频率来学习新字词同时保留客户端隐私的方法。
[0031]
图8示出了根据一些实施方案的服务器隐私位测试,以确保来自众包客户端的接收数据的充分随机化。
[0032]
图9示出了可在本发明的一些实施方案中使用的软件栈的示例性实施方案。
[0033]
图10为计算系统的一个实施方案的框图。
具体实施方式
[0034]
在以下对实施方案的详细描述中将引用附图,附图中类似的附图标记表示相似的元素,并且其中以示例方式示出了可实践的具体实施方案。这些实施方案被足够详细地描述以允许本领域的技术人员实践本发明,并且应当理解,可使用其他实施方案,并可在不脱离本公开内容的范围的情况下进行逻辑修改、机械修改、电气修改、功能修改和其他修改。因此,下面的详细描述不应该被理解为限制性的意义,并且本发明的范围仅由所附权利要求书所限定。
[0035]
图1以框图形式示出了根据一些实施方案的用于学习由客户端使用的新字词同时保留用户隐私的系统环境100的概述。
[0036]
每个与大量多个用户(众包)中的用户相关联的客户端设备110可以经由网络120耦接到一个或多个新术语学习服务器130(“术语学习服务器130”)。每个客户端设备110可以将新字词分段为n-gram,并将该字词的差异隐私草图和该字词的n-gram发送到术语学习服务器。字词的草图是所述字词的计算编码表示。草图的目的是将字词(草图)的编码表示而不是字词的明文传输到服务器,这样服务器就不能直接学习只由一个客户端传输的字词。在众包客户端/服务器环境中,本地差异隐私系统生成编码表示,从而在客户端与服务器共享字词之前将随机性引入客户端数据(字词)。服务器可以从所有客户端的众包数据的聚合中学习该字词,但是不能学习任何特定客户端提供的字词。从大量客户端设备110接收的差异隐私草图共同包括众包数据,从其中术语学习服务器130可以学习在所述大量客户端设备110中使用的新字词同时保持每个客户端设备110的隐私。在众包数据环境中实现的
客户端(本地)差异隐私确保术语学习服务器130学习所有客户端设备110的新字词,而不暴露任何特定客户端设备110是否使用新字词。客户端设备110可以包括任何类型的计算设备,诸如台式电脑、平板电脑、智能手机、电视机顶盒,或watch、tv等其他计算设备110,如下面参考图10所述。
[0037]
网络120可以是任何类型的网络,例如以太网、wifi、令牌环、火线、usb、光纤通道或其他网络类型。
[0038]
术语学习服务器130可包括一个或多个硬件处理器、内存、诸如一个或多个硬盘的存储设备、固态存储设备、cd-rom存储器、dvd-rom存储器,存储设备等。术语学习服务器130的示例性组件如下面参考图10所述。
[0039]
图2以框图形式示出了根据一些实施方案的用于学习由客户端使用的新字词同时保留用户隐私的系统环境100的详细视图。
[0040]
客户端设备110的内部组件可包括多个存储器205-222、差异隐私引擎(dpe)228,其可包括差异隐私后台程序225和差异保护框架或应用程序编程接口(api)227,以及多个应用程序230,例如app1、app2和app3。下面参考图9详细描述了api。
[0041]
存储器205-222可包括黑名单205、术语学习缓冲器215、资产目录220和专用词典222。黑名单205可用于确定不被发送到术语学习服务器130的字词。用户可能更喜欢将某些字词列入黑名单作为对用户具有高级别隐私,这样无论术语学习服务器130提供的隐私保证有多么好,用户都不希望向术语学习服务器130传输字词。这些字词可能包括专有名称,例如家庭成员或姓氏、专有技术字词以及用户可以主动选择使用黑名单205保持隐私的其他字词。
[0042]
黑名单存储器205可用于存储先前已由客户端设备110传输到术语学习服务器130的字词,但客户端设备100尚未从新术语学习服务器130接收更新的资产目录280以替换客户端设备资产目录220。在实施方案中,差异隐私引擎228可以在处理字词之前检查黑名单存储器205(例如生成差异隐私n-gram)。在实施方案中,客户端设备110的差异隐私引擎(dpe)228仅向术语学习服务器130发送一次字词。为了保留客户端设备110的隐私预算,已经添加到传输字词存储器210的字词不能重新发送到术语学习服务器130。一旦客户端接收到更新的资产目录220,现在包含在更新的资产目录220中的出现在黑名单存储器205中的字词就可以从黑名单存储器205中删除。
[0043]
隐私预算是确保个人隐私在向术语学习服务器130重复捐赠后不会受到损害的数量。隐私预算e通过向服务器提供差异隐私信息来量化客户端设备110泄漏到服务器的信息量。每次向服务器提交差异隐私信息,例如新字词,会消耗客户端设备110的隐私预算e的一部分ε。如果客户端设备110通过隐私通道向服务器提交k条信息,则ε≤e/k以确保不违反整体隐私预算e为每种信息分类分配单独的隐私预算。每次将字词传输到术语学习服务器130时,用于所述字词分类的隐私预算被扣除或减少一定量。例如,在键盘使用分类中,如果客户端设备将字词“zika”和“ebola”发送到术语学习服务器130,则客户端设备键盘分类预算将因每个传输的字词被扣除用于键盘分类的隐私预算e的一部分。
[0044]
当从术语学习服务器130清除用于分类的数据时,可以在客户端设备110上补充或增加用于所述分类的隐私预算。或者,可以在客户端设备110上周期性地补充用于所述分类
的隐私预算。在实施方案中,客户端设备110对分类的隐私预算的补充可以与术语学习服务器130上一个或多个客户端设备的客户端设备数据清除或术语学习服务器130上的所有客户端设备数据的清除进行同步。在实施方案中,用于字词分类的客户端设备隐私预算的补充可以与术语学习服务器130对多个客户端设备110的客户端设备数据进行的清除异步。
[0045]
术语学习缓冲器215可以包括保存候选字词以便传输到术语学习服务器130的存储装置。用户可以生成比可以在隐私预算内发送用于字词的分类的多的新字词。因此,dpe 228可以将候选字词存储在术语学习缓冲器215中,然后稍后对缓冲器进行采样以确定要发送到术语学习服务器130的随机候选字词。术语学习缓冲器215还可以存储已经从候选字词中采样以及选择用于传输到术语学习服务器130的字词。在实施方案中,字词通过分类而被存储在术语学习缓冲器215中。每个分类都可以拥有隐私预算。
[0046]
客户端设备110还可以包括专用词典222,其存储客户端设备110的用户可能想认为熟悉或频繁的字词,即,特定客户端设备110已知的字词。在实施方案中,用户可以指定专用词典222中的字词合格或不合格以发送到术语学习服务器130。差异隐私引擎228可以从应用程序230接收字词并访问专用词典222以确定该字词是否合格可被发送到术语学习服务器130。
[0047]
术语学习服务器130可包括用于接收数据的模块250,用于根据分类系统对接收的数据255进行分类的模块,以及用于从接收的去识别化的草图数据学习新字词260的作业。术语学习服务器130还可以包括一个或多个存储器,包括n-gram/位置频率存储器270、资产目录275和更新的资产目录280。用于更新客户端265的模块可以将资产目录更新280发布到一个或多个客户端设备110。
[0048]
接收模块250可以异步接收大量客户端设备110的新字词的n-gram的草图(“众包数据”)。接收模块250可以从接收的草图数据中移除任何潜在的标识符,例如ip地址、元数据、会话标识符或可以标识发送草图数据的特定客户端设备110的其他数据。
[0049]
分类接收数据模块255可以从接收到的草图中提取分类数据,并通过分类对接收到的草图数据进行分组。例如,分类接收数据模块255可以接收新字词的草图,并根据键盘使用分类对这些草图进行分组。
[0050]
学习新术语作业260可以周期性地处理从大量客户端设备110接收的去识别化的草图数据并分类从大量客户端设备110接收的草图数据。学习新术语作业260可以包括操作,该操作包括累积接收到的n-gram的频率、生成n-gram的排列、修整n-gram的排列,并从n-gram的排列中确定候选新字词。学习新术语作业260还可以更新资产目录275以生成具有已知字词的更新频率的资产目录更新。
[0051]
图3a和3b以框图形式示出了一种根据一些实施方案的用于服务器从众包数据学习新字词同时保留客户端隐私的客户端处理方法300。
[0052]
在操作305中,差异隐私引擎(dpe)228可以从应用程序230接收新字词。应用程序230可以通过将新字词与包括在客户端设备110上的词典进行比较来识别新字词。如果字词不包括在词典中,则应用程序230可以确定所述新词将发送到dpe 228。应用程序可以是电子邮件应用程序、消息传递应用程序、字词处理应用程序、网络浏览器、客户端设备浏览器、在线商店或任何其他应用程序。应用程序230可以确定所述字词的分类(类别)。类别可以是语言,例如英文或中文。在实施方案中,类别可以由多个应用程序230共享。在实施方案中,
类别可以是健康、财务、法律术语或其他用例分类。作为示例,dpe 228可以从消息传递应用程序230接收字词“zika”并确定该字词与键盘使用分类相关联。作为另一示例,dpe 228可以从健身应用程序接收用户在一段时间内采取的步骤,并确定步骤的数量与健康分类相关联。字词的每种分类都有自己的隐私预算。
[0053]
在操作310中,dpe 228可以访问资产目录220以确定术语学习服务器130是否已经知道在操作305中接收的字词,由资产目录220或专用词典222中字词的存在证明。如果字词在资产目录220中或在专用词典222中,则方法300结束。否则,方法300在操作315处继续。
[0054]
在操作315中,应用程序230或dpe228可以确定所述字词是否存储在黑名单存储器205中。如果字词存储在黑名单存储器205中,则方法300结束。否则,方法300在操作320处重新开始。
[0055]
在操作320中,dpe228可以确定所述字词是否先前已经由dpe 228处理。先前处理的字词可以包括先前已经由此客户端设备110传输到术语学习服务器130但尚未在客户端设备110上的更新资产目录220中找到的术语。先前已经被处理的字词也可以是存储在学习缓冲器215中的字词,所述字词尚未被传输到术语学习服务器130,但是已由客户端设备110上的dpe228处理。如果先前已经处理了所述字词,则方法300结束。否则,方法300在操作325处重新开始。
[0056]
在操作335中,所述字词可以存储在学习缓冲器215中的样本缓冲器或队列中。在操作335之后,方法300在操作355处重新开始,如下面参考图3b所述。
[0057]
字词可以保持在学习缓冲器215中,使得一批字词被收集在一起以在时间间隔内发送到术语学习服务器130。每次发送字词时,都扣除分类的隐私预算的一部分。为了保留字词的每种分类的隐私预算,可将术语保存在学习缓冲器215中,然后在一段时间之后,从学习缓冲器215的分类中选择字词以进行处理。在实施方案中,缓冲区中的字词以队列顺序被处理。在实施方案中,根据策略从缓冲器中随机选择字词。该过程减慢了将新字词发送到术语学习服务器130的速度并延长了隐私预算的寿命。在实施方案中,dpe 228可以包含确定何时耗尽分类的隐私预算的逻辑。然后,dpe228可以在补充隐私预算之前监控经过的时间。客户端处理间隔之间的时间间隔可以根据任何时间可用的隐私预算量进行扩展或收缩。在选择字词前,可以确定是否存在可用于将字词发送到新术语学习服务器130的隐私预算。如果没有可用于字词分类的隐私预算,则不可以处理字词。
[0058]
在图3b中,在操作355中,可以确定更新间隔是否已经到期。如果没有,则可以在操作355中周期性地重新检查更新间隔,直到间隔到期为止。更新间隔可用于计量从客户端设备110向新术语频率服务器130的信息捐赠,以保留隐私预算。
[0059]
如果在操作355中更新间隔已经到期,则方法300在操作360处重新开始。
[0060]
在操作360中,可以从学习缓冲器215的样本缓冲器中选择字词。在实施方案中,样本缓冲器可以保持多个字词,可选地通过分类进行组织,使得可以从样本缓冲器中随机选择字词以进行处理以准备传输到术语学习服务器130。在实施方案中,可以按队列顺序从样本缓冲器中选择字词。在实施方案中,可以按随机顺序从样本缓冲器中选择字词。在实施方案中,可以根据策略来执行从样本缓冲器中选择字词。可以根据应用程序或字词的分类来确定策略。
[0061]
在操作400中,处理所选择的字词以便发送到术语学习服务器130。下面参考图4详
细描述了操作400。
[0062]
在操作365中,处理后的字词可以存储在学习缓冲器215的缓冲器中,以便传输到新术语学习服务器130。
[0063]
在操作370中,可以确定样本缓冲器中是否有更多字词要考虑用于处理和传输到术语学习服务器130。如果是,则方法300在操作360处重新开始,否则方法300在操作375处重新开始。
[0064]
在操作375中,可以将经处理的字词的输出缓冲器传输到术语学习服务器130。
[0065]
在操作380中,客户端设备可以可选地从术语学习服务器接收更新的资产目录。更新的资产目录220可以具有由术语学习服务器130响应于由术语学习服务器130接收的众包数据而添加的一个或多个新术语。
[0066]
在实施方案中,在操作375中处理并传输到术语学习服务器130的字词可以存储在黑名单存储器205中。在实施方案中,最初选择字词用于在图3a的操作305中处理的应用程序230可以确定该字词是否应该被添加到黑名单存储器205中。
[0067]
图4示出了根据一些实施方案客户端设备将新字词分解为n-gram以准备以差异隐私形式将其中一个所选n-gram传输到新术语学习服务器同时保持客户端隐私的方法400。
[0068]
在操作405中,可以将新字词分段为n-gram。在实施方案中,n-gram的长度可以是单个字符(“one-gram”)。单个n-gram长度可适用于诸如中文等语言,其中单个符号可表示一个或多个字词。在另一实施方案中,n-gram的长度可以是两个字符(“bi-gram”)。在实施方案中,n-gram的长度可以是三个或四个字符。每个n-gram在字词中有位置。例如,如果新字词是“bazinga”,而n-gram长度为2,那么第一个n-gram将包含“ba”,第二个n-gram将包含“zi”,第三个n-gram将包含“ng”,第四个n-gram将包含“a《null》”。
[0069]
在操作410中,可以生成数字,所述数字为新字词的散列并且与新字词和新字词的每个n-gram相关联(“拼图块”)。在实施方案中,所述散列可以包括sha256散列算法或其他散列算法。术语学习服务器130可以将所述数字作为拼图块以将n-gram组合在一起以在新术语学习服务器130处识别新字词。
[0070]
在操作500中,dpe 228可以将差异隐私算法应用于新词和新词的所选n-gram。下面参考图5,详细描述了操作500。
[0071]
在操作415中,dpe 228可以将差异隐私字词和该字词的所选差异隐私n-gram与所选的n-gram位置数据以及新字词的类信息一起传输到术语学习服务器130。
[0072]
在操作420中,dpe 228可以对客户端设备的用于传输到术语学习服务器130的新字词的分类的隐私预算进行扣除。例如,在dpe 228将差异隐私数据传输到术语学习服务器130之后,可以减少或调整用于新术语分类的隐私预算以反映传输。
[0073]
在操作425中,dpe 228可以周期性地补充或增加客户端设备110上用于分类的隐私预算。在实施方案中,补充或增加分类的隐私预算与操作415中新术语学习信息的传输是异步的。
[0074]
图5示出了客户端方法500,其根据一些实施方案将差异隐私算法应用于字词和新字词的n-gram以生成该字词的本地差异私有草图和新字词的n-gram。
[0075]
草图提供了简洁的数据结构,以维持数据流d={d1,...}中存在的元素域s={s1,...,s
p
}的频率。设h={h1,...,hk}为一组k成对独立散列函数,使得每个h∈h是h:
[m]。客户端和服务器差异隐私算法可以在k成对独立散列函数h={h1,...,hk}的公共集合上达成一致,该函数映射到[0..m)。在实施方案中,m可以是其中n是要由服务器收集的客户端数据样本的数量。m值可以是最接近的2的幂到值。在一实施方案中,k可以约为8
×
ln(p),其中p约等于|s|;s中用于术语分类的数据项计数。
[0076]
客户端本地差异隐私草图可以是两种类型之一:(1)ε-本地差异隐私草图,a
client
,或(2)hadamardε-本地差异隐私草图,a
client-hadamard

[0077]
在操作502中,dpe 228可以接收新字词和n-gram作为有序集。在示例中,候选新字词是“bazinga”,这是因电视节目而广受欢迎的字词。在该示例中,n-gram的长度为2(bi-gram),使得字词“bazinga”的n-gram有序集为:“ba”“zi”“ng”和“a《null》”,其中null表示字词“bazinga”的结尾。bazinga已被确定为候选新字词,如上图4所示。bazinga不在黑名单205中,bazinga不在学习缓冲存储器215中,bazinga不在资产目录220中,并且在专用词典222中找不到bazinga。
[0078]
在操作503中,dpe 228可以通过获取该字词的字符串表示的散列来将字词转换为数值,d=h
conv
(字词),例如,d=sha256(字词)。该字词使用h
conv
编码为在0..m范围内的数字d,其中m是该分类的词汇s的估计大小|s|的平方根。在实施方案中,d=h
conv
(字词)模m,使得d∈[0,m)。用于分类的词汇表的大小可能因分类而异。
[0079]
操作505和510在客户端本地差异隐私草图算法a
client
和a
client-hadamard
之间略有不同。首先将描述用于a
client
的操作505和510。
[0080]
客户端ε-本地差异隐私算法a
client
的输入可以包括:(1)隐私参数,ε;(2)散列范围,m;(3)k成对独立散列函数h={h1,...,hk},其中每个hi:[m];和(4)数据元素:d∈s。
[0081]
对于算法a
client
,在操作505中,可以计算噪声常数并且可以初始化向量v:v
←‑cεm
。常数c
ε
保持噪声增加,以保持零均值的无偏隐私。
[0082]
在操作510中,可以使用a
client
利用以下操作生成字词(或n-gram)的草图。
[0083]
1.从一组散列函数h=(h1,...,hk)中随机均匀取样独立同分布(i.i.d.)的散列函数h并设置向量v[h(d)]
←cε

[0084]
2.对向量∈{-1,+1}m进行采样,每个bj独立且独立分布,具有+1概率
[0085]
3.返回向量v
priv
和所选的散列函数h。
[0086]
相反,如果客户端使用a
client-hadamard
算法生成ε-本地差异隐私草图的hadamard版本,则a
client-hadamard
的输入可以是:(1)隐私参数,ε;(2)散列范围m;(3)k成对独立散列函数h={h1,...,hk},其中每个hj:[m];和(4)数据元素:d∈s。
[0087]
下面的操作505和510形成算法a
client-hadamard
的操作的一部分,该算法生成ε-本地差异隐私草图的hadamard版本。
[0088]
在操作505中,可以计算常数并且可以初始化向量v:v

[0]m。
[0089]
在操作510中,算法a
client-hadamard
还包括以下操作:
[0090]
1.从一组散列函数h={h1,...,hk}中随机均匀取样独立同分布的散列函数h并设
置向量v[h(d)]

1。
[0091]
2.生成向量其中hm是维数为m的hadamard矩阵。
[0092]
3.对在[m]和比特b∈{-1,1}中独立同分布的索引j进行采样,使得b为“1”,概率为
[0093]
4.返回c
ε
×b×vhadamard
[j],所选的散列函数h,以及所选的索引j。
[0094]
在操作520中,从构成该字词的n-gram{ba,zi,ng,a《null》}的集合中随机选择新字词“bazinga”。例如,n-gram“ba”可以从新字词“bazinga”的n-gram集合中随机选择。在实施方案中,n-gram的集合可以为有序集。
[0095]
在操作521中,dpe 228可以通过获取将拼图块(pp)前置的n-gram的字符串表示的散列来将随机选择的n-gram转换为数值,d_n-gram=h
conv
(pp,n-gram),例如d_n-gram=sha256(pp,n-gram)。n-gram和拼图块可以使用h
conv
编码为0...m范围内的数字。在实施方案中,d_n-gram=h
conv
(pp,n-gram)模m,使得d_n-gram∈[0,m)。
[0096]
在操作522中,dpe 228可以用噪声常数初始化d_n-gram的草图,类似于上述操作505。
[0097]
在操作525中,dpe 228可以生成d_n-gram的差异隐私草图,如上面的操作510中所述。
[0098]
图6示出了根据一些实施方案的服务器累积从众包数据接收差异隐私字词草图和n-gram的频率同时保留客户端隐私的方法600。
[0099]
在操作602中,术语学习服务器130对从客户端110接收的字词和n-gram草图数据进行去识别化。去识别化可以包括从接收的数据移除互联网协议(ip)地址,移除识别或者可以用于识别具有合理特异性的特定客户的任何元数据。
[0100]
在操作605中,术语学习服务器130从接收的去识别化的客户端数据255中为大量客户端选择一批差异隐私字词和n-gram。
[0101]
在操作610中,术语学习服务器130可以为每个已知的n-gram生成或检索草图。n-gram的草图可以用作索引以将接收的n-gram草图与已知的n-gram草图匹配,从而可以累积某个位置处的n-gram的频率。在实施方案中,频繁出现的n-gram可以具有存储在元组/位置数据库270中的预先生成的草图。例如,在第一位置,n-gram“th”是一个常见的n-gram,因很多字词以它开始。在实施方案中,每个n-gram的草图存储在用于所有n-gram的元组/位置数据库270中,例如,“aa”、“ab”、“ac”等。
[0102]
在操作615中,学习新字词作业260可以从接收到的数据255中选择所有n-gram,所述n-gram位于从中提取n-gram的术语的第一位置,例如,字词“term”中的第一位置bi-gram是“te”。
[0103]
在操作620中,术语学习数据可以重置。术语学习数据可以包括每n-gram位置的n-gram频率的直方图、新术语频率的直方图、n-gram排列数据结构,以及在此实现字词学习逻辑所必需的其他数据结构。
[0104]
在操作625中,对于位置的每个所选n-gram草图,查找匹配草图并以该位置的n-gram直方图递增。更新某个位置的n-gram直方图的具体操作可以取决于客户端是使用ε-本
地差异隐私草图算法a
client
,或者hadamardε-本地差异隐私草图算法a
client-hadamard
。每种操作如下所述。
[0105]
如果客户端使用a
client
算法生成所选择的n-gram草图,那么在操作625中,将所选草图数据向量v
priv
添加到匹配草图数据w
k,m
,如下:
[0106]
对于对应于用于生成v
priv
的所选散列函数的wh行,将wh设置为wh+v
priv

[0107]
如果客户端使用a
client-hadamard
算法生成所选草图,那么在操作625中,将所选草图数据向量v
hadamard
添加到匹配草图数据w
k,m
,如下:
[0108]
1.对于对应于用于生成v
hadamard
的所选散列函数的wh行,将wh设置为wh+v
hadamard

[0109]
2.在确定草图w的计数最小值或计数最大值之前,将行从hadamard基础转换为标准基础:
[0110]
其中hm是维数为m的hadamard矩阵。
[0111]
在操作632中,该位置的n-gram频率直方图可以按n-gram频率从最高到最低排序。可以确定本底噪声频率值。对于具有低于本底噪声的频率的位置的有序直方图中的n-gram,可以被丢弃并排除进行进一步处理。在实施方案中,如果直方图中存在n-gram数据的“n”个样本,则个样本,则其中ε是差异隐私常数,c是常数。
[0112]
在操作635中,可以确定是否存在客户端的差异隐私字词和n-gram的更多位置以进行处理。如果存在,则方法600在操作620处继续。否则,方法600在操作700处继续。
[0113]
在操作700中,学习新术语作业260可以使用累积的差异隐私n-gram草图和字词草图来学习所选字词类别的新字词。下面参考图7详细描述了操作700。
[0114]
在操作645中,学习新术语作业260可以可选地清除所接收的差异隐私n-gram和字词草图数据中的一些或全部,以帮助维持客户端设备110的用户的差异隐私。
[0115]
图7示出了根据一些实施方案的服务器使用从众包数据接收的差异隐私字词草图和n-gram的累积频率来学习新字词同时保留客户端隐私的方法700。可以将位置处的每个n-gram草图划分为具有相同拼图块(pp)值的组。拼图块表示在某个位置处的n-gram草图,其中该草图基于从具有相同拼图块值的相同字词获得的n-gram草图属于在另一位置的n-gram草图。在图6的操作632中生成的位置处的n-gram草图的频率的直方图可以被划分为n-gram草图的拼图块组。直方图可以被分组为(n-gram草图、拼图块)的有序对,每个都具有频率。
[0116]
在操作702中,新术语学习服务器130可以为每个pp和每个可能的n-gram生成n-gram草图作为h
conv
(pp,n-gram)。任何特定生成的h
conv
(pp,n-gram)都是相同的,犹如h
conv
(pp,n-gram)是在客户端设备110上生成的。服务器h
conv
(pp,n-gram)值可以与用于生成h
conv
(pp,n-gram)的拼图块相关联地存储,使得h
conv
(pp,n-gram)值可以由新术语学习服务器130通过拼图块轻易地分组。
[0117]
在操作703中,新术语学习服务器130可以使用图6的操作632的直方图来确定从直方图中的每个位置处的每个h
conv
(pp,n-gram)的众包客户端数据接收的频率。新术语学习服务器130可以通过拼图块(pp)和n-gram草图将每个位置处的hconv(pp,n-gram)分组,使得可以确定具有特定拼图块的特定n-gram草图的频率。
[0118]
在操作705中,可以确定在位置处具有最高频率的n-gram的拼图块组的数量“x”,
其表示在每个位置处用于生成候选词的n-gram拼图块组的数量。x值可以取决于术语学习服务器130被配置为处理的候选字词的最大数量。例如,如果服务器配置为处理包含最多7个bi-gram的最多一千万字词(因此最大字词长为14个符号),则x值可以确定为:在每个位置置x值可以根据许多因素而变化,包括正在由候选字词处理的语言。
[0119]
在操作710中,可以选择具有最高频率的n-gram的“x”拼图块组来生成候选字词。
[0120]
在操作715中,可以从每个位置处的所选n-gram拼图块组生成一组n-gram的有序组合,以生成候选新字词。对于在服务器配置进行处理的所有位置,每个在第一位置处选择相同拼图块的“x”n-gram,可以与每个在第二位置处具有相同拼图块的“x”n-gram进行排列,等等。拼图块表示在某个位置处的n-gram,其中该n-gram基于从具有相同拼图块值的相同字词获得的n-gram属于在另一位置的n-gram。
[0121]
在操作720中,可以丢弃具有小于本底噪声的频率的候选字词。在实施方案中,本底噪声的计算类似于n-gram的本底噪声,通过每个候选字词最大值配置的n-gram的最大数量来缩放。
[0122]
候选字词的搜索空间可以另选地或附加地通过多种技术来修整。在实施方案中,自然语言处理(nlp)技术可以应用于修整不合逻辑或不在特定词汇中出现的组合。例如,n-gram“ee”之后不会出现以下任何n-gram:“oo”“ii”“uu”“zz”等。这样的n-gram序列的排列可以从组合集修整。
[0123]
在实施方案中,可以执行a*搜索,其中首先遍历最短组合以确定候选字词。nlp可用于找到不可行的组合,因此可以从候选组合集中修整。
[0124]
修整候选字词的搜索空间的上述方法可以单独使用或组合使用,以在使用n-gram学习新字词之前修整搜索空间。
[0125]
在操作725中,可以从候选字词中选择候选字词。
[0126]
在操作730中,可以确定候选新字词是否在现有资产目录或字词词典中。
[0127]
理论上,在新术语学习服务器130上的资产目录或词典中不应找到新发现的候选字词。客户端设备应具有包含最新已知字词的最新资产目录,并且客户端设备使用资产目录来帮助消除客户端和服务器处理中的已知字词。但是,客户端有可能没有升级到最新的资产目录,因此客户端可能已经发送了对客户端来说是新的但是服务器已知的字词。
[0128]
如果在操作730中确定候选字词在现有资产目录或词典中,则在实施方案中,可以可选地增加该字词的频率。
[0129]
如果在操作730中确定候选字词是新字词,则可以将新字词添加到更新的资产目录280。
[0130]
在操作745中,可以确定排列树遍历是否完成。如果没有,则方法700在操作725处继续,否则方法700在操作750处继续。
[0131]
在操作750中,术语学习服务器130可以可选地将更新的资产目录传输到一个或多个客户端设备。
[0132]
图8示出了根据一些实施方案的服务器隐私位测试800,以确保来自众包客户端的接收数据的充分随机化。在差异隐私环境中维护客户端设备用户的隐私部分地依赖于用于实现差异隐私的算法中的随机化。如果随机化不够随机,则可能无法充分保持差异隐私。服
务器隐私位测试会测试从客户端设备接收的差异私有草图数据的随机化。
[0133]
在操作805中,可以为新术语学习服务器130上的接收和去识别化数据250中表示的“n”个客户端中的每个客户端选择差异隐私草图。通过对客户端草图的每一行的1位向量进行异或,从每个客户端的草图生成位。
[0134]
在操作810中,循环迭代器变量i被设置为1。
[0135]
在操作815中,草图i的行的每个位b1..bk,计算:
[0136][0137]
在操作820中,增加客户端计数器变量i。
[0138]
在操作825中,可以确定是否存在要处理的更多客户端草图。如果是,则方法800在操作815处继续。否则,方法800在操作830处继续。
[0139]
在操作830中,使用以上针对n个客户端的每个客户端i的一个草图计算的所有bi,i=1..n来计算位的总和。总和a计算如下:
[0140][0141]
在操作835中,计算随机化容差,并且可以确定客户端的随机化是否在容差内。在实施方案中,随机化容差可以计算为:
[0142]
如果则随机化容差失败,否则随机化容差成功。
[0143]
在实施方案中,随机化容差可以计算为:
[0144][0145]
如果则随机化容差成功,否则随机化容差失败。
[0146]
在操作835中,如果随机化容差成功,则在操作840中,可以向新术语学习服务器130的用户界面生成消息,表示随机化在容差范围内,否则在操作845中,可以向新术语学习服务器130的用户界面生成消息,表示随机化不在容差范围内,并且表示需要采取措施以进一步确保客户端设备的差异隐私。措施可以包括修改随机化算法,清除更多客户端设备数据和/或更频繁地清除客户端设备数据。
[0147]
在图9(“软件栈”)中,作为示例性实施方案,应用程序可以使用若干服务api调用服务1或2,以及使用若干os api调用操作系统(os)。服务1和2可使用若干os api调用操作系统。
[0148]
请注意,服务2具有两个api,其中一个(服务2api 1)从应用程序1接收调用并向其返回值,另一个(服务2api 2)从应用程序2接收调用并向其返回值,服务1(其可以是,例如软件库)对os api 1进行调用并自其接收返回值,服务2(其可以是,例如软件库)对api 1和os api 2进行调用并自其接收返回值,应用程序2调用api 2并自其接收返回值。
[0149]
图10为计算系统1000的一个实施方案的框图。图10中所示的计算系统旨在表示一系列计算系统(有线或无线),包括例如台式电脑系统、笔记本电脑系统、平板电脑系统、移动电话,包括支持蜂窝型pda电话的个人数字助理(pda)、机顶盒、娱乐系统或其他消费电子设备。另选的计算系统可以包括更多、更少和/或不同的部件。图10的计算系统可被用于提供计算设备和/或服务器设备。
[0150]
计算机系统1000包括总线1005或用于传送信息的其他通信设备,和与总线1005耦接的可处理信息的处理器1010。
[0151]
虽然计算系统1000被图示为具有单个处理器,但是计算系统1000可以包括多个处理器和/或协处理器1010。计算系统1000还可以包括随机存取存储器(ram)或其他动态存储设备1020(称为主存储器),其耦接到总线1005并且可以存储可由处理器1010执行的信息和指令。在由处理器1010执行指令期间,主存储器1020还可用于存储临时变量或其他中间信息。
[0152]
计算系统1000还可包括只读存储器(rom)和/或耦接到总线1005的可存储用于处理器1010的静态信息和指令的其他静态存储设备1040。数据存储设备1040可以耦接到总线1005以存储信息和指令。数据存储设备1040(诸如闪存或磁盘或光盘)以及相应的驱动器可以被耦接到计算系统1000。
[0153]
计算系统1000还可以经由总线1005耦接到显示设备1050,诸如阴极射线管(crt)或液晶显示器(lcd),以向用户显示信息。计算系统1000还可以包括数字字母混合输入设备1060,该设备包括数字字母键和其他键,其可以耦接到总线1005以将信息和命令选项发送到处理器1010。另一种用户输入设备是光标控件1070,诸如触控板、鼠标、轨迹球或光标方向键,用于向处理器1010传递方向信息和命令选择以及在显示器1050上控制光标移动。计算系统1000还可以经由一个或多个网络接口1080从通信地耦接到计算系统1000的远程设备接收用户输入。
[0154]
计算系统1000还可以包括一个或多个网络接口1080,以提供对诸如局域网之类的网络的访问。网络接口1080可以包括,例如具有天线1085的无线网络接口,所述天线可以表示一个或多个天线。计算系统1000可以包括多个无线网络接口,诸如wifi、和蜂窝电话接口的组合。网络接口1080也可以包括例如有线网络接口,以经由网络电缆1087与远程设备通信,该电缆可以是例如,以太网电缆、同轴电缆、光纤电缆、串行电缆或并行电缆。
[0155]
在实施方案中,网络接口1080可以例如通过符合ieee 802.11b和/或ieee 802.11g标准来提供对局域网的接入,并且/或者无线网络接口可以例如通过符合蓝牙标准提供对个人区域网络的接入。其他无线网络接口和/或协议也可得到支持。除了经由无线lan标准进行通信之外或除开经由无线lan标准进行通信之外,网络接口1080可以使用例如时分多址(tdma)协议、全球移动通信系统(gsm)协议、码分多址(cdma)协议,和/或任何其他类型的无线通信协议来提供无线通信。
[0156]
在以上说明书中,结合本发明的特定实施方案已描述了本发明。但显而易见的是,在不脱离本发明的更广泛的实质和范围的情况下,可对这些实施例进行各种修改和变更。相应地,说明书和附图应被视为有例示性的而非限制性的意义。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1