Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR USER INTEREST MODELLING
Document Type and Number:
WIPO Patent Application WO/2002/008989
Kind Code:
A1
Abstract:
A method and a computer arrangement provided with at least a processor and memory for storing information, the processor being arranged to perform the following functions: receiving information from a client, establishing a general profile of said client based on said information and storing said general profile in said memory; establishing a plurality of profile extensions based on said information and storing said profile extensions in said memory, each of said profile extensions being associated with a distinct skill of said processor, a skill being defined as an action to be taken by said processor in conjunction with a query received from said client.

Inventors:
MASTBOOM AIKO (NL)
WOLTERS LEONARD JAN (NL)
SMITH MATTHEW LONGSHORE (NL)
KUZ IHOR THEODORE (NL)
VAN DE WIJGERD JOOST (NL)
Application Number:
PCT/NL2000/000515
Publication Date:
January 31, 2002
Filing Date:
July 21, 2000
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SMARTHAVEN B V (NL)
MASTBOOM AIKO (NL)
WOLTERS LEONARD JAN (NL)
SMITH MATTHEW LONGSHORE (NL)
KUZ IHOR THEODORE (NL)
WIJGERD JOOST VAN DE (NL)
International Classes:
G06Q30/00; (IPC1-7): G06F17/60
Foreign References:
US5303330A1994-04-12
US6009418A1999-12-28
Other References:
CRESTANI F ET AL: "Searching the web by constrained spreading activation", INFORMATION PROCESSING & MANAGEMENT,GB,ELSEVIER, BARKING, vol. 36, no. 4, July 2000 (2000-07-01), pages 585 - 605, XP004195725, ISSN: 0306-4573
O'RIORDAN C O ET AL: "An agent-based system for intelligent collaborative filtering", COOPERATIVE INFORMATION AGENTS III. THIRD INTERNATIONAL WORKSHOP, CIA'99. PROCEEDINGS (LECTURE NOTES IN ARTIFICIAL INTELLIGENCE 1652), PROCEEDINGS OF CIA-99 - THIRD INTERNATIONAL WORKSHOP ON COOPERATIVE INFORMATION AGENTS, UPPSALA, SWEDEN, 31 JULY-2, 1999, Berlin, Germany, Springer-Verlag, Germany, pages 125 - 136, XP002172983, ISBN: 3-540-66325-8
PEI-MIN CHEN ET AL: "A personalized information retrieval system", COMPUTATIONAL INTELLIGENCE FOR MODELLING, CONTROL AND AUTOMATION. INTELLIGENT IMAGE PROCESSING, DATA ANALYSIS AND INFORMATION RETRIEVAL (CONCURRENT SYSTEMS ENGINEERING SERIES VOL.56), COMPUTATIONAL INTELLIGENCE FOR MODELLING, CONTROL AND AUTOMATION., 1999, Amsterdam, Netherlands, IOS Press, Netherlands, pages 247 - 253, XP002172984, ISBN: 90-5199-475-3
Attorney, Agent or Firm:
Jorritsma, Ruurd (Scheveningseweg 82 P.O. Box 29720, LS The Hague, NL)
Download PDF:
Claims:
Claims
1. A computer arrangement provided with at least a processor and memory for storing information, the processor being arranged to perform the following functions : receiving information from a client; establishing a general profile of said client based on said information and storing said general profile in said memory; establishing a plurality of profile extensions based on said information and storing said profile extensions in said memory, each of said profile extensions being associated with a distinct skill of said processor, a skill being defined as an action to be taken by said processor in conjunction with a query received from said client; said establishing of said general profile being based upon interaction with said plurality of profile extensions and their associated skills.
2. The computer arrangement according to claim 1, wherein the processor is arranged to perform the following functions: receiving a query from a client; establishing a query profile from said query, said general profile and a profile extension selected from said plurality of profile extensions based on a skill related to said query.
3. The computer arrangement according to claim 2, wherein the processor is arranged to perform the following function: * establishing said query profile by using a spreading activation technique.
4. The computer arrangement according to claim 2 or 3, wherein the processor is arranged to perform the following function: carrying out at least one action as defined by said query using at least one of the following sources: a data source, a user profile of another client comprising a general profile and all profile extensions of said other client, and said query profile.
5. The computer arrangement according to claim 4, wherein the processor is arranged to perform the following function: presenting results of said at least one action to the client.
6. The computer arrangement according to claim 5, wherein the processor is arranged to perform the following function: receiving feedback from said client, the feedback being related to said results; adjusting said general profile based on said feedback in accordance with predetermined rules.
7. The computer arrangement according to any of the preceding claims, wherein the general profile is implemented as a conceptual network with nodes and links between said nodes, each node having an adjustable node weight and each link having an adjustable link weight.
8. The computer arrangement according to any of the preceding claims, wherein each profile extension is implemented as a conceptual network with nodes and links between said nodes, each node having an adjustable node weight and each link having an adjustable link weight.
9. The computer arrangement according to claim 8, wherein each profile extension comprises one or more attributes, each attribute containing information and being associated with a node within one of said plurality of profile extensions or a node within said general profile.
10. The computer arrangement according to claims 7 or 8, wherein said node weights are automatically decreasing over time in accordance with a decay function per node.
11. A method to be carried out by a computer arrangement comprising a processor and a memory for storing information, the method comprising the following steps: receiving information from a client; establishing a general profile of said client based on said information and storing said general profile in said memory; establishing a plurality of profile extensions based on said information and storing said profile extensions in said memory, each of said profile extensions being associated with a distinct skill of said processor, a skill being defined as an action to be taken by said processor in conjunction with a query received from said client; said establishing of said general profile being based upon interaction with said plurality of profile extensions and their associated skills.
12. The method according to claim 11, wherein the method comprises the following steps: . receiving a query from a client; establishing a query profile from said query, said general profile and a profile extension selected from said plurality of profile extensions based on a skill related to said query.
13. The method according to claim 12, wherein the method comprises the following step: 'establishing said query profile by using a spreading activation technique.
14. The method according to claim 12 or 13, wherein the method comprises the following step: carrying out at least one action as defined by said query using at least one of the following sources: a data source, a user profile of another client comprising a general profile and all profile extensions of said other client, and said query profile.
15. The method according to claim 14, wherein the method comprises the following step: * presenting results of said at least one action to the client.
16. The method according to claim 15, wherein the method comprises the following steps: receiving feedback from said client, the feedback being related to said results; adjusting said general profile based on said feedback in accordance with predetermined rules.
17. A computer program product to be loaded by a computer arrangement provided with at least a processor and memory for storing information, the computer program product, after being loaded, providing the processor with the capacity to perform the following functions: receiving information from a client; establishing a general profile of said client based on said information and storing said general profile in said memory; establishing a plurality of profile extensions based on said information and storing said profile extensions in said memory, each of said profile extensions being associated with a distinct skill of said processor, a skill being defined as an action to be taken by said processor in conjunction with a query received from said client; said establishing of said general profile being based upon interaction with said plurality of profile extensions and their associated skills.
18. The computer program product according to claim 17, wherein the computer program product is arranged to let the processor carry out the following functions : receiving a query from a client; establishing a query profile from said query, said general profile and a profile extension selected from said plurality of profile extensions based on a skill related to said query.
19. The computer program product according to claim 18, wherein the computer program product is arranged to let the processor carry out the following function: * establishing said query profile by using a spreading activation technique.
20. The computer program product according to claim 17 or 18, wherein the computer program product is arranged to let the processor carry out the following function : carrying out at least one action as defined by said query using at least one of the following sources: a data source, a user profile of another client comprising a general profile and all profile extensions of said other client, and said query profile.
21. The computer program product according to claim 20, wherein the computer program product is arranged to let the processor carry out the following function : * presenting results of said at least one action to the client.
22. The computer program product according to claim 21, wherein the computer program product is arranged to let the processor carry out the following function : receiving feedback from said client, the feedback being related to said results; adjusting said general profile based on said feedback in accordance with predetermined rules.
23. A data carrier provided with a computer program product according to any of the claims 17 through 22.
Description:
Method and apparatus for user interest modelling BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an improved method and/or system for modelling the interests of a user, forming a profile of the user, for use in personalization in the information domain.

