You are on page 1of 15

Multimedia Systems (2008) 14:7387

DOI 10.1007/s00530-008-0117-1

REGULAR PAPER

An efficient ad recommendation system for TV programs


Sudha Velusamy Lakshmi Gopal
Shalabh Bhatnagar Sridhar Varadarajan

Published online: 8 April 2008


Springer-Verlag 2008

Abstract With broadcast Television (TV) going digital, the


number of channels and the programs aired have increased
tremendously. Millions of audiences of various categories
such as adults, children, youth and families watch these programs. Advertisements (ads) aired during these programs are
targeted to reach these varied audiences and are the main
revenue earners for TV broadcasters. While TV broadcasters have the task of scheduling hundreds of ads during the
various ad breaks of programs, it is important that the ads
shown during any ad break have a good impact on the viewers. An intelligent ad recommendation system that takes into
account various factors such as ad/program content, viewers
interests, sponsors preferences, program timing, program
popularity and the available ad slot that help increasing the
ad revenue would be useful for sponsors and broadcasters.
We present in this paper a single end-to-end ad recommender
system that considers all of these factors and recommends a
set of well scheduled and sequenced ads that are the best suited for a given TV ad break. The proposed recommendation
system captures the features of the ad video in terms of annotations derived from MPEG-7 descriptions and these annotation keywords are systematically grouped into a number

S. Varadharajan
e-mail: Sridhar@satyam.com

of pre-defined semantic categories by using a categorization


technique. A fuzzy categorical data clustering technique is
then applied on the categorized data for grouping the best
suited ads for a set of pre-defined program classes such as
News, Sports, Cartoons, etc. The program classes considered
are selected to match with the TV program genres proposed
in the TV-anytime standard. Since the same ad can be recommended to more than one program depending upon multiple
parameters, fuzzy clustering acts as a well suited (and perhaps also the best suited) technique for ad recommendation.
The relative fuzzy score called degree of membership calculated for each ad is an indicator of the number of program
clusters to which the given ad belongs to. The clustered ads
are then scheduled using an algorithm that takes into consideration parameters such as program popularity, program
timing and available ad slots, to provide the best possible
package for sponsors to show their ads. The scheduled set of
ads if played randomly during an ad break might make viewers (sponsors) unhappy, for instance, when similar (competing) product ads get played consecutively. Hence, the system
employs sequencing algorithm that takes into account the
pre- and post-ad sequences in order to better order the scheduled set of ads in any ad break. We show that our proposed
recommendation system provides an effective way of recommending the right ads for broadcast TV programs. We also
demonstrate that this strategy does indeed help sponsors to
attract viewers attention while playing their ads during ad
breaks of TV programs. The proposed ad recommendation
system is compared and evaluated subjectively with the current ad display system, by ten different people, and is rated
with a high success score.

S. Bhatnagar
Department of Computer Science and Automation,
Indian Institute of Science, Bangalore 560012, India
e-mail: Shalabh@csa.iisc.ernet.in

Keywords Recommender systems Broadcast TV ads


Personalization Fuzzy clustering Text categorization
Ad scheduling Ad sequencing

S. Velusamy (B) L. Gopal S. Varadharajan


Applied Research Group,
Satyam Computer Services Limited,
Indian Institute of Science, Bangalore 560012, India
e-mail: Sudha_V@satyam.com
L. Gopal
e-mail: Lakshmi_Gopal@satyam.com

123

74

1 Introduction
Digital TV broadcasts a wide range of programs that reach a
large audience through scores of channels. TV is the most
liked medium for entertainment and information, and is
widely recognized to be the best mode for advertisement of
products and services. It gives advertisers numerous options
to showcase their brands on various channels. However, in
order to make a better impact, ads must cater to the varied
tastes of viewers. Hence the need for an intelligent recommendation system that can assist the advertisers/sponsors
to suitably place their ads among the variety of TV programs and ensures the ads reaching the intended audience
effectively.
In general, recommendation systems take into account
users interest and/or item content, and provide personalized
recommendations to each user. These systems can be broadly
classified as (i) content based systems [1]that use machine
learning techniques to select items based on the correlation
(similarity) between the contents of items and the preferences
of users; (ii) collaborative filtering based systems [2,3]that
use the preferences of a group of similar users to make a recommendation to a new user whose interests match with the
group. Here, the items are recommended on the basis of user
similarity rather than item similarity; (iii) knowledge based
systems [4]that use the knowledge of both users and items
to make a recommendation. That is, these systems study the
content of the items as well as the interest of a large number of
users and provide personalized recommendation to the users.
In recent years, many recommendation systems have been
proposed and applied variously for E-Mails, Web, TV, etc.
Much work has been done on ad recommendation [57],
where ads are the items recommended according to users
interests. Many of these systems mainly focus on ad selection
for personalized Web and digital TV based on the preferences
of individual users. For instance, Web ad selectors [5] personalize ads based on the contents of the preferred sites of
the users. In the case of digital interactive TV systems [6],
the ad selectors deliver personalized ads based on the profiles of individual users. However, the ad recommendation
scenario for real-time broadcast TV programs is quite different from the above discussed applications in that the ad
recommendation is not tailored to a single users preferences
but is based on the audience types (i.e., pooled groups of
viewers, say adults, children, etc.). Collaborative filtering
[8] plays an important role here in obtaining the information
on the audience type.
In the case of broadcast TV, one needs to consider various
parameters such as ad/program content, viewers interests,
sponsors preferences, and external parameters such as program timings, program popularity, available ad slots, etc.,
for ad recommendation. The reasons for considering these
parameters are as follows.

123

S. Velusamy et al.

1. Ad/program content: Ad and program content


matching is considered as one of the important parameters in ad recommendation. The studies in the literature,
for instance, [9], suggest that if the content/theme of the
ad shown is relevant to the aired program, the ad has a
better impact on viewers. For example, showing a chocolate drink ad during a childrens program, for example,
Cartoons, has a better impact on the desired audience
than showing the same ad during other programs such
as News. The ad/program content includes information
about the presence of Objects, People, Celebrities and
Events in the video. Besides the theme relevance, a match
with respect to People present is desired. (As the ad creators generally involve people belonging to the targeted
age group in the ads, the audience information can be
easily derived from the People feature). Likewise, the
Celebrities feature makes the ad recommendation more
sensible for TV scenario as the presence of celebrities
helps in boosting the popularity of the ads. Figure 1 gives
an example of the content (visual) relevance between the
programs and ads with respect to various attributes.
2. Viewers interest: Viewers interest on the theme of the
ad shown has a direct impact on ad revenues [10]. Assuming that the viewers generally watch the programs that
match with their interests, the ads aired along with those
programs would catch their attention when the ads context and viewers profiles matches. Hence, it is necessary to capture the viewers profiles on the programs
that are of interest to them. In other words, it is important to know the audience type for various programs. For
instance, [11] presents a TV personalization system that
uses explicit and implicit viewers profile for recommendation.
3. Sponsors preference: As the main revenue for TV
channels is obtained from sponsors/advertisers, it is
important to consider their preferences for ad recommendation. Sponsors preferences such as ad timings,
ad slots, play order (with respect to other ads), and the
popularity of the program during which the ads are aired,
makes the TV ad recommendation system quite different from any other recommendation system. This factor
provides the choices for sponsors to incorporate their
interest on showing ads along with the program types
that they feel relevant to their ads.
4. Program timings: The TV programs are broadcasted
round-the-clock (24/7) through many channels and the
kind of viewers watching them over different timings
are varied. For example, afternoon programs have more
housewives watching TV programs like Serials, while
the evening hours, say 4.006.00 p.m., are dominated
by kids as viewers. Likewise, the prime time programs
during 8.0010.00 p.m. have office goers/adults as audience and the weekends have families as the dominant

