Methods and Apparatuses for Relevance Calculation
Technical Field
The present invention relates to methods, apparatuses, computer programs and storage medium for personalized relevance calculation regarding a user interface of a device. Background Information
A user interface of a device can be used to present information to a user of the device, provide user's input to the device etc. The presented information may contain information provided by applications which are executed in the device. The information may comprise different kind of items relating to applications, web pages, etc. For example, the user interface may provide information of an incoming email so that the user can e.g. open and read the email. The item may also contain a link to another item. For example, a web page may include a link to another web page, an email message may include a link to a web page and a person who sent the email message, a calendar event may include a link to a task list, to an email, etc. These are only some non-limiting examples regarding information provided by a user interface of a device. The amount of items may be very large, and every user has different interests and usage patterns, which may make it difficult to provide a user interface that prioritizes the information so that the prioritization would work for all users. Also, a lot of the items can be produced by the user's social network and the user has no control over these items, and it might be useful to apply the prioritization to new items as well as already viewed items.
The items can, for example, be Items in a Networked Service, Communication Events or other Items, including bookmarks, media items, and history entries.
In this application the term metadata means a structured information which defines a context of an item or of another piece of information. On the basis  of metadata a metadata graph can be created which contains inter alia relationships between different items. The items may be located in a device, in a network, etc. Summary of some example embodiments
According to some example embodiments of the present invention information overload can be managed in a user interface for managing, viewing, and acting upon large amount of interconnected items. The management is based on a relevance value which is calculated to some or all the items relating to an apparatus of a user.
Some example embodiments of the present invention use machine learning methods to personalize and adapt a user interface of the apparatus towards the user's interests and usage patterns.
Some example embodiments of the present invention solve the user interface problem by calculating a relevance value for all items in a certain network regarding the user, and using that value in the presentation of the user interface in various ways. The relevance value may depend on user behaviour e.g. in two ways. Firstly, explicit feedback may affect to the relevance value. Some non-limiting examples of the explicit feedback are favouring, bookmarking, and customizing various items. Secondly, implicit feedback may also affect to the relevance value. A non-limiting example of the implicit feedback is the user's history (e.g., consuming or communicating) and how it is related to the items.
One idea behind the invention is to calculate the probability of the user activating an item at time t after a number of activations. This probability may be calculated for all nodes in the metadata graph. A user model called revisiting random surfer model is created and a stochastic transition matrix is created based on the metadata network in combination with a personalization vector, which is calculated from the user's history. Using these as input, a relevance value is computed for one or more items. In an example embodiment the relevance value is calculated for each item. The computation may be based on the power method, which finds the dominant eigenvector of the transition matrix, which is proven to be the static end-state  distribution of the transition matrix based on the first order markov model. Because of the relations between the items, related items share the relevance value. The number of activations mentioned above may be a small integer such as one, two, three, ten, twenty, etc. It may also be a larger integer value e.g. one hundred or greater. In some embodiments the number can have any positive integer value.
In some embodiments of the present invention the relevance is taken into account in various user interfaces, such as search, events, task history, in the following ways: sorting, clustering, emphasizing and filtering the items based on relevance. When the user searches or filters in order to find specific things, the search results will be sorted so that more relevant items for the user can be distinguished from less relevant items and some of the less relevant items may not be shown at all.
According to a first aspect of the present invention there is provided a method comprising:
 - providing a metadata graph of interconnected items in a network relating to a user, the metadata graph comprising
 - nodes representing the items; and
 - connections between nodes representing links between the items;
 - determining a relevance value for a node of the metadata graph regarding a probability of the user activating that node after a number of activations;said determining a relevance value comprising using information of previous activations of nodes. According to a second aspect of the present invention there is provided an apparatus comprising:
 - means for providing a metadata graph of interconnected items in a network relating to a user, the metadata graph comprising
 - nodes representing the items; and
 - connections between nodes representing links between the items;  - means for determining a relevance value for a node of the metadata graph regarding a probability of the user activating that node after a number of activations;
 - said means for determining a relevance value are configured for using information of previous activations of nodes in the determination of the relevance value.
According to a third aspect of the present invention there is provided a computer program product comprising a computer program code configured to, with at least one processor, cause an apparatus to:
 - provide a metadata graph of interconnected items in a network relating to a user, the metadata graph comprising
 - nodes representing the items; and
 - connections between nodes representing links between the items;
 - determine a relevance value for a node of the metadata graph regarding a probability of the user activating that node after a number of activations;
 - said determining a relevance value comprising using information of previous activations of nodes in the determination of the relevance value.
