Question and answer method and device and computing equipment

By matching the Q&A model based on user historical satisfaction, disassembling and routing user questions to the optimal large language model, the problem that existing Q&A digital assistants cannot meet personalized needs is solved, and personalized and highly accurate answers are achieved.

CN120470080APending Publication Date: 2025-08-12XFUSION DIGITAL TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510405984.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-01
Publication Date
2025-08-12

AI Technical Summary

Technical Problem

Existing Q&A digital assistants cannot provide in-depth answers based on users’ personalized preferences and domain differences, and the rule-based routing scheme lacks an adaptive learning mechanism, resulting in low recognition accuracy and inability to meet users’ personalized needs.

Method used

By obtaining the user's historical satisfaction, matching the Q&A model that best matches the user's portrait, disassembly the user's questions into multiple sub-questions, and routing them to different large language models for answers, and using the domains between models to focus on differences in selecting the optimal model to generate answers.

Benefits of technology

It realizes the generation of answers based on user personalized preferences, avoids templated questions, improves user experience and improves the accuracy and adaptability of answers.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120470080A_ABST
    Figure CN120470080A_ABST
Patent Text Reader

Abstract

The embodiment of the invention provides a question and answer method and device and computing equipment. The method comprises the steps of obtaining a query request input by a user; the query request comprises a question; determining one or more sub-problems according to the problem; respectively routing each sub-question in the one or more sub-questions to one of the at least one first model to obtain an answer of each sub-question; the first model is a question and answer model matched with one or more sub-questions according to the historical satisfaction of the user; and according to answers returned by one or more first models in the first models, generating answers. Therefore, the answer can be generated according to the personalized preference of the user, and the appropriate sub-model is matched according to the field of the question input by the user to generate the answer.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of artificial intelligence technology, and in particular to a question-answering method, apparatus, and computing device. Background Art

[0002] Digital assistants are becoming increasingly popular, and their functionality relies on the underlying support provided by large language models. Related technologies, such as simple question-and-answer digital assistants, often provide answers based on a fixed knowledge base or preset dialogue templates. This often results in templated responses that lack a deep understanding of and consideration for individual user needs. Many question-and-answer assistants fail to consider the preferences of diverse users across different domains and use the same large language model to provide responses. Other related technologies use specific rule-based routing schemes, routing user requests and performing specific tasks through a set of preset rules and processes. However, the rules of these digital assistants are overly simplistic. The rule-based systems do not automatically learn and adapt from actual conversations, but instead strictly follow established processes to process tasks. Rule-based routing assistants are limited by static process logic, making it difficult to effectively handle user requests outside of their predefined scope. Furthermore, due to the lack of adaptive learning mechanisms, they have low accuracy in recognizing different expressions of the same intent, and are unable to flexibly adjust response strategies based on user preferences. In addition, due to differences in training data, attention mechanisms, and contextual understanding capabilities, different large language models have significant deviations in output results even if the same knowledge embedding is input. Limited by the inherent defects of general models, they are unable to provide in-depth answers in specific professional fields (such as technology, law, etc.).

[0003] However, different users have different personalized preferences, and they hope to get answers that meet their personalized preferences and use models suitable for the domain. Therefore, a question-answering method is urgently needed. Summary of the Invention

[0004] The embodiments of the present application provide a question-answering method, apparatus, and computing device that can generate answers based on the user's personalized preferences, and generate answers by matching a suitable sub-model based on the field of the user's input question.

[0005] In a first aspect, an embodiment of the present application provides a question-and-answer method, which includes: obtaining a query request input by a user; the query request includes a question; determining one or more sub-questions based on the question; routing each of the one or more sub-questions to one of at least one first model to obtain an answer to each sub-question; the first model is a question-and-answer model that matches one or more sub-questions based on the user's historical satisfaction; and generating an answer based on the answers returned by one or more first models in the first model.

[0006] In the above example, different models are selected to generate answers based on user portraits that match user satisfaction, which satisfies the user's personalized preferences and avoids the stereotyped templates of answers. In addition, due to differences in training data, attention mechanisms, and contextual understanding capabilities, different large language models may have significant deviations in output results even if the same knowledge embedding is input. The embodiment of the present application sets multiple first models and utilizes the differences in domain emphasis between the models to select a model that is more in line with the user's portrait and the best in the domain to generate answers.

[0007] In one possible implementation, based on historical user satisfaction, the score of each of the one or more sub-questions in each of the at least one first model is predicted; each of the one or more sub-questions is routed to the first model with the highest predicted score to obtain an answer to each sub-question.

[0008] In the above example, the main model predicts the score of each sub-model for each input sub-question. The sub-model that best matches the user profile can then be used to generate the answer to that sub-question. Each sub-model can be selected based on its specific focus area, taking into account user preferences while also selecting the most appropriate sub-model based on its specific domain.

[0009] In one possible implementation, the method further includes: comparing the similarity between the user input question and the user's historical input questions; selecting a target historical input question whose similarity meets a preset value; converting the user's satisfaction with their answer to the target historical input question into a weight corresponding to a first model; the first model is the first model generated for the target historical input question; and predicting, based on the weight, a score for each of the one or more sub-questions in each of the at least one first model.

[0010] In the above example, we can also compare the similarity between the user's current question and previous questions. If the user has previously performed a query, we can assign a weight to the sub-model that generates the answer based on the user's satisfaction with the answer. Sub-models with higher weights will receive higher prediction scores in the next step, increasing the probability of selecting that sub-model as the answer.

[0011] In one possible implementation, the method further includes: constructing a data set using the user's historical input questions, a first model identifier for generating answers corresponding to the historical input questions, and the user's historical satisfaction; placing the data set in a training queue; retraining based on the data set; and predicting the score of each sub-problem of one or more sub-problems in each model of at least one first model.

[0012] In the above example, by updating the score prediction model in real time, it can be deeply bound to the user, greatly improving the user experience.

[0013] In one possible implementation, the method further includes: calculating the weight according to a weight formula σ·s+(1-σ)·R; wherein σ is a balance parameter, s is a normalized similarity, and R is a normalized satisfaction score.

[0014] In the above example, according to task requirements, relevant training data is obtained to first complete the pre-training of the model, and the pre-trained model is retrained with feedback during user use.

