谷歌Gboard应用的语言模型创新:提升打字体验的隐私保护技术

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

谷歌的键盘应用程序Gboard通过使用语言模型(LM)来改善用户的打字体验,提供了下一个词预测、自动更正、智能编写、滑动输入和校对等功能。我们的研究人员优先考虑开发负责任的方法,既能提高Gboard的LM性能,又能维护最高的隐私标准。近年来,我们取得了重大进展,包括向用户提供数据使用披露和配置控制,以及使用联邦学习和差分隐私(DP)来训练Gboard的LM,从而提供可量化且严格的数据匿名度量。

Gboard的LM设计为使用预定义的常用词列表,称为词汇表。LM的性能取决于这个词汇表的质量,而词汇表随时间可能会变化。不属于词汇表的词被称为词外词(OOV)。OOV词出现的原因有几个,例如,某些语言的词汇表在Gboard中仍在开发中,所以OOV词的比例可能较高。在词汇表相对完整的语言中,如美国英语,OOV词通常由于新兴的流行词(如“COVID-19”和“Wordle”)、非典型大小写(如“tuesday”)以及用户偏好的不寻常拼写(如“cooool”)或甚至打字错误而出现。由于用户在键盘上输入的信息性质敏感,OOV发现是一项具有挑战性的任务。

今天,我们很高兴分享几种通过发现新的常用词来提高LM性能的方法,同时保持强大的数据最小化和DP保证。这些研究工作包括与语言学家合作揭示新的OOV词,使用隐私保护的联邦分析和其他DP算法,以及使用受信任执行环境(TEE)。

与语言学家的合作


发现OOV词的一种方法是通过与外部方负责任的合作获取经过审查的词汇表。例如,我们与皇家机构西班牙皇家学院(RAE)合作,该机构的使命是确保西班牙语的稳定性,创建了更精细的西班牙语字典并将其纳入Gboard。这使得对在西班牙打字的用户来说,自动更正更快、词汇推荐更好,从而改善了Gboard体验。许多之前缺失的词包括常见名字、品牌名和地点名;相对技术性的词(如“euribor”、“dopamina”、“tensiómetro”);以及特定于西班牙说话者的变形(如“cuidáis”、“invitáis”、“tiráis”)。

我们使用之前的训练数据重新训练我们的西班牙语LM,并通过联邦重新训练下游模型,取得了显著的质量改进。OOV词的总比例下降了7.3%。打字词在初始提交后被修改的频率降低,由于使用了更大的词汇表,打字速度也因此得到提升。

隐私保护的联邦分析
另一种改进词汇表的方法是从用户设备中发现频繁的OOV词。这本身是一项具有挑战性的任务,因为用户在其设备上键入的内容性

质敏感。因此,我们需要精心设计机制,在数据收集和处理阶段保护用户的敏感信息。为此,我们采用联邦分析,这是一种数据最小化方法,用于在不共享敏感数据的情况下对分布式数据集执行统计查询,并通过新算法扩展它到开放集领域。这使得我们能够在保护用户贡献通过数据最小化技术(如安全聚合(SecAgg))和数据匿名化技术(如DP)的同时,动态地发现OOV词。

No, it seems like the response was cut off. Here's the continuation and conclusion of the translation:

我们开发的一项技术是SecAggIBLT,它结合了可逆的布隆查找表(IBLT)和SecAgg。IBLT是一种线性数据结构,允许高效地插入、删除和查找键值对。在这里,用户将其OOV词插入到初始化为零的IBLT中,然后通过SecAgg进行聚合。这保证了即使是诚实但好奇的服务器,也只能看到聚合的IBLT(所有设备上的所有OOV词及其频率),而不是单个用户的贡献。这种方法为用户贡献提供了匿名性,并阻止服务器将特定词与单个用户联系起来。在数据处理阶段,中心DP应用于发现的OOV词及其计数,以确保对少数个体来说独特的OOV词永远不会被发布。DP使用参数(ε,δ)来量化隐私保护(数值越小,保护越强)。它提供了一个正式保证,即发布的数据模式在设备之间足够普遍,从而防止个体识别。

在Gboard的使用案例中,由于用户输入可能来自包含敏感信息的大量可能性,例如英语用户可能会输入任意长度的单词或短语,包含来自拉丁字母表的字符、数字列表或其他特殊字符,这些输入可能包含他们的个人信息,如用户名和信用卡号。因为SecAggIBLT能够发现这样独特的词,它依赖于服务器在SecAgg之后正确应用中心DP来确保用户隐私。本身它并不阻止好奇的服务器检查发现的OOV词,可能访问敏感信息。这要求我们开发算法,用更强的数据最小化和DP保证来发现频繁的OOV词。

