WO2011067454A1 - Methods and apparatuses for relevance calculation - Google Patents

Methods and apparatuses for relevance calculation Download PDF

Info

Publication number
WO2011067454A1
WO2011067454A1 PCT/FI2009/050964 FI2009050964W WO2011067454A1 WO 2011067454 A1 WO2011067454 A1 WO 2011067454A1 FI 2009050964 W FI2009050964 W FI 2009050964W WO 2011067454 A1 WO2011067454 A1 WO 2011067454A1
Authority
WO
WIPO (PCT)
Prior art keywords
items
relevance
value
metadata graph
information
Prior art date
Application number
PCT/FI2009/050964
Other languages
French (fr)
Inventor
Mikko Honkala
Original Assignee
Nokia Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nokia Corporation filed Critical Nokia Corporation
Priority to PCT/FI2009/050964 priority Critical patent/WO2011067454A1/en
Publication of WO2011067454A1 publication Critical patent/WO2011067454A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/904Browsing; Visualisation therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/59Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable

Definitions

  • the present invention relates to methods, apparatuses, computer programs and storage medium for personalized relevance calculation regarding a user interface of a device.
  • 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.
  • 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.
  • 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.
  • 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.
  • metadata means a structured information which defines a context of an item or of another piece of information.
  • 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
  • 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.
  • a relevance value is computed for one or more items.
  • 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.
  • 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.
  • 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.
  • the metadata graph comprising
  • an apparatus comprising:
  • said means for determining a relevance value are configured for using information of previous activations of nodes in the determination of the relevance value.
  • a computer program product comprising a computer program code configured to, with at least one processor, cause an apparatus to:
  • determining a relevance value comprising using information of previous activations of nodes in the determination of the relevance value.
  • an apparatus comprising:
  • 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:
  • a data structure comprising:
  • the metadata graph comprising
  • a network service comprising:
  • the metadata graph comprising
  • a wireless terminal comprising:
  • said means for determining a relevance value are configured for using information of previous activations of nodes in the determination of the relevance value.
  • 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
  • Fig. 10b depicts as a flow diagram an example embodiment of an incremental relevance calculation.
  • 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.
  • LAN local area network
  • WLAN wireless local area network
  • 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.
  • 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.
  • FIG. 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.
  • URL uniform resource locator
  • 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).
  • 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.
  • 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.
  • 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.
  • 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 670 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.
  • 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.
  • the apparatus 700 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 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.
  • 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.
  • FIG 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.
  • the relevance value is calculated by an algorithm by a relevance calculation process 690.
  • the personalization in the relevance calculation should be modelled in a mathematically sound way?
  • 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 is a process of assigning relevance based on the metadata network connections of the items and the user's previous usage history.
  • 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 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 is an event available in the system caused by somebody directly communicating with the user, e.g. by sending a message or calling.
  • 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.
  • FIG. 6a and 6b depict some of the items represented in the system.
  • the relations can be expressed e.g., through metadata connections as is depicted in figures 6a and 6b.
  • the services are social networking services, the items are typically associated to one or more persons in various ways.
  • 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.
  • “Favourite” e.g., some contacts
  • 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).
  • 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.
  • 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.
  • FIG. 9 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.
  • 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 p 4 is selected.
  • favourites user customization
  • 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.
  • 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.
  • 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.
  • Pr is static end-state distribution of the transition matrix based on the first order markov model.
  • 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.
  • 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 .
  • 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.
  • 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.
  • 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:
  • Lin To(pl) is the set of nodes that link to p
  • L(p/) is the number of outbound links on node p
  • 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.
  • 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.
  • 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.
  • 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.
  • 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 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.
  • 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 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.
  • 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.
  • 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.
  • 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.
  • 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 P g i 0 bai_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, P g i 0 bai_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.
  • relevance filtering can be used in a user interface to filter out states, which do not refer to relevant items or while summarizing.
  • one option for the summarization would be the visual representation of the most relevant state in that cluster.
  • 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.
  • Relevance can be used to alter to visualization of the items or the clusters and summaries of item clusters.
  • 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.
  • 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.
  • 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".
  • FIG. 5b 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.
  • 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:
  • 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
  • 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.
  • the solution is the use relevance to determine the set of synchronized items so that the most relevant items are synchronized with higher probability.
  • K a ii 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
  • K sy nchronized 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(K cha nged));
  • Ksynchronized — Kchanged U Krelevant U K n ew- 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.