[0015] In one possible implementation, the method further includes: summarizing the answers generated in the first model for each sub-question and sending the answers to the user.

[0016] In the above example, the main model finally splices the results generated by each sub-model and returns them to the user.

[0017] In one possible implementation, comparing the similarity between the user input question and the user's historical input questions includes: converting the user input question into a vector, performing cosine similarity calculation on the vector corresponding to the user's historical input question, and comparing the result of the similarity calculation with a preset value; wherein the user's historical input question is converted into a vector for storage.

[0018] In the above example, the user input data is converted into vectors to make comparison easier.

[0019] In one possible implementation, user satisfaction also includes: outputting a number of questions and answers generated by the first model based on the multiple questions to the user; collecting the user's answers to the questions; answering the user's ranking of the answers to each sub-model; and converting the ranking into a satisfaction score.

[0020] In the above example, by asking users to answer questions when the model is initialized, users can get answers that meet their personalized preferences as early as possible when they start using the model.

[0021] In a second aspect, embodiments of the present application provide a question-and-answer device, comprising: an acquisition module for acquiring a query request input by a user; the query request including a question; a determination module for determining one or more sub-questions based on the question; a routing module for routing each of the one or more sub-questions to one of at least one first model to obtain an answer to each sub-question; the first model being a question-and-answer model matched to one or more sub-questions based on the user's historical satisfaction; and an answer module for generating an answer based on the answers returned by one or more of the first models.

[0022] In a third aspect, an embodiment of the present application provides a question-and-answer device, comprising: an acquisition module for acquiring a query request input by a user; the query request includes a question; a determination module for determining one or more sub-questions based on the question. The query module is used to compare the similarity between the question input by the user and the questions input by the user in the past; select a target historical input question whose similarity meets a preset value, and convert the user's satisfaction with the answer to the target historical input question into a weight corresponding to a first model; the first model is the first model for generating the target historical input question. The routing module is used to predict the score of each sub-question of one or more sub-questions in each model of at least one first model based on the weight.

[0023] In a fourth aspect, an embodiment of the present invention provides a computing device, which runs computer program instructions to execute the method provided in the first aspect.

[0024] In one example, the computing device may include a processor, which may be coupled to a memory, the memory being used to store programs, and the processor being used to execute the programs stored in the memory. When the programs stored in the memory are executed, the computing device performs the method provided in the first aspect. The memory may be integrated into a chip or processor, or may be independent of the chip or processor. The computing device may be a server.

[0025] In a fifth aspect, an embodiment of the present invention provides a computer storage medium, in which instructions are stored. When the instructions are executed on a computer, the computer executes the method provided in the first aspect.

[0026] In a sixth aspect, an embodiment of the present invention provides a computer program product comprising instructions, which, when executed on a computer, enables the computer to execute the method provided in the first aspect.

[0027] It can be understood that the beneficial effects of the second to sixth aspects mentioned above can be found in the relevant description of the first aspect mentioned above, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] Figure 1 A schematic diagram of an application scenario provided in an embodiment of the present application;

[0029] Figure 2 Schematic diagram of the system framework for the question-answering method provided in the embodiment of the present application Figure 1 ;

[0030] Figure 3 A flowchart of a question-and-answer method provided in this embodiment of the application Figure 1 ;

[0031] Figure 4A schematic diagram of a routing model pre-training process is provided for an embodiment of the present application;

[0032] Figure 5 A schematic diagram of a process for obtaining comparison labels of different sub-models when initializing a routing model provided in an embodiment of the present application;

[0033] Figure 6 Schematic diagram of the framework of the system for applying the question-answering method provided in the embodiment of the present application Figure 2 ;

[0034] Figure 7 A flowchart of a question-and-answer method provided in this embodiment of the application Figure 2 ;

[0035] Figure 8 A schematic diagram of the structure of a question-answering device provided in an embodiment of the present invention;

[0036] Figure 9 A schematic diagram of the structure of a computing device provided in an embodiment of the present invention. DETAILED DESCRIPTION

[0037] The term "and / or" as used herein describes an association between related objects, indicating that three possible relationships exist. For example, "A and / or B" can represent: A exists alone, A and B exist simultaneously, or B exists alone. The symbol " / " as used herein indicates that the related objects are in an "or" relationship, for example, A / B means either A or B.

[0038] The terms "first" and "second" in this specification and claims are used to distinguish different objects rather than to describe a specific order of objects. For example, "first response message" and "second response message" are used to distinguish different response messages rather than to describe a specific order of response messages.

[0039] In the description of this document, it should be understood that the terms "center", "longitudinal", "lateral", "length", "width", "thickness", "up", "down", "front", "back", "left", "right", "vertical", "horizontal", "top", "bottom", "inside", "outside", "circumferential", etc., indicating the orientation or position relationship, are based on the orientation or position relationship shown in the accompanying drawings, and are only for the convenience of describing this application and simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, be constructed and operate in a specific orientation.

[0040] In the embodiments of this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in the embodiments of this application should not be interpreted as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.

[0041] To facilitate understanding of the technical solutions of the embodiments of the present application, the terms involved in this document are explained below.

[0042] Language model: A probability distribution model of words in a natural language. Through the language model, we can determine which word is more likely to appear, or predict the next most likely word based on several previous context words.

[0043] Large Language Models (LLMs): These are deep learning models trained on massive amounts of text data. They are capable of generating natural language text or understanding the meaning of text. They consist of artificial neural networks with many parameters (typically billions of weights or more) and are trained on large amounts of unlabeled text using self-supervised or semi-supervised learning.

[0044] Attention mechanism: A technique used in artificial neural networks to mimic cognitive attention. This mechanism increases the weight of certain parts of the neural network's input data while decreasing the weight of others, thereby focusing the network's attention on the most important subset of the data. The importance of certain parts of the data depends on the context, and attention mechanisms can be trained using gradient descent.

[0045] Embedding: In natural language processing, it refers to the process of mapping a high-dimensional symbolic space (such as the one-hot encoding space of all words) into a low-dimensional continuous vector space. Each word or phrase is mapped to a vector in the real field, which can capture the semantic and grammatical relationships between symbols.