为此,我们在现有的研究基础上开发了LDP-TrieHH,通过迭代构建字典树(前缀树)数据结构来学习频繁的单词。LDP-TrieHH在数据收集过程中提供了强大的数据最小化和严格的本地DP(LDP)保证。在将LDP-TrieHH算法应用到特定语言时,如在美国和印度尼西亚使用的英语,字典树的每一层都存储与该层深度相对应的一组常见前缀。字典树从根部开始迭代构建,最大长度为15。在每一层,我们收集来自一组用户的反馈,他们只通过在上一层学到的常见前缀后指示一个字符来贡献他们的数据。例如,如果“CO”是算法在前一层学到的一个常见前缀,用户输入单词“COVID-19”,用户将只通过提交对“COV”的投票而不是整个单词“COVID-19”来贡献他们的数据,这减少了从投票过程中泄露的信息量。

我们还通过最小化用户参与(每个用户在最多一个层的投票阶段参与)、限制每个用户可以贡献的投票数量(60天期间平均每天一个单词)、并在用户的投票中添加本地噪音来提供严格的LDP保证(ε=10.0每个单词),从而进一步保护用户投票的隐私。为此,我们使用子集选择机制,它在LDP下提供最优的效用-

隐私权衡。在每一层,我们从大量用户(每层50万)中收集投票,这些投票经过聚合和阈值处理,以过滤掉不常见的前缀。通过这一额外的数据处理步骤,通过聚合分析隐私放大,LDP-TrieHH提供了每个词的中心DP保证(ε=0.315,δ=1e-10),每个用户在60天内最多贡献60个单词(即平均每天一个单词)。为了提高发现词的覆盖率,我们连续运行LDP-TrieHH多次,构建几个具有不同用户集的字典树。在后续运行中,我们要求用户只贡献尚未从前几次运行中学到的OOV词,以更有效地利用每个用户的贡献预算。通过LDP-TrieHH,我们能够发现占英语和印尼语OOV词的16.8%和17.5%。此报告提供了更多细节。

通过TEE扩展到更多语言,实现可验证的隐私
使用LDP-TrieHH方法私下发现OOV词的能力依赖于Gboard活跃的英语和印尼语用户的大量(数百万)数量。然而,对于使用量较小的语言,LDP-TrieHH的准确性将不可避免地较低。为了更好地跨语言扩展,包括使用量较低的语言,Gboard现在正在利用受信任执行环境(TEE)的服务器端处理联邦数据,开始进行验证这种方法的实验,使用合成和真实数据。

TEE是常见处理器的安全扩展,通过嵌入的秘密加密密钥(由硬件制造商签名)来促进工作负载的保密性、完整性和可验证性。我们正在开发的系统,如本白皮书所述,使设备能够验证只能在受TEE保护的过程中解密安全上传的数据,这一过程只发布私有化的聚合数据,且数据不能用于任何其他目的。TEE方法通过DP增强,提供与LDP-TrieHH类似的隐私保护,具有更好的可扩展性,并对类似的隐私威胁具有强大的抵抗力。未来几个月将有更多更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/326691.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CNN/TCN/LSTM/BiGRU-Attention到底哪个模型效果最好?注意力机制全家桶来啦!

​ 声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类智能优化算法及其改进的朋友,可关注我的公众号:强盛机器学习,不定期会有很多免费代码分享~ 目录 数据介绍 效果展示 原理简介 代…

Spring框架深度解析:打造你的Java应用梦工厂

想要在Java企业级应用开发中大展身手?Spring框架的核心容器是你不可或缺的伙伴! 文章目录 一. 引言1.1 介绍Spring框架的重要性1.2 阐述核心容器在Spring框架中的作用1.3 故事开端 二. 背景介绍2.1 描述Spring框架的发展历程2.2 概述Spring框架的主要特点…

【树】简要理解树的概念

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 目录 1、树的概念2、树的相关概念3、结语 1、树的概念 树是一种非线性的数据结构,它…

解决windows中的WSL Ubuntu子系统忘记root密码和用户密码问题

1、以管理员身份运行PowerShell 2、在powershell中执行wsl.exe --user root wsl.exe --user root如果出现了上面的报错,则需要运行步骤3、4,然后在执行步骤5改密码,如果没有出错,请直接跳到第5步改密码操作!&#xff…

Android bootchart 分析启动性能工具使用

bootchart简介 bootchart 可为整个系统提供所有进程的 CPU 和 I/O 负载细分。该工具不需要重建系统映像,可以用作进入 systrace 之前的快速健全性检查。 1. 板端配置: 在Android 板端启用 bootchart,请运行以下命令: 2. Bootch…

Git笔记-常用指令

Git笔记-常用指令 一、概述二、仓库管理二、缓存区操作1. 添加文件到缓存区2. 取消缓存文件3. 忽略列表 三、日志状态信息四、分支操作五、六、 一、概述 这里记录一些git常用的指令。 二、仓库管理 # 本地仓库初始化 git init# 克隆仓库 git clone git_url # git clone ht…

各种数据获取stream流的方式

1.单列集合&#xff08;直接调用&#xff09; ArrayList<Integer> list new ArrayList<>();list.stream(); 2.双列集合 HashMap<String, Integer> map new HashMap<>();map.put("aaa",111);map.put("bbb",222);map.put("c…

鸿蒙开发学习:初探【ArkUI-X】