An efficient ad recommendation system for TV programs

75

Fig. 1 Example pictures depicting the relevances between the programs (top row) and the ads (bottom row)

TV viewers. Moreover, program timing helps measure


audience information, indirectly.
5. Program popularity: Most of the popular programs
have a large audience and thus more people watch ads
aired during ad breaks of these programs. The program
popularity shows how much the program is liked by
viewers. A more popular program attracts more viewers
and hence more people watch ads played during these
programs.
6. Available ad slots: During an ad break, the ad slots are
made available to sponsors based on various parameters.
Besides, sponsors do not prefer to air their ads before or
after their competitors ad is shown. Therefore the available ad slot information is another factor that needs to be
considered for scheduling ads effectively.

The rest of the paper is organized as follows: the


deployment model for the proposed recommendation system
is presented in Sect. 2. Section 3 explains the functionality of
the fuzzy ad clustering technique that we use for clustering
ads with respect to various parameters. It includes the details
of ad annotation, data pre-processing before clustering and
the implementation details of the algorithm. The procedure
for scheduling clustered ads is given in Sect. 4. In Sect. 5,
we provide a heuristic sequencing algorithm that we use for
ordering ads. The system evaluation results are presented in
Sect. 6 and the conclusions are given in Sect. 7. A short
appendix given at the end of the paper, in Appendix, provides a description of some of the tools and standards, and
definitions of precision and recall metrics.

In this paper, we present an efficient ad recommendation


system that considers the above mentioned parameters and
recommends ads to be broadcasted for different TV programs. It also suggests the appropriate order for broadcasting ads within the ad breaks of a particular program. We use
in this paper a fuzzy clustering approach for clustering ads
into various program classes. This provides a novel means
of ad recommendation, for the same ad can be put in various
program classes. We also provide efficient algorithms for
scheduling and sequencing ads for TV programs. For our
experiments, we first compare our fuzzy clustering approach
with the well known K-histogram technique [12] and observe
that the fuzzy clustering approach that we use provides better recommendation results. Next, we show results of scheduling and sequencing algorithms with the clustered sets of
ads obtained using the fuzzy clustering approach. Subjective
evaluation of our algorithm is done by ten different people
and rated with a high success score. To the best of our knowledge, such an end-to-end solution comprising of clustering,
scheduling and sequencing for TV ad recommendation has
not been provided before. The subsequent sections discuss
the proposed system in detail.

2 Ad recommendation - deployment model


Figure 2 provides a pictorial representation of an ad recommendation system (deployment model). The system consists
of our proposed ad recommendation engine, supporting management modules, and the ad/program data- bases. The recommendation engine is the core of the recommender system
shown, and its main objectives are, (i) to recommend suitably
matching ads to the programs while taking into account various parameters/features such as ad/program context, viewers interests and sponsors preferences; (ii) to schedule the
recommended set of ads with respect to the program timing, program popularity and the available ad slots; and (iii)
to sequence (order) the ads scheduled to a particular ad slot
effectively, with the help of other supporting modules.
The TV programs to be aired and the ads are placed in
the program and ad databases, respectively. These databases
can be localized so that the ads can be different for each
demographic region. The system works on the ads in the
local database thus providing a means to recommend ads for
programs suitable to a particular region. The features of the
ads/programs present in the databases are described/indexed

123

76

S. Velusamy et al.

Fig. 2 Automatic ad
recommendation system

using textual keywords called annotations. These keywords


describe the ad/program context, people and famous people
(celebrities) present, sponsors preference information, etc.,
and are derived from the MPEG-7 standard descriptions associated with the videos. As these annotations widely vary in
meaning and usage, they are categorized into pre-defined
semantic classes using a text categorization technique. This
helps to reduce the complexity in handling wide variation
in text data. The program videos are assumed to be preclassified into the following categories: News, Sports, Movies, Serials, Cartoons and General/Others, according to the
index associated to each. These program categories are selected by considering the TV program genres proposed in the
TV-anytime standard that provides a means of describing
the content by metadata [e.g., utilized in Electronic Program Guides (EPGs)], audience information, TV content
and user profiles, for indexing and searching purpose. In
the reference [13] on a multi-agent recommender system
AVATAR, TV-anytime specification has been referred for the
description of contents, the users preferences and their activity logs. The annotated ads are clustered to above mentioned
program classes using a fuzzy clustering technique. Fuzzy
clustering is chosen since an ad matching to a program with
a certain degree of relevance can also be matched to other
programs with another degree of relevance. The degrees of
relevance are directly obtained from the fuzzy membership
function.
Fuzzy clustering gives a first level recommendation of a
set of ads for various program classes based on the video
profiles match, viewers interest and sponsors preference.
This, however, does not take care of other external factors
such as program timing, popularity of the program and capacity/number of audiences for the program that are essential
for the ads to reach the intended audience. Also, the ad slots
are limited and there is never an on-demand selling of ads to
various sponsors as that might lead to an undue advantage for

123

one sponsor to get most of the prime-time or weekend slots.


Hence, to provide the best possible package for the sponsors
to show their ads, an optimal ad scheduling algorithm that
takes into account the fuzzy score obtained for each ad by
clustering and also factors such as program timing, program
popularity, etc., is used to schedule the recommended set of
ads into the given number of available ad breaks.
The scheduled set of ads if played randomly during an
ad break might make the sponsors unhappy as (for instance)
one sponsor will not prefer his ad getting played immediately
after his competitors ad. In fact, the existing ad management
systems [14,15], use the policy of not playing ads of competing sponsors consecutively or on the same Web page. Hence,
a simple heuristic algorithm is applied to sequence/order the
ads scheduled for a particular ad break. The algorithm ensures
that consecutive ads that are played are not of competing
products/services of the same type. The sequencing algorithm takes into consideration the pre- and post-ad sequences
for each ad played in an ad slot during an ad break. Thus the
proposed system provides an entire end-to-end solution for
ad recommendation, in which the sponsors get the systems
recommendations of programs for showcasing their ads that
would maximize the product returns and improve the brand
value. Sections 3, 4 and 5 discuss the main stages of the ad
recommendation system in detail.
Figure 2 depicts the various other supporting modules that
provide input to the ad recommendation engine and thus create a complete deployment model for our ad recommendation
system. The various functionalities of these modules are as
given below.
Viewer profile management: captures the behavior and
interest of different types of viewers from their explicitly or implicitly provided inputs. It constantly updates
the profiles of viewers to record their viewing patterns or
behavior. Explicit inputs are taken from the surveys done

An efficient ad recommendation system for TV programs

on the viewing habits and the implicit inputs are obtained