According to a fourth aspect of the present invention there is provided an apparatus comprising:
 - an interface for processing information of a metadata graph of interconnected items in a network relating to a user, the metadata graph comprising
 - nodes representing the items; and
 - connections between nodes representing links between the items;
 - at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to:
 - determine a relevance value for a node of the metadata graph regarding a probability of the user activating that node after a number of activations; and  - use information of previous activations of nodes in the determination of the relevance value.
According to a fifth aspect of the present invention there is provided a data structure comprising:
 - a metadata graph of interconnected items in a network relating to a user, the metadata graph comprising
 - nodes representing the items; and
 - connections between nodes representing links between the items;
 - a relevance value for a node of the metadata graph regarding a probability of the user activating that node after a number of activations;
 - said determining a relevance value being formed by using information of previous activations of nodes.
According to a sixth aspect of the present invention there is provided a network service comprising:
 - providing a metadata graph of interconnected items in a network relating to a user, the metadata graph comprising
 - nodes representing the items; and
 - connections between nodes representing links between the items;
 - determining a relevance value for a node of the metadata graph regarding a probability of the user activating that node after a lot of activations;
 - said determining a relevance value comprising using information of previous activations of nodes. According to a seventh aspect of the present invention there is provided a wireless terminal comprising:
 - means for providing a metadata graph of interconnected items in a network relating to a user, the metadata graph comprising
 - nodes representing the items; and
 - connections between nodes representing links between the items;  - means for determining a relevance value for a node of the metadata graph regarding a probability of the user activating that node after a number of activations;
 - said means for determining a relevance value are configured for using information of previous activations of nodes in the determination of the relevance value.