ArkTS 是华为自研的开发语言。它在TypeScript&#xff08;简称TS&#xff09;的基础上&#xff0c;匹配 ArkUI 框架&#xff0c;扩展了声明式 UI 、状态管理等相应的能力&#xff0c;让开发者以更简洁、更自然的方式开发跨端应用。 ArkUI-X 进一步将 ArkUI 扩展到了多个 OS 平台…

css--控制滚动条的显示位置

各种学习后的知识点整理归纳&#xff0c;非原创&#xff01; ① direction属性 滚动条在左侧显示② transform:scaleY() 滚动条在上侧显示 正常的滚动条会在内容超出规定的范围后在区域右侧和下侧显示在有些不正常的需求下会希望滚动条在上侧和左侧显示自己没有想到好的解决方案…

uniapp 使用renderjs的一些详细介绍

一、简介 官方链接&#xff1a;uniapp官网中的renderjs方法的详细介绍 二、renderjs 定义 renderjs是一个运行在视图层的js。它比WXS更加强大。它只支持app-vue和web。 作用&#xff1a; 大幅降低逻辑层和视图层的通讯损耗&#xff0c;提供高性能视图交互能力。在视图层操作d…

cmake工程导入新电脑环境报错

项目场景&#xff1a; 提示&#xff1a;这里简述项目相关背景&#xff1a; 在一台电脑上运行得很好的cmake工程&#xff0c;导入新电脑环境报错 问题描述 提示&#xff1a;这里描述项目中遇到的问题&#xff1a; 例如&#xff1a;数据传输过程中数据不时出现丢失的情况&…

SSH 免密登录,设置好仍然需要密码登录解决方法

说明&#xff1a; ssh秘钥登录设置好了&#xff0c;但是登录的时候依然需要提供密码 查看系统安全日志&#xff0c;定位问题 sudo cat /var/log/auth.log或者 sudo cat /var/log/secure找到下面的信息 Authentication refused: bad ownership or modes...&#xff08;网上的…

软件需求工程习题

1.&#xff08;面谈&#xff09;是需求获取活动中发生的需求工程师和用户间面对面的会见。 2.使用原型法进行需求获取&#xff0c;&#xff08;演化式&#xff09;原型必须具有健壮性&#xff0c;代码质量要从一开始就能达到最终系统的要求 3.利用面谈进行需求获取时&#xf…

【iOS逆向与安全】网上gw如何自动登录与签到SM2,SM3,SM4算法加解密

1.下载 app 2.frida 调试 3.抓包查看接口 4.分析加密数据 5.易语言编写代码 1 .开始下载 下载好发现有越狱检测&#xff0c;检测点为&#xff1a; -[AppDelegate isJailBreak]; 于是编写插件xm代码 : %hook AppDelegate- (void)isJailBreak{NSLog("AppDelegate is…

通过 Java 操作 redis -- hash 哈希表基本命令

目录 使用命令 hset&#xff0c;hget 使用命令 hexists 使用命令 hdel 使用命令 hkeys&#xff0c;hvals 使用命令 hmget&#xff0c;hmset 关于 redis hash 哈希表类型的相关命令推荐看Redis - hash 哈希表 要想通过 Java 操作 redis&#xff0c;首先要连接上 redis 服务…

STM32使用ESP01S连接阿里云物联网平台

一、ESP01S烧录MQTT固件准备 首先准备好烧录工具&#xff0c;可以从官网上进行下载。 MQTT固件官网网址&#xff1a;AT固件汇总 | 安信可科技 (ai-thinker.com) 进去后如下图界面&#xff0c;向下翻找找到MQTT固件&#xff08;1471&#xff09;下载固件即可。 烧录工具光网地…

Python自动化测试 | 如何使用Robot Framework进行自动化测试?

你还在手动测试&#xff1f;不妨了解一下更高效、准确且简单的测试方法——使用Python的Robot Framework进行自动化测试。 什么是Robot Framework&#xff1f; Robot Framework是一款开源的Python自动化测试框架&#xff0c;它基于关键字驱动的思想&#xff0c;具有易读、易扩…

我是如何免费抵御一个多月的 DDos/CC 攻击的?

今天明月给大家详细分享一下我的博客是如何免费抵御了长达一个多月的 DDos/CC 攻击的&#xff0c;在【现在 DDos/CC 攻击门槛低的可怕&#xff01;】一文里明月就说过现在 DDos/CC 攻击几乎是没有门槛的&#xff0c;任何一个老鼠屎在群里看到你的博客都可以轻松便捷的发动一次 …

鸿蒙开发接口Ability框架:【AbilityMonitor】

AbilityMonitor AbilityMonitor模块提供匹配满足指定条件的受监视能力对象的方法的能力&#xff0c;最近匹配的能力对象将保存在AbilityMonitor对象中。 说明&#xff1a; 本模块首批接口从API version 9 开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起…

【算法练级js+java】重复给定字符n次

题目 Repeats the given string n times.&#xff08;复制指定的字符串n次&#xff09; 期望结果 /** * Repeats the given string n times. * * repeat(‘, 3) * // > **’ * * repeat(‘abc’, 2) * // > ‘abcabc’ * * repeat(‘abc’, 0) * // > “” **/ 代码…