An Agent System For Media on Demand Services

Kaj Nygren, Ing-Marie Jonsson and Ola Carlvik

Media Lab, Ericsson Telecom
S - 126 25 Stockholm
Sweden

[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.

Keywords

Agents, Media on Demand, Java, Neural Networks, KQML, Internet, WWW

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.

Since all these media types will be multicasted or available on demand we envision a system at home and at work offering media services. This Media on Demand system will have to deal with different problems depending on media types.

Although the information technology is evolving at an incredible rate humans are biologically the same as our Neolithic ancestors. There is clearly a limit on how much information humans can cope with. It is therefore necessary for a Media on Demand system not only to present media but also to filter out unwanted information, thus keeping the information flow to a manageable level.

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 Media on Demand system is therefore being extended with several media agents that adjusts to the users preferences. This multi agent system tries to improve user adaptivity while maintaining the flexibility of the underlying system. When fully functional the system will consist of several media agents, specialised to deal with different services. Some of these agents are presented below.

Overview of the System

When designing the media agent architecture the Media on Demand system was used as a part of the new design. There were several requirements for the agent system that affected the design.

Overall Design

The media agent system is designed as a multi agent system. Each user has a personal media agent with which the user can interact. The media agent tries to anticipate the user's media demand. Information on which media sources there are available and where to get them is provided by a Media Broker.

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.

Media Broker Design

The Media Broker is the information mediator. The broker knows which information sources are available and what type of information they can provide. Typically a media agent asks a broker for a certain kind of information and the broker then negotiates with the known information sources and other brokers to get the required information. The broker then returns the information to the media agent.

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.

The broker core provides the engine that manages the agent's responsibilities by using the KQML manager and the knowledge database. The broker core is running as a background process on the media server and is known by all media agents.

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.

A news interface, for instance, will present the user with personalised news and will fetch information based on the users's interests. This is done by adaptive personal profiles. When the user frequently fetches material covering a particular subject the agent will notice this and try to find more information about the same subject.

All media agents have the same basic behaviour. In order to increase code reuse and alleviate implementation of new agents a framework has been designed to provide the services needed by all media agents. This basic agent framework implements a simple agent. Thus when implementing a new media agent only code specific for that agent will have to be written. This code typically deals with media specific issues and implements the interface.

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.

The Adaptive Profile Manager handles the personal profiles used by the agent to decide what type of information the user wants. The adaptivity is achieved by using a neural network analysing the user's selections and responses on selected information. By training the neural network the profile manager adjusts the personal profile to the user's requirements.

The agent core is the central part of the agent framework. It is a background process that handles the agent's tasks by using the KQML manager and the profile manager. The interaction with the agent core is done by writing a custom interface for the agent.

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.

There are however several problems with these profiles. First of all they usually provide too crude a measurement of what the user really wants. Either the profile is too vague, thus presenting too much irrelevant information or the profile is too narrow, causing a lot of relevant information never to be presented. Secondly these profiles are static. People tend to change their mind of what type of information they want, but since the profiles are static the selection generated by the profiles will be less and less accurate over time. To keep the same level of accuracy the user is required to constantly update the static profiles.

It is therefore desirable to have profiles that automatically adapt to changes in the user's preferences. There are several ways to achieve this adaptability, some of which are presented here.

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.

By storing each persons personal ratings it is possible to match these against other peoples profiles. If another profile is close enough to the personal profile, highly regarded items from the other profile is marked as being likely to have a high rating in the personal profile.

This so called word of mouth behaviour is more closely described in [8] and has been implemented in several agents available on the WWW. Examples are Firefly [9], Movie Critic [10] and Morse [11].

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.

Examples of implementations that use genetic algorithms to achieve adaptive profiles include Newt [12], for news filtering and PAWS [2], for WWW-retrieval and filtering.

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 system is implemented by using a neural network algorithm. The network is a fast matrix implementation of a common feed-forward back-propagation network [13].

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.

The different filters used to process the input given to the neural network are explained below.

Network training

During the training phase the network is trained by the pool of already given responses. As the user explicitly rates media items the example pool grows. The network training has to fulfil two requirements.

To fulfil the first requirement the examples are stored in a fixed size queue. When the queue is full the oldest example is removed from the example queue. This way there is a maximum amount of examples that can be used for training.

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.

Case Study: Chaplin, The movie agent

Although the design of the system is finished, only a part of it is implemented as yet. This section will describe one of the agents that has presently been implemented.

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.

Chaplin Interface

Chaplin basically presents the available movies in a long list with the highest rated movies at the top. For each movie some short information about the movie is presented. The information covers director, lead actors and a short summary of the movie.

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.

Sue initiates a new profile. As can be seen below, she states that she likes action movies, usually likes the same movies as Pete, and that she is likely to agree with movie ratings given in the Internet Movie Database [14].

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.

At a later point Sue, wanting to see a movie, selects the movie section of the media system. As seen below she is presented with a list of available movies. Sue browses through the movies until she finds a movie she would like to see. By clicking on the movie button the movie is transferred from the media server storing the movie and displayed on her screen.

After watching the movie, she decides it wasn't very good so she rates it as being a bad movie. This will add the movie and its rating to the example pool to be used in the training of the neural network. At first Chaplin only has the static profiling information to work with when rating the available movies. But as Sue rates the suggested movies, Chaplin adapts its neural network to weight the different profiles to better match Sue's preferences.

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.

At present the only agent implemented is the Movie on Demand agent. We are planning to add several new agents for dealing with media types such as personalised TV, news and music on demand.

In the future the adaptive profiles will be extended to provide keyword matching capabilities. This will allow better static profiles to be used as input to the neural network which will increase accuracy of the adaptive profiles. The adaptive profiles will also be complemented with different experimental collaborative profiles, and extended to use experimental content ratings, like PICS [15]. The collaborative profiles will mimic the recommendations that are normally shared between friends.

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 system interface is currently a mix of Java and HTML code. In the future a possible extension is to use Macromedia Shockwave [16] together with Java. This would ease the user interface redesign while keeping the Java functionality and the Netscape based solution.

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].

References