by calculating the effectiveness of the ads. In recent times,
it has become common to use collaborative filtering (CF)
techniques in order to get aggregated interests of a group
of viewers of the same type, say children. This input is
given to the ad recommendation engines clustering agent
to make ad recommendation based on viewers interests.
TV channel/program management: manages broadcasting various programs on different channels and their timings. This management is done by the broadcasters. This
module provides input to the scheduling agent regarding
the program timings and channel information.
Program rating management: obtains information on
program popularity using various surveys. For example,
news media reports each week the top rated, most watched
television network programs. This input is considered as
important for scheduling as most sponsors like to place
their ads for programs with top ratings. The ratings change
constantly and must be effectively taken into account for
the purpose of recommending ads.
Ad insertion block: is an interface block that does an
insertion of the scheduled and sequenced set of ads at the
pre-defined ad breaks of various programs shown on various channels. We have included it here for completeness
of the system.

77

Fig. 3 Example - MPEG-7 Ad Annotation

programs aired round the clock (24/7) on various channels.


The keywords present in the library are selected to sufficiently describe the ad features such as Context, People,
Celebrity presence, Sponsors detail (the features are selected as per their importance studied in [9,10,16]). All the
keywords present in the dictionary are used as training data
for clustering. Prior to clustering, the keywords are categorized semantically using a categorization technique that is
explained in the following subsection.

3 Fuzzy clustering based ad selection

3.2 Keyword categorization

In this section, we present ad annotation and keyword categorization techniques that are pre-processing steps for fuzzy
clustering. The fuzzy clustering algorithm and the implementation steps are discussed in detail in the following subsections.

For clustering to be more effective, the keywords are pre-processed into a number of predefined categories. The categorization helps in clustering semantically similar ads into the
same cluster, and to reduce the complexity of clustering large
amounts of data with wide variation. This is achieved with
the help of search engines such as Open Directory Project
(ODP),1 a Web based categorization tool, and WordNet [17],
a synonym based categorization thesaurus. A variety of categorization techniques exist in the literature [18,19]. The
typical approach is to categorize the entire data into a certain number (I ) of Web related categories and map these to
a number (J I ) of desired categories. We have used a
method of semantic categorization that assists in increasing
the clustering accuracy.
Assume there are N ads in the database and each ad (A)
is represented by a set of M (for some M 1) features, i.e.,
A = {A1 , A2 , . . ., Am , . . ., A M }. The M features such as Context, People, Celebrity presence, etc., of each ad are described by the annotation keywords that are in turn picked from
the initial, un-categorized dictionary Q, where Q = {Q 1 ,
Q 2 , . . ., Q M }, used to annotate the ads, i.e., the annotation

3.1 Ad annotation
The features of ads in the database are represented using
textual keywords called annotations. They carry comments,
explanations, or external remarks describing the multi-modal
information of an ad. The annotation details for the ad videos are extracted from their associated MPEG-7 description
(see Appendix) or are obtained from manual annotation by
the media experts. An example MPEG-7 description from
which the annotations are extracted is shown in Fig. 3. The
file shown contains a synopsis of the content, genre, language detail, production information, date, etc. Out of this,
only the relevant information is extracted by referring to the
annotation library available.
An annotation library that is referenced for extracting
information from the MPEG-7 description is defined by a
number of media experts by looking at various kinds of TV

http://dmoz.org/ , http://www.google.co.in/dirhp?hl=en

123

78

S. Velusamy et al.

Fig. 4 Example: context categories

keywords for any feature, say Am , are picked from a set of Q m


keywords associated with that feature. (Note that in general
the number of keywords associated depends on the particular ad feature). As the keywords present in Q m , m, are
typically large in number, they are semantically ordered or
categorized into Pm , m = 1, . . . , M, pre-defined categories,
where Pm Q m , m. Thus, we represent the feature Am as
Am = {am1 , am2 , . . ., am Pm }. Each of the ami , i = 1, . . . , Pm ,
are called the root attributes of Am . For example the root attributes for the feature Context (Am ) are Food and Drinks,
Beauty and Health, Financial Services, . . ., Education, (see Fig. 4). These root attributes are selected by human
experts in the ad domain. The Pm keywords under Am are
distributed into the root attributes with the help of ODP,
WordNet and Hermatic Frequency Counter (HWFC) (see
Appendix). The keywords under each root attribute form the
adaptive reference dictionary and any test keyword is automatically adapted to one of the root attributes as explained
below.
Test keyword adaptation: Let Y = [Y1 , Y2 ,. . .,Ym , . . ., Y M ]
be a test keyword set having M attributes. Let m = 1 and
p = 1 initially.
Step 0: Keywords under Ym are given to ODP and WordNet
and on the resultant pages, HWFC is employed to sort the
frequency of listed categories.
Step 1: The top 5 HWFC listed categories are taken in descending order and compared with Am s root attributes {am1 , am2 ,
. . ., amp , . . ., am Pm }. If there is a match with the root attribute
amp for some p, the same is added to the amp category and
the process is stopped, else if there are no matches, Step 2 is
executed.
Step 2: Let the child attributes of amp be qmpr , m = 1, . . . , M,
p = 1, . . . , Pm , r = 1, . . . , Rm , where Rm is the number of
child attributes under amp . Ym is compared with qmpr |r =1 for
all p = 1, . . . , Pm . If there is a match, the process is stopped,
else the next child node qmpr |r =2 for all p = 1, . . . , Pm , m =
1, . . . , M, is considered and the same process is repeated for
all increasing r until a match is found. Once a matching
attribute is found, keywords under Ym are appended to their
matching root attributes.
Step 3: Steps 02 are repeated for m = 2, . . . , M, i.e., for
all the keywords of the data.

123

Step 4: All the above listed steps are repeated for p = 2 to


p = Pm , m, i.e., for all the ad keyword vectors in the data
set. The categorized data set is stored in the database.
For example, given a test keyword, say, Advertising Age
(assume this keyword is not present in the initial dictionary),
the outputs such as media, publications, etc., provided
by ODP and WordNet are analyzed and the word Advertising Age is appended to Magazine which is a sub category
of Information (see Fig. 4).
3.3 Ad clustering
There are a number of clustering algorithms proposed in
recent years for un-ordered categorical text data. These can
be broadly classified as hard partitioning, fuzzy partitioning
or hierarchical clustering methods. Zengyous method [20]
called squeezer picks the data points consecutively one after
another and hierarchically clusters each data point with one
of the existing clusters if the given data point is more similar/close to its centroid, else forms a new cluster and keeps
proceeding until all the data points are clustered. A robust
clustering algorithm (ROCK) [21] works based on a link
similarity measure for merging similar clusters. Huang [22]
proposed a K-modes categorical data clustering technique by
extending the K-means algorithm. It clusters categorical as
well as numerical data and has been shown to provide efficient clustering performance in real world databases. Zengyous [12] histogram based categorical clustering method
differs from Huangs method of centroid calculation.
In the case of ad recommendation where ads are clustered
to various program classes, there is a certain amount of fuzziness in the degree of ad relevance to multiple programs. A
particular ad matching to a program with a certain degree
of relevance can also match with other programs with other
degrees of relevance. Hence, our main objective is to cluster
the un-ordered categorical ad data into predefined program
categories, while each ad can belong to more than one program cluster with different likeliness. We have used Huang
and Ngs [23] generalized partitioning method called fuzzy
K-modes clustering algorithm. A fuzzy score called degree
of membership for each ad indicates the likeliness of a particular ad to different program clusters.