2. Related Art The Internet is exponentially increasing in size with the number of users who "surf'and the number of sites appearing that provide information or services. The Internet can be viewed as a gargantuan store of information, and finding relevant information is analogous to the needle and the haystack problem. This problem is most easily seen in the domain of search sites that exist to enable Internet users to input keywords and search for information. Typically, most of the information that is located by the various search engines is not what the user requires. Many other domains of information selection, such as television show or product selection, suffer the same problem. The problem really boils down to the fact that a person seeking information is a complex and unique individual, and the information they seek is just as complex and unique, and there exists a huge void or bottleneck that must be traversed to bring the two together.

Many techniques have been developed that attempt to bridge the gap between user and the information they seek. On the user side, techniques exist that model a users interests, which compose a'user profile'. A profile is typically used as a foundation for conducting personalized information searches. The present invention relates to an improved method of modelling users interests.

SUMMARY OF THE INVENTION The present invention relates to an improved method and/or system for modelling the interests of a user, for usage with information processing apparatus. The primary embodiment of such an apparatus is a system for conducting personalized Internet

queries for information. In its different embodiments as defined by the appended claims, this invention provides a solution to the User Modelling problem that effectively solves a number of problems associated with existing methods of User Modelling by introducing a novel user profile architecture that provides effective User Modelling across a theoretically infinite domain of information processing Skills. This invention is capable of adapting and learning user interests over both general and specific domains ; representing user interests in a semantic manner; providing information specific to a certain domain yet remaining pertinent to the users interest ; and modelling short term and long term interests.

