Pixel Pixel

Pixel Pixel


The Add-A-Tag algorithm: Learning adaptive user profiles from tagging data

Due to the high popularity of folksonomies, a large amount of metadata is available. This collaboratively created data is a valuable resource. If a user’s tagging data is treated as a continuous stream of information about a user's interests, it can be used to create a rich user profile. The profile should represent the most important parts of a users‘ behaviour. Both persistent long-term interests and transient short-term interests should co-exist in the profile.


Add-A-Tag is an algorithm for constructing adaptive user profiles from tagging data that takes account of its structural and temporal nature. It is a combination of:

  • The co-occurrence technique (from Social Network Analysis) for creating a network with weighted links.
    Each time two tags are used in combination for annotating a bookmark, the weight of the edge between the corresponding nodes is increased by a certain factor.
    • If two tags co-occur the first time, create an edge with weight α
    • If tags co-occur again, increase the edge weight by β
  • An evaporation factor (from Ant Algorithms) for adding time-based information to the weights of the edges in a graph.
    Each time after the profile graph has been updated with tags from a newly added bookmark, the weight of each edge in the graph is decreased slightly by removing a small percentage of its current value.


We created a tool for visualizing the dynamic changes in the profile, in which time is represented by the vertical position of the tags. Tags enter the screen from the bottom and "bubble up" over time. The relationship between the tags is represented with a spring embedder layout algorithm. The “bubble up” metaphor and spring embedding cooperate. If a tag A that newly appears at the bottom of the screen has a connection to a tag B that is already shown, the spring embedder algorithm will cause tag B to move down and tag A to move up at the same time, until the edge between them has a length according to its weight. This has desirable impacts on the vertical positions of the profile's subgraphs, which divide themselves into long-term (top) and short-term (bottom) interests of a user.

Clicking the Start button will open a new window that shows the changes in a sample profile over time.
Loading the applet takes a while, so please be patient...


This work was done by Elke Michlmayr while being an intern at HP Labs Bristol in the Semantic and Adaptive Systems Group, under the guidance of Steve Cayzer and Paul Shabajee.


Pixel Pixel
Pixel       Pixel