Learning new words

By using local differential privacy technology on the client device to randomize new words into differential privacy sketches and decompose them into n-grams, the problem of difficult dictionary updates on the client device is solved, enabling the server to learn new words while protecting user privacy.

CN114647742BActive Publication Date: 2025-12-30APPLE INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210366557.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2016-09-24
Filing Date
2017-06-08
Publication Date
2025-12-30
Estimated Expiration
2037-06-08

AI Technical Summary

Technical Problem

Existing technologies struggle to effectively update client devices' dictionaries to include new words while protecting user privacy, especially in end-to-end encrypted messaging services where servers cannot learn user-generated new words.

Method used

Using local differential privacy technology, new words on the client device are randomized into differential privacy sketches, which are then decomposed into n-grams and transmitted to the server. The server learns new words from crowdsourced data without exposing any information specific to any client.

Benefits of technology

This technology enables the server to learn and update the dictionary on client devices while protecting user privacy, improving the efficiency and accuracy of dictionary updates and reducing the risk of privacy leaks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114647742B_ABST
    Figure CN114647742B_ABST
Patent Text Reader

Abstract

The present disclosure relates to learning new words. Systems and methods are disclosed for a server to learn new words generated in a crowd-sourced manner by user client devices while maintaining local differential privacy of the client devices. A client device can determine that a word typed on the client device is a new word that is not contained in a dictionary or asset catalog on the client device. The new words can be grouped by categories such as entertainment, health, finance, etc. A differential privacy system on the client device can include a privacy budget for each category of new words. If there is a privacy budget available for a category, one or more new terms in the category can be sent to a new term learning server and the privacy budget for the category is reduced. The privacy budgets can be replenished periodically.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of PCT international application No. 201780031211.3, filed on June 8, 2017, entitled "Learning New Words and Phrases," which has entered the Chinese national phase.

[0002] Related patent applications