It is important to be able to accurately model changing user interests over time.

To do so, in one embodiment the invention divides interests into two categories: short- term and long-term interests. Short-term interests are temporary interests. These temporary interests should decay after a while, because the user is not interested in a subject any more. These interests are not so very important, because they are not generally very personal. An example is researching topics or news. For a short period, a user is interested in these topics, but after a while, these interests may disappear.

Long-term interests are clearly interests that persist in the mind of the user over a longer period. These interests should exist in a profile all the time. These interests are of great importance, because they are very personal. Examples are hobbies or life styles.

It is important that similar profiles are cluster-able (capable of being programmatically grouped), such that a system making use of the invention may perform collaborative filtering. In addition, it is important that similar concepts across languages are also considered similar. Additionally, representations of the comparable fields of concepts should be amenable to comparison. The present invention addresses the aforementioned areas in its different embodiments.

The User Modelling technique in the present invention is accomplished through discrete interaction cycles between the client and their user profile (UP). The client may be a user or an apparatus like a computer. An interaction cycle begins with the generation of a query (a request for something to be done, found... etc.) and ends in the client providing feedback upon the results that were provided to the query. This process is completed in a highly personalized manner, wherein the original query is interpreted, and results are found according to the client's personal user profile. The

UP is able to learn and adapt to changing users interests over time by adjusting its internal representation, or model, of the client, as per the feedback. In the process, the UP builds a personalized semantic representation of the client's'world', allowing with each query/result iteration, the UP to better'understand'each query and provide the best most personalized results possible.

Furthermore, the user profile is then able to proactively create queries that it believes will most interest the client, and results are presented accordingly. Another aspect is that as the user profile grows over time, it becomes less and less dependent upon the data service for content. A data service may be an Internet search engine, or a database of product information, or any information source.

Five main components may provide the intelligence and constitute the user profile invention. The first of the components is a general profile (GP). A GP is the base-set of learned personalized knowledge about a client. The GP can learn through all interactions it has with the client. The GP therefore contains general information over a potentially huge domain of potential subjects. The GP is a Conceptual Network.

This is a combination and variation of a Semantic Network and Neural Network algorithms. This Conceptual Network contains concepts, and links between concepts.

Concepts are the internal representation of a concept in the information domain, while links represent personalized semantic relationship between the concepts.

The second component is termed the profile extension (PE). If the Profiling system were a brain, than the profile extensions would constitute the various modular components that make up the cerebral cortex. This is the higher level reasoning that first interprets the sensed information (user queries) and interprets them appropriately per the current information processing skill. Highly domain specific (read: skill specific) information is stored in the PE, in the form of attributes, with or without link associates to concepts in the GP.

The third component is the user profile (UP). When a skill (corresponding to an information processing task or duty) has been selected, the appropriate PE is'docked' to the UP, forming a conceptually seamless, larger UP. This new UP now has the ability to take a user query and interpret as well as expand upon it appropriately.

The fourth component is the query profile (QP): a condensed, highly informative result of the interaction between a client Query and the UP. It is therefore, content- wise, a combination of components from the GP and the PE.

The fifth component is the data service. This service provides the content that fills a user profile. However, as time progresses and more information is stored within a profile, reliance on the data service is minimized. Whole cycles between a client and the user profile may occur completely without the presence of a data service.

The final component is the logic module. This is the communication layer between the client and the user profile. The logic module contains information for each skill and the necessary logic to translate the results of the interactions and transforming it into a format that is useful to the client.

BRIEF DESCRIPTION OF THE DRAWINGS The invention will now be explained with reference to some drawings which are only intended to illustrate and not to limit the scope of protection of the present invention.

FIG. 1 is a block diagram illustrating the general flow of information during a complete interaction cycle with a client where the results are obtained from an outside data source.

FIG. 2 is a block diagram illustrating the flow of information during a proactive query interaction.

FIG. 3 is a block diagram illustrating the flow of information during a complete interaction cycle where the results are obtained from within the user profile itself and not from an outside Data Source.

FIG. 4 is a block diagram illustrating the role of the query profile in an interaction cycle as detailed in FIG. 3.