[0046] Loss Function: A mathematical function that measures the difference between the model's predicted value and the true value, used to evaluate the model's performance on a specific task. It quantifies the prediction error and provides a target for model optimization. Common loss functions include cross entropy loss (for classification tasks) and mean squared error loss (for regression tasks).

[0047] Gradient Descent: An optimization algorithm used to minimize a loss function by iteratively updating model parameters. It calculates the gradient (i.e., partial derivative) of the loss function with respect to the parameters and adjusts the parameters in the opposite direction of the gradient, thereby gradually reducing the model's prediction error. It is widely used in the training of machine learning and deep learning models.

[0048] Prompt Engineering: This refers to how to structure input text or questions so that the model can understand the task and generate appropriate outputs. It takes input data (such as text, images, audio, etc.) and converts it into a format that the model can understand (such as an embedding vector).

[0049] Hidden layers: Multiple hidden layers process and transform input data through self-attention mechanisms and feed-forward networks. Each layer calculates a new representation based on the output of the previous layer until the last layer generates the final output of the model.

[0050] Gemma: It is a series of high-performance large language models launched by Google. It is developed based on Gemin i technology and aims to provide developers and researchers with flexible, efficient and easy-to-deploy AI solutions.

[0051] Kimi, short for Kimi Chat or Kimi Intelligent Assistant, is a conversational AI assistant developed by Beijing Moonshot AI Technology Co., Ltd. (Moonshot AI), based on a proprietary model with hundreds of billions of parameters.

[0052] GPT (Generative Pre-trained Transformer): A generative pre-trained language model based on the Transformer architecture developed by OpenAI. It performs unsupervised learning on massive text data and can generate natural and fluent language text. It performs well in various natural language processing tasks such as conversation, writing, and translation, and is widely used in the field of artificial intelligence.

[0053] Routing: is the process of selecting a path in any network. Here, "program" refers to a set of programs executed on a computer.

[0054] Q&A Digital Assistant: A system designed to answer user questions, provide information, and perform specific tasks. It is typically based on natural language processing technology and can understand user questions and provide answers based on databases, knowledge graphs, or internet information.

[0055] Natural Language Processing (NLP): It is a branch of artificial intelligence that focuses on enabling computers to understand and generate human language, and to achieve effective communication between humans and machines by analyzing the structure and semantics of language.

[0056] Artificial Intelligence (AI) is a branch of computer science that aims to create systems that can simulate human intelligent behavior, including learning, reasoning, perception, language understanding and problem-solving capabilities.

[0057] Digital assistants are intelligent applications developed based on artificial intelligence (AI), natural language processing, and machine learning technologies. They can interact with users through voice or text, understand user intent, and perform tasks accordingly. They not only provide a personalized conversational experience but also learn from users' historical behavior and preferences to better meet their needs.

[0058] Cosine similarity: A measure of the degree of similarity between two vectors in terms of direction. It calculates the cosine of the angle between the two vectors. Values closer to 1 indicate greater similarity, and values closer to 0 indicate less correlation.

[0059] With the advancement of digital assistant and search technology, we are entering an era where large language models (LLMs) are used to assist in search and content output. Digital assistants often rely on user interaction to complete specific tasks or answer questions, and their core capabilities are realized through large language models (LLMs).

[0060] An embodiment of the present invention proposes a question-and-answer method. This method obtains a query request input by a user; the query request includes a question; based on the question, one or more sub-questions are determined; each of the one or more sub-questions is routed to one of at least one first model to obtain an answer to each sub-question; the first model is a question-and-answer model that matches the one or more sub-questions based on the user's historical satisfaction; and an answer is generated based on the answers returned by one or more first models. In this way, based on the user's historical satisfaction, the user's question is routed to the corresponding model to generate an answer that matches the user's profile.

[0061] In order to facilitate understanding of the method embodiments of the present application, its application scenarios are introduced. Figure 1 This is a schematic diagram of an application scenario provided by an embodiment of the present application. Figure 1As shown, the question-answering system architecture 100 includes, for example, a user terminal 110, a server 120, and a network 130. The user terminal 110 can be a mobile phone, a tablet computer (pad), a laptop computer, a desktop computer, or other device that can run a large language model. A pre-trained large language model is deployed on the user terminal 110 and / or the server 120, and the digital assistant question-answering system provides answers to users based on the pre-trained large language model. For example, the large language model is trained to a certain extent through collected corpus data to obtain a pre-trained large language model. Pre-training can be learning the basic laws and structures of a language through a large amount of unlabeled data. Help the model build a preliminary understanding of words, phrases, and sentences. At this stage, the task of the large language model is to learn basic language patterns and vocabulary representations from the text. For example, the open source large language model Gemma can be selected according to actual needs.

[0062] The question-answering method provided in the embodiment of the present application can be applied to the terminal device 110, or can be implemented jointly by the terminal device 110 and the server 120, and this application does not limit this. The large language model can be deployed on the server, and the user accesses it through the network 130. The server 120 can be a physical server, or a server cluster or distributed system composed of multiple physical servers, or a cloud server, etc. The network 130 can be a communication medium of various connection types that can provide a communication link between the terminal device 110 and the server, for example, it can be a wired communication link or a wireless communication link. The large language model can be a large language model based on a neural network (such as a GPT series model, a Gemma model, etc.) to achieve automatic understanding, generation and inference of text.

[0063] In an embodiment of the present application, after the user inputs data on the user terminal 110, the user terminal 110 can determine the question input by the user, and infer the input question through the large language model on the user terminal 110 to obtain an answer corresponding to the question input by the user.

[0064] Figure 2 Schematic diagram of the system framework for the question-answering method provided in the embodiment of the present application Figure 1 .like Figure 2 As shown, the digital assistant question-answering system 200 includes a routing model, a large model pool, and a feedback module. The routing model (hereinafter also referred to as the main model) is pre-trained and deployed on the user terminal device 110, for example. The routing model can be selected from, for example, the large language model Gemma. The number of hidden layers of the Gemma model varies from 18 layers (2B parameter model) to 46 layers (27B parameter model) depending on the scale of the model. The model type is selected according to actual needs. The routing model includes multiple modules, a pre-training module, a score prediction module, and a routing module.