An efficient ad recommendation system for TV programs

79

3.4 Fuzzy K-modes clustering


Fuzzy clustering algorithms are well known for clustering
patterns to various clusters with different degrees of membership. Though the application of fuzzy clustering analysis
to pure text partitioning is successfully used in various
applications, it is rarely applied for semi-structured data classification such as XML documents. The K-means based fuzzy
clustering technique is known to be one of the best methods
for clustering. However, it performs well only on numerical data sets, but not on categorical text data which is nonnumerical in nature. This limitation is overcome in the fuzzy
K-modes clustering algorithm[24] that efficiently handles
categorical data sets. In our case, as each ad data is represented by a set of un-ordered textual keywords, the fuzzy
K-modes clustering is considered as the best suited method
to classify an ad into various program clusters with a different degree of membership in each. We apply the fuzzy
K-modes algorithm on the pre-processed ad data to cluster it
into program clusters (classes) such as News, Sports, Movies, Serials, Cartoons and General/Others (class labels). The
implementation steps of the algorithm are explained below.
Let X = {X 1 , X 2 , . . . , X n , . . . , X N } be a set of N well
categorized data points stored in the database. These data
points (ads) need be clustered into K classes of programs.
As explained previously, a data point X n , n = 1, . . . , N is
defined by the set of features {A1 , A2 , . . ., Am , . . ., A M },
where each Am has a set of root attributes (keywords) {am1 ,
am2 , . . ., amk , . . ., am K }, and their corresponding child attributes. The data is called categorical since its attributes, Am ,
m are finite and un-ordered keywords.
We denote X n as [(1) xn1 , (2) xn2 , . . ., (m) xnm , . . .,
(M)
xn M ], where (m) , m are
 the weights given to its M
attributes, with the constraint m (m) = 1. These weights
are decided according to the degree of importance of the data
features. Currently, we have assumed equal weights for all the
features/attributes of the ad. Varying weights may however
also be incorporated. The objective of the fuzzy K-modes
algorithm is to minimize the cost function
Jf =

K
N 


nk d(Vk , X n )

(1)

n=1 k=1

subject to the constraints,


> 1,

(2)

nk [0, 1], n, k

(3)

K


nk = 1, n

(4)

k=1

0<

N

n=1

nk < N , k

(5)

where, N is the number of ads (data points) present in the


database and K is the number of program classes (clusters).
Also parameter in (2) controls the fuzziness of membership
of each data point to the various clusters. Here nk represents the relative degree of match between the nth ad and the
kth cluster, and corresponds to the degree of membership,
explained previously, of the nth ad belonging to the kth cluster. A high value of nk indicates a close match between the
nth ad and the kth cluster. The constraint in (3) says that each
ad can have weights ranging from 0 to 1 associated with different program classes. The weight nk = 0 associated with
nth ad indicates that the ad does not belong to cluster k and
nk = 1 indicates that the nth ad belongs to only the kth
cluster. The constraint in (4) says that each ad should at least
belong to one program class. That is none of the ads is left
un-clustered. The constraint in (5) essentially implies that
there is at least one element in each cluster and that not all
elements are put in a single cluster. The quantity d(Vk , X n )
is defined as in (6) given below.
Generally, selecting an optimal value of K plays a crucial role in the clustering accuracy and there are no hard and
fast rules to decide on this. Here, we have fixed the number of clusters to be 6, i.e., K = 6, and labeled these as
News, Sports, Movies, Serials, Cartoons, and General/Others. The vectors, Vk = [vk1 , vk2 , . . ., vkm , . . ., vk M ], k, are
the centroids of K clusters with their attributes exhibiting the
characteristics of their corresponding program classes.
In order to minimize the cost function, we use a simple
K-modes distance metric called Hamming distance measure
[22] between the centers and datum. The Hamming dissimilarity measure d(Vk , X n ) between the centroid Vk and a data
point X n is defined as,
d(Vk , X n ) =

M


(vkm , xnm ),

where,

(6)

m=1

(vkm , xnm ) =

0, vkm = xnm
1, vkm = xnm .

(7)

One may note that (vkm , xnm ) = 1(vkm , xnm ), where


(vkm , xnm ) is the usual Dirac-delta function defined as

(vkm , xnm ) =

1, vkm = xnm
0, vkm = xnm .

(8)

The implementation steps of the algorithm are given


below.
1. Let iteration index := 1 and V ( ) := {V1 , V2 , . . .,
Vk , . . ., VK } be the K initial centroids selected for K
clusters. Set  > 0 to be a small scalar.
2. Cluster the data points to K clusters and calculate the
membership values W ( ) = {nk }, 1 n N , 1
k K } such that J f is minimized, i.e., compare all

123

80

S. Velusamy et al.

the categorical ad data points with the initial K modes


selected, using the similarity metric (6) and calculate
membership values W ( ) .
3. Set iteration index := + 1. Update all K modes
of the clusters using Huangs [22] mode updating procedure given below (Sect. 3.4.1), i.e., V ( ) V ( +1) .
Then, update W ( ) using the new centroids V ( +1) .
4. Continue iterating the above step until the difference between W ( ) and W ( +1) is less than  (threshold).

that we use. The results are then presented in Sect. 6. We


compare the performance of our fuzzy clustering approach
with the K-histogram technique [12], and observe that fuzzy
clustering provides better results for ad recommendation. In
Sect. 6, we also show the results of scheduling and sequencing with the clustered ads obtained using fuzzy clustering.

3.4.1 Mode updating

In this section, we present a mathematical programming


approach to schedule ads for broadcast TV scenario. Most
of the ad sponsors would like their ads to be shown in programs where the intended audience (for the ads) is large. This
would be possible, for instance, in the case of popular and
highly rated programs. Further, it is also important to have ad
slots for various sponsors distributed evenly amongst all the
available ad slots (assuming that all sponsors pay a similar
amount for the slots, until otherwise the sponsors specifically ask for the particular time slot in a particular program
for which the amount may be different). This would ensure
that no sponsor has an undue advantage of getting only, say,
prime-time slots. Thus, we have a certain number of ads competing to be placed in a limited number of spaces called ad
slots within an ad break.
In advertising media, scheduling refers to the pattern in
which advertising is timed for a certain period (say, a
day/week/month). There is a time-table of ad slots for a certain channel for all the programs that are aired during the
week. This is fixed and gives rise to a situation where ad
buying by advertisers would need scheduling of the available ad slots. Scheduling is a well studied problem in the
field of Operations Research. There are a number of research
papers available on ad scheduling for various media such as
TV, Web pages, etc. For instance, Bollapragada et al. [25]
present a mixed integer programming algorithm to schedule a set of ads on a set of available slots so that multiple
airings of the same ad are as much evenly spaced as possible.
A genetic algorithm based ad scheduling technique proposed
in [26] illustrates how revenue could be significantly increased in the case of Web pages. Saha et al. [27], select program
slots for ads based on the maximum number of audience
the program reaches to. Kimms et al. [28], provide a heuristic model for maximizing revenues for the orders placed by
advertisers who have certain prior conditions for airing their
ads.
Fuzzy clustering gives a first level recommendation of ads
for various program classes such as News, Movies, etc., based
on the video profiles match, viewers interests and sponsors preferences. However, it results in fuzzy partitioning
of ads available in the entire ad database into a number of
pre-defined program classes. For example, it gives a set of
relevant ads that could be played during the Movie related