FIG. 5 is a block diagram illustrating the role of the query profile in an interaction cycle as detailed in FIG. 1.

FIG. 6 is an overview of a general profile.

FIG. 7 shows a general profile together with a profile extension.

FIG. 8 shows interconnected nodes with weights.

FIG. 9 shows a basic flow chart of query expansion.

FIG. 10 shows a computer arrangement for carrying out the invention.

DETAILED DESCRIPTION OF THE INVENTION

The main embodiments of this invention are the learning and personalization algorithms. This consists of two major efforts: 1) extracting learned relevant info given a query, and 2) learning and adjusting given feedback so that the next query/result iteration will be improved.

The present invention allows for the learning and extraction of personalized knowledge in several ways. Each way requires a query, results presented to the client, and feedback, whether explicit or implicit, from the client. The main path is through the complete interaction cycle as illustrated in Fig. 1.

In Fig. 1, a client 101 poses a query to the logic module (a) that is interpreted by a logic module 103 and presented to a user profile 104 (b). The user profile 104 comprises a general profile and a plurality of skill dependent profile extensions. The user profile 104 returns an expanded query profile to the logic module (c) that is presented to a data service 102 (d). results are retrieved from the data service 102 based upon the information in the query profile and presented through the logic module 103 to the client 101 (e, f). Feedback is given by the client over the results and the appropriate changes are made to the user profile (g, h).

Also possible is a proactive approach taken by the profile, shown in Fig. 2. Here, client 201 does not initiate the query but rather user profile 204 does that itself. The user profile 204 proactively generates a query in the form of an expanded query profile and presents it to logic module 203 (a). results are retrieved from data service 202 based upon the information in the query profile and presented through the logic module 203 to the client 201 (b-d). Feedback is given by client 201 over the results and the appropriate changes are made to the user profile 204 (e, f).

The user profile can proactively create a query profile (Fig. 2, arrow a) based upon the current profile configuration and therefore obtain results (Fig. 2, arrow c) that can be presented to the client (Fig. 2, arrow d) for evaluation (Fig. 2, arrow e). A third technique for learning is the direct evaluation of the knowledge contained within the user profile, as illustrated in Fig. 3, and in greater detail in Fig. 4.

In Fig. 3, a client 301 poses a query to logic module 302 (a) that is interpreted query and presented to user profile 303 (b). The user profile 303 returns an expanded query profile that potentially contains relevant results to the logic module 302 (c). The results are extracted and then appropriately presented to the client 301 (d). Feedback is

given by the client 301 over the results and the appropriate changes are made to the user profile 303 (e, f).

In Fig. 4, a client 401 poses a query to logic module 402 (a) which is interpreted and presented to user profile 403 (b). The user profile 403 returns an expanded query profile 404, containing results, to the logic module 402 (c). results are extracted from the query profile 404 (d), presented to the logic module 402 (e) who presents them to the client (f). Feedback is then given over the results (g) and incorporated back into the query profile 404 (g-i). The query profile 404 is then merged back into he user profile 403 (j), completing the cycle.

This cycle, of course like all cycles, can be initiated either proactively or through a client query. Information built-up within the profile is stored in the form of results 404 that can then be interpreted by the logic module 103 and appropriately presented to the user. Thus, in this scenario, the query profile provides all of the content, bypassing the data service, passing along results to the client. Then, an even more direct form of feedback is possible (Fig. 4, arrow e-g), directly upon the structure of the query profile.

The role of the user profile, and a detailed description of it's components, where the core of this learning and extraction take place, can best be explained in terms of an individual cycle, or one client-profile interaction. These interaction cycles are always initiated with a query, and end with user provided feedback on the results. While these cycles can take on many different instantiations as discussed above, for the sake of completeness, the cycle as illustrated in Fig. 1 and in more detail in Fig. 5 will be described.

In Fig. 5, a client 501 poses a query to logic module 502 (a) which is interpreted and presented to user profile 503 (b). The user profile 503 returns an expanded query profile 504 to logic module 502 (c). results are retrieved from data service 506 based upon the information in the query profile and presented through the logic module 502 to the client 501 (d-g). Feedback is then given over the results (h) and incorporated back into the query profile 504 (i, j). The query profile 504 is then merged back into he user profile 503 (k), completing the cycle.

Every interaction cycle contains the following steps: 1. Query acquisition [Fig. 1, arrow a, Fig. 5, arrow a]