Description of the Drawings In the following the invention will be explained in more detail with reference to the appended drawings, in which
Fig. 1 depicts an example of a system in which the invention can be implemented;
Fig. 2 depicts a general flowchart of different processes according to an example embodiment of the invention;
Fig. 3 illustrates the incremental relevance calculation according to an example embodiment of the invention;
Fig. 4 illustrates some imaginary notifications on a user interface demonstrating various ways the computed relevance can be used in a user interface according to an example embodiment of the invention;
Fig. 5a depicts an example of a search in which results are sorted based on the relevance of the items; Fig. 5b depicts an example of a search in which results are sorted differently based on the relevance of the items and irrelevant updates are filtered;
Fig. 6a depicts an example of a metadata graph according to an example embodiment of the invention;  Fig. 6b depicts an example of a group of items on the basis of which a metadata graph can be constructed according to an example embodiment of the invention;
Fig. 7 depicts a block diagram of a device according to an example embodiment of the invention;
Fig. 8 depicts a block diagram of a server according to an example embodiment of the invention;
Fig. 9 depicts an example embodiment of a revisiting random surfer model according to an example embodiment of the invention;
Fig. 10a depicts as a flow diagram an example embodiment of a full relevance calculation; and
Fig. 10b depicts as a flow diagram an example embodiment of an incremental relevance calculation.
Detailed Description of some embodiments
In the following a simplified example embodiment of a system is disclosed in which the present invention can be implemented. In this example embodiment the system 100 comprises user devices 130, 140, 150 which users can use to, for example, browse web pages, send and receive emails, publish and read status updates in social networks, exchange images, messages etc. with other users in the network, handle calendar events, make phone calls, run other applications, etc. The user devices 130, 140, 150 may be able to communicate with one or more communication networks 1 10, 120, such as a mobile communication network 1 10, a local area network (LAN), a wireless local area network (WLAN), an internet 120, etc. The system 100 also comprises network servers 160, 170, 180 which may contain (networked) items 161 , 171 , 182, such as web pages, images and/or documents, so that users can, for example, browse web pages, download images, documents, maps, application software etc. to the user devices. Also the user devices 130, 140, 150 may contain items which are stored locally by the user device 130, 140, 150.  The user devices 130, 140, 150 may be computer apparatuses such as laptop and/or desktop computers, wireless terminals such as mobile communication devices, etc.
Figure 6a depicts an example of a metadata graph 600 according to an example embodiment of the invention. The metadata graph 600 comprises some metadata of items 610 and information on the relations between the items 610. All the items 610 need not be stored in the same device but they can be located in different parts of the system, for example, in a server 160, 170, 180, in a user device 130, 140, 150, etc. Each item is described by a metadata record 620. The metadata record 620 may contain information on the type, location, class of the item, information on relations to other items (e.g. links to other items), etc. The location may be expressed as a uniform resource locator (URL) or by other means indicative of the storage place of the item. The information regarding relations to other items may also be indicated by URL or by another applicable way so that the other item can be located on the basis of the metadata information. Some metadata items may represent concepts rather than data items. An example of a concept is "image" or "person". Then the individual item records can contain relations to items representing concepts. This kind of a system can be called an ontology, a class hierarchy or an object model. For example, all images in the system may be linked to a metadata item representing the concept "image". This way the system may be personalized using the information of usage of different types of items.
The metadata graph 600 is constructed on the basis of items stored in the user device 130, in other user devices 140, 150, and/or in the server(s) 160, 170, 180 of the communication network(s). In an example embodiment the metadata graph 600 is constructed on the basis of items of the user's social network, for example using contacts the user may have in different communities like Twitter, Facebook, Flickr, or Linkedln. The metadata graph may also be constructed on the basis of the user's tastes, for example, relating to music, movies etc.  Figure 6b illustrates a group of items relating to a user's social network. The metadata graph can be constructed using these items 610 and also information on possible incoming links 640 which address items outside the social network. These items may be provided with information on user's favourite value for that item and how often the user has visited the addressed item (freqhist). In figure 6b also some examples of the freqhist values are shown.
A metadata graph construction process 650 is implemented, for example, in the user device 130 to build up and update the metadata graph 600. The metadata graph construction process 650 is, for example, a program code stored in a memory 710 (Fig. 7) of the user device 130. The program code can be executed by the processor 701 of the user device 130. It is also possible that the metadata graph construction process 650 and/or other processes are implemented as a chip or other circuitry. The metadata graph construction process 650 examines which items are stored in the device and reads metadata of these items. The metadata graph construction process 650 creates a record for each item to the metadata graph so that the record contains information e.g. on the identity of the item, relations to other items, and relevance value of the item. This will be explained later in this application.
If the metadata graph construction process 650 notices that the metadata graph already contains a record for some item, a new record may not be inserted but information contained in the record may be updated to correspond with the present situation. For example, the item may have been updated or moved to another location, or the relations of the item to other items may have been changed. This may also affect to the relevance value of the item. Therefore, it may be necessary to recalculate the relevance value. An indication of the need of recalculation may be inserted in the record of the item in the metadata graph.
The user device may receive information of new items in the network or in other devices communicating with the network. For example, a friend of the user may have added a photo in his public gallery or his details in e.g. Linkedln or Flickr communities. Hence, a new record may be created in the metadata graph to represent this new item.  In the following some processes relating to handling of metadata will be described in short with reference to figure 2. Service metadata synchronization process
One purpose of the service metadata synchronization process 660 is to connect to networked services and synchronize metadata related to a user and his social network and items into the system. Each of the synchronized items is added to the local metadata graph 600 using relations. Some items and connections can also exist only locally in a device (e.g., items representing phone calls to the user).
Metadata storage and query process
One purpose of the metadata storage and query process 670 is to store the metadata and connections between metadata items in a database and to allow efficient queries of metadata and connections. An example implementation uses a mapping layer on top of an SQL database, but any other implementation, including Semantic Web technologies (Resource Description Framework RDF, SPARQL, etc.), could be used. RDF is a directed, labelled graph data format for representing information in the internet. It is intended inter alia for representing metadata about internet resources, such as the title, author, and modification date of a Web page, copyright and licensing information about a Web document, or the availability schedule for some shared resource. SPARQL is a query language for graphs constructed via RDF. SPARQL can be used to express queries across diverse data sources, whether the data is stored natively as RDF or viewed as RDF via middleware.
State History process
One purpose of the state history process 680 is to store states of a user interface (Ul) and the related items for each state.
State history 685 (Fig. 2) is a database, which records all discrete states the user visits by using the user device, for example by using a browser  application in the device to browse web pages in the internet. For each state, the database records various details, such as title, icon, preview screenshot, related objects, referrer state, view identifier. It can also record context information, such as location and time.
Next, an example embodiment of an apparatus 700 is disclosed with reference to figure 7. The apparatus can be used e.g. as the user device 130, 140, 150 in the system 100. The apparatus 700 comprises a control block 701 which may contain a processor or other means to control the operation of the apparatus 700 and to run programs (applications). The apparatus 700 also comprises a memory 702 for storing data and program code. The apparatus 700 further comprises at least one display 703 for displaying data, and may also comprise a microphone 704 and a loudspeaker 705. The apparatus 700 can communicate with the network by using the communication means 706 which may comprise a transmitter 707 for transmitting information to the communication network and a receiver 708 for receiving information from the communication network.
The apparatus 700 also contains means to provide one or more user interfaces (Ul) for the use of the user. Different user interfaces 201 , 202, 203, 204 (Fig. 2) may be arranged for different purposes. In figure 2 examples of four different user interfaces are depicted. There is a first user interface 201 for presenting search results, a second user interface 202 for presenting contact card information, a third user interface 203 for presenting a home view, and a fourth user interface 204 for presenting event monitor information. It should be noted that these user interfaces 201— 204 are only illustrative, not limiting examples of the user interfaces. In practical implementations there may be different kind of user interfaces and different number of user interfaces.
In figure 7 some of the processes relating to the present invention are depicted as blocks inside the control block 701 . In practical implementations these processes may be implemented as program code which can be executed by the processor, for example, to perform the tasks of the processes.  Figure 8 depicts an example of another apparatus 800, which can be used e.g. as the server 160, 170, 180. The apparatus 800 comprises a control block 801 which may include a processor or other means to control the operation of the apparatus 800 and to run programs. The apparatus 800 also comprises a memory 802 for storing data and program code. The apparatus 800 further comprises communication means 806 which may comprise one or more transmitters 807 for transmitting information to the communication network and one or more receivers 808 for receiving information from the communication network.
As the number of items in the metadata graph may be quite large, it may be useful to calculate a relevance value to the items and to use the relevance value when selecting items to be presented to the user through a user interface 201— 204. The user may also have preferences on how to display information relating to items 610. Therefore, a kind of personalization model may be used to select items and display the information relating to the selected items. In the following an example embodiment will be disclosed in which the relevance value is calculated by an algorithm by a relevance calculation process 690. There are some problems to be solved. First, how the personalization in the relevance calculation should be modelled in a mathematically sound way? Second, how to approximate relevance value for new and changed items? For notification user interfaces, calculating the relevance of all items known to the device (i.e. full relevance recalculation) may be computationally too expensive, since new items may arrive all the time. Third, how to decide which items' binary data to cache locally? Mobile network bandwidth may still be a bottleneck in the future, so it may not be reasonable to download each item to the device every time it is used. Fourth, how to decide which items should be synchronized? For some use cases a locally synchronized copy of information in the services may be needed to be kept in the device. This differs from caching, since these items may have local-only additions and relations, in which case the synchronized content cannot be discarded.
Now some terms will be explained in more detail.  Relevance: Relevance is a value, which is calculated for the items that the user interface handles. The relevance may be calculated for each item or most of the items the user interface handles. The value of the relevance is in a range [A...B] , for example in a range [0...1 ] but also other ranges may be applicable for the relevance value. The relevance of an item models the probability that the user activates that item at any given time.
Relevance calculation: Relevance calculation is a process of assigning relevance based on the metadata network connections of the items and the user's previous usage history.
Networked service: Networked service is a service, which exposes interconnected items. For example, this can be a social Networked service, a bookmarking service, or an image sharing service.
Item in a networked service: Item in a networked service is an event, which has been created when something is shared in a networked service, and which is available in the system. This could be an image, a status message, location change, a video, a comment, etc.
Communication event: Communication event is an event available in the system caused by somebody directly communicating with the user, e.g. by sending a message or calling.
Customization: Customization relates to changes in the behaviour of the system due to user's explicit feedback. The feedback can be e.g. bookmarking, favouring, or a specialized customization user interface. Adaptation: Adaptation relates to automatic changes in the behaviour of the system without the user's explicit feedback. The source can be e.g. the user's usage history.
In the following it is assumed that some of the items represented in the system are related to other items. The relations can be expressed e.g., through metadata connections as is depicted in figures 6a and 6b. For example, if the services are social networking services, the items are typically  associated to one or more persons in various ways. It is also assumed that the system can record and recall information on how different user interface states reference the interconnected items. Figure 2 depicts some processes relating to an example technical implementation of the present invention. Some processes related to this invention are the relevance calculation process 690 and the user interface process 210 which will be described in more detail in the following. According to an example embodiment the relevance calculation is based on the following user model. The user is interested in relevant items, where relevance can be determined from items, which he has marked as "Favourite" (e.g., some contacts) or bookmarked, e.g., through a specific user interface. The frequency of the use of the item in the user's history increases relevance. Items, which are related to relevant objects become relevant. An item is related to another if there is a metadata connection between the items. Recentness of an object and recentness of the history entry can also be considered when determining relevance (to have time based decay).
According to an example embodiment of the present invention there is defined a way how the user's previous usage history is fed into the calculation. One idea is that a random surfer model that inter alia the PageRank™ method uses, is replaced by a revisiting random surfer model.
An incoming personalization vector describes the frequency distribution of the user activating items. The final ranks vector models probability of the user activating the items in the future based on the user model. The total sum of both over all nodes is 1 .0. This makes it possible to mathematically model the relevance calculation within the framework of the relevance calculation, and to use results of other research e.g. to efficiently approximate rank values.
The Random Surfer Model has been defined in the literature, e.g. in "A Random-Surfer Web-Graph Model" by A. Blum, T-H. Chan and M. Rwebangira or in "PageRank and the Random Surfer Model" by P. Chebolu and P. Melsted, as follows when the user is browsing a page A by using his device:  With probability d: When on page A, the user follows any link in page A with equal probability d* 1 / L, where L is the amount of links going out from this page. D can be e.g. 0.8.
· With probability (1 -d): Occasionally, the user selects any page randomly with the equal probability of (1 -d)* (1/N), where N is the amount of all pages.
An example embodiment of the revisiting random surfer model according to the invention is as follows: a) With probability d1 : When on node n, the user follows any link from node p into node P2 with equal probability. d1 can be e.g. 0.8.
 b) With probability d2: The user revisits a node which she has visited earlier in history with the probability distribution taken from the frequency in history d2* m(p). This is the personalization factor. d2 which can be e.g. 0.15.
 c) With probability 1 -d1 -d2: Occasionally, the user selects any item randomly with the equal probability of (1 -d1 -d2)* (1/N), where N is the amount of nodes in the metadata graph.