[0003] This patent application claims priority to international application PCT / US2017 / 036576 (Attorney's File No. 1984P31223WO1), filed June 8, 2017, entitled “Learning New Words.” This patent application also claims priority to U.S. patent application 62 / 348,988 (Attorney's File No. 4860.P31223Z), filed June 12, 2016, entitled “Learning New Words,” filed pursuant to 35 U.S. SC §119(e), and to U.S. patent application 62 / 371,657 (Attorney's File No. 4860.P31223Z2), filed August 5, 2016, all of which are incorporated herein by reference to the extent consistent with this disclosure.

[0004] This patent application relates to U.S. Patent Application 15 / 275,356 (Attorney’s File No. 4860.P31223US2), filed September 24, 2016, entitled “Learning New Words,” which is incorporated herein by reference to the extent consistent with this disclosure. Technical Field

[0005] This disclosure relates to the field of server learning new words generated on client devices. Background Technology

[0006] Users of client devices rely on one or more word dictionaries for spell checking, word suggestions during typing, and other uses of known words. Such client dictionaries are difficult to keep updated with new words that may become popular through crowdsourcing without compromising privacy.

[0007] Current servers can learn the words a user is typing by examining the plaintext they input when using the server. For example, some existing text messaging services and email services (collectively referred to as messaging) receive plaintext messages. A messaging server that routes a message to a client device can read this plaintext and use the words learned from the user's message to present advertisements to the user. However, the words learned by the server are retained on the server and not updated to include new words in the device's built-in dictionary. Furthermore, using plaintext on the server compromises user privacy. Additionally, new words generated on the client device, such as those used within documents on the client device or words not transmitted to the server, cannot be learned by the server because these words are localized to the client device. Furthermore, if the client device uses an end-to-end encrypted messaging service, such as…

[0008] With iMessage, the server cannot learn the words contained in the user's message, so the server cannot use crowdsourced data to update the user's client dictionary. Summary of the Invention

[0009] This invention discloses a system and method for a server to learn new words generated by user client devices in a crowdsourced manner while maintaining the local differential privacy of the client devices. In a crowdsourced client / server environment, local differential privacy introduces randomness into the user data before the client shares user data with the server. The server can learn from the aggregation of crowdsourced data from all clients, but the server cannot learn from data provided by any particular client.

[0010] In the implementation scheme, local differential privacy introduces randomness into client user data before sharing user data. Each data input d i Instead of having a centralized data source D = {d1,...,dn}, it belongs to a single client i. Given the transcript T that interacts with client i... i If the data element is to be replaced with null, then the opponent cannot replace T. i Distinguishable from the generated copy. Indistinguishability is parameterized by ε, which is generally considered a small constant. The following is the formal definition of local differential privacy.

[0011] Let n be the number of clients in the client-server system, let Γ be the set of all possible transcripts generated from any single client-server interaction, and let Ti be the transcript generated by the differential privacy algorithm A when interacting with client i. Let d i ∈S is a data element for client i. If for all subsets If the following equation holds, then Algorithm A is ε-local differential privacy:

[0012]

[0013] Here, d i =null refers to the case where the data element of client i is deleted.

[0014] The systems and methods disclosed in this paper include the ε-local differential privacy count median sketch (CMS) and the Hadamard ε-local differential privacy count median sketch (CMS), which are more advantageous than existing methods in terms of errors, communication load, space used, and client and server computation, while preserving user privacy, as shown in the table below.

[0015]

[0016] In the implementation, the client device can determine that the words typed on the client device are new words not included in the dictionary or asset catalog on the client device. New words can be associated with categories such as entertainment, health, and finance. A category is a collection of similar types of information. In the implementation, each category can be associated with one or more sessions, where each session can be associated with an application or product type. For example, the health category can be associated with a personal fitness or health app. New words generated by a health or fitness app can be categorized as health vocabulary. For example, the medical term “zika” can be categorized as health vocabulary. Similarly, a category can be associated with a financial app or financial tab in a browser session. New words generated by a financial app or financial tab can be categorized as financial. For example, the financial term “corporate inversion” can be categorized as financial. A differential privacy system on the client device can include a privacy budget for each category of new words. New words generated by the user can be stored in a transmission buffer in preparation for transmission to a new word learning server. Words can be stored in a transmission buffer organized by category. More words can be stored in the transmission buffer than the privacy budget available for transmission. To preserve privacy budget, the transmission buffer can be periodically sampled to obtain words for transmission to the new word learning server. If sufficient privacy budget is available for classification, the sampled words can be segmented into n-grams, where n-grams can be selected from multiple n-grams and processed using local differential privacy before being transmitted to the server. The n-gram can be selected to a specific length, such as 1 character (one-gram), 2 characters (bi-gram), etc. Throughout the disclosure, the term "n-gram" is used generally to refer to a sequence of characters with a specified process length. In this implementation, a length of 2 (bi-gram) is chosen to reduce search space complexity. Longer or shorter n-grams can be used. In this implementation, the n-gram length can be chosen based on the language of the words to be learned. In one implementation, the client device can use local differential privacy to introduce randomness into the client data before sharing data with the server that will learn new words. In this implementation, the server can test differential privacy data received from multiple clients to determine whether the amount of randomization in the differential privacy data is sufficient to maintain the differential privacy of the client data.

[0017] In the implementation scheme, a non-transitory computer-readable medium may store executable instructions that, when executed by a processing system, can perform any of the functions described above.

[0018] In yet another implementation, a processing system coupled to a memory programmed with executable instructions can perform any of the above functions when those instructions are executed.

[0019] Some implementations described herein include one or more application programming interfaces (APIs) in an environment, where calling program code interacts with other program code invoked through one or more interfaces. Various function calls, messages, or other types of calls may also include various parameters, which can be transmitted via the API between the calling program and the called code. Furthermore, the API may provide the calling program code with the ability to use data types or categories defined in the API and implemented in the called program code.

[0020] Other features and advantages will become apparent from the accompanying drawings and from the detailed description.

[0021] This invention discloses that the use of personal information data collected from a large number of users in the present invention's technology can be beneficial to all or many users. For example, words that are incorporated into popular vocabulary can be identified and included in a dictionary on a device. Therefore, the use of such personal information data enables planned control over the delivered content. Furthermore, this disclosure also anticipates other uses of personal information data that benefit users.

[0022] This disclosure also envisions that entities responsible for the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and practices that are recognized as meeting or exceeding industry or governmental requirements for maintaining the privacy and security of personal information data. For example, personal information from users should be collected for legitimate and reasonable purposes of the entity and not shared or sold outside of these legitimate uses. Furthermore, such collection should only be conducted with the user's informed consent. Additionally, such entities should take any necessary steps to safeguard and protect access to such personal information data and ensure that others with access to such personal information data comply with their privacy policies and procedures. Furthermore, such entities may subject themselves to third-party assessments to demonstrate their compliance with widely accepted privacy policies and practices.

[0023] Regardless of the foregoing, this disclosure also contemplates implementation schemes for users to selectively block the use or access to personal information data. That is, this disclosure contemplates providing hardware and / or software components to prevent or block access to such personal information data. For example, with respect to advertising delivery services, the technology of this invention can be configured to allow users to choose to "join" or "opt out" of the collection of personal information data during service registration. As another example, users can choose not to provide location information for a targeted content delivery service. Yet another example is that users can choose not to provide precise location information but allow the transmission of location area information. Attached Figure Description

[0024] The embodiments of the present invention are described by way of example, and are not limited to the illustrations in the various figures, in which similar reference numerals refer to similar elements.

[0025] Figure 1 A block diagram illustrates an overview of a system environment for learning new words used by clients while preserving client privacy, based on some implementation schemes.

[0026] Figure 2 A detailed view of a system environment for learning new words used by clients while preserving client privacy is shown in block diagram form, according to some implementation schemes.

[0027] Figure 3A and 3B A client-side processing method for a server to learn new words from crowdsourced data while preserving client privacy is illustrated in block diagram form, according to some implementation schemes.

[0028] Figure 4 A method is shown, according to some implementations, for a client device to decompose new words into differentially private n-grams in preparation for transmitting the differentially private n-grams to a new terminology learning server while preserving client privacy.

[0029] Figure 5 This paper demonstrates a method for applying differential privacy algorithms to n-grams of new words by a client according to some implementation schemes.

[0030] Figure 6 This paper illustrates a method, according to some implementation schemes, for a server to accumulate the frequency of receiving differential privacy terms and n-grams from crowdsourced data while preserving client privacy.

[0031] Figure 7 This paper illustrates a method, based on some implementations, for a server to learn new words while preserving client privacy using the cumulative frequencies of differentially private words and n-grams received from crowdsourced data.

[0032] Figure 8 Server privacy bit testing according to some implementation schemes is shown to ensure sufficient randomization of received data from crowdsourcing clients.

[0033] Figure 9 An exemplary embodiment of a software stack that can be used in some embodiments of the present invention is shown.

[0034] Figure 10 A block diagram of one implementation scheme for a computing system. Detailed Implementation

[0035] The accompanying drawings, in which similar reference numerals denote similar elements, are referenced in the following detailed description of the embodiments, and specific embodiments that can be practiced are shown by way of example. These embodiments are described in sufficient detail to allow those skilled in the art to practice the invention, and it should be understood that other embodiments can be used, and logical, mechanical, electrical, functional, and other modifications can be made without departing from the scope of this disclosure. Therefore, the following detailed description should not be construed as limiting, and the scope of the invention is defined only by the appended claims.

[0036] Figure 1 A block diagram illustrates an overview of a system environment 100 for learning new words used by clients while preserving user privacy, according to some implementation schemes.

[0037] Each client device 110 associated with a user in a large group of users (crowdsourcing) can be coupled via network 120 to one or more new terminology learning servers 130 (“Terminology Learning Server 130”). Each client device 110 can segment a new word into an n-gram and send a differential privacy sketch of the word and the n-gram of the word to the terminology learning server. The sketch of the word is a computationally encoded representation of the word. The purpose of the sketch is to transmit the encoded representation of the word (sketching) rather than the plaintext of the word to the server, so that the server cannot directly learn a word transmitted by only one client. In a crowdsourcing client / server environment, a local differential privacy system generates the encoded representation, thereby introducing randomness into the client data (words) before the client shares the words with the server. The server can learn the word from the aggregation of crowdsourcing data from all clients, but cannot learn words provided by any particular client. The differential privacy sketches received from the large group of client devices 110 collectively comprise the crowdsourcing data, from which the terminology learning server 130 can learn new words used by the large group of client devices 110 while maintaining the privacy of each client device 110. Client-side (local) differential privacy implemented in a crowdsourced data environment ensures that the terminology learning server 130 learns new words from all client devices 110 without revealing whether any particular client device 110 uses the new words. Client devices 110 can include any type of computing device, such as desktop computers, tablets, smartphones, set-top boxes, or... Watch TV and other computing devices 110, see below for reference. Figure 10 As stated above.

[0038] Network 120 can be any type of network, such as Ethernet, WiFi, Token Ring, FireWire, USB, Fibre Channel, or other network types.

[0039] The terminology learning server 130 may include one or more hardware processors, memory, storage devices such as one or more hard disks, solid-state storage devices, CD-ROM storage, DVD-ROM storage, and other storage devices. Exemplary components of the terminology learning server 130 are referenced below. Figure 10 As stated above.

[0040] Figure 2 A detailed view of a system environment 100 for learning new words used by clients while preserving user privacy is shown in block diagram form, according to some implementation schemes.

[0041] The internal components of the client device 110 may include multiple storage devices 205-222, a differential privacy engine (DPE) 228, which may include a differential privacy daemon 225 and a differential protection framework or application programming interface (API) 227, and multiple applications 230, such as App 1, App 2, and App 3. See below for reference. Figure 9 The API is described in detail.

[0042] Storage devices 205-222 may include a blacklist 205, a terminology learning buffer 215, an asset catalog 220, and a dedicated dictionary 222. The blacklist 205 can be used to determine words that will not be sent to the terminology learning server 130. Users may prefer to blacklist certain words for a high level of privacy, so that regardless of how good the privacy guarantees provided by the terminology learning server 130 are, users do not want to transmit words to the terminology learning server 130. These words may include proper names, such as family members or surnames, proprietary technology words, and other words that users can actively choose to use the blacklist 205 to maintain privacy.

[0043] Blacklist storage 205 can be used to store words that have previously been transmitted by client device 110 to terminology learning server 130, but client device 110 has not yet received an updated asset catalog 280 from the new terminology learning server 130 to replace client device asset catalog 220. In an implementation, differential privacy engine 228 can check blacklist storage 205 (e.g., generate differential privacy n-grams) before processing words. In an implementation, differential privacy engine (DPE) 228 of client device 110 sends words only once to terminology learning server 130. To preserve the privacy budget of client device 110, words that have already been added to the transmitted word storage 210 cannot be resent to terminology learning server 130. Once the client receives the updated asset catalog 220, words that appear in blacklist storage 205 and are now included in the updated asset catalog 220 can be removed from blacklist storage 205.

[0044] The privacy budget is the amount that ensures personal privacy is not compromised after repeated donations to the terminology learning server 130. The privacy budget E quantifies the amount of information leaked by the client device 110 to the server by providing differential privacy information. Each time differential privacy information, such as a new word, is submitted to the server, a portion ε of the client device 110's privacy budget E is consumed. If the client device 110 submits k pieces of information to the server through a privacy channel, then ε ≤ E / k to ensure that the overall privacy budget E is not violated. A separate privacy budget is allocated for each information category. Each time a word is transmitted to the terminology learning server 130, a certain amount of the privacy budget used for that word category is deducted or reduced. For example, in the keyboard usage category, if the client device sends the words "zika" and "ebola" to the terminology learning server 130, the client device's keyboard category budget will have a portion of the privacy budget E used for keyboard category deducted for each transmitted word.

[0045] When data used for classification is cleared from the terminology learning server 130, a privacy budget for said classification can be replenished or increased on the client device 110. Alternatively, the privacy budget for said classification can be replenished periodically on the client device 110. In an embodiment, the replenishment of the privacy budget for classification by the client device 110 can be synchronized with the clearing of client device data from one or more client devices on the terminology learning server 130, or the clearing of all client device data on the terminology learning server 130. In an embodiment, the replenishment of the client device privacy budget for word classification can be asynchronous with the clearing of client device data from multiple client devices 110 by the terminology learning server 130.

[0046] The terminology learning buffer 215 may include storage for storing candidate words for transmission to the terminology learning server 130. Users can generate more new words than can be sent within a privacy budget for word classification. Therefore, the DPE 228 can store candidate words in the terminology learning buffer 215 and then later sample the buffer to determine random candidate words to send to the terminology learning server 130. The terminology learning buffer 215 may also store words that have been sampled from the candidate words and selected for transmission to the terminology learning server 130. In this implementation, words are stored in the terminology learning buffer 215 by classification. Each classification can have a privacy budget.

[0047] Client device 110 may also include a dedicated dictionary 222 that stores words that the user of client device 110 may consider familiar or frequently used, i.e., words known to a particular client device 110. In an implementation, the user can specify whether words in the dedicated dictionary 222 are qualified or unqualified for transmission to the terminology learning server 130. The differential privacy engine 228 can receive words from application 230 and access the dedicated dictionary 222 to determine whether the word is qualified to be sent to the terminology learning server 130.

[0048] The terminology learning server 130 may include a module 250 for receiving data, a module for classifying the received data 255 according to a classification system, and a task for learning new words 260 from the received de-identified sketch data. The terminology learning server 130 may also include one or more memories, including a tuple / position frequency memory 270, an asset catalog 275, and an updated asset catalog 280. A module for updating clients 265 may publish asset catalog updates 280 to one or more client devices 110.

[0049] The receiving module 250 can asynchronously receive n-gram sketches (“crowdsourced data”) of new words from a large number of client devices 110. The receiving module 250 can remove any potential identifiers from the received sketch data, such as IP addresses, metadata, session identifiers, or other data that could identify the specific client device 110 that sent the sketch data.

[0050] The classification receiving data module 255 can extract classification data from the received sketches and group the received sketch data by classification. For example, the classification receiving data module 255 can receive sketches of new words and group these sketches according to the keyboard layout.

[0051] The new terminology learning task 260 can periodically process and classify de-identified sketch data received from a large number of client devices 110. The new terminology learning task 260 may include operations such as accumulating the frequency of received n-grams, generating permutations of n-grams, refining the permutations of n-grams, and identifying candidate new words from the permutations of n-grams. The new terminology learning task 260 can also update the asset catalog 275 to generate an asset catalog update with an update frequency for known words.

[0052] Figure 3A and 3B A client-side processing method 300 for a server to learn new words from crowdsourced data while preserving client privacy is illustrated in block diagram form, according to some implementation schemes.

[0053] In operation 305, the Differential Privacy Engine (DPE) 228 can receive new words from application 230. Application 230 can identify new words by comparing them with a dictionary included on client device 110. If the word is not included in the dictionary, application 230 can determine that the new word will be sent to DPE 228. The application can be an email application, a messaging application, a word processing application, a web browser, a client device browser, an online store, or any other application. Application 230 can determine the category (class) of the word. The category can be a language, such as English or Chinese. In an implementation, the category can be shared by multiple applications 230. In an implementation, the category can be a health, financial, legal terminology, or other use case category. As an example, DPE 228 can receive the word “zika” from messaging application 230 and determine that the word is associated with the keyboard usage category. As another example, DPE 228 can receive steps taken by a user over a period of time from a fitness application and determine that the number of steps is associated with the health category. Each category of words has its own privacy budget.

[0054] In operation 310, DPE 228 can access asset catalog 220 to determine whether terminology learning server 130 already knows the words received in operation 305, as evidenced by the presence of the words in asset catalog 220 or dedicated dictionary 222. If the words are in asset catalog 220 or dedicated dictionary 222, then method 300 ends. Otherwise, method 300 continues at operation 315.

[0055] In operation 315, application 230 or DPE 228 can determine whether the word is stored in blacklist memory 205. If the word is stored in blacklist memory 205, method 300 ends. Otherwise, method 300 restarts at operation 320.

[0056] In operation 320, DPE 228 can determine whether the term has been previously processed by DPE 228. Previously processed terms may include terms that have been previously transmitted from client device 110 to terminology learning server 130 but have not yet been found in the updated asset catalog 220 on client device 110. Previously processed terms may also be terms stored in learning buffer 215 that have not yet been transmitted to terminology learning server 130 but have been processed by DPE 228 on client device 110. If the term has been previously processed, method 300 ends. Otherwise, method 300 restarts at operation 325.

[0057] In operation 335, the words may be stored in a sample buffer or queue in the learning buffer 215. After operation 335, method 300 restarts at operation 355, as shown below. Figure 3B As stated above.

[0058] Words can be stored in learning buffer 215, allowing a batch of words to be collected and sent to term learning server 130 at time intervals. Each time a word is sent, a portion of the privacy budget for the category is deducted. To preserve the privacy budget for each category of words, terms can be stored in learning buffer 215, and then, after a period of time, words are selected from the categories in learning buffer 215 for processing. In one implementation, words in the buffer are processed in a queue order. In another implementation, words are randomly selected from the buffer according to a policy. This process slows down the sending of new words to term learning server 130 and extends the lifespan of the privacy budget. In one implementation, DPE 228 can contain logic to determine when the privacy budget for a category is exhausted. DPE 228 can then monitor the elapsed time before replenishing the privacy budget. The time interval between client processing intervals can be expanded or contracted based on the amount of privacy budget available at any given time. Before selecting words, it can be determined whether there is a privacy budget available to send words to new term learning server 130. If there is no privacy budget available for word classification, words cannot be processed.

[0059] exist Figure 3B In operation 355, it can be determined whether the update interval has expired. If not, the update interval can be periodically rechecked in operation 355 until it expires. The update interval can be used to measure the information donation from client device 110 to new terminology frequency server 130 to preserve a privacy budget.

[0060] If the update interval has expired in operation 355, then method 300 restarts at operation 360.

[0061] In operation 360, words can be selected from the sample buffer of the learning buffer 215. In one implementation, the sample buffer can hold multiple words, optionally organized by category, so that words can be randomly selected from the sample buffer for processing in preparation for transmission to the terminology learning server 130. In another implementation, words can be selected from the sample buffer in queue order. In yet another implementation, words can be selected from the sample buffer in random order. In yet another implementation, word selection from the sample buffer can be performed according to a strategy. The strategy can be determined based on the application or the classification of the words.

[0062] In operation 400, the selected words are processed for transmission to the terminology learning server 130. See below for reference. Figure 4 Operation 400 is described in detail.

[0063] In operation 365, the processed words can be stored in the buffer of the learning buffer 215 for transmission to the new term learning server 130.

[0064] In operation 370, it can be determined whether there are more words in the sample buffer to be considered for processing and transmission to the terminology learning server 130. If so, method 300 restarts at operation 360; otherwise, method 300 restarts at operation 375.

[0065] In operation 375, the output buffer of the processed words can be transmitted to the terminology learning server 130.

[0066] In operation 380, the client device may optionally receive an updated asset catalog from the terminology learning server. The updated asset catalog 220 may have one or more new terms added by the terminology learning server 130 in response to crowdsourced data received by the terminology learning server 130.

[0067] In this implementation, the words processed and transmitted to the terminology learning server 130 in operation 375 can be stored in the blacklist storage 205. In this implementation, words are initially selected for use in... Figure 3A The application 230, which processes the operation 305, can determine whether the word should be added to the blacklist memory 205.

[0068] Figure 4 A method 400 is shown in which a client device decomposes a new word into an n-gram in preparation for transmitting one of the selected n-grams to a new term learning server in a differential privacy manner, while maintaining client privacy, according to some implementation schemes.

[0069] In operation 405, the new word can be segmented into n-grams. In one implementation, the length of an n-gram can be a single character (“one-gram”). A single n-gram length is suitable for languages ​​such as Chinese, where a single symbol can represent one or more words. In another implementation, the length of an n-gram can be two characters (“bi-gram”). In another implementation, the length of an n-gram can be three or four characters. Each n-gram has a position within a word. For example, if the new word is “bazinga” and the n-gram length is 2, then the first n-gram will contain “ba”, the second n-gram will contain “zi”, the third n-gram will contain “ng”, and the fourth n-gram will contain “a”. <null>".

[0070] In operation 410, numbers can be generated that are hashes of the new word and associated with the new word and each of its n-grams ("puzzle pieces"). In an embodiment, the hash may include the SHA256 hash algorithm or other hash algorithms. The terminology learning server 130 can use these numbers as puzzle pieces to combine the n-grams to identify the new word at the new terminology learning server 130.

[0071] In Operation 500, DPE 228 can apply the differential privacy algorithm to new words and the selected n-grams of the new words. See below for reference. Figure 5 The operation 500 is described in detail.

[0072] In operation 415, DPE 228 can transmit differential privacy words and their selected differential privacy n-grams along with the selected n-gram location data and the class information of the new words to the terminology learning server 130.

[0073] In operation 420, DPE 228 can deduct the privacy budget used by the client device for classifying new words transmitted to the terminology learning server 130. For example, after DPE 228 transmits differential privacy data to the terminology learning server 130, the privacy budget used for classifying new terms can be reduced or adjusted to reflect the transmission.

[0074] In operation 425, DPE 228 can periodically replenish or increase the privacy budget used for classification on client device 110. In the implementation, replenishing or increasing the privacy budget for classification is asynchronous to the transmission of new terminology learning information in operation 415.

[0075] Figure 5 A client method 500 is shown, which, according to some implementation, applies a differential privacy algorithm to a word and an n-gram of a new word to generate a local differential private sketch of the word and an n-gram of the new word.

[0076] The sketch provides a concise data structure to maintain the element field S = {s1,...,s} within the data flow D = {d1,...}. p The frequency of}. Let H = {h1,...,hk} be a set of k-pairwise independent hash functions such that each h∈H is h: [m]. The client-server differential privacy algorithm can reach consensus on a common set of k pairwise independent hash functions H = {h1,...,hk}, which map to [0..m). In the implementation, m can be... Where n is the number of client data samples collected by the server. The value of m can be the nearest power of 2 to... Value. In one implementation, k can be approximately 8 × ln(p), where p is approximately equal to |S|; the count of data items in S used for term classification.