[0065] The preprocessing module receives user-entered query requests, which include questions and multimodal data such as text, images, voice, and video. Through the prompting process, the user-entered question is broken down into multiple sub-questions, effectively segmenting and refining the key points of the question. This also reduces processing pressure on other modules in the model.

[0066] The input problem above is data entered by the user on the user terminal. For example, the input problem can be inputting data such as "Chang'e 6 technical difficulties" on the user terminal. The prompt engineering breaks down the user input problem into several sub-problems: "Retrograde orbit control solution", "Intelligent data acquisition solution", "Lunar far side takeoff and ascent solution", "Relay communication solution", and "Lunar far side landing obstacle avoidance solution".

[0067] For example, the input question, including multimodal information such as text and images, is converted into tokens. Each sub-question is broken down into multiple tokens. A token is the smallest processing unit of text data. For example, the token breakdown of sub-query 1, "Retrograde track control solution," is: ["retrograde," "track," "control," "solution," "solution"]. Each question (whether it is a single question or split into multiple sub-questions) is broken down into tokens. These tokens form the basis for the routing model to understand and generate the problem.

[0068] The user's input question is decomposed into several sub-questions, and the tokens of each sub-question are input into the score prediction module. The score prediction module is implemented based on the score prediction model built on the hidden layer of the routing model. The score prediction module constructs a training dataset based on the historical user feedback data collected by the feedback module and retrains based on the user's historical input questions and training dataset. For example, the historical feedback data is converted into a satisfaction score, for example, on a scale of 1-5, which is normalized to a value between 0-1.

[0069] The feedback module collects user feedback data, specifically historical user feedback from conversations with the digital assistant. This includes user feedback such as thumbs-up to indicate satisfaction with an answer, thumbs-down to indicate dissatisfaction with an answer, and follow-up questions to indicate a need for a more detailed or accurate answer.

[0070] The score prediction model infers each sub-question of the input question and calculates the predicted score of the answer generated by each sub-model in the large model pool for each sub-question. The score prediction module, for example, uses historical feedback data to fine-tune the score prediction model. For example, through self-supervised learning, the score prediction model learns to select a sub-model that is more consistent with the user profile to generate an answer. During the fine-tuning process, the score prediction model adjusts the model parameters based on user feedback data. Specifically, for example, the loss is calculated, the weights and parameters are adjusted through backpropagation, and this is achieved through an optimization algorithm (such as gradient descent) so that the parameters of the score prediction model are continuously updated during training. After fine-tuning, the score prediction model can select a sub-model that is more accurate and more consistent with the user profile to generate an answer when dealing with similar problems.

[0071] The large model pool includes several sub-models (first models), such as kimi, GPT, etc. For example, the user's input question is split into sub-questions 1 to sub-questions 5 in the preprocessing module. After the input question is split, the prediction score of sub-question 1 in sub-model A is 98 points, the prediction score of sub-input 1 in sub-model B is 80 points, and the prediction score of sub-input 1 in sub-model C is 60 points... The sub-model with the highest prediction score is selected as the target model, and it is judged that sub-question 1 is suitable for answering using sub-model A in the large model pool, and sub-model A is, for example, kimi. Similarly, sub-question 2 after the input question is split is suitable for answering using sub-model B in the large model pool, sub-question 3 after the input question is split is suitable for answering using sub-model C in the large model pool, and sub-input 4 after the input question is split is suitable for answering using sub-model A in the large model pool.

[0072] The routing module routes the sub-questions to the corresponding sub-model in the large model pool for answering based on the sub-model that is most suitable for answering each sub-question.

[0073] In one possible implementation, if the sub-model with the highest prediction score for the answer to the corresponding sub-question is unavailable, the sub-question can be routed to the sub-model with the second highest prediction score to generate an answer.

[0074] The embodiment of the present application does not limit the type of routing model selected and the type and number of sub-models in the large model pool. Figure 3 A flowchart of a question-and-answer method provided in this embodiment of the application Figure 1 .like Figure 3 As shown, a question-answering method provided in an embodiment of the present application includes the following steps S301 to S304. The question-answering method provided by the application can be applied to a user terminal or a cloud server.

[0075] Step S301: Obtain a query request input by a user; the query request includes a question.

[0076] In one possible implementation, before using the question-answering method provided in the embodiments of the present application, a routing model needs to be constructed and pre-trained. Figure 4 A schematic diagram of a process for pre-training a routing model is provided for an embodiment of the present application. Figure 4 As shown, the routing model (main model) pre-training method includes:

[0077] Step 401: Create a pre-training dataset.

[0078] Collect satisfaction data from the general question-answering and answer generation sub-models to create a pre-training dataset. General questions are questions and answers that are applicable to different scenarios and conversations. For example, pre-process the pre-training dataset, including cleaning, tokenization, and encoding. Set hyperparameters such as the learning rate, number of training rounds, and batch size.

[0079] Step 402: Select a main model and build a score prediction model based on the main model.

[0080] For example, the large language model Gemma is selected as the main model, and a score prediction model is built on its hidden layer.

[0081] Step 403: Fine-tune the main model based on historical user input questions.

[0082] The main model is fine-tuned using the pre-training data set and user historical satisfaction data in step 401. This embodiment of the present application does not impose any restrictions on this.

[0083] Step 404: Set the loss function and use the gradient descent method to minimize the loss function to complete the main model pre-training.

[0084] For example, during fine-tuning, a loss function is set and minimized using gradient descent. For example, the loss function is selected based on the task type. The gradient of the loss function with respect to the main model parameters is calculated using the pre-training dataset and historical user satisfaction scores. Gradient descent is used to update the main model parameters, reducing the loss function. Optimization is iterated until the loss function satisfies the requirements.

[0085] In one possible implementation, in step 404, in addition to the user's historical input questions, the comparison labels of different sub-models can also be added to fine-tune the routing model. The comparison labels of different sub-models are the several questions output to the user when the routing model is initialized, that is, when the user uses it for the first time, and the user feedback on these questions is collected. Specifically, Figure 5 A schematic diagram of a process for obtaining comparison labels of different sub-models when initializing a routing model provided in an embodiment of the present application. Figure 5 As shown, the main model initialization includes steps S501 to S505.