Abstract

There is disclosed a method, apparatus, computer program and data structure for personalized relevance calculation regarding a user interface of a device: In the method a metadata graph of interconnected items in a network relating to a user is provided. The metadata graph comprises nodes representing the items; and connections between nodes representing links between the items. A relevance value is determined for a node of the metadata graph regarding a probability of the user activating said node of the metadata graph so that information of previous activations of nodes, and the connections between nodes are used when determining the relevance value.

Description

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)
Figure imgf000017_0001
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(pi) = d2 *m(pi) + l "l d2 + dx
Figure imgf000018_0001
- 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. Calculate DD / \ , * , Λ \ - dx - d2 ^
= d2 * m(cn) H - + f r. relevance
PR (cn) dl 1
.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.

Claims

Claims:
1 . 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 lot of activations;
- said determining a relevance value comprising using information of previous activations of nodes.
2. The method according to claim 1 comprising:
- collecting information regarding items the user has selected for viewing by a device; and
- using the collected information in determining the relevance value.
3. The method according to claim 1 or 2 comprising:
- examining the relevance values;
- selecting from the metadata graph one or more items having the highest relevance values; and
- providing information on the selected items to the user.
4. The method according to claim 3 comprising clustering items of which information is provided to the user on the basis of the relevance values.
5. The method according to claim 4 comprising:
- clustering items of the highest relevance values into separate clusters; and
- clustering items of lower relevance values and having similar type into the same cluster.
6. The method according to any of the claims 1 to 5 comprising calculating the relevance value by using the equation
Figure imgf000029_0001
in which
di is a first probability,
62 is a second probability,
p is a node index,
m(p) is a value indicative of the previous access frequency of the node
P.
N is the total number of nodes in the metadata graph
P ,P2,—,PN are the metadata items,
LinkTo(pi) is the set of nodes that link to p,, and
L(pj) is the number of outbound links on node p ,
7. The method according to claim 6 comprising:
- repeating the calculation of the relevance value for each node in the metadata graph; and
- repeating the calculation of the relevance values of the metadata graph at least once.
8. The method according to any of the claims 1 to 7 comprising recalculating at least one relevance value when there is a change in the metadata graph.
9. The method according to claim 8 wherein the change in the metadata graph includes at least one of the following:
- information of previous user activations of nodes has changed, or - an item or a link between items is added, removed or modified.
10. The method according to claim 8 or 9, wherein the recalculation is performed by using the equation
DD / \ , * ( Λ l - dl - d2 ^ ( r. relevance
PR (cn) = d2 * m(cn) H ^ + α ^
N r in cn. related -tOtdlC in which
di is a first probability,
62 is a second probability, cn is the changed node,
m(cn) is a value indicative of the previous access frequency of the node cn,
N is the total number of nodes in the metadata graph
r.relevance is the current relevance value of the node in the metadata graph,
r.linkcount is the count of the nodes in the metadata graph,
r.linksToChangedCount is the count of links between the metadata graph and new nodes,
r.totalC = r.linkcount + r linksToChangedCount
1 1 . The method according to any of the claims 1 to 10 comprising:
- storing a copy of information of at least one item of the metadata graph in a device;
- determining, whether said information needs to be synchronized with the original information of the at least one item; and
- using the relevance value to select the items to be synchronized.
12. The method according to any of the claims 1 to 1 1 comprising:
- determining a threshold value; and
- using the threshold value to select items to be provided to a user interface process.
13. The method according to claim 12 comprising:
- calculating the number of items in the metadata graph; and
- using the threshold value as a percentage value, wherein the number of items to be provided to the user interface process of all items in the metadata graph is determined by the threshold value; and
- selecting those items which have the highest relevance value to be provided to the user interface process.
14. The method according to claim 12 comprising:
- comparing the threshold value with the relevance value of an item in the metadata graph; and
- providing the item to the user interface process if the comparison indicates that the relevance value exceeds the threshold value.
15. The method according to any of the claims 1 to 14 comprising using the relevance value in determining how much information of an item is provided to a user interface process.
16. The method according to claim 15 comprising:
- providing all information of items having the highest relevance values to the user interface process; and
- providing only a part of the information of items having lower relevance values to the user interface process.
17. The method according to any of the claims 1 to 16 comprising providing a cache in a memory of a device for storing information of items of the metadata graph.
18. The method according to claim 17 comprising using the relevance value of an item to determine whether the information of the item is stored in the cache.
19. The method according to any of the claims 17 to 18 comprising providing a time to live value for items stored in the cache, wherein the time to live value, the relevance value or both the time to live value and the relevance value are used to determine whether the item will be replaced by another item or maintained in the cache.
20. The method according to any of the claims 1 to 19 comprising storing the metadata graph in at least one of the following apparatuses:
- a user device;
- a server.
21 . 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.
22. The apparatus according to claim 21 comprising:
- means for collecting information regarding items the user has selected for viewing by a device; and
- means for using the collected information in determining the relevance value.
23. The apparatus according to claim 21 or 22 comprising:
- means for examining the relevance values;
- means for selecting from the metadata graph one or more items having the highest relevance values; and
- means for providing information on the selected items to the user.
24. The apparatus according to claim 23 comprising means for clustering items of which information is provided to the user on the basis of the relevance values.
25. The apparatus according to claim 24, said means for clustering being configured for:
- clustering items of the highest relevance values into separate clusters; and
- clustering items of lower relevance values and having similar type into the same cluster.
26. The apparatus according to any of the claims 21 to 25 comprising means for calculating the relevance value by using the equation
Figure imgf000032_0001
in which di is a first probability,
02 is a second probability,
p is a node index,
m(p) is a value indicative of the previous access frequency of the node P.
N is the total number of nodes in the metadata graph
P ,P2,—,PN are the metadata items,
LinkTo(pi) is the set of nodes that link to p,, and
L(pj) is the number of outbound links on node p ,
27. The apparatus according to claim 26 configured for:
- repeating the calculation of the relevance value for each node in the metadata graph; and
- repeating the calculation of the relevance values of the metadata graph at least once.
28. The apparatus according to any of the claims 21 to 27 configured for recalculating at least one relevance value when there is a change in the metadata graph.
29. The apparatus according to claim 28 wherein the change in the metadata graph includes at least one of the following:
- information of previous transitions between nodes has changed, or
- an item is added, removed or modified.
30. The apparatus according to claim 28 or 29 configured for performing the recalculation by using the equation
D D / \ , * ( Λ l - dl - d2 ^ ( r. relevance PR (cn) = d2 * m(cn) H - + dl ^
N r in cn. related -tOtdlC J in which
di is a first probability,
d2 is a second probability,
cn is the changed node,
m(cn) is a value indicative of the previous access frequency of the node cn,
N is the total number of nodes in the metadata graph r.relevance is the current relevance value of the node in the metadata graph,
r.linkcount is the count of the nodes in the metadata graph,
r.linksToChangedCount is the count of links between the metadata graph and new nodes,
r.totalC = r.linkcount + r linksToChangedCount
31 . The apparatus according to any of the claims 21 to 30 comprising:
- means for storing a copy of information of at least one item of the metadata graph in a device;
- means for determining, whether said information needs to be synchronized with the original information of the at least one item; and
- means for using the relevance value to select the items to be synchronized.
32. The apparatus according to any of the claims 21 to 31 comprising:
- a threshold value; and
- means for using the threshold value to select items to be provided to a user interface process.
33. The apparatus according to claim 32 comprising:
- means for calculating the number of items in the metadata graph; and
- means for using the threshold value as a percentage value, wherein the number of items to be provided to the user interface process of all items in the metadata graph is determined by the threshold value; and
- means for selecting those items which have the highest relevance value to be provided to the user interface process.
34. The apparatus according to claim 32 comprising:
- means for comparing the threshold value with the relevance value of an item in the metadata graph; and
- means for providing the item to the user interface process if the comparison indicates that the relevance value exceeds the threshold value.
35. The apparatus according to any of the claims 21 to 34 comprising means for using the relevance value in determining how much information of an item is provided to a user interface process.
36. The apparatus according to claim 35 comprising:
- means for providing all information of items having the highest relevance values to the user interface process; and
- means for providing only a part of the information of items having lower relevance values to the user interface process.
37. The apparatus according to any of the claims 21 to 36 comprising a cache in a memory of a device for storing information of items of the metadata graph.
38. The apparatus according to claim 37 comprising means for using the relevance value of an item to determine whether the information of the item is stored in the cache.
39. The apparatus according to any of the claims 37 to 38 comprising a time to live value for items stored in the cache, wherein the apparatus is configured to use the time to live value, the relevance value or both the time to live value and the relevance value to determine whether the item will be replaced by another item or maintained in the cache.
40. The apparatus according to any of the claims 21 to 39, wherein it is a part of a user device or a server.
41 . A computer program product stored on a storage medium 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.
42. The computer program according to claim 41 comprising computer instructions for:
- collecting information regarding items the user has selected for viewing by the apparatus; and
- using the collected information in determining the relevance value.
43. The computer program according to claim 41 or 42 comprising computer instructions for:
- examining the relevance values;
- selecting from the metadata graph one or more items having the highest relevance values; and
- providing information on the selected items to the user.
44. The computer program according to claim 43 comprising computer instructions for clustering items of which information is provided to the user on the basis of the relevance values.
45. The computer program according to claim 44 comprising computer instructions for:
- clustering items of the highest relevance values into separate clusters; and
- clustering items of lower relevance values and having similar type into the same cluster.
46. The computer program according to any of the claims 41 to 45 comprising computer instructions for calculating the relevance value by using the equation
Figure imgf000037_0001
in which
di is a first probability,
62 is a second probability,
p is a node index,
m(p) is a value indicative of the previous access frequency of the node
P.
N is the total number of nodes in the metadata graph
P ,P2,—,PN are the metadata items,
LinkTo(pi) is the set of nodes that link to p,, and
L(pj) is the number of outbound links on node p ,
47. The computer program according to claim 46 comprising computer instructions for:
- repeating the calculation of the relevance value for each node in the metadata graph; and
- repeating the calculation of the relevance values of the metadata graph at least once.
48. The computer program according to any of the claims 41 to 47 comprising computer instructions for recalculating at least one relevance value when there is a change in the metadata graph.
49. The computer program according to claim 48 comprising computer instructions for performing the recalculation when:
- information of previous transitions between nodes has changed, or
- an item is added, removed or modified.
50. The computer program according to claim 48 or 49 comprising computer instructions for performing the recalculation by using the equation
DD / \ , * ( Λ l - dl - d2 ^ ( r. relevance PR (cn) = d2 * m(cn) H ^ + α '
N r in a .related V .tOtCllC in which
di is a first probability, 02 is a second probability,
cn is the changed node,
rn(cn) is a value indicative of the previous access frequency of the node cn,
N is the total number of nodes in the metadata graph
r.relevance is the current relevance value of the node in the metadata graph,
r.linkcount is the count of the nodes in the metadata graph,
r.linksToChangedCount is the count of links between the metadata graph and new nodes,
r.totalC = r.linkcount + r linksToChangedCount
51 . The computer program according to any of the claims 41 to 50 comprising computer instructions for:
- storing a copy of information of at least one item of the metadata graph in a device;
- determining, whether said information needs to be synchronized with the original information of the at least one item; and
- using the relevance value to select the items to be synchronized.
52. The computer program according to any of the claims 41 to 51 comprising:
- a threshold value; and
- computer instructions for using the threshold value to select items to be provided to a user interface process.
53. The computer program according to claim 52 comprising:
- computer instructions for calculating the number of items in the metadata graph; and
- computer instructions for using the threshold value as a percentage value, wherein the number of items to be provided to the user interface process of all items in the metadata graph is determined by the threshold value; and
- computer instructions for selecting those items which have the highest relevance value to be provided to the user interface process.
54. The computer program according to claim 52 comprising: - computer instructions for comparing the threshold value with the relevance value of an item in the metadata graph; and
- computer instructions for providing the item to the user interface process if the comparison indicates that the relevance value exceeds the threshold value.
55. The computer program according to any of the claims 41 to 54 comprising computer instructions for using the relevance value in determining how much information of an item is provided to a user interface process.
56. The computer program according to claim 55 comprising:
- computer instructions for providing all information of items having the highest relevance values to the user interface process; and
- computer instructions for providing only a part of the information of items having lower relevance values to the user interface process.
57. The computer program according to any of the claims 41 to 56 comprising a cache in a memory of a device for storing information of items of the metadata graph.
58. The computer program according to claim 57 comprising computer instructions for using the relevance value of an item to determine whether the information of the item is stored in the cache.
59. The computer program according to any of the claims 57 to 58 comprising a time to live value for items stored in the cache, wherein the computer program is configured to use the time to live value, the relevance value or both the time to live value and the relevance value to determine whether the item will be replaced by another item or maintained in the cache.
60. The computer program according to any of the claims 41 to 59, wherein the computer program is stored in at least one of the following:
- a user device;
- a server;
- a memory;
- a data carrier.
. 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.
62. 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.
63. 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; deternnining 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. 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.
PCT/FI2009/050964 2009-12-01 2009-12-01 Methods and apparatuses for relevance calculation WO2011067454A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/FI2009/050964 WO2011067454A1 (en) 2009-12-01 2009-12-01 Methods and apparatuses for relevance calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FI2009/050964 WO2011067454A1 (en) 2009-12-01 2009-12-01 Methods and apparatuses for relevance calculation

Publications (1)

Publication Number Publication Date
WO2011067454A1 true WO2011067454A1 (en) 2011-06-09

Family

ID=44114639

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FI2009/050964 WO2011067454A1 (en) 2009-12-01 2009-12-01 Methods and apparatuses for relevance calculation

Country Status (1)

Country Link
WO (1) WO2011067454A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104268174A (en) * 2014-09-15 2015-01-07 广州华多网络科技有限公司 Information displaying method and client
US9830364B2 (en) 2013-10-28 2017-11-28 Abb Research Ltd Weight based visual communication of items representing process control objects in a process control system
US10503529B2 (en) 2016-11-22 2019-12-10 Sap Se Localized and personalized application logic
CN111343241A (en) * 2015-07-24 2020-06-26 阿里巴巴集团控股有限公司 Graph data updating method, device and system

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020180786A1 (en) * 2001-06-04 2002-12-05 Robert Tanner Graphical user interface with embedded artificial intelligence
US20030028554A1 (en) * 2001-06-15 2003-02-06 Oskari Koskimies Selecting data for synchronization
US6742033B1 (en) * 2000-06-12 2004-05-25 Gateway, Inc. System, method and computer program product that pre-caches content to provide timely information to a user
US20080040475A1 (en) * 2006-08-11 2008-02-14 Andrew Bosworth Systems and methods for measuring user affinity in a social network environment
US20080189122A1 (en) * 2007-02-02 2008-08-07 Coletrane Candice L Competitive friend ranking for computerized social networking
US20090204908A1 (en) * 2008-02-11 2009-08-13 Ganz Friends list management
US20090217178A1 (en) * 2008-02-26 2009-08-27 Social Media Networks, Inc. Ranking interactions between users on the internet

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6742033B1 (en) * 2000-06-12 2004-05-25 Gateway, Inc. System, method and computer program product that pre-caches content to provide timely information to a user
US20020180786A1 (en) * 2001-06-04 2002-12-05 Robert Tanner Graphical user interface with embedded artificial intelligence
US20030028554A1 (en) * 2001-06-15 2003-02-06 Oskari Koskimies Selecting data for synchronization
US20080040475A1 (en) * 2006-08-11 2008-02-14 Andrew Bosworth Systems and methods for measuring user affinity in a social network environment
US20080189122A1 (en) * 2007-02-02 2008-08-07 Coletrane Candice L Competitive friend ranking for computerized social networking
US20090204908A1 (en) * 2008-02-11 2009-08-13 Ganz Friends list management
US20090217178A1 (en) * 2008-02-26 2009-08-27 Social Media Networks, Inc. Ranking interactions between users on the internet

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BRUNKHORST, INGO ET AL: "The Beagle++ Toolbox: Towards an Extendable Desktop Search Architecture", TECHNICAL REPORT, L3S RESEARCH CENTER, LEIBNIZ UNIVERSITY OF HANNOVER, 15 May 2006 (2006-05-15), HANOVER, GERMANY, Retrieved from the Internet <URL:http://www.kbs.uni-hannover.de/Arbeiten/Publikationen/2006/BeagleArch.pdf> [retrieved on 20100903] *
CHEN X. ET AL: "The research of personalized search engine based on users' access interest", IEEE ASIA-PACIFIC CONFERENCE ON COMPUTATIONAL INTELLIGENCE AND INDUSTRIAL APPLICATIONS, 2009; PACIIA 2009, 28 November 2009 (2009-11-28), PISCATAWAY, NJ, USA, pages 337 - 340, XP031624055, DOI: doi:10.1109/PACIIA.2009.5406590 *
GUPTA S. ET AL: "Personalization of Web Search Results Based on User Profiling", ICETET'08. FIRST INTERNATIONAL CONFERENCE ON EMERGING TRENDS IN ENGINEERING AND TECHNOLOGY, 2008. IEEE, 16 July 2008 (2008-07-16), PISCATAWAY, NJ, USA, pages 1114 - 1119, XP031292321 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9830364B2 (en) 2013-10-28 2017-11-28 Abb Research Ltd Weight based visual communication of items representing process control objects in a process control system
CN104268174A (en) * 2014-09-15 2015-01-07 广州华多网络科技有限公司 Information displaying method and client
CN111343241A (en) * 2015-07-24 2020-06-26 阿里巴巴集团控股有限公司 Graph data updating method, device and system
US10503529B2 (en) 2016-11-22 2019-12-10 Sap Se Localized and personalized application logic

Similar Documents

Publication Publication Date Title
US11861507B2 (en) Deriving semantic relationships based on empirical organization of content by users
KR101214688B1 (en) Social aspects of content aggregation, syndication, sharing, and updating
TWI636416B (en) Method and system for multi-phase ranking for content personalization
US10572565B2 (en) User behavior models based on source domain
KR102131099B1 (en) Dynamically modifying elements of User Interface based on knowledge graph
US7685200B2 (en) Ranking and suggesting candidate objects
TWI402702B (en) Method, computer readable storage medium, and computing systems of method of presenting results of a web page query
US8914382B2 (en) System and method for generation of a dynamic social page
US11288333B2 (en) Method and system for estimating user-item interaction data based on stored interaction data by using multiple models
US20150120722A1 (en) Method and system for providing multimedia content recommendations
US20210117468A1 (en) Systems and methods for selecting content items to store and present locally on a user device
US20080005076A1 (en) Entity-specific search model
EP2329450A2 (en) System and method for context enhanced messaging
CN111680254B (en) Content recommendation method and device
US8504545B2 (en) Apparatus and methods for managing a social media universe
CN113609374A (en) Data processing method, device and equipment based on content push and storage medium
WO2014066554A2 (en) Event search engine for web-based applications
US20170052926A1 (en) System, method, and computer program product for recommending content to users
WO2011067454A1 (en) Methods and apparatuses for relevance calculation
CN106462588B (en) Content creation from extracted content
KR20170060828A (en) User&#39;s Contents Access History based Recommendation Method
EP3369065A1 (en) System and method for returning prioritized content
US20180101586A1 (en) Indexing and retrieval of a large number of data objects
Göker et al. Context and information retrieval
Moon et al. Simulation analysis of prefetching image content for social networking service framework

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09851807

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09851807

Country of ref document: EP

Kind code of ref document: A1