[0077] Client-side local differential privacy sketches can be of one of two types: (1) ε-local differential privacy sketches, A CLIENT Or (2) Hadamard ε-local differential privacy sketch, A CLIENT-Hadamard .

[0078] In operation 502, DPE 228 can receive a new word and an n-gram as an ordered set. In the example, the candidate new word is "bazinga," a word popularized by a television program. In this example, the n-gram has a length of 2 (bi-gram), such that the ordered set of the n-grams for the word "bazinga" is: "ba", "zi", "ng", and "a". <null>The 'null' indicates the end of the word 'bazinga'. 'Bazinga' has been identified as a candidate new word, as shown above. Figure 4 As shown. Bazinga is not in blacklist 205, bazinga is not in learning buffer 215, bazinga is not in asset catalog 220, and bazinga cannot be found in dedicated dictionary 222.

[0079] In operation 503, DPE 228 can convert a word into a numerical value by obtaining the hash of the string representation of the word, d = H. CONV (Word), for example, d = SHA256 (word). This word uses H CONV The encoding is a number d in the range 0..m, where m is the square root of the estimated size |S| of the vocabulary S for that category. In the implementation, d = H CONV (Words) modulo m, such that d∈[0,m). The size of the vocabulary used for classification may vary depending on the classification.

[0080] Operations 505 and 510 on the client-side local differential privacy sketch algorithm A CLIENT and A CLIENT-Hadamar There are slight differences between d. First, the description will be used for A. CLIENT Operations 505 and 510.