[0086] Step S501: The user accesses the digital assistant question-answering system for the first time.

[0087] For example, the user deploys the digital assistant question-answering system at the terminal 110. After opening the digital assistant question-answering system for the first time, the digital assistant question-answering system will ask a number of questions. In subsequent interactions, the questions may no longer be output to the user.

[0088] In step S502, the digital assistant question-answering system outputs a number of questions and lists the answers of each sub-model to the questions.

[0089] For example, the digital assistant system outputs 10 questions, and each question shows the answer of each sub-model in the large model pool to each question.

[0090] Step S503: The user ranks and scores the answers of each sub-model.

[0091] For example, the user ranks the answers to each question, and the sub-model with a higher ranking indicates that the user is more inclined to choose the answer given by the model.

[0092] Step S504: Send each question and the user's ranking score to the feedback module.

[0093] For example, the user ranks the sub-model answers corresponding to each question, and a comparison label is added to each sub-model.

[0094] In step S505 , the feedback module inputs the data into the training data queue of the score prediction model.

[0095] For example, the question and answer are encoded into vectors, the question vector and the answer vector are combined, the user's ranking is used as a supervision signal, a loss function is designed, and the loss function is minimized so that the predicted score ranking is consistent with the ranking given by the user, and the score prediction model parameters are updated according to the gradient of the loss function.

[0096] Step S506: Complete the routing model initialization.

[0097] In this way, when users first start using the digital assistant question-and-answer system, we can obtain user portraits, avoid the situation where the feedback module collects less user feedback data from the beginning, and give users personalized answers to improve user experience.

[0098] In one possible implementation, if a user does not answer a question during routing model initialization, this feedback data can be omitted. The feedback module continuously collects historical feedback data from users interacting with the digital assistant question-and-answer system, including feedback on likes, dislikes, and follow-up questions. This historical feedback data is normalized into a satisfaction score.

[0099] Step S302: Determine one or more sub-questions based on the question;

[0100] As mentioned above, the user input problem is decomposed into several sub-problems.

[0101] Step S303: route each of the one or more sub-questions to one of at least one first model to obtain an answer to each sub-question; the first model is a question-answering model that matches the one or more sub-questions based on the user's historical satisfaction.

[0102] In one possible implementation, based on historical user satisfaction, the score of each of the one or more sub-questions in each of the at least one first model is predicted; each of the one or more sub-questions is routed to the first model with the highest predicted score to obtain an answer to each sub-question.

[0103] In one possible implementation, a dataset is constructed using historical user input questions, identification of first models that generate answers to historical input questions, and historical user satisfaction; the dataset is placed in a training queue; retraining is performed based on the dataset; and a score of each of one or more sub-problems in each of at least one first model is predicted.

[0104] For example, the score prediction model is retrained based on the user's historical satisfaction. Table 1 shows the data in the retraining dataset.

[0105] Table 1: Dataset diagram for retraining

[0106]

[0107] User feedback is a direct evaluation of model-generated responses by users, reflecting their satisfaction. Through this feedback, the model can learn which responses satisfy and which dissatisfy users. If a user is satisfied with an answer, it indicates that the answer is likely accurate, useful, and meets their expectations. If a user is dissatisfied with an answer, it indicates that the answer does not meet their expectations. Through user feedback, the model can better understand user expectations and generate responses that better meet their needs.

[0108] For example, the score prediction model uses self-supervised learning to train historical user feedback data. The input data is the concatenation of the user question and the answer generated by the corresponding sub-model. The output target is user satisfaction. Using the gradient descent algorithm, the score prediction model parameters are updated based on the gradient calculated from the binary cross-entropy loss function to minimize the difference between the predicted value and the actual feedback. The binary cross-entropy loss function measures the difference between the score prediction model's predicted value (predicted user satisfaction) and the actual feedback. Gradient descent is an optimization algorithm that minimizes the loss function by calculating the gradient (i.e., derivative) of the loss function with respect to the model parameters and updating the parameters in the opposite direction of the gradient. The score prediction model generates a predicted value (predicted user satisfaction) based on the input (user question and answer). The binary cross-entropy loss function is then used to calculate the difference between the predicted value and the actual satisfaction. Backpropagation is used to calculate the gradient of the loss function with respect to the model parameters. Using the gradient descent algorithm, the model parameters are updated based on the calculated gradient, gradually reducing the loss function and bringing the model's predicted value closer to the actual satisfaction.

[0109] For example, the retrained data set is retrained in batches, divided into multiple small batches and added to the training queue. Each time the score prediction model processes only one batch of data (such as 64 samples), and the training of all data is completed through multiple iterations.

[0110] Step S304: Generate a response based on the answers returned by one or more first models.

[0111] In one possible implementation, the answers generated for each sub-question in the first model are summarized and sent to the user.

[0112] For example, the main model combines the responses from each sub-model and returns the final response to the user.

[0113] The embodiment of the present application satisfies the user's personalized preferences and avoids the templated nature of the answers by selecting different models based on the user's satisfaction. In addition, due to differences in training data, attention mechanisms, and contextual understanding capabilities, different large language models may have significant deviations in output results even if the same knowledge embedding is input. The embodiment of the present application sets up multiple first models and utilizes the differences in domain emphasis between the models to select a model that is more in line with the user's profile and the domain's best model to generate answers.

[0114] Figure 4 What is shown is only a basic embodiment of the method of the embodiment of the present invention. By performing certain optimization and expansion on this basis, other preferred embodiments of the method can be obtained.

[0115] Figure 6 Schematic diagram of the framework of the system for applying the question-answering method provided in the embodiment of the present application Figure 2 .like Figure 6 As shown, this embodiment optimizes the training process to a certain extent based on the previous embodiment.

[0116] Specifically, the routing model adds a similarity weighting module. This module is implemented based on the similarity weighting model built on the hidden layer of the routing model. It receives user input questions from the previous layer (preprocessing module), performs a database query on the user input questions, and passes the query results to the next layer (score prediction module).

[0117] The database stores historical user feedback data. For example, the database is a vector database, and the stored historical user feedback data includes the user's historical input questions, the corresponding sub-model's answers, and the satisfaction level. The user input questions are converted into vector form and stored in the database.