An example of this is depicted in figure 9 in which the network comprises nine nodes and the user is currently browsing at node p. The arrow 901 illustrates the option a) above when the user moves to node p2. Respectively, the arrow 902 illustrates the option b) when the user revisits a previously visited node i.e. browses to the node P3. The arrow 903 illustrates the option c).when the user randomly selects a node from the metadata graph. In this example the node marked with the reference p4 is selected. Another change compared to an existing method is that favourites (user customization) is modelled as a single item in the metadata graph, having links to all favoured items. The favourites item can further be emphasized by giving it access frequency that is higher than in reality, and the access frequency of other items is reduced accordingly so that the total sum of m(p) is 1 .0 or another predefined value. This also allows to have multiple different sets of favourites and their effect can be different from person to person.  Mathematically, the relevance calculation can be modelled e.g. as follows: 1 . A stochastic transition matrix G of size n x n is constructed in which n is the amount of nodes in the network. The transition matrix is created based on the revisiting random surfer model, and the links in the graph. The links can be uni- or bidirectional. The transition matrix G is completely dense, stochastic, and primitive.
 G = dxP + d2M + (l - d2 - dl )E,
 P is the original transition matrix created based on the outlinks in the graph (cf. e.g., "A Survey on PageRank Computing", Pavel Berkhin); M is a personalization matrix where every item in row n equals to the value m(p); Dangling nodes (nodes with no outlinks) can be handled in many ways as suggested in literature, e.g., by simulating links to all nodes.
 E is rank-one teleportation matrix whose every item equals to 1/n.
 2. Then, the dominant eigenvector Pr of the matrix GT.is found. Pr is static end-state distribution of the transition matrix based on the first order markov model. The n'th value Pr(p) is the probability for the user visiting the node at time t after a lot of clicks. The total sum of all components of the vector Pr is 1 .0.
