Method and apparatus for managing a natural language user profile of a user
Patent Information
- Application Number
- PCT/EP2025/055495
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-03-04
- Filing Date
- 2025-02-28
- Publication Date
- 2025-10-02
AI Technical Summary
Conventional user profiling methods leak sensitive information, lack explainability, and provide limited user control over their profiles, with dense embedding vectors failing to offer transparency and privacy.
A method and apparatus that allow users to view and edit their natural language user profiles through a graphical interface, granting control over data sharing and ensuring privacy by adding noise to user profiles before sharing, using machine-learning models to generate interpretable and customizable user profiles.
Enhances user privacy and transparency by allowing users to manage their profiles directly, providing interpretable and customizable user experiences while maintaining privacy through noise addition and machine-learning techniques.
Smart Images

Figure EP2025055495_02102025_PF_FP_ABST
Abstract
Description
[0001] METHOD AND APPARATUS FOR MANAGING A NATURAL LANGUAGE USER
[0002] PROFILE OF A USER
[0003] Field
[0004] The present disclosure relates to the management of natural language user profiles. In particular, the examples of the present disclosure relate to a method and an apparatus for managing a natural language user profile of a user.
[0005] Background
[0006] Content providers aim to connect end-users to relevant content. Based on the collected interaction history of the user (e.g., recent browser activity), a user profile is created or the user is assigned to a group of users (cohort) with similar characteristics. The user profile or cohort may, e.g., be described by demographic information such as age, gender, marital status, income and employment status. This information is then used to determine personalized content for a user.
[0007] In case of recommender systems, a representation for a user profile may be learned with a machine-learning model. The user profile is represented by a dense embedding vector with numerical values. A similar embedding vector may be learned as representation for a content item. Both user and item embedding vectors may be learned in such a way that user and item vectors will end up close to each other according to a predefined distance metric when the user interacted with the item in the past.
[0008] However, there are various problems with conventional user profiling. For example, cohorts might leak sensitive characteristics such as demographics, personality traits or even mental health. As a consequence, members of a specific cohort could be linked to a specific type of person. Furthermore, cohorts might reveal specific information about a user’s browsing history. Trackers may, e.g., be able to reverse-engineer the cohort-assignment algorithm to determine that any user who belongs to a specific cohort probably or visited specific sites. Another problem is that collected user information of a cohort is shared broadly without explicit consent from the users. Although a learned user profile representation with dense embedding vectors may provide adequate recommendation performance, it is another problem that the vectors lack explainability. It is particularly hard to understand which combination of values can be related to specific user preferences. Furthermore, an end user has very limited control over its learned representation. The user can only indirectly try to change the representation by changing the user’s future interaction behavior. Exposing the user profile representation as a dense vector to the end user is usually not done and it does not provide a user-friendly way to modify its preferences. It is also not clear how adjusting values of certain dimensions would affect represented user preferences.
[0009] Hence, there may be a demand for improved management of user profiles.
[0010] Summary
[0011] This demand is met by a method and an apparatus for managing a natural language user profile of a user, a non-transitory machine-readable medium and a program in accordance with the independent claims. Advantageous embodiments are defined by the dependent claims.
[0012] According to a first aspect, the present disclosure provides s method for managing a natural language user profile of a user. The method comprises receiving a request from a service to provide the service with the natural language user profile. Additionally, the method comprises causing output of a graphical user interface to the user. The graphical user interface shows the natural language user profile and graphical icons allowing the user to accept or deny provision of the natural language user profile to the service. The method further comprises providing the service with the natural language user profile if user data indicating a user input to accept the provision of the natural language user profile to the service is received.
[0013] According to a second aspect, the present disclosure provides an apparatus for managing a natural language user profile of a user. The apparatus comprises at least interface circuitry and processing circuitry configured to perform the method according to the first aspect.
[0014] According to a third aspect, the present disclosure provides a non-transitory machine- readable medium having stored thereon a program having a program code for performing the method according to the first aspect, when the program is executed on a processor or a programmable hardware.
[0015] According to a fourth aspect, the present disclosure provides a program having a program code for performing the method according to the first aspect, when the program is executed on a processor or a programmable hardware.
[0016] Brief description of the Figures
[0017] Some examples of apparatuses and / or methods will be described in the following by way of example only, and with reference to the accompanying figures, in which
[0018] Fig. 1 illustrates a flowchart of an example of a method for managing a natural language user profile of a user;
[0019] Fig. 2 illustrates a first exemplary data flow;
[0020] Fig. 3 illustrates a second exemplary data flow; and
[0021] Fig. 4 illustrates a third exemplary data flow.
[0022] Detailed Description
[0023] Some examples are now described in more detail with reference to the enclosed figures. However, other possible examples are not limited to the features of these embodiments described in detail. Other examples may include modifications of the features as well as equivalents and alternatives to the features. Furthermore, the terminology used herein to describe certain examples should not be restrictive of further possible examples.
[0024] Throughout the description of the figures same or similar reference numerals refer to same or similar elements and / or features, which may be identical or implemented in a modified form while providing the same or a similar function. The thickness of lines, layers and / or areas in the figures may also be exaggerated for clarification. When two elements A and B are combined using an “or”, this is to be understood as disclosing all possible combinations, i.e., only A, only B as well as A and B, unless expressly defined otherwise in the individual case. As an alternative wording for the same combinations, "at least one of A and B" or "A and / or B" may be used. This applies equivalently to combinations of more than two elements.
[0025] If a singular form, such as “a”, “an” and “the” is used and the use of only a single element is not defined as mandatory either explicitly or implicitly, further examples may also use several elements to implement the same function. If a function is described below as implemented using multiple elements, further examples may implement the same function using a single element or a single processing entity. It is further understood that the terms "include", "including", "comprise" and / or "comprising", when used, describe the presence of the specified features, integers, steps, operations, processes, elements, components and / or a group thereof, but do not exclude the presence or addition of one or more other features, integers, steps, operations, processes, elements, components and / or a group thereof.
[0026] Fig- 1 illustrates an exemplary (computer-implemented) method 100 for managing a natural language user profile of a user. The natural language user profile is a collection of information that describes a user and their preferences, characteristics, and behavior within one or more particular systems, services or platforms. For example, the natural language user profile may contain or indicate one or more of personal information (e.g., basic details such as the user's name, age, gender, location, and contact information), preferences (e.g., information on language, theme choices and other customizable settings that affect the user interface or experience), behavioral data (e.g., data related to the user's interactions within one or more particular systems, services or platforms, such as browsing history, search queries, and usage patterns) or an interaction history (e.g., a record of the user's past activities and interactions within one or more particular systems, services or platforms). The natural language user profile is a user profile represented (described, presented) in natural language, i.e., a human language, and not in a constructed, artificial and formal language used by a computer (program) or other machines. In other words, the natural language user profile is a user profile that can be (easily) understood by the user as it is presented in a human language naturally understandable by the user. The method 100 comprises receiving 102 a request from a service to provide the service with the natural language user profile. The service may be any service, online platform or application that offers one or more specific functionalities, tools, content or features to the user over the internet. For example, the service may enable the user to access, create, share or interact with information, media and / or other users within a virtual environment. The request may, e.g., be received in response to the user signing up or subscribing to the service. The request may be received from a computing device such as a server, a computing cloud or a data center hosting the service.
[0027] The method 100 further comprises causing 104 output of a Graphical User Interface (GUI) to the user. The GUI shows the natural language user profile and graphical icons allowing the user to accept or deny provision (transmission) of the natural language user profile to the service (e.g., accept or deny provision of the natural language user profile to a computing device such as a server, a computing cloud or a data center hosting the service). The output of the GUI to the user may be caused on any device with display functionality the user uses or has access to. For example, the output of the GUI may be caused on a mobile phone, a tablet computer, a laptop, a desktop computer or a TV-set used / accessible by the user. For causing 104 output of the GUI, the method 100 may, e.g., comprise transmitting control data to a target device which is to display the GUI. The control data is encoded with one or more control commands for controlling (instructing) the target device to output the GUI. The GUI allows the user to check the content the natural language user profile and to actively control the provision of the natural language user profile to the service.
[0028] In addition, the method 100 comprises providing 106 the service with the natural language user profile (e.g., only) if user data indicating (representing, encoded with) a user input to accept the provision of the natural language user profile to the service is received. The user data may be received from any device with input functionality the user uses or has access to. For example, the user data may be received from a mobile phone, a tablet computer, a laptop, a desktop computer or a TV-set used / accessible by the user. The user data indicate whether or not the user wishes to share the natural language user profile with the service. If the user wishes to share the natural language user profile with the service, the natural language user profile may, e.g., be provided (transmitted, sent) to a computing device such as a server, a computing cloud or a data center hosting the service or the computing device host- ing the service may be allowed to read the natural language user profile from a memory storage.
[0029] On the other hand, if user data indicating a user input indicating to deny the provision of the natural language user profile to the service is received, the method 100 may comprise denying 108 the request from the service. For denying 108 the request from the service, the method 100 may, e.g., comprise not responding to the request or providing (transmitting, sending) data indicating an explicit denial of the request to a computing device such as a server, a computing cloud or a data center hosting the service.
[0030] An exemplary data flow 200 according to the method 100 is illustrated in Fig. 2. The user Bob is signing up for a service A such as a social media platform or a media sharing platform. The service A is schematically illustrated by box 290 in Fig. 2. For example, the user Bob may use a frontend application 215 such as a browser or an application for accessing the service A.
[0031] Bob’s natural language user profile 210 is stored in Bob’s Personal Data Storage (PDS) 210. The PDS 210 is a storage that allows a user such as Bob to securely store and manage their digital data (e.g., personal files, documents, media, and other digital content). For example, the PDS 210 may be a cloud storage or a storage in a device used / accessible by the user. Bob may, e.g., access and manage the PDS 210 via the frontend application 215.
[0032] The service A sends a request to provide the service A with the natural language user profile 220. For example, the service A may send the request to an apparatus that performs the method 100. In general, an apparatus for managing a natural language user profile of a user in accordance with the method 100 may be an apparatus comprising at least interface circuitry and processing circuitry configured to perform the method 100 as described herein. For example, the processing circuitry may be a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which or all of which may be shared, a digital signal processor (DSP) hardware, an application specific integrated circuit (ASIC), a system-on-a-chip (SoC), a neuromorphic processor or a field programmable gate array (FPGA). The processing circuitry may optionally be coupled to, e.g., memory such as read only memory (ROM) for storing software, random access memory (RAM) and / or nonvolatile memory. For example, the apparatus may comprise memory configured to store in- structions, which when executed by the processing circuitry, cause the processing circuitry and the interface circuitry to perform the steps and methods described herein. For example, the apparatus for managing a natural language user profile of a user in accordance with the method 100 may be a server, a computing cloud or a data center.
[0033] In response to the request, output of a GUI 240 is caused in accordance with the method 100. For example, output of the GUI 240 via the frontend application 215 may be caused. The GUI 240 comprises a graphical element 241 showing the natural language user profile. Furthermore, the graphical user interface shows two graphical icons 242, 243 allowing Bob to accept or deny provision of the natural language user profile to the service A.
[0034] If Bob presses or clicks the graphical icon 242, user data indicating a user input to accept the provision of the natural language user profile to the service A is generated and sent to the apparatus performing the method 100. On the other hand, if Bob presses or clicks the other graphical icon 243, user data indicating a user input indicating to deny the provision of the natural language user profile to the service A is generated and sent to the apparatus performing the method 100. Depending on Bob’s selection, the natural language user profile is shared with the service A or not.
[0035] As indicated in Fig. 2, the GUI 240 may optionally further comprise a visual indicator 244 informing the user Bob that Bob can edit the natural language user profile before the provision of the natural language user profile to the service A. Accordingly, Bob may provide one or more user inputs to edit the natural language user profile. For example, Bob may delete one or more parts of the natural language user profile, re-write one or more parts of the natural language user profile or add one or more parts to the natural language user profile. In other words, the method 100 may optionally further comprise receiving user data indicating a user input with edits to the natural language user profile and modifying the natural language user profile based on the edits to the natural language user profile. Accordingly, if the user data indicating the user input to accept the provision of the natural language user profile to the service is received subsequently, the modified natural language user profile is provided to the service A rather than the original (initial) natural language user profile.
[0036] As described above in greater detail, the natural language user profile is exposed to the user. The user is enabled to view and optionally edit the natural language user profile to, e.g., hide any information that is deemed too sensitive by the user. The user may optionally also edit the natural language user profile to steer the user’s online experience, independently of the past interaction history, giving back control the user. The proposed technology is privacy preserving as the user’s content interaction history is not directly exposed to services outside the user’s PDS. Furthermore, the proposed technology provides increased transparency and user engagement by involving the user directly with the natural language user profile, which can be rewritten in a user-friendly way.
[0037] In case the natural language user profile is shared with the service A, the service A may analyze the natural language user profile in order to integrate the natural language user profile in its recommendation or personalization system. For example, the natural language user profile may be used by marketeering algorithms or functions of the service A to create targeted and personalized marketing campaigns. Similarly, this may be done in a manual way by marketeers of the service A. In other examples, the natural language user profile may be used by the service A to automatically connect the user Bob with personalized content. For example, the service A may be configured to find content with a textual embedding similar to the textual embedding of the natural language user profile. In still other examples, the service A may use the natural language user profile for building and / or suggesting communities or interest. The service A may, e.g., use one or more trained machine-learning models such as one or more trained Large Language Models (LLMs) for analyzing the natural language user profile and optionally further tasks relating to the above exemplary uses of the natural language user profile. For example, the one or more trained machine-learning models may act as an encoder for encoding the natural language user profile to a vector embedding. Accordingly, the service A may provide a personalized experience (e.g., personalized recommendations) for the user Bob.
[0038] The data flow 200 of Fig. 2 exemplarily further illustrates how to generate the natural language user profile.
[0039] As illustrated in Fig. 2, an interaction history 230 of the user Bob is further stored in the PDS 210. The interaction history 230 is a record of Bob’s past activities and interactions within one or more particular systems, services or platforms. As indicated in Fig. 2, the interaction history 230 may, e.g., indicated which movies Bob watched, which content Bob consumed, which music Bob listened to and / or which Games Bob played. However, it is to be noted that the present disclosure is not limited to the foregoing examples. The interaction history 230 may alternatively or additionally indicate other past activities and interactions of Bob such as, e.g., websites browsed by Bob or search terms searched by Bob.
[0040] In the example of Fig. 2, the natural language profile 220 is generated by an external natural language user profile generation service 250 based on the stored interaction history 230. The term “external” means that the natural language user profile generation service 250 runs separate from the method 100. At least part (e.g., all) of the interaction history 230 of the user Bob is provided (sent) to the natural language user profile generation service 250 and the natural language user profile generation service 250 is requested to generate the natural language user profile 220 based on the at least part of the stored interaction history 230 of the user Bob. The natural language user profile 220 is received from the external natural language user profile generation service 250 in response to the request and stored in the PDS 210. For example, the external natural language user profile generation service 250 may use a trained machine-learning model such as a trained LLM for generating the natural language user profile 220 based on the at least part of the stored interaction history 230 of the user Bob.
[0041] The machine-learning model is a data structure and / or set of rules representing a statistical model that the external natural language user profile generation service 250 uses to generate the natural language user profile 220 based on the at least part of the stored interaction history 230 of the user Bob without using explicit instructions or rules, instead relying on models and inference. The data structure and / or set of rules represents learned knowledge (e.g., based on training performed by a machine-learning algorithm). In machine-learning, instead of a rule-based transformation of data, a transformation of data may be used, that is inferred from an analysis of training data.
[0042] The machine-learning model is trained by a machine-learning algorithm. The term "machine-learning algorithm" denotes a set of instructions that are used to create, train or use a machine-learning model. For the machine-learning model to generate the natural language user profile of a user such as Bob, the machine-learning model may be trained using training data such as known (predefined) interaction histories as input and known (predefined) natural language user profiles as target output for the training data. By training the machine-learning model with a large set of training data and associated training content information, the machine-learning model "learns" how to generate a respective natural language user profile for different input interaction histories, so that natural language user profiles for different interaction histories can be obtained using the machine-learning model. In general, by training the machine-learning model using the training data and respective associated training content information, the machine-learning model "learns" a transformation between the respective training data and the desired output, which can be used to provide an output based on non-training data provided to the machine-learning model.
[0043] The machine-learning model may be trained using training input data (e.g., known or predefined interaction histories). For example, the machine-learning model may be trained using a training method called "supervised learning". In supervised learning, the machine-learning model is trained using a plurality of training samples, wherein each sample may comprise a plurality of input data values, and a plurality of desired output values, i.e., each training sample is associated with a desired output value. By specifying both training samples and desired output values, the machine-learning model "learns" which output value to provide based on an input sample that is similar to the samples provided during the training. For example, a training sample may comprise a known or predefined interaction history as input data and a known or predefined natural language user profile as desired output data.
[0044] Apart from supervised learning, semi-supervised learning may be used. In semi-supervised learning, some of the training samples lack a corresponding desired output value. Supervised learning may be based on a supervised learning algorithm (e.g., a classification algorithm or a similarity learning algorithm). Classification algorithms may be used as the desired outputs of the trained machine-learning model are restricted to a limited set of values (categorical variables), i.e., the input is classified to one of the limited set of values (e.g., known or predefined interaction histories indicating interaction with a certain service or platform, known or predefined interaction histories indicating that the user watched a certain movie or a certain type of movie, known or predefined interaction histories indicating that the user listened to a certain song or a certain type of music). Similarity learning algorithms are similar to classification algorithms but are based on learning from examples using a similarity function that measures how similar or related two objects are. Apart from supervised or semi-supervised learning, unsupervised learning may be used to train the machine-learning model. In unsupervised learning, (only) input data are supplied and an unsupervised learning algorithm is used to find structure in the input data such known or predefined interaction histories.
[0045] Reinforcement learning is a third group of machine-learning algorithms. In other words, reinforcement learning may be used to train the machine-learning model. In reinforcement learning, one or more software actors (called "software agents") are trained to take actions in an environment. Based on the taken actions, a reward is calculated. Reinforcement learning is based on training the one or more software agents to choose the actions such that the cumulative reward is increased, leading to software agents that become better at the task they are given (as evidenced by increasing rewards).
[0046] Furthermore, additional techniques may be applied to some of the machine-learning algorithms. For example, feature learning may be used. In other words, the machine-learning model may at least partially be trained using feature learning, and / or the machine-learning algorithm may comprise a feature learning component. Feature learning algorithms, which may be called representation learning algorithms, may preserve the information in their input but also transform it in a way that makes it useful, often as a pre-processing step before performing classification or predictions. Feature learning may be based on principal components analysis or cluster analysis, for example.
[0047] For example, the machine-learning model may be an Artificial Neural Network (ANN). ANNs are systems that are inspired by biological neural networks, such as can be found in a retina or a brain. ANNs comprise a plurality of interconnected nodes and a plurality of connections, so-called edges, between the nodes. There are usually three types of nodes, input nodes that are receiving input values (e.g., an interaction history), hidden nodes that are (only) connected to other nodes, and output nodes that provide output values (e.g., a natural language user profile). Each node may represent an artificial neuron. Each edge may transmit information from one node to another. The output of a node may be defined as a (nonlinear) function of its inputs (e.g., of the sum of its inputs). The inputs of a node may be used in the function based on a "weight" of the edge or of the node that provides the input. The weight of nodes and / or of edges may be adjusted in the learning process. In other words, the training of an ANN may comprise adjusting the weights of the nodes and / or edges of the ANN, i.e., to achieve a desired output for a given input.
[0048] Alternatively, the machine-learning model may be a support vector machine, a random forest model or a gradient boosting model. Support vector machines (i.e., support vector networks) are supervised learning models with associated learning algorithms that may be used to analyze data (e.g., in classification or regression analysis). Support vector machines may be trained by providing an input with a plurality of training input values (e.g., interaction histories) that belong to one of two categories (e.g., interactions with different services or indicating that the user watched different types of movies). The support vector machine may be trained to assign a new input value to one of the two categories. Alternatively, the machinelearning model may be a Bayesian network, which is a probabilistic directed acyclic graphical model. A Bayesian network may represent a set of random variables and their conditional dependencies using a directed acyclic graph. Alternatively, the machine-learning model may be based on a genetic algorithm, which is a search algorithm and heuristic technique that mimics the process of natural selection.
[0049] In some examples, the machine-learning model may be a combination of the above examples. A LLM is a special type of machine-learning model. In particular, a LLM is natural language processing system designed and trained to understand and generate human-like language.
[0050] For example, if the stored interaction history 230 of the user Bob indicates that Bob previously watched a slice of life anime series such as “K-On!” and listened to music of J-Pop artists such as “Aki Toyosaki” and “Yoko Hikasa”, the generated natural language user profile 220 may be “User loves indie music, anime and has an interesting in Japanese culture and storytelling.” In another example, if the stored interaction history 230 of the user Bob indicates that Bob previously watched movies like “Mission Impossible”, “Twelve Monkeys” and “Beverly Hills Cop”, the generated natural language user profile 220 may be “User prefers action-packed movies with a good story and interesting characters. User enjoys comedies and thrillers.” As is evident from the two aforementioned examples, the user Bob can easily understand the content of the natural language user profile 220 and optionally easily edit the user profile. A service such as the service A may analyze the natural language user profile 220. The communication with the external natural language user profile generation service 250 may be performed using secure channels. For example, the external natural language user profile generation service 250 may run in a secure enclave to ensure high security. However, the present technology is not restricted to the foregoing configuration.
[0051] Fig. 2 illustrates a decentralized system in which the natural language user profile 220 is generated externally by the external natural language user profile generation service 250 based on the at least part of the stored interaction history 230 of the user Bob. However, the present technology is not limited thereto. In alternative examples, the method 100 may comprise generating the natural language user profile 220 by a trained machine-learning model receiving at least part of the stored interaction history 230 of the user Bob as input. In other words, an internal machine-learning model, which is part of the method 100’s processing, may be used for generating the natural language user profile 220. The internal machinelearning model may be as described above for the external natural language user profile generation service 250. In particular, the trained machine-learning model may be a trained LLM - analogously to what is described above.
[0052] In some examples, the Bob’s privacy may be further improved. The method 100 may, e.g., comprise generating, based on at least part of the interaction history of the user, a continuous vector representing at least part of the interaction history of the user (e.g., the complete interaction history of the user). The continuous vector refers to (is) a vector representation of the interaction history of the user that exists in a continuous vector space. Vector embeddings like the continuous vector are numerical representations of objects forming the interaction history of the user (e.g., words, sentences or images) in a multi-dimensional space where the relationships and distances between vectors capture semantic or contextual information. Continuous vectors are to be distinguished from discrete vectors, which are typically binary or categorical representations. In a continuous vector space, similar objects are represented by vectors that are close to each other in terms of distance or similarity, whereas dissimilar objects are represented by vectors that are farther apart. The advantage of continuous vectors lies in their ability to capture nuanced relationships and context, allowing for more effective representations in various machine learning tasks. For example, a vector embedding such as the continuous vector may be generated according to techniques like Word2Vec, GloVe and FastText or other techniques known to those skilled in the art. The present technology is not limited to a specific technology for generating a vector embedding such as the continuous vector. According to examples of the method 100, noise is added to the continuous vector. For example, the noise may be added according to differential privacy techniques. Depending on the implementation of the natural language user profile generation, the generation of the natural language user profile 220 is requested based on the continuous vector with added noise or the trained machine-learning model receives the continuous vector with added noise as input. The example described in the foregoing allows to provide an even more privacypreserving user profile generation by adding noise to the user’s profile before sharing it with the eventually untrusted service A.
[0053] Fig- 3 illustrates another exemplary data flow 300 to highlight further optional aspects of the method 100. The data flow 300 may be understood as an enhancement or extension of the data flow 200 described above. Also in the example of Fig. 3, the natural language user profile 320 of the user Bob is stored in Bob’s PDS 310.
[0054] In the example of Fig. 3, the user Bob uses a service 1. The service 1 is schematically illustrated by box 380 in Fig. 3. For example, the user Bob may use a frontend application 315 such as a browser or an application for accessing the service 1. Bob may, e.g., browse service 1 and consume content via service 1. As indicated in Fig. 3, the service 1 may comprise an interface 385 to Bob’s PDS 310. For example, the interface 385 may be used for authentication in Bob’s PDS 310 and / or user data and profile management at the provider side (i.e., at the side of service 1). In particular, the interface 385 may interact with a backend application 311 of the PDS 310. The backend application 311 may, e.g., manage storage, computation and sharing (interfacing) of the natural language user profile 320 and related data. The backend application 311 may run on a user-controlled infrastructure or device or in a computing cloud.
[0055] Via the frontend application 315, which is analogous to the frontend application 215 described above, the user Bob may check the natural language user profile 320, control provisioning of the natural language user profile 320 to services and optionally edit the natural language user profile 320.
[0056] If the user Bob accesses the service 2 for the first time, the service 2 may request to provide the service 2 with Bob’s natural language user profile 320. The service 1 is schematically illustrated by box 390 in Fig. 3. For example, the service 2 may comprise an interface 395 to Bob’s PDS 310. The interface 395 may, e.g., send the request for Bob’s natural language user profile 320 to the backend application 311 of Bob’ s PDS, which manages the sharing of Bob’s natural language user profile 320. In case Bob accepts the provision of his natural language user profile 320 to the service 2, the natural language user profile 320 is provided to the service 2. For example, a recommendation and / or personalization application 391 of the service 2 may read Bob’s shared natural language user profile 320 and create (e.g., initial) recommendations and personalization of the service 2 according to specifics of Bob’s natural language user profile 320. The recommendation and / or personalization application 391 may, e.g., use a trained machine-learning model (e.g., a trained LLM) to interpret and analyze Bob’s natural language user profile 320. The trained machine-learning model may be trained analogously to what is described above. For example, known (predefined) natural language user profiles may be used as input training data and known (predefined) recommendations and / or personalization settings may be used as target output for the training data such that the machine-learning model "learns" a transformation between the respective training data and the desired output, which can be used to provide an output based on non-training data provided to the machine-learning model of the recommendation and / or personalization application 391.
[0057] The generation of the natural language user profile 320 is different from the approach described above with reference to Fig. 2. In the example of Fig. 3, a raw profile 330 of the user Bob encoding personal information of the user as a vector embedding is stored in the PDS 310. A raw profile of a user is (refers to) a collection of unprocessed or minimally processed data about the user’s activities, preferences, behaviors, or characteristics within a particular system, service or platform. The term "raw" means that the data has not undergone extensive analysis, transformation, or interpretation. For example, the raw profile 330 of the user Bob may contain or indicate one or more of personal information, preferences, behavioral data or an interaction history of the user Bob. According to the method 100, noise 318 is added to the raw profile of the user. For example, the noise 318 may be added according to differential privacy techniques. The natural language user profile 320 is then generated by a trained machine-learning model 325 such as a trained LLM receiving the raw profile 330 of the user with added noise as input. The trained machine-learning model 325 acts as a natural language user profile decoder for the raw profile 330. The trained machine-learning model 325 may be trained analogously to what is described above. For example, known (predefined) raw profiles may be used as input training data and known (predefined) natural language user profiles may be used as target output for the training data such that the machinelearning model 325 "learns" a transformation between the respective training data and the desired output, which can be used to provide an output based on non-training data provided to the machine-learning model 325. The addition of the noise 318 to the raw profile 330 of the user before the generation of the natural language user profile 320 may allow to increase the privacy and allow the user to share the natural language user profile even with an eventually untrusted service such as the service 2.
[0058] As indicated in Fig. 3, the raw profile 330 may be specific to Bob’s interaction with the service 1. However, it is to be noted that the present disclosure is not limited thereto. In other examples, the raw profile 330 may reflect the interaction history of the user Bob with additional services (i.e., reflect the interaction history of the user Bob with more than one service).
[0059] The raw profile 330 may be generated by various instances as is indicated in Fig. 3 by the placement of the box 350 between the service 1 and the PDS 310. The box 350 schematically illustrates a trained machine-learning model such as a trained LLM for generating the raw profile 330. The interaction history 360 of the user Bob with the service 1 (optionally fur- ther / additional services) is the source for the raw profile generation. The interaction history may be understood as raw data of the user Bob. As illustrated in Fig. 3 by the placement of the interaction history 360 between the service 1 and the PDS 310, various entities may store the interaction history 360. In particular, the service 1 and the PDS 310 may store the interaction history 360 of the user Bob with the service 1 (and optionally further / additional services). The trained machine-learning model 350 receives at least part of the interaction history 360 of the user Bob with the service 1 (and optionally further / additional services) as input and generates the raw profile 330 based thereon. The trained machine-learning model 350 may be trained analogously to what is described above. For example, known (predefined) interaction histories may be used as input training data and known (predefined) raw profiles may be used as target output for the training data such that the machine-learning model 350 "learns" a transformation between the respective training data and the desired output, which can be used to provide an output based on non-training data provided to the machinelearning model 350. In other words, the trained machine-learning model 350 maps the raw data 360 of Bob to the raw profile 330. As mentioned above, the generation of the raw profile 330 may be collocated with the stored interaction history 360 but is not restricted thereto. The functionality may be located anywhere. Hence, in some examples, the raw profile 330 may be generated by the service 1 using the trained machine-learning model 350 and the PDS 310 receives the raw profile 330 from the service 1. In other words, the method 100 may comprise receiving the raw profile 330 from a service used by the user Bob. In other examples, the PDS 310 may generate the raw profile 330 using the trained machine-learning model 350. In other words, the method 100 may comprise generating the raw profile 330 by the trained machine-learning model 330 receiving at least part of an interaction history of the user Bob with one or more other services as input. The interaction history of the user Bob with one or more other services is previously received from the one or more other services according to the method 100.
[0060] In still other examples, the raw profile 330 may be generated based on human generated information about the user Bob. For example, Bob or another human being may provide selectively selected pieces of information about Bob such as one or more of personal information, preferences, behavioral data or an interaction history with one or more services of the user Bob which should be the foundation for the raw profile 330 and, hence, the natural language user profile 320. Accordingly, the raw profile 330 and, hence, the natural language user profile 320 may be fully tailored to the desires of Bob or another human being. In these examples, the method 100 may comprise generating the raw profile 330 by a trained machinelearning model such as a trained LLM receiving human generated information about the user as input. The trained machine-learning model may be trained analogously to what is described above. For example, known (predefined) user information may be used as input training data and known (predefined) raw profiles may be used as target output for the training data such that the machine-learning model "learns" a transformation between the respective training data and the desired output, which can be used to provide an output based on non-training data provided to the machine-learning model. In other words, the trained machine-learning model maps the human generated information about the user Bob to the raw profile 330. For example, the PDS 310 may generate the raw profile 330 using human generated information about the user Bob. The information about the user Bob may, e.g., be entered by Bob via the frontend application 315. Fig. 3 illustrates an architecture which allows to share an anonymized profile between two services 1 and 2, using a (e.g., decentralized) PDS 310 with natural language profiling capabilities. The example of Fig. 3 uses raw profiles, i.e., numerical vector representations of the user’s interaction history. A trained machine-learning model 325 such as a trained LLM is used to “decode” the vectors into the natural language user profile 320 (which may be understood as a human interpretable summary). As described above, trained machine-learning model such as a trained LLM may further be used to “encode” a manually written description in order to use it as starting embedding vector in the absence initial profile. This may be useful in the context of marketing to allow to convert persona descriptions directly into a raw profile (e.g., for the purpose of determining target audience for a new product). This example of Fig. 3 may allow to reduce the size of representations if they need to be communicated, as well as open possibilities for integrating methods typically reserved to quantitative information (as opposed to textual information).
[0061] The generation of the natural language user profile 320 by means of the trained machinelearning model 325 may optionally further be enhanced using Retrieval Augmented Generation (RAG). RAG is a technique for enhancing the accuracy and reliability of trained machine-learning models such as LLMs with augmented prompts. For example, if the interaction history 360 of the user Bob is stored as a plurality of vector embeddings in the PDS 310 (i.e., the interaction history 360 is stored in a vector database), the method 100 may optionally comprise querying the plurality of vector embeddings for one or more vector embeddings representing one or more pieces of the interaction history of the user Bob with significance for the service 2. For example, one or more reference vector embeddings may be generated based on information related to the service 2. For example, the information related to the service 2 may indicate the type of service, a provider of the service, technical requirements or other technical aspects of the service, etc. Vector embeddings among the plurality of vector embeddings having a vector distance to the one or more reference vector embeddings smaller than a threshold may be selected as vector embeddings representing one or more pieces of the interaction history with significance for the service 2. Accordingly, the method 100 may further comprise concatenating the one or more pieces of interaction history of the user Bob with significance for the service 2 to a prompt for instructing the trained machinelearning model 325 to generate the natural language user profile 320. In other words, the prompt is augmented with the one or more pieces of interaction history of Bob with significance for the service 2. The concatenated prompt is then fed to the trained machine-learning model 325 (e.g., a trained LLM). Accordingly, the trained machine-learning model 325 may be provided with relevant information for the service 2 and generate the natural language user profile 320 such that it is adapted to the needs of the service 2.
[0062] As described above in greater detail with reference to Fig. 2, Bob may edit the generated natural language user profile. The edits to the natural language user profile 320 may further be used for training the machine-learning model 325. In other words, the method 100 may optionally further comprise training the machine-learning model 325 based on the edits to the natural language user profile 320. The edits to the natural language user profile 320 are human feedback and may, e.g., be used for training the machine-learning model 325 based on Reinforcement Learning with Human Feedback (RLHF) approaches. Accordingly, it may be ensured that a user such as Bob understands and agrees with the generated natural language user profile 320.
[0063] A more detailed training approach according to the proposed technique will be described in the following with reference to the data flow 400 illustrated in Fig. 4. The data flow 400 is based on the structure of the exemplary data flow 200 described above with reference to Fig. 2. Therefore, only the additional aspects compared to the data flow 200 will be described in the following. In the example of Fig. 4, a dual-federated learning approach is shown to train the various machine-learning models in the system, in addition to local training at the service side. As described above, the decentralized (distributed) system involves both profile generation and profile re-encoding. In the example of Fig. 4, it is assumed that the machinelearning model used for the natural language user profile generation is a pre-trained LLM. A server 270 for training a global version of the machine-learning model used for natural language user profile generation, i.e., the LLM, is provided.
[0064] The service A (and also other services) comprises a pre-existing personalization system 291. The various components of the system are fine-tuned and trained using a decentralized strategy based on federated learning. Updates for the trained LLM may originate from two sources: the service A (or other services) and the user Bob (or other users).
[0065] The natural language user profile encoder 292 of the service A needs to align with embeddings of the personalization system 291 of the service A. For example, the natural language user profile encoder 292 should generate vector embeddings encoding the natural language user profile 220 that are as close as possible to vector embeddings 293 corresponding to the user Bob after Bob has interacted with the service A (e.g., by consuming content provided by the service A). This updating may be run locally on the serves hosting the service A until convergence.
[0066] Mode disambiguation and distribution loss are illustrated in box 260. In some cases, user behavior obtained from other services (not service A) might not contain enough information along some behavioral patterns observed in the vector embeddings 293 of service A. For instance, it might comprise two clusters of behaviors, clusters which cannot be separated using encoded natural language user profiles. In such a situation, information from service A may be beneficial to teach the LLM for the natural language user profile generation to generate profiles which disambiguate between users belonging to each cluster. Such correction to the global LLM may be computed using the vector embeddings 293 of service A (both legacy and obtained from the natural language user profile) and its pre-trained natural language profile encoder 292 (which may be kept frozen in this step). This process can be scheduled periodically and / or run if a need for has been identified from the embedding distributions.
[0067] The constraints for the service triggered updates may be similar to those described above for mode disambiguation and distribution loss.
[0068] Service-triggered updates of the for the trained LLM are forwarded to the server 270 such that the global of the LLM may be trained based on federated learning using the updated LLM.
[0069] As described above with respect to Fig. 3, RLHF may be used for user triggered updates to ensure that a user such as Bob understands and agrees with the generated natural language user profile. For example, this type of updates may (only) be obtained when the user edits the natural language user profile.
[0070] Part of the constrains to the LLM for the natural language user profile generation are statistical and may be translated into a local loss function which works as in traditional supervised federated learning. This step ensures that the natural language user profiles follow overall guidelines imposed on the generated natural language user profiles. This type of updates can be computed whenever inference is called, for instance when the user generates a new natural language user profile. However, it can also be scheduled periodically in some examples. In that case it may be computed on a sample of users instead of a single user by user a secure enclave to ensure nobody has access to the training data.
[0071] For cross-service mode disambiguation, if such an update is required, the lack of service A data for a user may decrease significantly the possibility of the natural language user profile to reflect which service A cluster the user would belong to (or, more generally, where on the collapsed axis of the embedding space the user would lie). However, it is possible that information is present the raw user data (i.e., the interaction history 230), but somehow lost when creating the natural language user profile (e.g., because no other service identified such a shortcoming). Then, an extra training step may be used, which involves accessing both user data (with sufficient service A data) and information about the last service A model update, in order to update the model to find use information about the new mode in other services data. This correction to the LLM for the natural language user profile generation can be computed in a user-specific federated learning client task, but with the additional information of the latest service updates.
[0072] Analogously to what is described above for the service-triggered updates of the LLM, the local version of the LLM for natural language user profile generation is transmitted to the server 270 for training the global version of the LLM based on federated learning using the transmitted LLM.
[0073] Similarly, at the service side and at the user side, an updated version of the LLM for natural language user profile generation may be received according to the method 100 from the server 270 for training the global version of the LLM based on federated learning. Accordingly, the updated version of the LLM for natural language user profile generation is used after receipt for generating the natural language user profile.
[0074] In the example of Fig. 4, service A has copied a version of Bob’s natural language user profile shared at a given time. The natural language user profile was generated using the version of the LLM for natural language user profile generation of that time. The capabilities of the LLM for natural language user profile generation may evolve over time. That is, the encoded version of this natural language user profile may have to be generated using the correspond- ing version of the natural language user profile encoder 292 - or just be stored. This choice may, however, limit the dataset that can be used for computing model updates, both for the natural language user profile encoder 291 and the natural language user profile generation service 250.
[0075] In alternative example, Bob’s natural language user profile 220 is regenerated at every release of the LLM used for the natural language user profile generation. In this case, instead of providing the natural language user profile 220 at a point in time to the service A, Bob would rather grant access to the natural language user profile 220 which is served by the PDS 210. For example, the natural language user profile 220 may be presented (submitted) to the user Bob for review on the next login to the PDS 210.
[0076] The proposed technology considers privacy and security aspects. For example, the distributed architecture answers privacy and security concerns while still allowing the training of the models involved. Furthermore, the proposed technology considers use case where multiple services are involved in the system, enabling cross-domain capabilities without requiring data sharing between parties (i.e., users and services).
[0077] Furthermore, the proposed technology uses trained machine-learning models such as LLMs as an interface that is transparent to the user. The machine-learning models are not restricted to being used for the recommendation task itself. As described above, the natural language user profile LLM encoder is integrated into the personalization system using any representation (e.g., vectorial). Accordingly, the proposed technology may integrate with pre-existing, pre-trained personalization systems that services might have already developed.
[0078] Examples of the proposed technology may enable automatically generated, understandable and user customizable online profiles for users.
[0079] The following examples pertain to further embodiments:
[0080] (1) A method for managing a natural language user profile of a user, the method comprising: receiving a request from a service to provide the service with the natural language user profile; causing output of a graphical user interface to the user, wherein the graphical user interface shows the natural language user profile and graphical icons allowing the user to accept or deny provision of the natural language user profile to the service; and providing the service with the natural language user profile if user data indicating a user input to accept the provision of the natural language user profile to the service is received.
[0081] (2) The method of (1), further comprising: denying the request from the service if user data indicating a user input indicating to deny the provision of the natural language user profile to the service is received.
[0082] (3) The method of (1) or (2), wherein the graphical user interface further comprises a visual indicator informing the user that the user can edit the natural language user profile before the provision of the natural language user profile to the service.
[0083] (4) The method of (3), further comprising: receiving user data indicating a user input with edits to the natural language user profile; and modifying the natural language user profile based on the edits to the natural language user profile, wherein the modified natural language user profile is provided to the service if the user data indicating the user input to accept the provision of the natural language user profile to the service is received.
[0084] (5) The method of any one of (1) to (4), wherein the natural language user profile is stored in a personal data storage of the user.
[0085] (6) The method of (5), wherein an interaction history of the user is further stored in the personal data storage, and wherein the method further comprises: receiving the natural language user profile from an external natural language user profile generation service in response to a request for generating the natural language user profile based on at least part of the stored interaction history of the user; or generating the natural language user profile by a trained machine-learning model receiving at least part of the stored interaction history of the user as input. (7) The method of (6), wherein the trained machine-learning model is a trained large language model.
[0086] (8) The method of (6) or (7), wherein the method further comprises: generating, based on the interaction history of the user, a continuous vector representing at least part of the interaction history of the user; and adding noise to the continuous vector, wherein the generation of the natural language user profile is requested based on the continuous vector with added noise or the trained machine-learning model receives the continuous vector with added noise as input.
[0087] (9) The method of (5), wherein a raw profile of the user encoding personal information of the user as a vector embedding is further stored in the personal data storage, and wherein the method further comprises: adding noise to the raw profile of the user; and generating the natural language user profile by a trained machine-learning model receiving the raw profile of the user with added noise as input.
[0088] (10) The method of (9), wherein the trained machine-learning model is a trained large language model.
[0089] (11) The method of (9) or (10), further comprising: receiving the raw profile from another service used by the user; or generating the raw profile by another trained machine-learning model receiving at least part of an interaction history of the user with one or more other services as input; or generating the raw profile by another trained machine-learning model receiving human generated information about the user as input.
[0090] (12) The method of (11), wherein the other trained machine-learning model is a trained large language model.
[0091] (13) The method of (11) or (12), wherein the raw profile is generated by the other trained machine-learning model receiving at least part of the interaction history of the user with the one or more other services as input, and wherein the method further comprises receiving the interaction history of the user with one or more other services from the one or more other services.
[0092] (14) The method of (13), wherein the interaction history of the user with the one or more other services is stored as a plurality of vector embeddings in the personal data storage, and wherein the method further comprises: querying the plurality of vector embeddings for one or more vector embeddings representing one or more pieces of the interaction history of the user with significance for the service; concatenate the one or more pieces of interaction history of the user with significance for the service to a prompt for instructing the trained machine-learning model to generate the natural language user profile; and feeding the concatenated prompt to the trained machine-learning model.
[0093] (15) The method of (4) and any one of (6) to (14), further comprising: training the machine-learning model based on the edits to the natural language user profile.
[0094] (16) The method of (15), further comprising: transmitting the machine-learning model after training to a server for training a global version of the machine-learning model based on federated learning using the transmitted machine-learning model.
[0095] (17) The method of (15) or (16), further comprising: receiving an updated version of the machine-learning model from a server for training a global version of the machine-learning model based on federated learning; and use the updated version of the machine-learning model after receipt for generating the natural language user profile.
[0096] (18) An apparatus for managing a natural language user profile of a user, the apparatus comprising at least interface circuitry and processing circuitry configured to perform the method according to any one of (1) to (17).
[0097] (19) A non-transitory machine-readable medium having stored thereon a program having a program code for performing the method according to any one of (1) to (17), when the program is executed on a processor or a programmable hardware. (20) A program having a program code for performing the method according to any one of (1) to (17), when the program is executed on a processor or a programmable hardware.
[0098] The aspects and features described in relation to a particular one of the previous examples may also be combined with one or more of the further examples to replace an identical or similar feature of that further example or to additionally introduce the features into the further example.
[0099] Examples may further be or relate to a (computer) program including a program code to execute one or more of the above methods when the program is executed on a computer, processor or other programmable hardware component. Thus, steps, operations or processes of different ones of the methods described above may also be executed by programmed computers, processors or other programmable hardware components. Examples may also cover program storage devices, such as digital data storage media, which are machine-, processor- or computer-readable and encode and / or contain machine-executable, processor-executable or computer-executable programs and instructions. Program storage devices may include or be digital storage devices, magnetic storage media such as magnetic disks and magnetic tapes, hard disk drives, or optically readable digital data storage media, for example. Other examples may also include computers, processors, control units, (field) programmable logic arrays ((F)PLAs), (field) programmable gate arrays ((F)PGAs), graphics processor units (GPU), ASICs, integrated circuits (ICs) or SoC systems programmed to execute the steps of the methods described above.
[0100] It is further understood that the disclosure of several steps, processes, operations or functions disclosed in the description or claims shall not be construed to imply that these operations are necessarily dependent on the order described, unless explicitly stated in the individual case or necessary for technical reasons. Therefore, the previous description does not limit the execution of several steps or functions to a certain order. Furthermore, in further examples, a single step, function, process or operation may include and / or be broken up into several substeps, -functions, -processes or -operations.
[0101] If some aspects have been described in relation to a device or system, these aspects should also be understood as a description of the corresponding method. For example, a block, de- vice or functional aspect of the device or system may correspond to a feature, such as a method step, of the corresponding method. Accordingly, aspects described in relation to a method shall also be understood as a description of a corresponding block, a corresponding element, a property or a functional feature of a corresponding device or a corresponding sys- tern.
[0102] The following claims are hereby incorporated in the detailed description, wherein each claim may stand on its own as a separate example. It should also be noted that although in the claims a dependent claim refers to a particular combination with one or more other claims, other examples may also include a combination of the dependent claim with the subject matter of any other dependent or independent claim. Such combinations are hereby explicitly proposed, unless it is stated in the individual case that a particular combination is not intended. Furthermore, features of a claim should also be included for any other independent claim, even if that claim is not directly defined as dependent on that other independent claim.
Claims
ClaimsWhat is claimed is:
1. A method for managing a natural language user profile of a user, the method comprising: receiving a request from a service to provide the service with the natural language user profile; causing output of a graphical user interface to the user, wherein the graphical user interface shows the natural language user profile and graphical icons allowing the user to accept or deny provision of the natural language user profile to the service; and providing the service with the natural language user profile if user data indicating a user input to accept the provision of the natural language user profile to the service is received.
2. The method of claim 1, further comprising: denying the request from the service if user data indicating a user input indicating to deny the provision of the natural language user profile to the service is received.
3. The method of claim 1, wherein the graphical user interface further comprises a visual indicator informing the user that the user can edit the natural language user profile before the provision of the natural language user profile to the service.
4. The method of claim 3, further comprising: receiving user data indicating a user input with edits to the natural language user profile; and modifying the natural language user profile based on the edits to the natural language user profile, wherein the modified natural language user profile is provided to the service if the user data indicating the user input to accept the provision of the natural language user profile to the service is received.
5. The method of claim 1, wherein the natural language user profile is stored in a personal data storage of the user.
6. The method of claim 5, wherein an interaction history of the user is further stored in the personal data storage, and wherein the method further comprises: receiving the natural language user profile from an external natural language user profile generation service in response to a request for generating the natural language user profile based on at least part of the stored interaction history of the user; or generating the natural language user profile by a trained machine-learning model receiving at least part of the stored interaction history of the user as input.
7. The method of claim 6, wherein the trained machine-learning model is a trained large language model.
8. The method of claim 6, wherein the method further comprises: generating, based on the interaction history of the user, a continuous vector representing at least part of the interaction history of the user; and adding noise to the continuous vector, wherein the generation of the natural language user profile is requested based on the continuous vector with added noise or the trained machine-learning model receives the continuous vector with added noise as input.
9. The method of claim 5, wherein a raw profile of the user encoding personal information of the user as a vector embedding is further stored in the personal data storage, and wherein the method further comprises: adding noise to the raw profile of the user; and generating the natural language user profile by a trained machine-learning model receiving the raw profile of the user with added noise as input.
10. The method of claim 9, wherein the trained machine-learning model is a trained large language model.
11. The method of claim 9, further comprising: receiving the raw profile from another service used by the user; or generating the raw profile by another trained machine-learning model receiving at least part of an interaction history of the user with one or more other services as input; or generating the raw profile by another trained machine-learning model receiving human generated information about the user as input.
12. The method of claim 11, wherein the other trained machine-learning model is a trained large language model.
13. The method of claim 11, wherein the raw profile is generated by the trained machinelearning model receiving at least part of the interaction history of the user with the one or more other services as input, and wherein the method further comprises receiving the interaction history of the user with one or more other services from the one or more other services.
14. The method of claim 13, wherein the interaction history of the user with the one or more other services is stored as a plurality of vector embeddings in the personal data storage, and wherein the method further comprises: querying the plurality of vector embeddings for one or more vector embeddings representing one or more pieces of the interaction history of the user with significance for the service; concatenate the one or more pieces of interaction history of the user with significance for the service to a prompt for instructing the trained machine-learning model to generate the natural language user profile; and feeding the concatenated prompt to the trained machine-learning model.
15. The method of claim 6, further comprising: receiving user data indicating a user input with edits to the natural language user profile; modifying the natural language user profile based on the edits to the natural language user profile; andtraining the machine-learning model based on the edits to the natural language user profile, wherein the modified natural language user profile is provided to the service if the user data indicating the user input to accept the provision of the natural language user profile to the service is received.
16. The method of claim 15, further comprising: transmitting the machine-learning model after training to a server for training a global version of the machine-learning model based on federated learning using the transmitted machine-learning model.
17. The method of claim 15, further comprising: receiving an updated version of the machine-learning model from a server for training a global version of the machine-learning model based on federated learning; and use the updated version of the machine-learning model after receipt for generating the natural language user profile.
18. An apparatus for managing a natural language user profile of a user, the apparatus comprising at least interface circuitry and processing circuitry configured to perform the method according to claim 1.
19. A non-transitory machine-readable medium having stored thereon a program having a program code for performing the method according to claim 1, when the program is executed on a processor or a programmable hardware.
20. A program having a program code for performing the method according to claim 1, when the program is executed on a processor or a programmable hardware.