[0118] Convert the token sequence input by the preprocessing module into a vector. For example, the token sequence for subproblem 1, "Retrograde Orbit Control Solution," is: ["retrograde," "orbit," "control," "solution," "solution"], which is converted into a vector: "retrograde" is converted to [0.1, 0.3, ...], "orbit" is converted to [0.2, 0.3, ...], "control" is converted to [0.1, 0.4, ...], "solution" is converted to [-0.1, 0.3, ...], and "solution" is converted to [0.1, -0.3, ...]. It should be noted that each token is mapped to a vector of fixed dimension. For example, if the embedding dimension is 128, then the embedding vector for each token is a 128-dimensional vector.

[0119] The similarity weighting module compares the vector of each sub-question with the vectors stored in the database. For example, based on the selected routing model architecture, the vectors of each sub-question can be combined into an overall representation, and the cosine similarity between the vectors of the sub-question and the vectors stored in the database is calculated. If the similarity between the vector of the sub-question and the vector stored in the database is lower than the preset threshold, it is judged that there are no similar vectors, that is, no similar questions raised by users in the past can be found in the database. For example, the threshold similarity between vectors is set to 0.7. If it is higher than 0.7, it is judged that similar questions exist in the database. If it is lower than 0.7, it is judged that no similar questions exist in the database.

[0120] For example, the similarity weighting module searches the database for a historical question with a similarity of 0.95 to the current sub-question. It further finds that the sub-model that generated the answer to this historical question is Model A, and that the user feedback indicates a satisfaction score of 5. The current sub-question, the identifier of each sub-model with a similarity greater than a preset value, and its corresponding weight are input into the score prediction module.

[0121] For example, the weight of sub-model A uses the linear weighted fusion method, and the weight calculation formula is formula (1):

[0122] Weight = σ·s+(1-σ)·R(1)

[0123] Here, σ is a balancing parameter that can be adjusted. For example, σ = 0.5, s is the normalized similarity, for example, 0.95, and R is the normalized historical satisfaction score. For example, R is the normalized value of 1 for a 5-point satisfaction score. Similarly, a weight is calculated for each sub-model whose similarity exceeds the preset value.

[0124] If a sub-question has similar historical answers, the score prediction module predicts the answer scores for each sub-model in the larger model based on the input sub-question and the weights of the sub-models that answered similar historical questions. For example, sub-model A has a higher weight, so it is more likely that the prediction score for this sub-question will be higher than the prediction scores of other sub-models.

[0125] For example, by using weights as reference prompts, the score prediction model can more accurately identify user profiles and required knowledge areas.

[0126] When there is no historical similar question for the sub-problem, the score prediction module predicts the score of the answer of each sub-model in the large model based on the input sub-problem.

[0127] Finally, the routing module distributes the user's sub-question to the sub-model with the highest prediction score to generate an answer. In other words, each sub-question in the current user's question undergoes the same processing, and finally the sub-models involved in answering the current user's sub-question aggregate their generated answers and output them to the user.

[0128] Figure 7 A flowchart of a question-and-answer method provided in this embodiment of the application Figure 2 .like Figure 7 As shown, a question-answering method provided in an embodiment of the present application includes the following steps S701 to S704. The question-answering method provided in the application can be deployed in a user terminal or a cloud server.

[0129] Step S701: Obtain a query request input by a user; the query request includes a question.

[0130] Please refer to step 301 for details, which will not be repeated here.

[0131] Step S702: Determine one or more sub-questions based on the question.

[0132] Please refer to step 301 for details, which will not be described again here.

[0133] Step S703: Compare the similarity between the user question and the user's historical questions.

[0134] Step S704: Select user target history input questions whose similarity meets a preset value, and convert the user's satisfaction with the answer to the target history input question into the weight corresponding to the first model; the first model is the first model for generating the target history input question.

[0135] By querying similar questions raised by the user in the past and the feedback data of the first model that answered the question in the past, it is possible to determine whether the user is satisfied with the historical answer. Based on the satisfaction information, a weight is assigned to the first model that answered the question in the past. If the satisfaction information indicates that the user is relatively satisfied with the historical answer, a higher weight is assigned to the first model, and the weight calculation is as described above, thereby improving the prediction score of the sub-model in the score prediction module. If the satisfaction information indicates that the user is not satisfied with the historical answer, a lower weight is assigned to the sub-model, as described in the relevant description of formula (1) above, thereby reducing the prediction score of the sub-model in the score prediction module. It should be noted that if the similarity between the historical input question and the current sub-question is lower than the preset value, the weight parameter is not returned to the score prediction module. If the similarity between multiple historical input questions and the current sub-question is higher than the preset value, the weight of the sub-model that generates the answer to each historical input question is calculated separately, and the weight is input to the score prediction module.

[0136] Step S705: Predict the score of each sub-problem of the one or more sub-problems in each model of the at least one first model based on the weight.

[0137] Step S706: Route each of the one or more sub-questions to one of at least one first model to obtain an answer to each sub-question; the first model is a question-answering model that matches the one or more sub-questions based on the user's historical satisfaction.

[0138] Step S705: Generate a response based on the answers returned by one or more first models.

[0139] The following is a specific example to illustrate the embodiment of the present application: User input data: "What kind of company is xxx?" The user input question is the data entered by the user on the user terminal.

[0140] Through prompt engineering, this question is converted into several sub-questions (for example, into "About XX Company," "XX Company's latest products and technological advancements," "Relationship with XX Company's products," "Market share," and "Partnerships," etc.). Each sub-question is also broken down into multiple tokens. For example, after breaking down, Sub-question 1: "About XX Company?" is tokenized as ["xx," "Company," "Introduction," "?"]; Sub-question 2: "What are XX Company's latest products and technological advancements?" is tokenized as ["XX Company," "of," "latest," "products," "and," "technological advancements," "what," "?"].

[0141] Similarly, the words in questions 3, 4, and 5 were converted to tokens. Sub-question 3: "What is XX Company's competitive position and market share in the global market?" Sub-question 4: "What is the relationship between XX Company and XXX Company's X86 server business?" Sub-question 5: "e) What are XX Company's major partners and customer cases?"