2. Skill selection 3. User Profile acquisition 4. Query Expansion (creation of a query profile may include expansion on other profiles) [Fig. 1, arrow b-c, Fig. 5, arrow b] 5. Results obtained from a Data Source, user profiles belonging to other users, and/or Own query profile [Fig. 1, arrow d, e, Fig. 5, arrow f] 6. Result presentation to the client [Fig. 1, arrow f, Fig. 5, arrow h] 7. Feedback on the results [Fig. 1, arrow g, Fig. 5, arrow i] 8. Learning and Personalization via feedback on query profile [Fig. 5, arrow j] 9. Query Profile merged back into the user profile (General Profile + profile extension) [Fig. 1, arrow h, Fig. 5, arrow k] Step 1.

Query acquisition always initiates an interaction cycle (Fig. 1, arrow a). A query can be any data structure containing information and making a request. It can be a simple sentence like,"I would like to buy a new car", or keywords as is common in Search Engines,"car new buy". In other embodiments making use of this invention, it may take on any number of communicative formats, and may come from any source (Client) provided they have a corresponding profile, e. g. Mr. Jones'refrigerator 'senses'that there is no more milk, and thus initiates a'query'or request to buy more milk. Furthermore, the origin of the query commonly is, although need not be restricted to, an outside source making a request. Proactive queries can be generated internally by the user profile itself (Fig. 2, arrow a) based upon its current configuration.

Step 2.

The second step is the obtaining of the general profile (GP). The general profile that corresponds to the particular client is selected when the client interacts with the system. Based upon that query, an appropriate skill is selected. In the case of a proactive query, these last two steps are not necessary, as the general profile and skill have already been internally determined. For example, in one embodiment of the invention incorporating an HTML interface, the user could select the search skill by clicking on a'Search'button on the displayed web page. Another option is to utilize

Natural Language Parsing (NLP) techniques that could ascertain the appropriate skill given the query itself. Once the appropriate skill has been selected, the corresponding profile extensions for that skill are brought into use.

The logic for interpreting the query entered by the user, and thusly deciding upon the relevant skill is determined by the logic module. In the most simple of instantiations, a logic module is nothing more than an interface between the client and the profile. In this case, the HTML interface as described above would be an aspect of the logic module, with the'Search Button'resulting in the selection of the appropriate skill. In a more sophisticated instantiation, the NLP parsing engine would reside within the logic module and thusly select the appropriate skill given the query.

As the logic module is, at the very base an interface, it must at the minimum be able to perform several functions. First, it must interpret a client query in an appropriate manner to feed it to the profile. Secondly, it has to provide an interface between the expanded query profile and a data service, interpreting the output of an expanded query profile (Fig. 1, arrow c) and the results from the data service (Fig. 1, arrow e) appropriately. Finally, it must be able to interpret a result and present it to the client in a format that is understandable by the client (Fig. 1, arrow f).

Step 3.

The general profile is a hybrid between a Semantic Network and a Neural Network. At its most fundamental level, it contains two main objects: nodes and links, cf. Fig. 6. Nodes are the software implementation of a concept, although the implementation need not be restricted to software. A node has a weight value, between 0.0 and 1.0, which represents the user's interests in that particular concept. Links are unidirectional connections between nodes. Links also have weight values that represent the semantic and interest relationship between concepts. Links can have weight values from-1.0 to 1.0, where-1.0 indicates a strong negative association between concepts and 1.0 is a strong positive association between concepts. Nodes and links are introduced to the GP during the feedback stages at the end of a client-UP interaction (Fig. 1, arrow h). However, these objects are by no means static nor are they necessarily persistent. Each client-UP interaction is considered one time-step in the lifetime of the profile. Through this time frame, node weights are affected by a decay function that decreases the value of the node. This decay function is a function

of UP's time and the amount of use of the particular node during client-UP interactions.

If the weight value of a node falls below a particular threshold level, then the node is removed from the UP.

Step 4.

At the point when a skill is selected, a coupling is made between the general profile and the profile extension (PE) appropriate for skill x. For each skill, there will be a separate profile extension. We refer to this coupling as the docking the PE to the GP. The structure of the PE is highly similar to the GP, although it has an added dimension. The PE may or may not also contain nodes and links as described above.

The nodes represented in the PE are highly specific and relevant for the particular skill of the PE. The PE also contains a structure termed an attribute. An attribute is an extension to a node, containing information to that node, such as past results, where the information was obtained from, and so on. Attributes that are in the PE can be extensions of nodes that exist in the GP itself. These connections are made when the PE is docked onto the GP, as illustrated in Fig. 7. Furthermore, much of the logic for performance of skill x, is contained within the profile extension. Thus, when a coupling is made, the result is a seamless larger profile, with the appropriate logic and extra information, i. e. PE concepts and the attributes, to perform the skill in a highly intelligent manner. This is the essence of interpreting a highly general profile in a very domain specific manner.