[0081] Client-side ε-local differential privacy algorithm A CLIENT The input may include: (1) a privacy parameter, ε; (2) a hash range, m; and (3) k pairwise independent hash functions H = {h1,...,hk}, where each h i : [m]; and (4) data elements: d∈S.

[0082] For algorithm A CLIENT In operation 505, the noise constant can be calculated. And the vector v can be initialized: v←-c ε m The constant c ε To maintain unbiased privacy with zero mean, noise is increased.

[0083] In operation 510, A can be used. CLIENT Use the following operations to generate a sketch of words (or n-grams).

[0084] 1. From a set of hash functions H = (h1,...,h) k Randomly and uniformly sample independent and identically distributed (i.e., i.i.d) hash functions h and set the vector v[h(d)]←c ε .

[0085] 2. For vectors ∈ {-1, +1} m Sampling is performed, for each b j Independent and independently distributed, with a probability of +1.

[0086]

[0087] 3.

[0088] Return vector v priv And the selected hash function h.

[0089] Conversely, if the client uses A CLIENT-Hadamard The algorithm generates a Hadamard version of the ε-local differential privacy sketch, then A CLIENT-Hadamard The inputs can be: (1) a privacy parameter, ε; (2) a hash range m; and (3) k pairwise independent hash functions H = {h1,...,hk}, where each h j : [m]; and (4) data elements: d∈S.