[0142] After decomposing the user question, several sub-questions are obtained. The token of each sub-question is input into the similarity weighting module, where the token is converted into a vector. For example, sub-question 1 is converted into vector 1. Vector 1 is compared with the vector corresponding to the user's historical input question in the database. By querying the vectors of historical input questions in the database, it is found that the similarity between vector 1 corresponding to sub-question 1 and the vector of a certain historical input question is greater than 0.7. This means that the user has asked sub-question 1 in the past. The satisfaction score of this question is 5 points. The satisfaction score and similarity of this historical question are converted into weights according to formula (1). Sub-questions 1 to 5 are checked according to the above steps to see if there are any historically similar questions.

[0143] Sub-question 1 and the weights of the first model of the historical answers to sub-question 1, sub-question 2, sub-question 3, sub-question 4, and sub-question 5 are input into the score prediction module.

[0144] The score prediction module scores each sub-problem using each sub-model in the large model pool. Sub-problem 1 is predicted and scored using sub-models 1, 2, through n in the large model pool. For example, if the similarity prediction module finds that the similarity of historical similar problems for sub-model 1 in sub-models 1 and 2 is higher than a preset value, and calculates weight 1 for sub-model 1 and weight 2 for sub-model 2, and weight 1 is higher than weight 2, then in the score prediction module, there is a high probability that sub-model 1 will have a higher predicted score than sub-model 2, and will also be higher than the other sub-models.

[0145] For example, sub-question 1 is predicted to have a score of 80 in sub-model 1, 70 in sub-model 2, 75 in sub-model 3, and 50 in sub-model n. This indicates that sub-question 1 is suitable for generating an answer in sub-model 1. Similarly, sub-questions 2 through 5 are predicted to have scores in sub-models 1 through n.

[0146] The score prediction module sends the predicted scores for sub-questions 1 through 5 from each sub-model to the routing module. The routing module selects the sub-model with the highest predicted score for each sub-question and routes the sub-question to that sub-model. For example, the routing module routes sub-question 1 to the answer to sub-question 1, sub-question 2 to the answer to sub-model 3, sub-question 3 to the answer to sub-model 2, sub-question 4 to the answer to sub-model 5, and sub-question 5 to the answer to sub-model 4. Finally, the sub-model outputs for each sub-question are aggregated and returned to the user terminal.

[0147] This solves the problem in related technologies where a large language model is used to generate answers to user queries, but the large language model is limited by its own training data and may not be able to obtain satisfactory answers to users.

[0148] Based on the same concept as the embodiment of the method of the present invention, the embodiment of the present invention also provides a question-and-answer device. The question-and-answer device includes several modules, each module is used to execute each step in the test method provided by the embodiment of the present invention, and the division of the modules is not limited here. Those skilled in the art can clearly understand that in actual applications, the various steps in the test method provided by the embodiment of the present invention can be assigned to different modules as needed, that is, the internal structure of the device is divided into different modules to complete all or part of the functions described above. The modules in the embodiment can be integrated into one processing unit, or each unit can exist physically alone, or two or more modules can be integrated into one unit, and the above-mentioned integrated unit can be implemented in the form of hardware or in the form of a software functional unit. In addition, the specific names of the modules are only for the convenience of distinguishing each other, and are not used to limit the scope of protection of the present invention. The specific working process of the modules in the above-mentioned device can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here.

[0149] For example, the question-answering device is used to execute the question-answering method provided by the embodiment of the present invention. Figure 8 This is a schematic diagram of the structure of the question-answering device provided by an embodiment of the present invention. Figure 8As shown, the question-answering device 800 provided by an embodiment of the present invention includes: an acquisition module for acquiring a query request input by a user; the query request includes a question; a determination module for determining one or more sub-questions based on the question; a routing module for respectively routing each of the one or more sub-questions to one of at least one first model to obtain an answer to each sub-question; the first model is a question-answering model that matches one or more sub-questions based on the user's historical satisfaction; and an answer module for generating an answer based on the answer returned by one or more first models in the first model.

[0150] Based on the same concept as the embodiment of the method of the present application, the embodiment of the present application also provides a computing device, such as Figure 9 As shown, the computing device provided in the embodiment of the present application includes a processor 901 , a memory 902 and a communication interface 903 .

[0151] In the embodiment of the present application, the processor 901 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or any conventional processor, etc.

[0152] Memory 902 may include a large-capacity memory for data or instructions, thereby providing storage space, which stores the operating system and executable program code of the network device, and may include but is not limited to: Windows system (an operating system), Linux system (an operating system), Hongmeng system (an operating system), etc., which are not limited here.

[0153] By way of example and not limitation, the memory 902 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a universal serial bus (USB) drive, or a combination of two or more of these. Where appropriate, the memory 902 may include removable or non-removable (or fixed) media. Where appropriate, the memory 902 may be located inside or outside the integrated gateway disaster recovery device. In a specific embodiment, the memory 902 is a non-volatile solid-state memory.

[0154] The memory may include read-only memory (ROM), random access memory (RAM), magnetic disk storage media devices, optical storage media devices, flash memory devices, electrical, optical or other physical / tangible memory storage devices. Thus, generally, the memory may include one or more tangible (non-transitory) computer-readable storage media (e.g., memory devices) encoded with software that may include computer-executable instructions, and when the software is executed (e.g., by one or more processors), it is operable to perform the operations described with reference to the methods according to the present application.

[0155] For example, the memory 902 may store a computer program, and when the processor 901 executes the computer program, the steps in the above-mentioned method embodiment are implemented. Alternatively, when the processor 801 executes the computer program, the functions of the modules in the above-mentioned device embodiment are implemented. For example, the computer program can be divided into one or more modules / units, and the one or more modules / units can be a series of computer program instruction segments that can perform specific functions. The one or more modules / units are stored in the memory 902 and executed by the processor 901 to complete the present application. For example, the computer program can be divided into multiple modules, such as the modules in the device described above.

[0156] The communication interface 903 is used to send and receive data, for example, to send data processed by the processor 901 to other computing devices, or to receive data sent by other computing devices.