The function m(p) describes the personalization vector for the calculation. Generally, it maps the distribution of the user's node activation history into a form, which can be used by the relevance calculation. One option is to define the function m(p) as: m(p) = itemdecay p. timestamp) freqhist{p) decay(Hi .timestamp)
freqhist(p)
 The functions itemdecay(time) and decay(time) can be any functions, but typically monotonically increasing functions are used so the newer events and history gets more weight. The functions are chosen so that the total sum of m(p) over all items is 1 .
∑p m(p) = \  The relevance calculation process
There are many ways to do the computation described above. For example, the graph can be stored in a memory as an array of link arrays and the power method or any other numeric method can be used.
An example of a formula used in the revisiting random surfer model will now be explained.
The relevance calculation process 690 operates as follows according to an example embodiment. Figure 10a depicts as a flow diagram an example embodiment of the relevance calculation process 690. Information relating to the metadata graph 600 is read 1001 into the memory 702 if the information is not yet stored in the memory. Also the usage count of the whole metadata graph 600 is read 1002 into the memory 702. The total amount m(p) across the nodes is normalized to A. A can be 1 or some other number (for instance, a bigger number, such as amount of nodes* 100, or 1/10* max, where max is the maximum number that the system can represent, can be used for A to avoid rounding errors). Another option to avoid rounding errors may be to use logarithmic or some other scale in storage and perform calculations using those.
The algorithm used by the relevance calculation process 690 is, for example, as follows:
PR(p
i) = d
2 *m(p
i) +
l "
l d2 + d
x - p
j eLinkTo(pi )
 (2)