This figure 7 illustrates the docking of a profile extension to a general profile.

The dotted lines show link connections that are made when the docking occurs. When the profile is undocked, these connections are lost, but the information is maintained in the profile extension.

Following the docking procedure is the interpretation of the query by this new seamless profile, a user profile, which we term as query expansion (Fig. 1, arrow c, Fig. 5, arrow b). Query expansion is the creation of the query profile by expanding the query on the user profile. A QP is a miniature UP, containing nodes, links, and attributes. The idea here is to extract from the user profile the most relevant information needed for or related to a query. As each query is expanded upon the client's individual and personalized user profile, the resulting query profile will be unique to the client at this time-step. It should be noted that after a complete cycle

including feedback the contents of the user profile are altered, thus resulting in a different query profile given the exact same query. This is the essence of the adaptation and learning in this user profile invention.

Of course, this information extraction can be done in a variety of methods as dependent upon the current skill. One such technique employed in the main embodiment of the present invention is termed Spreading Activation.

The goal of expanding the query profile is to come up with several groups of the most salient'concept'nodes relating to the query. Spreading Activation is an effective method that makes maximal use of the structure of the user profile to iteratively traverse the concepts and links and determine the most relevant concepts pertaining to a query. The spreading activation technique is a variant of Constrained Spreading Activation.

User profiles consist of a network of interconnected nodes. These nodes represent'concepts'. Lets call a single node, N. Each node is connected with at least one or more other nodes. These connections represent the inter-relatedness of the concepts. Each node has a value associated with it, a weight that we refer to as the Interest Value'. Lets call the Interest Value, I, and therefore, the interest value for node, N, is represented as IN. The link between any two nodes can be thought of as a weighted value. The link from node i to node j, is represented as W, j. Weights between any two nodes can exist in the range from WI, ower < Wij < Wupper, where WLower =-1. 0 and Wupper= 1. 0. See Fig. 8.

This figure shows four interconnected nodes as they are considered during Spreading Activation. Wij represents the weight of the link connecting node I to J.

The overall algorithm for query expansion is depicted in Fig. 9. The expansion consists of several stages: start, pre-adjustment, spreading activation, termination check, and end (extraction of salient nodes).

The first stage is to match the query concepts with concepts that exist within the user profile. If one or more of these query terms matches a node in the network, we can move to the pre-adjustment stage. Otherwise, the expanded query is just the original query itself, and query expansion is skipped. In other words, if the user profile contains no knowledge pertaining to the specified query, then it cannot extract any more useful information.

The next stage is the heart of query expansion, spreading activation. When time- step t = 0, i. e. the query has just been posed, all nodes, n, that form the query that exist within the profile, a new activation value at t = 0, int = Q + I", where Q is an initial stimulation value. Then, the output, On, of each activated node is determined. This is done by a variant of a tanH activation function with an output range of-1 to 1: where s is a predetermined constant.