[0157] Of course, to simplify, Figure 9 Only some of the components of the computing device 900 related to the present application are shown, and components such as buses, input / output interfaces, etc. are omitted. In addition, depending on the specific application, the computing device 900 may also include any other appropriate components. In addition, the computing device may be a network device such as a desktop computer, a notebook, a handheld computer, and a cloud server. Those skilled in the art will understand that Figure 9 The computing device 900 is merely an example and does not limit the computing device. The computing device may include more or fewer components than shown, or a combination of certain components or different components. For example, the computing device may also include input devices, output devices, network access devices, buses, etc. For example, the input device may be a microphone array, a keyboard, a mouse, etc. For example, the output device may output various information to the outside world, and may include, for example, a display, a speaker, a printer, a communication network and its connected remote output devices, etc.

[0158] Based on the method in the above embodiment, an embodiment of the present application provides a computer-readable storage medium, which stores a computer program. When the computer program runs on a processor, the processor executes the method in the above embodiment.

[0159] Based on the method in the above embodiment, an embodiment of the present application provides a computer program product, characterized in that when the computer program product runs on a processor, the processor executes the method in the above embodiment.

[0160] It should be understood that each step of the above method embodiment can be completed by a hardware-based logic circuit or a software-based instruction in a processor.

[0161] It is understood that the order of execution of the steps in the above embodiments does not necessarily imply a specific order of execution. The order of execution of each process should be determined by its function and inherent logic, and should not constitute any limitation on the implementation process of the embodiments of the present application. In addition, in some possible implementations, the steps in the above embodiments can be selectively executed according to actual circumstances, and can be executed partially or completely, which is not limited here.

[0162] It is understood that the processor in the embodiments of the present application may be a central processing unit (CPU), or may be other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field programmable gate arrays (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.

[0163] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described or recorded in detail in a certain embodiment, reference can be made to the relevant description of other embodiments.

[0164] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present invention.

[0165] The basic principles of the present invention have been described above in conjunction with specific embodiments. However, it should be noted that the advantages, strengths, and effects mentioned in the present invention are merely illustrative and not restrictive, and it should not be assumed that these advantages, strengths, and effects are required of each embodiment of the present disclosure. In addition, the specific details disclosed above are merely illustrative and facilitating understanding, and are not restrictive. The above details do not limit the present disclosure to necessarily being implemented using the above specific details.

[0166] The block diagrams of the devices, devices, equipment, and systems involved in this disclosure are merely illustrative examples and are not intended to require or imply that they must be connected, arranged, or configured in the manner shown in the block diagrams. As will be appreciated by those skilled in the art, these devices, devices, equipment, and systems can be connected, arranged, or configured in any manner. Words such as "include," "comprise," "have," and the like are open-ended words, meaning "including but not limited to," and can be used interchangeably therewith. The words "or" and "and" used herein refer to the words "and / or" and can be used interchangeably therewith, unless the context clearly indicates otherwise. The word "such as" used herein refers to the phrase "such as but not limited to," and can be used interchangeably therewith.

[0167] It should also be noted that in the apparatus, device, and method of the present disclosure, each component or each step can be decomposed and / or recombined. Such decomposition and / or recombination should be regarded as equivalent solutions of the present disclosure.

[0168] The above description has been provided for the purpose of illustration and description. In addition, this description is not intended to limit the embodiments of the present disclosure to the forms disclosed herein. Although a number of example aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, alterations, additions, and sub-combinations thereof.

[0169] It should be understood that the various numerical numbers involved in the embodiments of the present invention are only used for the convenience of description and are not intended to limit the scope of the embodiments of the present invention.

Claims

1. A question-answering method, characterized in that: The method comprises: Obtaining a query request input by a user; the query request includes a question; Based on the problem, determine one or more sub-problems; Routing each of the one or more sub-questions to one of at least one first model to obtain an answer to each sub-question; the first model is a question-answering model matched to the one or more sub-questions based on the user's historical satisfaction; Generate a response based on the answers returned by one or more of the first models.

2. The method according to claim 1, characterized in that The method further comprises: predicting a score of each of the one or more sub-problems in each of the at least one first model based on historical user satisfaction; Each of the one or more sub-questions is routed to a first model with the highest prediction score to obtain an answer to each sub-question.

3. The method according to claim 2, characterized in that The method further comprises: Compare the similarity between the user's input question and the user's historical input questions; A target history input question whose similarity meets a preset value is selected, and the user's satisfaction with the answer to the target history input question is converted into a weight corresponding to the first model; the first model is the first model for generating the target history input question. Based on the weights, a score of each of the one or more sub-problems in each of the at least one first model is predicted.

4. The method according to claim 2, characterized in that The method further comprises: Constructing a dataset using the user's historical input questions, the first model identifier for generating answers corresponding to the historical input questions, and the user's historical satisfaction; Put the data set into the training queue; Retraining based on the dataset; A score of each of the one or more subproblems in each of the at least one first model is predicted.

5. The method according to claim 3, characterized in that The method further comprises: The weight is calculated according to the weight formula σ·s+(1-σ)·R; where σ is the balance parameter, s is the normalized similarity, and R is the normalized satisfaction score.

6. The method according to claim 1, characterized in that The method further comprises: Summarize the answers generated by the first model for each sub-question and send them to the user.

7. The method according to claim 3, characterized in that Compare the similarity between the user's input question and the user's historical input questions, including: The user input question is converted into a vector, and cosine similarity calculation is performed on the vector corresponding to the user's historical input question, and the calculation result of the similarity calculation is compared with a preset value; wherein the user's historical input question is converted into a vector and stored.

8. The method according to any one of claims 1 to 7, characterized in that The user satisfaction also includes: Outputting a plurality of questions and answers generated by the first model based on the plurality of questions to a user; Collecting the user's answers to the question; the answers are the ranking of the user's answers to the sub-models; The rankings are converted into satisfaction scores.

9. A computing device, characterized in that comprising a processor and a memory; wherein, The memory is used to store programs; The processor is configured to execute the program stored in the memory. When the program stored in the memory is executed, the method according to any one of claims 1 to 8 is performed.

10. A computer program product comprising instructions, characterized in that When the instructions are executed by a computing device, the computing device is caused to perform the method according to any one of claims 1 to 8.