[0090] The following operations 505 and 510 form algorithm A. CLIENT-Hadamard As part of the operation, the algorithm generates a Hadamard version of the ε-local differential privacy sketch.

[0091] In operation 505, constants can be calculated. And the vector v can be initialized: v←[0] m .

[0092] In operation 510, algorithm A CLIENT-Hadamard This also includes the following operations:

[0093] 1. Randomly and uniformly sample independent and identically distributed hash functions h from a set of hash functions H = {h1,...,hk} and set the vector v[h(d)]←1.

[0094] 2. Generate vectors Where H m It is a Hadamard matrix of dimension m.

[0095] 3. Sample the index j that is independent and identically distributed in [m] and bit b∈{-1,1}, such that b is "1", with probability .

[0096] 4. Return to c ε ×b×v Hadamard [j], the selected hash function h, and the selected index j.

[0097] In operation 520, from the n-gram {ba,zi,ng,a} that constitute the word <null>The new word "bazinga" is randomly selected from the set of n-grams. For example, the n-gram "ba" can be randomly selected from the set of n-grams for the new word "bazinga". In the implementation scheme, the set of n-grams can be an ordered set.

[0098] In operation 521, DPE 228 can convert a randomly selected n-gram into a numerical value by obtaining a hash of the string representation of the n-gram preceding the puzzle piece (PP), d_n-gram = H CONV (PP, n-gram), for example, d_n-gram = SHA256(PP, n-gram). n-grams and puzzle pieces can be used with H... CONV Encoded as numbers in the range 0...m. In the implementation scheme, d_n-gram = H CONV (PP,n-gram) modulo m, such that d_n-gram∈[0,m).

[0099] In operation 522, DPE 228 can initialize the sketch of d_n-gram with noise constants, similar to operation 505 above.

[0100] In operation 525, DPE 228 can generate a d_n-gram differential privacy sketch, as described in operation 510 above.

[0101] Figure 6 A method 600 is shown, according to some implementation schemes, for a server to accumulate the frequency of receiving differential privacy word sketches and n-grams from crowdsourced data while preserving client privacy.

[0102] In operation 602, the terminology learning server 130 de-identifies the word and n-gram sketch data received from the client 110. De-identification may include removing Internet Protocol (IP) addresses from the received data, removing identifiers, or any metadata that could be used to identify a specific client with reasonable specificity.

[0103] In operation 605, the terminology learning server 130 selects a batch of differential privacy words and n-grams for a large number of clients from the received de-identified client data 255.

