Media Lab, Ericsson Telecom
[kaj, ingmarie, ola]@medialab.ericsson.se
Abstract
The information explosion of text and images seen on the Internet will in the near future be followed by a similar explosion of other media types. We have designed an agent system for Media on Demand services that deals with several different media types from possibly different media sources. Adaptive profiles are used to filter out unwanted information in the plethora of information available. The implementation written in Java uses Netscape for the presentation. Although only part of the system has been implemented, initial tests show that it is a feasible approach for a user friendly Media on Demand system.
Introduction
The amount of information available on the Internet has virtually exploded over the last few years. At present most of that information is text or image based, but within a few years broadband networks will enable delivery of movies, music and numerous TV-channels to the homes, leading to an information explosion for all types of media.A Media on Demand System
During the last couple of years we have implemented a Media on Demand system [1] based on the WWW and Netscape using the Open Internet Principle. Using this system we have been experimenting with a multitude of services such as Movie on Demand, Delayed Broadcast, Home Shopping and Real Estate. The system is displayed on an ordinary TV which imposes special restrictions on the user interface.
One of the main goals when designing the Media on Demand system was to enable rapid prototyping of new media services. The system should also be based on WWW, both to give transparency to other information services and because we felt that WWW was a good base for building high quality audio/video services.Technical Details
The Media on Demand system is a client server architecture with a SUN computer as a media server and PCs equipped with MPEG-decoders as settop boxes. Communication with the Media on Demand system is handled through HTTP whereas high bandwidth media streams are accessed through NFS. Although not being an ideal solution it works satisfactory in small systems.
The graphical user interface is displayed in a WWW-browser running on the settop box. When a media item is being accessed a small description file is sent through HTTP preceded by a custom mime type. The description file contains the location of the media item as well as additional information such as title and time codes. Upon receiving the description file the browser launches a helper application that plays the media stream through NFS.Towards An Agent Based Approach
Although the existing Media on Demand system is a good testbed for new media services we wanted to improve it with the ability to present a personalised selection of media.
The user agent asks the broker agent for information it believes the user would like. The broker agent then negotiates with the information providers and other broker agents in order to provide the required information. The user agent can also negotiate with the Media Broker to get feedback on which types of information resources there are and what they can provide.
In order to keep the architecture as open as possible and to ease the implementation of new information resources, all agents communicate using a standard information protocol, KQML. In order to provide a uniform KQML communication the existing media sources included in the system has a small interface that adds KQML capabilities to those sources.
The design of the broker is split up into three parts, as seen in the figure below.

The KQML manager handles the translation of KQML queries and replies by providing a simple interface to KQML. The manager is based on a core KQML communication package [7] written in Java.
The knowledge database stores information about which agents and resources there are, what type of information they can provide and where they are located.
Media Agent Design
Each user has a system of personal media agents. The different agents are designed to deal with different media types and have specially designed user interfaces for each particular service.Basic Agent Framework
The basic agent framework provides a simple set of services used by all user agents. It implements a skeleton for a simple media agent. The framework consists of three main parts as can be seen from the figure below.
The KQML Manager, which handles the communication is functionally equivalent to the KQML manager in the broker agent. It provides a simple API to the KQML language.Agent Extensions
As explained above each media agent extends the framework to provide services particular for that specific agent. A movie agent may for instance include code for browsing through movies and for viewing of selected movies.Adaptive Profiles
Traditionally in Media on Demand systems various profiles are used to select and recommend items from the media storage. These profiles are individually chosen by each user of the media system. The profile filtering usually involves selecting items from different categories, searching for keywords in abstracts etc.Social Filtering
Social filtering builds upon the idea that if you share the same preferences as another person in one area you are likely to agree in other areas as well.
Adaptivity through Genetic Algorithms
Adaptive profiles using genetic algorithms is based on the idea that if the profiles can be seen as genes and the selection of fit genes is based on the user's current preferences, the profiles will be transformed through evolution to better match the user's real preferences.
Adaptivity through Neural Networks
Our solution to the problem of achieving adaptive profiles is by using neural networks. The idea is that the users should specify the initial profile information and then let the system adapt to the continuous responses from users to the selected information.
The input given to the network is based on the static profiles. The output of the network is the estimated rating of a specific media item. The static profiles rates the incoming information to provide a static rating which is then processed by the neural network to weight the importance of each input. The training of the network takes place when the user rates a chosen piece of information.
Network Input
For each input type the input is feed through a static profile filter and then normalised to give a rating between 0 and 1. The normalised input is then used as input to the neural network.
A problem with this approach is that if weak responses are more common than strong responses then the strong responses will be flushed too often. Therefore we have implemented two queues, one for strong responses and one for weak responses. This ensures that the example pool contains relatively new examples while ensuring that stronger responses are remembered longer.
One part of the media system is a Movie on Demand service. This service lets users browse through and view movies stored in central media database. In order to assist users with movie selection we have implemented a movie agent, Chaplin, that rates and recommends movies. Although similar agents for movie recommendations exists e.g. Firefly [9], Movie Critic [10] and Morse [11], Chaplin differ from those in two areas.
Since the Chaplin user interface is displayed on a TV controlled by a radio-mouse, buttons are used as much as possible instead of lists or pull-down menus.
Associated with each title are also three buttons for user rating. By pressing those buttons the user can give a particular movie a rating as being good, average or bad. As explained above the agent uses a neural network to fine-tune the profiling.
Example
In this simple scenario a new user, Sue, starts using the system.

After initiating the new profile, Chaplin will start working in the background. The agent goes through all available movies rating them with Sue's profile.

Conclusions and Further Work
Although it is too early to make any final conclusions, initial tests show that the neural network based adaptive profiles has a clear potential to provide more accurate profiling of information than the static approach. When the implementation of the agent system is finished several user studies will be conducted to evaluate the agent based approach and how the agent interaction can be improved.
During the development it has become clear that although Java is adequate for implementation of the user agents it has some weaknesses, such as lack of pattern matching capabilities and weak interapplication communication support, that makes it less suitable for development of the Media Broker. For the media agents on the other hand, the security provided by Java as well as the machine independence provides an excellent base for agents running on the host computer.
The Media Broker in this first implementation only provides very rudimentary broker services. It only mediates services from the Media on Demand system to the media agents. The broker will be extended in future implementations to allow communication with other broker agents and possibly other media providers. Due to the problems using Java, mentioned earlier, the next implementation of the broker will probably be implemented using Erlang [17] [18] or Oz [19].
Andersen Consulting
http://bf.cstar.ac.com/
Tim Finin et al.
http://www.cs.umbc.edu/kqml/kqmlspec.ps
Jame Mayfield, Yannis Labrou & Tim Finin
http://www.cs.umbc.edu/lait/papers/kqml-eval.ps
Sun Microsystems Computer Corporation
ftp://ftp.javasoft.com/docs/javaspec.ps.tar.Z
H. Robert Frost
http://cdr.stanford.edu/ABE/JavaAgent.html
Upendra Shardanand and Pattie Maes
http://www.acm.org/sigchi/chi95/Electronic/documnts/papers/us_bdy.htm
http://www.moviecritic.com
http://www.labs.bt.com/innovate/multimed/morse/morse.htm
Beerud Dilip Sheth
ftp://media.mit.edu/pub/agents/interface-agents/news-filter.ps.Z
Davide Anguita
ftp://risc6000.dibe.unige.it/MBPv1.1.tar.Z
http://www.cm.cf.ac.uk/Movies/
http://www.w3.org/pub/WWW/PICS/
http://www.macromedia.com/Tools/Shockwave/index.html