where pi,p2,---,P/v are the metadata items or nodes, Lin To(pl) is the set of nodes that link to p,, L(p/) is the number of outbound links on node p , and N is the total number of nodes in the graph.
The algorithm works by iteratively calculating 1003 the page rank for one node at the time using the formula in Equation (2), and moving sequentially  1004 over the data set N times. N does not have to be very large, e.g., 20-50 may be sufficient, and the values may not change significantly after that.
Additionally, any other algorithm applicable in this context can be used to compute the PR vector, for example any algorithm presented in "A Survey on PageRank Computing" by Pavel Berkhin.
After the calculations have been performed the relevance values Pr(p) are stored into the database.
The relevance calculation process 690 may be run when there is a change in the metadata network, either because the history has changed, or because items are added, removed or modified. It is possible to speed up the runtime of the algorithm by using one of the various incremental page rank algorithms. It is also possible to use those variations together with this invention.
The relevance calculation process can be run completely in the user device 130, 140, 150, or completely in the server 160, 170, 180 or using some hybrid client-server solution. The relevance calculation process can also be provided as a network service for the user.
In a server or peer-to-peer setting, it is even possible to use the histories of many people in the relevance calculation.
Any optimization to the power method can be used with some embodiments of this invention. It is even possible to use completely different approaches to find the dominant eigenvector of the transition matrix. The results of the relevance calculation process 690 can be regarded as a relevance vector PR of size N in which the sum of items is 1 .0. The items of the relevance vector are stored in the database which can exist e.g. in the memory 702.  Incremental Relevance Calculation
Incremental relevance calculation can be used to determine the relevance values for changed nodes, including new nodes, changes in links between nodes and changes to activations of nodes. Since any change in relevance or nodes may result changes throughout the metadata graph, for example any of the following approaches can be used based on how accurate results are needed, and how efficient the incremental process needs to be in terms of needed memory and processing power.
In the following the incremental relevance calculation 695 according to a first example embodiment will be described in more detail with reference to the flow diagram of figure 10b. According to an example embodiment one round of the page rank iteration calculation is run on the network, which consists of changed nodes represented by a changed nodes graph and their immediately linked nodes in the full graph. These immediately linked nodes can be called as border nodes. The iteration uses the current relevance value of the nodes in the full graph (r.relevance). Also the following variables are taken into account: the count of the nodes in the full network (r.linkcount), and the count of links between the full network and the new nodes (r.linksToChangedCount). The relevance values of the changed nodes are updated, but the relevance values of the border nodes are not updated.
The algorithm is illustrated in figure 3, while the pseudocode is illustrated in the following.
Initialize SUBGRAPH as: For each node cn in changed nodes graph CN (labelled with the reference numeral 300 in Fig. 3) do
 Get all nodes r of cn. Related, which link to this node either from SUBGRAPH or the metadata network DB;
2 Store r.relevance and r.linkcount of cn. Related to
SUBGRAPH if not there
 3. Increment r.linksToChangedCount by one
 For each node cn in CN (changed nodes) do
 1 . Get all nodes cn. Related, which link to this node from SUBGRAPH
 2. CalculateDD / \ , * ,Λ \ - dx - d2 ^
 = d2 * m(cn) H - + f r. relevance
PR (cn) dl1
 .related ^ .tOtdlC where r.totalC = r.linkcount + r linksToChangedCount .