[0104] In operation 610, the terminology learning server 130 can generate or retrieve sketches for each known n-gram. The n-gram sketches can be used as indexes to match received n-gram sketches with known n-gram sketches, thereby accumulating the frequency of an n-gram at a given position. In an implementation, frequently occurring n-grams may have pre-generated sketches stored in a tuple / position frequency memory 270. For example, at a first position, the n-gram "th" is a common n-gram because many words begin with it. In an implementation, sketches of each n-gram are stored in a tuple / position frequency memory 270 for all n-grams, such as "aa", "ab", "ac", etc.

[0105] In operation 615, the new vocabulary learning task 260 can select all n-grams from the received data 255, the n-grams being located at the first position of the term from which the n-grams are extracted, for example, the first position bi-gram in the word "term" is "te".

[0106] In operation 620, the terminology learning data can be reset. The terminology learning data may include a histogram of n-gram frequencies at each n-gram position, a histogram of new term frequencies, an n-gram permutation data structure, and other data structures necessary for implementing the word learning logic here.

[0107] In operation 625, for each selected n-gram sketch at a location, a matching sketch is found and incremented by the n-gram histogram for that location. The specific operation for updating the n-gram histogram at a given location may depend on whether the client is using the ε-local differential privacy sketch algorithm A. CLIENT Or, Hadamard ε-Local Differential Privacy Sketch Algorithm A CLIENT-Hadamard Each operation is described below.

[0108] If the client uses A CLIENT The algorithm generates the selected n-gram sketch, and then in operation 625, the selected sketch data vector v is... priv Add to matching sketch data W k,m ,as follows:

[0109] For the corresponding to the generation of v priv W of the selected hash function h Okay, W h Set to W h +v priv .

[0110] If the client uses A CLIENT-Hadamard The algorithm generates the selected sketch, so in operation 625, the selected sketch data vector v is... Hadamard Add to matching sketch data W k,m ,as follows:

[0111] 1. For the corresponding to the generation of v Hadamard W of the selected hash function h Okay, W h Set to W h +v Hadamard .

[0112] 2. Before determining the minimum or maximum count of sketch W, convert the rows from the Hadamard basis to the standard basis:

[0113] Where H m It is a Hadamard matrix of dimension m.

[0114] In operation 632, the n-gram frequency histogram at this location can be sorted from highest to lowest n-gram frequency. The noise floor frequency value can be determined. For n-grams in the ordered histogram at locations with frequencies below the noise floor, they can be discarded and excluded for further processing. In the implementation scheme, if there are "n" samples of n-gram data in the histogram, then... Where ε is the differential privacy constant, and c is a constant.

[0115] In operation 635, it can be determined whether there are additional locations of client-side differential privacy terms and n-grams for processing. If so, method 600 continues at operation 620. Otherwise, method 600 continues at operation 700.

[0116] In Operation 700, the new terminology learning assignment 260 can use accumulated differential privacy n-gram sketches and word sketches to learn new words in the selected word category. See below for reference. Figure 7 Operation 700 is described in detail.

[0117] In operation 645, the new terminology learning task 260 may optionally purge some or all of the received differential privacy n-gram and word sketch data to help maintain the differential privacy of the user of the client device 110.

[0118] Figure 7 A method 700 is illustrated, according to some implementations, whereby a server uses differentially private word sketches and the cumulative frequency of n-grams received from crowdsourced data to learn new words while preserving client privacy. Each n-gram sketch at a location can be grouped into groups with the same puzzle piece (PP) value. A puzzle piece represents an n-gram sketch at a certain location, where the sketch, based on n-gram sketches obtained from the same words with the same puzzle piece value, belongs to an n-gram sketch at another location. Figure 6 The histogram of the frequencies of the n-gram sketches at the positions generated in operation 632 can be divided into groups of jigsaw puzzle pieces of the n-gram sketches. The histogram can be grouped into ordered pairs of (n-gram sketches, jigsaw puzzle pieces), each with a frequency.

[0119] In operation 702, the new terminology learning server 130 can generate an n-gram sketch as H for each PP and each possible n-gram. CONV (PP, n-gram). Any specific generated H CONV (PP, n-gram) are all the same, just like H CONV (PP,n-gram) is generated on client device 110. Server H CONV The (PP,n-gram) value can be used to generate H CONV (PP,n-gram) puzzle pieces are stored associatively, making H CONV (PP,n-gram) values ​​can be easily grouped by the new terminology learning server 130 using puzzle pieces.

[0120] In operation 703, the new terminology learning server 130 can be used. Figure 6 Operation 632 uses the histogram to determine each H from each position in the histogram. CONV The frequency of crowdsourced client data reception for (PP, n-gram). The new terminology learning server 130 can group HCONV(PP, n-gram) at each location using puzzle pieces (PP) and n-gram sketches, making it possible to determine the frequency of a specific n-gram sketch with a specific puzzle piece.

[0121] In operation 705, the number "x" of the n-gram puzzle piece groups with the highest frequency at each position can be determined, representing the number of n-gram puzzle piece groups used to generate candidate words at each position. The value of x can depend on the maximum number of candidate words that the term learning server 130 is configured to process. For example, if the server is configured to process up to ten million words containing up to 7 bigrams (and therefore the maximum word length is 14 symbols), then the value of x can be determined as: at each position The x-value can vary depending on many factors, including the language being processed by the candidate words.

[0122] In operation 710, the group of "x" puzzle pieces with the highest frequency of n-grams can be selected to generate candidate words.

[0123] In operation 715, an ordered combination of n-grams can be generated from the selected n-gram puzzle pieces at each position to generate candidate new words. For all positions processed in the server configuration, each "x" n-gram that selects the same puzzle piece at the first position can be arranged with each "x" n-gram that has the same puzzle piece at the second position, and so on. A puzzle piece represents an n-gram at a certain position, where the n-gram is based on an n-gram obtained from the same word with the same puzzle piece value that belongs to the n-gram at another position.

[0124] In operation 720, candidate words with frequencies lower than the noise floor can be discarded. In the implementation, the noise floor is calculated similarly to the noise floor of an n-gram, scaled by the maximum number of n-grams configured for each candidate word's maximum value.

[0125] The search space for candidate words can be selectively or additionally refined using various techniques. In implementation, Natural Language Processing (NLP) techniques can be applied to refine illogical or non-existent combinations. For example, the n-gram "ee" will not be followed by any of the following n-grams: "oo", "ii", "uu", "zz", etc. Such permutations of n-gram sequences can be refined from the set of combinations.