The modes are updated using a procedure as in [22]. The


broad idea of updating the modes is as follows. Given the
centroid Vk = [vk1 , vk2 , . . ., vkm , . . ., vk M ], the attributes
vkm V ( ) , m are updated to minimize the cost function
J f , where,



nk
nk , 1 n N , 1 m M.
{n|xnm =amr }

{n|xnm =amt }

(9)
We refer the interested reader to [22] for a proof of the
fuzzy K-modes update method. As the performance of clustering algorithms depends upon the initial modes, we use the
domain knowledge to select the initial modes so that they are
a better representative of the program classes selected and
make the algorithm converge faster.
The examples given below show how the various ad attributes and their relevance are exploited in the clustering algorithm.
Beauty and health related items under the feature Context get more preference for Movies and Sports programs
than News programs.
If the People information is Family, the ad is recommended for Movies.
If an ad has a Celebrity in it, say a Sports star in a
Car ad, then the ad gets a higher weightage for a Sports
program.
The external Sponsor details attached with each ad
directly give the sponsors preferences for their ads in
relation to various programs. For instance, Real-estate
advertisers might prefer their ads be broadcasted in News
programs.
The algorithm is found to be efficient in clustering ads
that are similar, and provides different degrees of membership of each ad for different programs. Note that clustering is part of the recommendation system and the final
system accuracy depends on other stages, viz., scheduling
and sequencing as well. Hence, in the next couple of sections, we describe the scheduling and sequencing algorithms

123

4 Ad scheduling

An efficient ad recommendation system for TV programs

81

July 2007. For personalized systems, the results of itemitem


based recommender systems, such as the one in [30], use CF
techniques to list the TV programs by their popularity for a
particular audience. In a broadcast scenario, if similar audiences are grouped together into the same cluster, the density
of ratings increases as there are similar audiences within a
given cluster [31]. For our application, we use clustered CF
technique and Nielsen ratings for getting the popularity of
the program and the audience information (number of likely
audiences for a program). The following subsection explains
our modified TV-break packing technique that we apply for
our ad recommendation system.

Fig. 5 Nielsen TV rating

programs ad breaks that are scheduled to be broadcasted


over, say, an entire week. This, however, does not take care
of external factors such as program timing, popularity of program and number of audience for the program, that are essential for the ads to reach the intended audience. Moreover, with
the fixed number of available ad breaks, it is essential to have
an efficient procedure that optimally schedules the groups of
ads (recommended by fuzzy clustering) to fit into the various
ad breaks of programs. We present a constraint based programming technique, where each TV break is characterized
by its associated program popularity, forecasted audience and
the number of ad slots it can contain.
A recent work by Benoist et al. [29] presents an optimized
TV-break packing algorithm using a constraint programming
and local search technique. They propose various ad packages that are characterized by slot price, number of slots, and
broadcast timings (shape). The main aspect of this technique
is a guarantee of viewership attached to each type of package. This technique is closely related to the problem we are
looking at. The algorithm ensures that different time zones
such as prime time, week-ends, week-days, etc., are equally
utilized in scheduling. However, a limitation of the algorithm
is that it concentrates mainly on managing ad slots to pack
the ads, but does not take into account attributes such as program content, viewers interest, and program popularity for
efficient ad recommendation. Hence, we propose a modified
TV-break packing technique to use the ad weights obtained
from fuzzy clustering and take into account the programs rating and popularity, for scheduling ads. In order to obtain the
popularity of the program and the audience information, we
use standard TV program ratings such as Nielsen Ratings.2
The Nielsen TV ratings report by ranking the percentage
for each show of all viewers watching television at a given
time, see Fig. 5 for a sample Nielsen rating for the week of 23
2

http://www.nielsenmedia.com/nc/portal/site/Public/

4.1 Scheduling technique


Input: Groups of ads with various degrees of membership
with each program class, program ratings and their corresponding audience information.
Output: Scheduled ads that efficiently fits into all the ad
breaks of a particular program broadcasted during a week.
Constraint: The subsets scheduled must guarantee at least a
lower bound on number of audiences.
Let,
P
Q
R
Fi,r
si
pi
ui
gi
cj
aj
z i,k
min
qi,k
max
qi,k
Yi
Xi j

total number of ad breaks


total number of programs
total number of ads
fuzzy membership value obtained for the r th ad of
program i
number of ad slots for program i
no. of time zones of program i
audience information for program i
popularity/rating of program i
capacity or number of ads that can fit into the ad break
j
no. of audience for the ad break j
kth time zone of program i
minimum number of ad slots in zone z i,k
maximum number of ad slots in zone z i,k
Binary variable which is 1, if it satisfies the capacity
of audience and 0 otherwise
Binary variable equal to 1 when an ad of program i
is broadcasted during ad break j and 0 otherwise.