Then, in a parallel manner, activation then follows the links from an activated node, n, provided that On > th. Where th < 1 is an activation threshold limiting the spreading activation of the network as a whole. Take the case where node j with links to node k, resulting in a new activation value, ik [t+ll, as follows: Termination occurs if t > max time step (a predetermined maximum time-step).

After every time-step, t, the values of the activated nodes need to be saved. Then one can calculate a final, total activation value, SA., as shown below: At this point, one has a list of SAn values for all activated nodes during the course of Spreading Activation. The result of spreading activation, as mentioned, is a collection of activated nodes that are then translated into a query profile. Note that the attributes that correspond to the extracted concepts are also placed in the query profile.

Step 5.

The next step is to obtain results from one or more of the following three sources: a data source, other user profiles, or the query profile itself. These results are then interpreted by the logic module and presented in a format that can be interpreted by client.

To obtain information from a Data Source, the query profile sends a series of Sets to the logic module (Fig. 1, arrow c) who then communicates with the Data Source (

Fig. 1, arrow d, Fig. 5, arrow e). Sets consist of the best possible combinations of information contained in the QP that would obtain the best results from the Data Source. For example, assume that the current skill is searching, and the original client query was"Find me information about cars."One resultant QP sets that are created and sent along to the logic module may be"Porsche automobile" (assuming the user has sought information or expressed interest in Porsches at some previous point in time), thus representing a personalized interpretation of the original query. Now the logic module will send this set along to the Data Source, which in this case might be a standard Internet Search Engine. The query profile can create any number of Sets that it deems necessary in order to obtain the best results (Fig. 1, arrow e, Fig. 5, arrow f) possible from the data source.

Obtaining results from the query profile (Fig. 4, arrow d) is a much simpler process. As discussed above, the query profiles contain attributes that can contain several different forms of information, including results (such as URLs, as is the case in one embodiment of this invention). Furthermore, recall that every node in the query profile also has an associated Spreading Activation value. This value represents the relative importance of this concept given the query. Utilizing this information we can extract the most salient results from the QP, where the position of a result in the final list is dependent upon the strength of the SA value. Furthermore, negative SA values can be used to not include results that may be associated with a concept but are NOT appropriate for this particular query.

The same methodology can be followed to extract results from other profiles. If a query were expanded upon other Profiles, the outcome would be query profiles, equipped with results. These results can be quite easily extracted as outlined above.

Moreover, query profiles obtained from other Profiles can be merged into the original query profile, thus allowing the original client's UP to learn from more sources.

Step 6.

Result presentation to the client (Fig. 1, arrow f, Fig. 5, arrow h) requires the use of the logic module, as described above. Thus, the results are interpreted via the logic module and presented in a suitable format to the client.

Step 7.

At this point, the feedback upon the presented results can now be collected.

Feedback consists of an evaluation of the value of the result in relationship to the original query. Positive feedback then implies that the result was appropriate and good for the query, and vice-a-versa, negative feedback implies it was a poor result. This feedback can be gathered in any number of ways, with or without the knowledge and/or participation of the client.

Steps 8/9.

The incorporation of this feedback into the query profile is where the real learning occurs. A positive or negative feedback given on a result can be interpreted as a commentary upon the structure of the query profile that produced the sets sent to the data service (Fig. 5, arrow e). As the resultant structure of the query profile was determined by the Spreading Activation algorithm acting upon the general profile, then, appropriate changes to the connectivity (i. e. link structure) would result in an improved query profile the next time around. Thusly, feedback focuses on the adjustment of the link structure within the query profile, which is then incorporated back into the general profile (Fig. 5, arrow k).

This also epitomizes the personalized nature of the learning algorithm in that the feedback given upon the results is, mostly, done by the client. Thus, the changes that occur because of feedback adjust the Profile in such a way that makes that personalized mapping from query to results.

This invention's current instantiation mainly focuses on the relationship between the query and the results. There are many possible ways the query profile can receive feedback, besides just on the results. Another place where feedback proves highly useful is client feedback on the sets generated by the query profile. As described, these created sets provide the link between the query profile and a data service, and thus direct feedback upon the sets can be immediately integrated into the system.

Given feedback, the essence of the adjustment of the link structure within the query profile lies with the adjustment of the weight values of the links that bind concepts. In this case, positive feedback on a result that came from a set with the concepts of car and Porsche, then the link between car and Porsche is strengthened, increasing the chance that it will come up again given a similar query. On the other

hand, if the client is not interested in Porsches and gives negative feedback, then the link between car and Porsche will be decreased.

An example will help to illustrate how the present invention can be used in an Internet application. When conducting query searches for information on the Internet, it is typically the case that online search engines return to user web pages that are either irrelevant or"not quite what I wanted". The reason is that search engines work by requiring the entry of one or more'keywords', which are supposed to'describe'the topic of interest to the user. The problem is that in reality, it is necessary to specify to the search engine a long and very narrowly defined set of keywords in order to get back exactly the web page of interest, and more often than not, the user does not know exactly what these keywords should be, a-priori. The user is most often required to search through a large set of web pages until the page of interest is found. A solution to this problem involves the usage of a"personalized intelligent agent". This agent is software that performs Internet related tasks, such as searching and shopping, on behalf of its user, relieving the user of most of the work. Like a travel agent or real-estate agent, a software agent must possess knowledge of the client it is serving, and intelligence in conducting its tasks. The primary embodiment of the present invention is to endow a software agent with these characteristics. The agent becomes personal because the user profile (this invention) models the interests of the user, and the agent acts intelligently because the agent is able to use the information contained in the user profile for any number of tasks.

Continuing with this example, assume an Internet user has just signed-up to use her own personal intelligent agent. This agent is constructed from this present invention, the user profile. Upon creating her agent, she is asked a number of questions pertaining to her general interests across a wide range of topics. For instance, she was asked to rate her interest in sports, food, travel, music, and books on a scale of one to ten. She was also asked to input in a free-form manner various keywords related to each of the areas, and assume she entered the keyword'Italian'under the'food' section. This information is used to create her initial user profile, which will consist of a set of concepts consistent across the user profiles of all persons who sign-up with this brand of software agent. Following the creation of the agent, she chooses to use her agent to conduct a search on the Internet for recipes, and via the'web search'facility of the agent, she enters the keyword'recipe'. To accomplish the task of finding a recipe,

her agent does three things. First, the agent looks into her user profile, knowing that 'recipe'is associated with food. The user profile'tells'the agent that there is an association between the keywords'food'and'recipe'and'Italian', and the agent creates multiple query strings using permutations of these keywords. Next, the agent is put into contact with other agents whose user profiles are very similar to the female in this example. The user profiles of these similar agents'tell'her agent that there is an association between Italian', food', restaurant', and Italy'. Furthermore, these similar agents'tell'her agent various URLs associated with these keywords. Again, the agent creates multiple query strings using permutations of these keywords. Now the agent submits these sets of query strings to search engines, and a large set of URLs associated with these keywords is returned to the agent. Now the agent presents the set of links to her, via the agent web browser interface. She begins to review the web pages, and for each page, she provides a rating (or feedback) on the quality of the web page as it pertains to her query for a recipe. In this example, she rates very highly a page from a restaurant in Italy that lists a number of great recipes. Now the agent uses this feedback to update her user profile with the keywords'Italy','Europe', and 'restaurant'. In addition, the URL to this recipe web page is stored within the user profile alongside these keywords.

Continuing with this example, sometime later, she decides to use the travel agent facility of her agent to help her plan a vacation somewhere. She submits only the keyword'Europe'to her agent. The agent again looks into her user profile, and the association between'Europe'and'Italy'is found, resulting in the keyword'Italy' being added to a query string. The agent submits the query strings to travel search databases, and information pertaining to travel packages to Italy is returned. This example illustrates how the user profile is able to assist in finding personalized information on the Internet with a minimum of user interaction, and how this personal information is useful within specific but different domains.

In figure 10, an overview is given of a computer arrangement that can be used to implement the invention. The arrangement comprises a processor 1 for carrying out arithmetic operations.

The processor 1 is connected to a plurality of memory components, including a hard disk 5, Read Only Memory (ROM) 7, Electrically Erasable Programmable Read Only Memory (EEPROM) 9, and Random Access Memory (RAM) 11. Not all of these

memory types need necessarily be provided. Moreover, these memory components need not be located physically close to the processor 1 but may be located remote from the processor 1.

The processor 1 is also connected to means for inputting instructions, data etc. by a user, like a keyboard 13, and a mouse 15. Other input means, such as a touch screen, a track ball and/or a voice converter, known to persons skilled in the art may be provided too.

A reading unit 17 connected to the processor 1 is provided. The reading unit 17 is arranged to read data from and possibly write data on a data carrier like a floppy disk 19 or a CDROM 21. Other data carriers may be tapes, DVD, etc,. as is known to persons skilled in the art.

The processor 1 is also connected to a printer 23 for printing output data on paper, as well as to a display 3, for instance, a monitor or LCD (Liquid Crystal Display) screen, or any other type of display known to persons skilled in the art.

The processor 1 may be connected to a communication network 27, for instance, the Public Switched Telephone Network (PSTN), a Local Area Network (LAN), a Wide Area Network (WAN), etc. by means of I/O means 25. The processor 1 may be arranged to communicate with other communication arrangements through the network 27.

The processor 1 may be implemented as stand alone system, or as a plurality of parallel operating processors each arranged to carry out subtasks of a larger computer program, or as one or more main processors with several subprocessors. Parts of the functionality of the invention may even be carried out by remote processors communicating with processor 1 through the network 27.

The intelligence of the invention, described above, will be, preferably, implemented by software running on an arrangement as shown in Fig. 10 whereas all data relating to the profiles defined above will stored in one of the memory components. The computer arrangement may be a stand alone arrangement but also a server accessible through the network 27.

References: [Asnicar and Tasso]"ifWeb : a Prototype of User Model-Based Intelligent Agent for Document Filtering and Navigation in the World Wide Web", F. A. Asnicar and C.

Tasso, Proceedings of the workshop"Adaptive Sztstems and User Modelling on the World Wide Web", Sixth International Conference on User Modelling, Chia Laguna, Sardinia, 2-5 June 1997.

[Crabtree, Soltysiak and Thint ts", B. Crabtree. S. Soltysiak and M. Thint, Personal Technologies Journal, Vol. 2, No. 3, pp. 141-151,1998.

[Crestani and van Rijsbergen]"A Model for Adaptive Information Retrieval", F.

Crestani and C. J. van Rijsbergen, Journal of Intelligent Information Systems, 8: 29-56, 1997.

D. E. Rumelhart, G. E. Hinton, and R. J. Williams,"Learning Internal Representations by Error Propagation", in Parallel Distributed Processing, Vol. 1, D. E. Rumelhart and J. L. McClelland (eds.), MIT Press, 1986