[0126] In the implementation, an A* search can be performed, where the shortest combinations are first traversed to determine candidate words. NLP can be used to find infeasible combinations, which can then be refined from the candidate combination set.

[0127] The methods described above for refining the search space of candidate words can be used individually or in combination to refine the search space before using n-grams to learn new words.

[0128] In operation 725, candidate words can be selected from candidate words.

[0129] In operation 730, it can be determined whether the candidate new words are in the existing asset catalog or word dictionary.

[0130] In theory, newly discovered candidate words should not be found in the asset catalog or dictionary on the new terminology learning server 130. Client devices should have an up-to-date asset catalog containing the latest known words, and the client devices use the asset catalog to help eliminate known words in client and server processing. However, it is possible that the client has not upgraded to the latest asset catalog, and therefore the client may have sent words that are new to the client but known to the server.

[0131] If a candidate word is identified in an existing asset catalog or dictionary during operation 730, the frequency of that word may be optionally increased in the implementation scheme.

[0132] If it is determined in operation 730 that the candidate word is a new word, then the new word can be added to the updated asset catalog 280.

[0133] In operation 745, it can be determined whether the permutation tree traversal is complete. If not, method 700 continues at operation 725; otherwise, method 700 continues at operation 750.

[0134] In operation 750, the terminology learning server 130 may optionally transfer the updated asset catalog to one or more client devices.

[0135] Figure 8 Server privacy bit test 800 according to some implementation schemes is shown to ensure sufficient randomization of received data from crowdsourcing clients. Maintaining the privacy of client device users in a differential privacy environment depends in part on randomization in the algorithms used to achieve differential privacy. If the randomization is not random enough, differential privacy may not be adequately maintained. The server privacy bit test examines the randomization of differential private sketch data received from client devices.

[0136] In operation 805, a differential privacy sketch can be selected for each of the "n" clients represented in the received and de-identified data 250 on the new terminology learning server 130. Bits are generated from each client's sketch by XORing a 1-bit vector of each row of the client's sketch.

[0137] In operation 810, the loop iterator variable i is set to 1.

[0138] In operation 815, each bit b1..b of row i in sketch i k ,calculate:

[0139]

[0140] In operation 820, add the client counter variable i.

[0141] In operation 825, it can be determined whether there are more client sketches to be processed. If so, method 800 continues at operation 815. Otherwise, method 800 continues at operation 830.

[0142] In operation 830, all B are calculated using the above sketch for each client i of n clients. i Let i = 1..n to calculate the sum of the digits. The sum A is calculated as follows:

[0143]

[0144] In operation 835, the randomization tolerance is calculated, and it can be determined whether the client's randomization is within the tolerance. In the implementation scheme, the randomization tolerance can be calculated as:

[0145] if If the randomization tolerance fails, then the randomization tolerance fails; otherwise, the randomization tolerance succeeds.

[0146] In the implementation plan, the randomization tolerance can be calculated as follows:

[0147]

[0148] if If the randomization tolerance is successful, then the randomization tolerance is successful; otherwise, the randomization tolerance fails.

[0149] In operation 835, if the randomization tolerance is successful, then in operation 840, a message can be generated to the user interface of the new terminology learning server 130 indicating that the randomization is within the tolerance range. Otherwise, in operation 845, a message can be generated to the user interface of the new terminology learning server 130 indicating that the randomization is not within the tolerance range and that measures need to be taken to further ensure the differential privacy of client devices. These measures may include modifying the randomization algorithm, wiping more client device data, and / or wiping client device data more frequently.

[0150] exist Figure 9 In the software stack ("software stack"), as an exemplary implementation, the application can use several service APIs to call service 1 or 2, and use several OS APIs to call the operating system (OS). Services 1 and 2 can use several OS APIs to call the operating system.

[0151] Please note that Service 2 has two APIs, one of which (Service 2 API 1) receives calls from Application 1 and returns a value to it, and the other (Service 2 API 2) receives calls from Application 2 and returns a value to it. Service 1 (which may be, for example, a software library) calls OS API 1 and receives a return value from it. Service 2 (which may be, for example, a software library) calls both API 1 and OS API 2 and receives a return value from them. Application 2 calls API 2 and receives a return value from it.

[0152] Figure 10 A block diagram of one implementation scheme of computing system 1000. Figure 10 The computing systems shown are intended to represent a range of computing systems (wired or wireless), including, for example, desktop computer systems, laptop systems, tablet systems, mobile phones, including personal digital assistants (PDAs) supporting cellular PDA phones, set-top boxes, entertainment systems, or other consumer electronic devices. Alternative computing systems may include more, fewer, and / or different components. Figure 10 The computing system can be used to provide computing devices and / or server devices.

[0153] Computer system 1000 includes bus 1005 or other communication device for transmitting information, and processor 1010 coupled to bus 1005 for processing information.

[0154] Although the computing system 1000 is illustrated as having a single processor, it may include multiple processors and / or coprocessors 1010. The computing system 1000 may also include random access memory (RAM) or other dynamic storage device 1020 (referred to as main memory), coupled to the bus 1005, which can store information and instructions executable by the processor 1010. During instruction execution by the processor 1010, the main memory 1020 may also be used to store temporary variables or other intermediate information.

[0155] The computing system 1000 may also include read-only memory (ROM) and / or other static storage devices 1040 coupled to bus 1005 for storing static information and instructions for processor 1010. Data storage devices 1040 may be coupled to bus 1005 to store information and instructions. Data storage devices 1040 (such as flash memory, hard disks, or optical disks) and corresponding drives may be coupled to the computing system 1000.

[0156] The computing system 1000 can also be coupled to a display device 1050, such as a cathode ray tube (CRT) or liquid crystal display (LCD), via a bus 1005 to display information to the user. The computing system 1000 may also include a numeric-alphanumeric input device 1060, which includes numeric keys and other keys, and can be coupled to the bus 1005 to send information and command options to the processor 1010. Another user input device is a cursor control 1070, such as a touchpad, mouse, trackball, or cursor arrow keys, for transmitting directional information and command selections to the processor 1010 and controlling cursor movement on the display device 1050. The computing system 1000 can also receive user input from remote devices communicatively coupled to the computing system 1000 via one or more network interfaces 1080.