Instance: For given integers P and Q, six vectors of nonnegative integers s, p, u, g of length Q and c, a of length P,
respectively.
min , q max |k [1, p ]},
Q collections of triplets {(z i,k , qi,k
i
i,k
min
such that constraints (10), (11) are satisfied, i.e., qi,k and
max are the minimum and maximum number of ad breaks
qi,k
in a program i in zone z ik as per (10) and two different zones
of a program are always either non-overlapping or included
in each other, see (11).

123

82

S. Velusamy et al.

5 Ad sequencing
If one places the scheduled ads randomly in the available
ad breaks, the ads that are similar in context or from competing sponsors (for example, Pepsi and Coke) might get
played consecutively. This would create an unpleasant situation for the sponsors as well as viewers [14]. Many of
the existing ad managing systems [15] use the policy of not
playing ads of competing sponsors consecutively or on the
same page in the case of Web. Hence, it is important to have
an effective sequencing technique that takes into consideration pre- and post-ad sequences for each ad. Bollapragada
et al. [32] discuss a variety of sequencing methods for
commercial identification rotator problem. Based on these,
we extend a heuristic sequencing technique that considers
pre- and post-ad sequences for spacing ads evenly to meet
the sponsors specifications. This is described in detail
below.

Fig. 6 Ad scheduling factors

min
max
i Q, k pi , z i,k {1, . . . , P}; 0 qi,k
qi,k

(10)
i Q, k, l pi , z i,k z i,l {, z i,k , z i,l }.
Objective: Find X : [1, Q] [1, P] {0, 1}
and Y : [1, Q] {0, 1} so as to
Maximize



Fi,r gi Yi

(12)

subject to the constraints,



X i j = si ,
i Q,

(13)

r R iQ

jP

j P,

Xi j c j ,

iQ
min
i Q, k pi , qi,k

i Q,

(14)


max
X i j qi,k
,

(15)

jz i,k

a j X i j u i Yi .

(16)

jP

Constraint (13) corresponds to the number of ad slots for a


program being fully met. Constraint (14) corresponds to the
fact that the capacity c j of the ad break j cannot be exceeded
for different programs. Further, (15) imposes the constraint
that for each time zone z i,k , the number of ad breaks selected
min , q max ]. When the audifor a program i must belong to [qi,k
i,k
ence requirement for the program is satisfied, Yi is set to 1
in (16). The fuzzy membership variable Fi,r for each ad and
the popularity of the program gi in (12) ensures that the ads
scheduled for the ad breaks are the best possible combinations to maximize the impact of the ad. Figure 6 depicts the
flow model of the above ad scheduling algorithm. We refer
the reader to [29] for proofs and detailed discussions.

123

5.1 Sequencing algorithm

(11)
Let us consider a group of N ads recommended for a programs ad break with N ad slots. Each ad is associated with a
weight that is calculated through the clustering and scheduling algorithms. In addition to the sponsors preferences on the
program class, they might also demand that their ads should
be in the first spot, the last spot or in some other (say, arbitrary) position in a break [28]. (Of course, only one ad can fit
into any slot). For such ads, we set their weights as either 1
(when the sponsor wants his ad to be first in the ad break) or
0 (when the sponsor wants his ad to be last in the ad break),
irrespective of the weights that are associated with them. As
the ads recommended for each ad break match with the program context, user profile and other parameters, there might
be subgroups of ads that are similar in context or are of competing products/services. Let there
 M be M (where (M N )
(no. of ads in i) = N .
subgroups for the N ads, viz., i=1
For example, Nike and Adidas shoe ads belong to the
same subgroup, as they correspond to the same product from
different companies. The ads in each subgroup are arranged
in descending order of their weights. The goal is to evenly
(to the extend possible) space the ads (in all subgroups) into
N available slots. Let,
j
ij
nj
k
dj
Ai j

subgroup index, with j = 1, 2, . . . , M


ith ad in jth subgroup. Here, weight of ad i j is greater
than that of ad (i + 1) j
number of ads in subgroup j
the index of ad slots, with k = 1, 2, . . . , N
ideal distance between any two ads of the same subgroup, and equals N /n j
slot number of ad i in subgroup j.

An efficient ad recommendation system for TV programs

83

Fig. 7 An example scenario


depicting the effect of ad
sequencing

Let there be N slots, (k = 1, 2, . . . , N ), in which N ads


need to be assigned. The optimal ad order is obtained by
solving the objective in (17) given below.
Minimize


j

|Ai j A(i1) j d j |.

(17)

The above minimization is achieved through a sequence of


simple heuristic steps as given below.
Step 1: Let j = d j
d j , where
d j is the floor of d j
(i.e., the largest integer less than or equal to d j ). If j 0.5,
then set space j :=
d j , else, set space j :=
d j +1. Here,
space j is an additional variable.
Step 2: Arrange all the weighted ads in each subgroup in a
descending order.
Step 3: Arrange all the subgroups also in a descending order
by considering the largest weight amongst ads in a subgroup
as the weight of the subgroup itself.
Step 4: Calculate d j for all subgroups as mentioned in step
1 above.
Step 5: Allot an ad (from the top) in the jth ( j = 1, 2, . . . , M)
subgroup (arranged in a descending order) into an empty slot.
Update the number of ads left in the jth subgroup.
Step 6: Update k := k + space j . If slot k is empty, place
another ad from jth subgroup, else look for an empty slot.
Update the number of ads left in the jth subgroup.
Step 7: If number of ads in jth subgroup left is greater than
0, Go to step 5.
These steps are repeated for all the subgroups (M) among
the N ads, and this gives a reasonably good result in making a pleasant ad ordering. Figure 7 shows the effect of ad
sequencing on a set of scheduled ads.
6 Experiments and results
The ad recommendation framework involves various experimental phases like keyword categorization, fuzzy K-modes

clustering, ad scheduling and sequencing. Performance of


each of these stages decides the overall performance of the
recommendation system. In this section, we present subjective evaluation of each stage and the results of the final recommendation system. Details of the database used for the
evaluation are given below.
6.1 Experimental database
The program database contains video data belonging to a
pre-defined set of program classes such as News, Sports,
Movies, Serials, Cartoons, and General/Others. The program
genre classification is manually done by looking at the content of the videos. Just to depict the TV scenario, the programs
are collected to span over a weeks broadcast. Likewise, the
ad database has 150 TV ads that are relevant to the above
mentioned program categories in equiprobable numbers. The
annotation keywords for these ads are obtained either from
the MPEG-7 description or from the manual annotation given
by media experts.
6.2 Results of fuzzy clustering
As discussed in Sect. 3, keyword categorization plays an
important role in improving the clustering performance and
reducing the complexity. The categorization technique
is tested using 1, 000 test keywords, which are different
from the training set of keywords available in the dictionary.
The categorization results are evaluated using the typical
parametersPrecision and Recall (see Appendix). The values of these parameters were found to be 80 and 75%,
respectively.
The results of fuzzy K-modes clustering of categorized
ad data are compared with the un-categorized data, and it is
found that the clustering accuracy improves when clustering
of categorized data is done. Table 1 shows the comparison
results of fuzzy clustering without keyword categorization

123

84

S. Velusamy et al.

Table 1 Performance of fuzzy clustering technique in ad recommendation


Effect of categorization on clustering
Keywords

Without-C

Pantene, girl, Angelina, Mv/Sl

With-C

Nw

Sp

Mv

Sl

Ct

Os

Nw

Sp

Mv

Sl

Ct

Os

0.10

0.15

0.30

0.25

0.10

0.10

0.00

0.10

0.60

0.20

0.05

0.05
0.05

Adidas, guys, Sachin, Sp

0.05

0.40

0.20

0.15

0.15

0.05

0.05

0.65

0.10

0.00

0.15

HSBC, business-man, none, Nw/Mv

0.35

0.15

0.30

0.15

0.00

0.10

0.70

0.15

0.10

0.05

0.00

0.00

Dairy milk, kids, none, Ct/Sp

0.10

0.25

0.20

0.15

0.25

0.05

0.05

0.25

0.20

0.05

0.45

0.00

LG W.M/c, woman, none, Sl/Mv

0.15

0.10

0.20

0.35

0.05

0.15

0.05

0.10

0.20

0.65

0.00

0.00

Nw news, Sp sports, Mv movies, Sl serials, Ct cartoons, Os others

Table 2 Comparison results of fuzzy K-modes clustering and K-histogram technique


Comparison results
Program

No. of ads recommended


Manual

Fuzzy
R

K-hist
M

News

20

18

13

Sports

35

33

22

2
8

Movies

45

41

17

Serials

20

19

10

Cartoons

20

19

11

10

150

138

98

25

27

Others
Total

R relevant, M miss, F false alarm

and with categorization. The fuzzy scores obtained after categorization (for each ad) can be seen to be higher (see Table 1)
for program categories that are the most relevant. Note, in
the table, the ad features (Keywords) are shown in the order
ofad/program context, People present, Celebrity appearance and Sponsors preference, respectively. Here None
indicates the absence of a particular feature. The original
annotation keywords such as Pantene, Adidas, Dairy Milk,
LG Washing machine, HSBC, Girl, Business-man, Angelina, Sachin were categorized to Cosmetics, FMCG, Food and
Drinks, Home Appliances, Finance, Youth, Adults, Film star,
Sports star, respectively.
Next, we show in Table 2, comparisons of results obtained using the fuzzy approach and the K-histogram technique.
We use miss and false rates as the parameters to evaluate the
fuzzy clustering accuracy in comparison to the K-histogram
method. The ground truth labels of the relevant program categories for each ad are collected subjectively by 10 different
people (viewers) who are asked to rate the relevance of set
of ads clustered to the program categories, and it is observed that the fuzzy clustering technique provides significantly

123

better results than the K-histogram method for ad clustering.


By subjective evaluation by a viewer we mean a viewers
evaluation of the relevance of an ad to one or more programs by considering factors such as ad and program profiles match, viewers interest, etc. This, in a way, provides
an indicator of the actual relevance of ads to program classes (that is otherwise assumed to be not known). In the case
of fuzzy clustering, a high number of ads are clustered to
their correctly relevant program types and only few ads get
clustered to the wrong program cluster. In fact, fuzzy clustering results in a good relevance accuracy of 92% while the
K-histogram technique results in only a 65.4% accuracy.
6.3 Recommendation system results
The performance of scheduling and sequencing stages (using
the results of fuzzy clustering approach) are subjectively
evaluated in terms of the overall recommendation system
accuracy. Figure 8 clearly depicts the groups of ads recommended, scheduled and sequenced in the ad recommendation
stages such as (fuzzy) clustering, scheduling and sequencing,
respectively. The figure shows an example of an end-to-end
ad recommendation that provides the best possible options
for sponsors to show their ads during the ad breaks for various
program classes.
In the figure, the first column shows the ads clustered based
on program context, viewers interests and sponsors preferences for a set of Movies programs listed in the second
column. These ads are further scheduled for the specific ad
breaks based on program timing, program popularity and ad
slots available. These subsets of ads that fit to ad breaks of
the movie programs screened at various times of a week are
shown in the third column. For instance, evening time childrens movies show chocolate or energy drink ads. These
scheduled ads when played randomly in the ad slots might
result in ads of competitors like Honda and Ford, Nestle and
Cadbury, Timex and Rolex, etc., being played sequentially.
To avoid this situation, the ads are evenly spaced based on

An efficient ad recommendation system for TV programs

85

Fig. 8 An example scenario


depicting the over all ad
recommendation processes

their brand name and type of product they are selling to prevent any clashes. The sequenced sets of ads for various ad
breaks are shown in the last column in the figure. The rating of the system was done by calculating the mean opinion
score (MOS) with a maximum of 5. The system achieves an
MOS of 4.5.

7 Summary and conclusions


In this paper, we presented an efficient ad recommendation
system for broadcast TV. Our objective has been to provide an
end-to-end recommendation solution that takes into consideration of various parameters such as ad/program content,
viewers interests, sponsors preferences, program timing,
program popularity and available ad slots. These parameters
are crucial in recommendation of ads for broadcast TV as
it reaches a large audience with varied interests. We have
incorporated the above mentioned parameters to provide an
effective ad recommendation solution. To summarize, the
following are the main contributions of this paper.
1. We provided a complete end-to-end solution for ad recommendation for TV programs. To the best of our knowledge, this is the first work that incorporates the aspects
of ad clustering, scheduling and sequencing in an ad recommendation system for TV programs.
2. We indexed the features of ads and programs using textual keywords called annotations. These (annotations)
are derived from MPEG-7. As these annotations widely
vary in meaning and usage, they are categorized into
pre-defined semantic classes using a text categorization
technique.
3. Next, we developed a fuzzy clustering technique that
takes into consideration factors such as ad/program context matching, viewers interests and sponsors preferences while clustering ads for different program classes

such as News, Sports, Movies, Serials, Cartoons, and


General/Others.
4. Clustered ads are scheduled based on the program popularity, program timing and available ad slots.
5. Scheduled ads are then sequenced to consider pre-and
post-ad sequences with respect to each ad, in order to
satisfy the sponsors.
6. We studied comparisons of the fuzzy clustering algorithm with the K-histogram technique [12], and observed that the fuzzy clustering algorithm provides better
results. We also showed results of scheduling and sequencing algorithms with the ad clusters obtained using
the fuzzy clustering approach. Subjective evaluation of
our algorithm was done by 10 different people and rated
with a high success score.
Ads shown using the recommendations of our system can
have a better impact on the viewers and also increase the
return on investment (ROI) for the sponsors. As we use Nielsen rating that gives popularity of programs with respect to
the broadcasting region, our recommendation system recommends ads that cater to the viewers interest of that particular
demographic region. Our procedure involving adaptive categorization, fuzzy clustering, scheduling and sequencing ads
has shown that the right ads can be recommended for broadcast TV programs. It must be noted that even though there
are many papers in the literature that deal with the above
mentioned areas individually, to the best of our knowledge,
there is no prior work that uses this exhaustive combination
for TV ad recommendation.
The sequence of steps that we followed and the algorithms
applied resulted in ad recommendations that were similar to
manual ad selection by human experts. The developed recommendation system could be tried for other applications such
as Web, E-Mail, etc. Further, other algorithms for clustering,
scheduling and sequencing may be developed and their combinations tried in alternative ad recommendation solutions.

123

86

S. Velusamy et al.

A more detailed experimental evaluation of our system on


various other settings and program classes (such as the full
set of program classes considered in TV-anytime standards)
should be conducted. Further, one needs to deploy the system
in order to evaluate its performance in a real environment.
With the advances in technology, there are new ways in
which video/TV is delivered to homes. Hence, advertisers are
turning to product placement, branded TV programming and
virtual advertising insertion. The key is to blend all advertising opportunities into the video content. In future, we plan
to extend the ad recommendation system to cater to this kind
of ad placement for TV programs.
Appendix
Open directory project-ODP is a Web based text categorization tool. Given a keyword, it lists out the relevant
semantic categories to which the keywords can belong to.
WordNet is a thesaurus that gives the synonyms and related words for a keyword. HWFC is a software tool that
ranks the frequency of words in a given page. It also provides the flexibility of searching for only relevant matching words. Precision (P) and recall (R) are defined as
follows:
P =
R =


k


k

No.
of keywords correctly categorized to Ck
,
k No. of keywords categorized
No. ofkeywords correctly categorized to Ck
,
k No. of correct keywords

where Ck is the kth cluster.


MPEG-7 is a content description standard. This description is associated with the content itself so as to allow a
fast and efficient search for material that is of interest to
the user. MPEG-7 is formally called Multimedia Content
Description Interface.

References
1. Billsus, D., Pazzani, M.: A hybrid user model for news story classification. In: Proc. of Seventh Int. Conf. on User Modeling, June
1999
2. Shardanand, U., Maes, P.: Social information filtering: algorithms
for automating word of mouth. In: Proc. of Human Factors in
Computing Systems (CHIc695) Conf, pp. 210217. ACM Press,
New York (1995)
3. Burke, R.: Hybrid recommender systems: survey and experiments. User Model. User Adapt. Interact. 12(4), 331370 (2002)
4. Bhargava, H.K., Sridhar, S., Herrick, C.: Beyond spreadsheets: tools for building decision support systems. IEEE Comput. 32(3), 3139 (1999)
5. Bae, S.-M., Park, S.-C.: Fuzzy web ad selector based on web usage
mining. In: IEEE Conf. on Intelligent Systems (2003)
6. Lekakos, G., et al.: A lifestyle-based approach for delivering
personalised advertisements in digital iTV. J. Comput. Mediat.
Comm., January (2004)

123

7. Kurapati, K., Gutta, S., Schaffer, D., Martino, J., Zimmerman, J.:
A multi-agent TV recommender. Workshop on Personalization in
Future TV, Germany (2001)
8. Masthoff, J.: Group modeling: selecting a sequence of television
items to suit a group of viewers. User Model. User Adapt. Interact.
(UMUAI) Journal 14, 3785 (2004)
9. Kosala, R., Blockeel, H.: Web mining researcha survey. SIGKDD Explor. 2, 115 (2000)
10. Amit, T., Srividya, G., Sridhar, V.: ITV application for intent tracking. In: Proc. of 2nd European Conf. on Interactive TV (2004)
11. Zimmerman, J., Kurapati, K., Buczak, A.L., Schaffer, D., Gutta,
S., Martino, J.: TV persolalization systemdesign of a TV show
recommender engine and interface, Chap. 5. Persolaized Digital
Television Book
12. He, Z.-Y., Xu, X.-F., Deng, S.-C., Dong, B.: K-histograms: an
efficient clustering algorithm for categorical dataset. In: ARXIV,
September 2005
13. Blanco-Fernandez, Y., Pazos-Arias, J.J., Gil-Solla, A.,
Ramos-Cabrer, M., Lopez-Nores, M., Barragans-Martinez, B.:
AVATAR: a multi-agent TV recommender system using MHP
applications. In: Proc. of e-Technology, e-Commerce and
e-Service (2005)
14. Dukes, A.: The adverstising market in a product oligopoly. J. Indus.
Econ. 52(3), 327348 (2004)
15. https://www.google.com/adsense/support/bin/answer.py?
answer=32757&topic=8526 http://msdn2.microsoft.com/en-us/
library/
16. Rovira, M., et al.: IndexTV: a MPEG-7 based personlised recommentation system for digital TV. In: Proc. of IEEE Intl. Conf. on
Multimedia and Expo (2004)
17. Miller, G., Backwith, R., Fellbuam, C., Gross, D., Miller, K.: Introduction to WordNetan online lexical database. Int. J. Lexicogr.
18. Chen, H., Dumais, S.T.: Bringing order to the web: automatically
categorizing search results. In: CHI00 Proc. of the SIGCHI Conf.
on Human factors in computing systems. ACM press, New York
(2000)
19. Shen, D., Pan, R., Sun, J.T., Pan, J.J., Wu, K., Yin, J., Yang, Q.:
Our winning solution to query classification in KDDCUP2005.
SIGKDD Newsletter (2005)
20. He, Z., Xu, X., Deng, S.: Squeezer: an efficient clustering algorithm
for categorical data. J. Comput. Sci. Technol. 17, 611624 (2002)
21. Guha, S., et al.: ROCK: a robust clustering algorithm for categorical attributes. In: Proc. of Int. Conf. on Data Engineering,
pp. 512521, March 1999
22. Huang, Z.: Extensions to the K-means algorithm for clustering
large datasets with categorical values. Data Min. Knowl. Discov.
2, September 1998
23. Huang, Z.: A fuzzy K-modes algorithm for clustering categorical
data. IEEE Trans. Fuzzy Syst. 7(4), (1999)
24. Frank, H., Frank, K., Rudolf, K., Thomas, R.: Fuzzy Cluster Analysis: Methods for Classification, Data Analysis and Image Recognition. Wiley Publications, London (1999)
25. Bollapragada, S., Bussieck, M., Mallik, S.: Scheduling commercial videotapes in broadcast television. Oper. Res. November 2004
26. Subodha, K., Jacob, V.S., Chelliah, S.: Scheduling advertisements
on a Web page to maximize revenue. Eur. J. Oper. Res. 10671089,
September 2005
27. Saha, A., Pal, M., Pal, T.K.: Selection of programme slots of
television channels for giving advertisement: A graph theoretic
approach. Inf. Sci. 24802492, January 2007
28. Kimms, A., Mller-Bungart, M.: Revenue management for broadcasting commercials: the channelc6s problem of selecting and
scheduling the advertisements to be aired. Int. J. Rev. Manage. 1(1), 2844 (2007)
29. Benoist, T., Bourreau, E., Rottembourg, B.: The TV-break packing
problem. In: Eur. J. Oper. Res. 13711386, December (2005)

An efficient ad recommendation system for TV programs


30. Ali, K., van Stam, W.: TiVo: Making Show Recommendations
Using a Distributed Collaborative Filtering Architecture. KDD04,
August 2004
31. OConnor, M., Herlocker, J.: Clustering items for collaborative
filtering. In: SIGIR Workshop on Recommender Systems (2001)
32. Bollapragada, S., Mallik, S.: A mathematical programming based
approach to scheduling commercials in broadcast television. Tecnical Report, GE Research and Developement Center, November
2001

Author Biographies
Sudha Velusamy received her
Masters degrees in 2006 from
the Department of Electrical and
Communication Engineering at
the Indian Institute of Science,
Bangalore, India. From August
2006, she is with the Applied
Research of Satyam Computers
Services Ltd, India, where she is
currently a Research Associate.
Her research interests are in the
area of audio signal processing,
pattern recognition and machine
learning with application to information retrieval.
Lakshmi Gopal received her
Masters degree in 1998 from
Birla Institute of Technology,
India. She worked as a Project Manager at Infosys Technologies Ltd from February
1995 to December 2004. From
December 2004, she is with the
Satyam Computer Services Ltd,
where she is a Technical Consultant. She has worked in various domains such as Telecom,
Media and Entertainment. She is
a member of IEEE and ACM. Her
research interests are in IPTV, IP
Multimedia Subsystem, Triple Play services and Business Support
Systems.

87
nology, Delhi. From December 2001, he is with the Indian Institute
of Science, Bangalore, where he is an Associate professor in the
Department of Computer Science and Automation.
His research interests are in stochastic optimal control, reinforcement learning, simulation optimization, communication networks and
information theory. He has over 60 publications in international journals
and conferences. He is an Associate Editor of the IEEE Transactions
on Automation Science and Engineering, and is a Senior Member of
IEEE. He is on the review committees of many journals and conferences
and in 1999, was recognized by the IEEE Transactions on Automatic
Control for an outstanding job of reviewing research papers.
Sridhar Varadharajan is the
head of Applied Research Group,
Satyam Computer Services Ltd,
India, and has over 20 years
of research and industry experience. He has more than a 100
technical publications in referred international conferences and
journals, and is a co-inventor in
the 16 patent applications filed
in USPTO. The published works
are in a variety of areas including artificial intelligence (data
analysis, numerical clustering,
symbolic clustering, machine
learning, language processing,
image processing), wireline networking (QoS and SLA management.
P2P), content delivery networks (distributed cache, content analysis,
context modeling, context-aware retrieval, efficient content selection
and retrieval, real-time event management, digital rights management),
wireless networking (WLAN, 3G and beyond), optical networking
(RWA, OXC, EPON), and grid computing (self-healing, automated parallelization).

Shalabh Bhatnagar received


his Masters and Ph.D degrees in
1992 and 1997 from the Department of Electrical Engineering at
the Indian Institute of Science,
Bangalore. From October 1997
to July 2000, he was a Research
Associate at the Institute for
Systems Research, University of
Maryland, College Park, United
States. From August 2000 to
July 2001, he was a Divisional
Postdoctoral Fellow at the Free
University, Amsterdam, Netherlands. From July to December
2001, he worked as a Visiting Faculty at the Indian Institute of Tech-

123

You might also like