In the above described embodiment values of any other nodes will not be recomputed, so it may not be very accurate but it can be quite fast.
According to a second example embodiment the first method is applied sequentially over CN and all nodes directly linked to CN. This method can be slightly more accurate than the first method but can be slower than that.
According to the third example embodiment the relevance calculation is performed as follows. Similarly to the first method the SUBGRAPH is constructed. Initially the SUBGRAPH contains all changed nodes. Then SUBGRAPH is expanded by following links from current nodes of SUBGRAPH to the full graph. A criterion for stopping the expansion can follow the dampening factor for the relevance computation by iteratively applying (d1 +d2)/s.outlinksCount to the nodes linked from s (a node in SUBGRAPH; s.outlinksCount is a function of s, e.g. the amount of outlinks from s) so that each link decreases the effect of change in CN, and when the effect becomes smaller than a threshold or the SUBGRAPH larger than a size threshold, expansion is stopped. Other criteria (e.g., the previously computed relevance value) can be used as well. The rest of the nodes (nodes in full graph but not in SUBGRAPH) from the full graph are aggregated into one node A and a transition matrix G* for the union of SUBGRAPH and A is formed. The aggregation of markov chain states is a well-known principle in literature. Then, using e.g. the power method, the static end-state distribution PR' of the transition matrix G* is calculated. The resulting PR' may be scaled so that the probability distribution matches the full graph. Finally the relevance values PR' are saved. This method can be slightly more accurate than the first method but can be slower than that.
According to a fourth example embodiment the full relevance calculation 690 is performed as disclosed above but all the changed relevance values may not be stored. The decision on which relevance values will be stored may be  based on, for example, the quantity of change of a relevance value. In other words, the changed relevance value of a node is compared with a previous relevance value of that node and if the change exceeds a certain threshold, the re-calculated relevance value will be stored into memory. Otherwise the relevance value is not changed. This approach may provide quite accurate results but may slow down the calculation and conserve more memory than the first and the second approach.
It should be noted here that the above described methods for the incremental relevance calculation are only examples but also other methods appropriate for this purpose may be used as well.
User Interface Processes The relevance value of the items can be used in various ways in a user interface 201— 204. The following sections can be considered as examples of user interfaces, but the invention may also be applicable in other user interfaces, which use the relevance as filtering, sorting, emphasizing or clustering criteria. Each of the usages is depicted in the example user interface wireframe in the example depicted in figure 4. It should be noted that in a real user interface, not all of these usages of relevance are necessarily utilized simultaneously, for instance the sorting could be based on time. In the user interface of figure 4 some imaginary notifications 401— 406 are depicted demonstrating the various ways the computed relevance can be used. Each of the rows and even the subitems, such as thumbnails, can be activated e.g., with a pointing device, leading into a detailed view of that item, with possible actions. In this example events are sorted so that the most relevant ones are on top. Some of the items have been emphasized. For example, Marie's photos 403 have a preview because they have been detected to be more relevant to John's photos 405 which are not provided by preview images. Further, some less relevant items from various persons have been grouped into a single area 406 (clustering). Such notifications are not shown whose relevance is below a threshold value. This is illustrated as an empty rectangle 407 in figure 4.  Filtering by Relevance
The computed relevance value can be used as a filter in the user interface for example using one or more of the following exemplary ways of filtering:
A pre-defined cut-off (threshold) value may be used, which can also be a function of the network size and/or history size and the recentness (decay). The filtering is possible to be implemented so that a certain percentage of the items are shown. For instance, 25% of the most interesting items could always be shown. It is also possible to use a variable cut-off value. For instance, based on statistical properties of the relevance distribution within the network, the cut-off value can be determined dynamically. One option is to use the probability Pgi0bai_read, which is the global probability of the user reading an update. For instance, if the user has read 40 % of the updates in the past, Pgi0bai_read would be 0.4 and 40% of the most interesting updates would be shown. The other option is to give the user the possibility to filter more or less on demand.
For example, relevance filtering can be used in a user interface to filter out states, which do not refer to relevant items or while summarizing. Also, one option for the summarization would be the visual representation of the most relevant state in that cluster.
Clustering by Relevance
Similar items can be collected together to form a cluster so that only information of the cluster is shown. The clustering process can be affected by relevance values. Most relevant items would go to separate clusters, and the less relevant items could be clustered together. E.g., "John called you once at 15:15, and Mary called you twice at 16:03, and there are 4 other phone calls.". In that example, there are three clusters and the 4 phone calls which have a lower relevance value are collected in the same cluster.
Emphasizing by Relevance
Relevance can be used to alter to visualization of the items or the clusters and summaries of item clusters.  First, after grouping or clustering items, the relevance value of the items within a cluster can be used to determine how the cluster is represented. For instance, only the title (summary) of the cluster could be shown ("Marie has 16 new updates in a social music site"), or some amount of the items (1 ..n, n being the size of the cluster) could be shown fully depending on relevance.
Second, single items could be rendered differently based on the relevance value. For instance, very relevant shared images from a favourite contact could be shown with the image title in addition to the thumbnail, while less relevant images would be shown just as thumbnails.
Sorting by Relevance Relevance can be used when sorting a list of items. For instance, search results could be sorted so that the most relevant items would be shown first. The user interface effect, which follows from the fact that the user's history is used in the relevance calculation, is that items, which are similar to what the user typically views, may be shown on top of the search, also even if the user has never viewed them before.
For example, an example of the search depicted in Figure 5a uses the sorting by relevance. For instance, if the user have often opened the image "Mac User", that image will have a high relevance value, and will be on top of the search hits, which are sorted by relevance, even if the user just presses "m".
Another example user interface using relevance is depicted in figure 5b, which shows updates differently based on their relevance, and filters irrelevant updates. It should be noted that the examples in figures 5a and 5b are rather an illustration on how relevance calculation can be used in a real user interface.
Using the Relevance to Determine Caching
Some of the items may be stored in a cache memory 709 of the device 700. The cache can either have a static size or the size can vary based on  available local resources or even usage patterns. Each binary object cache entry may be appended with a relevance value, which is copied from the item that references this binary item. If there are many items referencing the same item, a maximum or average of these values may be used. The cache can also implement a time to live value, which can be used. The time to live can override the relevance value or the relevance value can override the time to live value. In the below examples time to live overrides the relevance value:
In a first example situation the cache is full and a new binary object is loaded. From the cached items, whose time to live is expired, evict from the cache the binary object whose cache value cache(object) is the smallest
In a second example situation an automatic pre-caching is performed before going offline, or when a cheap network is detected. The pre-caching is performed for such cached items, whose time to live has been expired. If there are items in the system whose relevance is higher and whose binary objects are not currently in cache, those binary objects are preloaded from the network and necessary amount of cached objects which have the lowest relevance and expired time to live are deleted from the cache.
Using the Relevance to Determine Synchronization Priorities
Since the relevance value models the global probability that the user will activate and display that item, the solution is the use relevance to determine the set of synchronized items so that the most relevant items are synchronized with higher probability.
One option of selecting the items to be synchronized is as follows: If Kaii is the set of all items considered to be synchronized, and the changed items is Kchanged, and N is the amount of items that can be synchronized because of time or bandwith limits for example, then Ksynchronized is selected using e.g. the following formulas in which d is in the range of 0...1 and denotes how much new items will be emphasized in the synchronization.
Nnew = d* (N - length(Kchanged));
Irrelevant = (1 -d)* (N - length(Kchanged));  Knew = Nnew first items Of (Kail INTERSECT (Krelevant U Kchanged)), SOrted ΪΠ timestamp order, newest first; Relevant = Nrelevant first items Of (Ka|| INTERSECT (Knew U Kchanged)), SOrted ΪΠ relevance order, most relevant first;
Ksynchronized— Kchanged U Krelevant U Knew- Current user interfaces allow some customization by the user (e.g., which types of items to show), but they do not automatically adapt of personalize to the user's behaviour. By using the present invention the user interface of the device can be automatically personalized and adapted based on the user's habits. It also generalizes the habits to other similar items by using the metadata connections. Therefore it is more likely that the information, which is important or relevant to the user is noticed and found by the user.
One advantage of incremental relevance calculation is that the relevance value can now be used for much wider amount of use cases since the full relevance calculation, which may require much computing power, is not required. For instance, newly arrived items can be filtered for relevance immediately.
The advantage of the mathematically modelled approach is that the algorithm may always converge, and any optimizations described in the literature can be used.
The advantage of caching based on relevance is that the cache is also personalized to the user's usage habits. It can also precache items that are predicted to be needed by the user in the near future.
The advantage of synchronization based on relevance is that since only the relevant items are synchronized, battery and network and time may be saved compared to full synchronization. Also, the server-side changes to the items that are relevant to the user can be synchronized faster and more reliably.  The combinations of claim elements as stated in the claims can be changed in any number of different ways and still be within the scope of various embodiments of the invention. As used in this application, the term 'circuitry' refers to all of the following:
(a) to hardware-only circuit implementations (such as implementations in only analog and/or digital circuitry) and
 (b) to combinations of circuits and software (computer programs) (and/or firmware), such as: (i) to a combination of processor(s) or (ii) to portions of processor(s)/software (including digital signal processor(s)), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone, a server, a computer, a music player, an audio recording device, etc, to perform various functions) and
 (c) to circuits, such as a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation, even if the software or firmware is not physically present.
This definition of 'circuitry' applies to all uses of this term in this application, including in any claims. As a further example, as used in this application, the term "circuitry" would also cover an implementation of merely a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware. The term "circuitry" would also cover, for example and if applicable to the particular claim element, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in server, a cellular network device, or other network device.
The computer programs may be stored in the memory of the user device (e.g. a terminal, a mobile terminal, a wireless terminal etc.) and/or in the memory of the server, for example. The computer program may also be stored in a data carrier such as a memory stick, a CDROM, a digital versatile disk, a flash memory etc.