[0157] The computing system 1000 may also include one or more network interfaces 1080 to provide access to a network such as a local area network (LAN). The network interface 1080 may include, for example, a wireless network interface with an antenna 1085, which may represent one or more antennas. The computing system 1000 may include multiple wireless network interfaces, such as WiFi, The network interface 1080 may also include, for example, a wired network interface for communicating with remote devices via a network cable 1087, which may be, for example, an Ethernet cable, a coaxial cable, a fiber optic cable, a serial cable, or a parallel cable.

[0158] In the implementation, network interface 1080 may provide access to a local area network (LAN) for example, by conforming to IEEE 802.11b and / or IEEE 802.11g standards, and / or wireless network interface may provide access to a personal area network (PAN) for example, by conforming to Bluetooth standards. Other wireless network interfaces and / or protocols may also be supported. In addition to or apart from communication via wireless LAN standards, network interface 1080 may use, for example, Time Division Multiple Access (TDMA), Global System for Mobile Communications (GSM), Code Division Multiple Access (CDMA), and / or any other type of wireless communication protocol to provide wireless communication.

[0159] The invention has been described above in conjunction with specific embodiments thereof. However, it will be apparent that various modifications and alterations can be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings should be considered illustrative rather than restrictive.< / null> < / null> < / null>

Claims

1. A computer-implemented method performed on a term learning server, the method comprising: receiving, by the term learning server, a batch of differentially private sketches of n-grams, each n-gram being a sequence of characters forming a subset of a term of a plurality of terms unknown to the term learning server, the batch of differentially private sketches being received from one or more client devices; determining a randomization value based at least on the batch of differentially private sketches; determining a randomization tolerance based on a set of differentially private sketch data stored on the term learning server; and in response to determining that the randomization value is not within the randomization tolerance, generating a privacy randomization alert to the term learning server, wherein the privacy randomization alert indicates to the term learning server to perform one or more operations to maintain privacy of the differentially private sketch data stored on the term learning server.

2. The computer-implemented method of claim 1, further comprising: in response to the privacy randomization alert, modifying a randomization algorithm on the term learning server.

3. The computer-implemented method of claim 1, further comprising: in response to the privacy randomization alert, purging at least a portion of the differentially private sketch data received from the one or more client devices.

4. The computer-implemented method of claim 3, further comprising: periodically purging at least a portion of the differentially private sketch data received from the one or more client devices.

5. The computer-implemented method of claim 1, further comprising: generating a privacy randomization alert to a user interface of the term learning server.

6. The computer-implemented method of claim 1, wherein determining a randomization value based at least on the batch of differentially private sketches comprises: for each sketch in the batch of differentially private sketches, determining a row XOR value equal to an exclusive or of each bit in a row of the sketch, and determining a sketch XOR value based on a sum of each row XOR value of a sketch; and determining the randomization value based on an arithmetic mean of the sketch XOR values for the batch of differentially private sketches.

7. A non-transitory machine-readable medium storing instructions that cause one or more processors to perform operations comprising: receiving, by the term learning server, a batch of differentially private sketches of n-grams, each n-gram being a sequence of characters forming a subset of a term of a plurality of terms unknown to the term learning server, the batch of differentially private sketches being received from one or more client devices; determining a randomization value based at least on the batch of differentially private sketches; determining a randomization tolerance based on a set of differentially private sketch data stored on the term learning server; and in response to determining that the randomization value is not within the randomization tolerance, generating a privacy randomization alert to the term learning server, wherein the privacy randomization alert indicates to the term learning server to perform one or more operations to maintain privacy of the differentially private sketch data stored on the term learning server.

8. The non-transitory machine-readable medium of claim 7, the operations further comprising: in response to the privacy randomization alert, modifying a randomization algorithm on the term learning server.

9. The non-transitory machine-readable medium of claim 7, the operations further comprising: in response to the privacy randomization alert, purging at least a portion of the differentially private sketch data received from the one or more client devices.

10. The non-transitory machine-readable medium of claim 9, the operations further comprising: periodically purge at least a portion of the differential privacy sketch data received from the one or more client devices.

11. The non-transitory machine-readable medium of claim 7, the operations further comprising: generate a privacy randomization warning to a user interface of the term learning server.

12. The non-transitory machine-readable medium of claim 7, wherein determining a randomization value based at least on the batch of differential privacy sketches comprises: for each sketch in the batch of differential privacy sketches, determining a row XOR value equal to an exclusive OR of each bit in a row of the sketch, and determining a sketch XOR value based on a sum of each row XOR value of a sketch; and determining the randomization value based on an arithmetic mean of the sketch XOR values for the batch of differential privacy sketches.

13. A data processing system comprising: a memory storing instructions; one or more processors to execute the instructions stored in the memory, wherein the instructions cause the one or more processors to perform operations comprising: receiving, by a term learning server, a batch of differential privacy sketches of n-grams, each n-gram being a sequence of characters forming a subset of a term of a plurality of terms unknown to the term learning server, the batch of differential privacy sketches being received from one or more client devices; determining a randomization value based at least on the batch of differential privacy sketches; determining a randomization tolerance based on a set of differential privacy sketch data stored on the term learning server; and in response to determining that the randomization value is not within the randomization tolerance, generating a privacy randomization warning to the term learning server, wherein the privacy randomization warning indicates to the term learning server to perform one or more operations to maintain privacy of the differential privacy sketch data stored on the term learning server.

14. The data processing system of claim 13, the operations further comprising: in response to the privacy randomization warning, modifying a randomization algorithm on the term learning server.

15. The data processing system of claim 13, the operations further comprising: in response to the privacy randomization warning, purging at least a portion of the differential privacy sketch data received from the one or more client devices.

16. The data processing system of claim 15, the operations further comprising: periodically purge at least a portion of the differential privacy sketch data received from the one or more client devices.

17. The data processing system of claim 13, the operations further comprising: generate a privacy randomization warning to a user interface of the term learning server.

18. The data processing system of claim 13, wherein determining a randomization value based at least on the batch of differential privacy sketches comprises: for each sketch in the batch of differential privacy sketches, determining a row XOR value equal to an exclusive OR of each bit in a row of the sketch, and determining a sketch XOR value based on a sum of each row XOR value of a sketch; and determining the randomization value based on an arithmetic mean of the sketch XOR values for the batch of differential privacy sketches.

Citation Information

Patent Citations

  • Privacy protection method for mode information loss minimized sequence data

    CN101964034A

  • Enhanced spell checking utilizing a social network

    US20090254817A1