U.S. patent application number 13/663780 was filed with the patent office on 2013-09-26 for method and apparatus to perform real-time audience estimation and commercial selection suitable for targeted advertising.
This patent application is currently assigned to Invidi Technologies Corporation. The applicant listed for this patent is INVIDI TECHNOLOGIES CORPORATION. Invention is credited to Earl Cox, Jarett Hailes, Surrey Kim, Michael Kouritzin, Alden Lloyd Peterson, Patrick M. Sheehan.
Application Number | 20130254787 13/663780 |
Document ID | / |
Family ID | 49213572 |
Filed Date | 2013-09-26 |
United States Patent
Application |
20130254787 |
Kind Code |
A1 |
Cox; Earl ; et al. |
September 26, 2013 |
METHOD AND APPARATUS TO PERFORM REAL-TIME AUDIENCE ESTIMATION AND
COMMERCIAL SELECTION SUITABLE FOR TARGETED ADVERTISING
Abstract
A targeted advertising system selects an asset (e.g., ad) for a
current user of a user equipment device (e.g., a digital set top
box in a cable network). The system can first operate in a learning
mode to receive user inputs and develop evidence that can
characterize multiple users of the user equipment device audience.
In a working mode, the system can process current user inputs to
match a current user to one of the identified users of that user
equipment device audience. Fuzzy logic and/or stochastic filtering
may be used to improve development of the user characterizations,
as well as matching of the current user to those developed
characterizations. In this manner, targeting of assets can be
implemented not only based on characteristics of a household but
based on a current user within that household.
Inventors: |
Cox; Earl; (El Segundo,
CA) ; Sheehan; Patrick M.; (Jamison, PA) ;
Peterson; Alden Lloyd; (New Providence, NJ) ;
Kouritzin; Michael; (Edmonton, CA) ; Kim; Surrey;
(Edmonton, CA) ; Hailes; Jarett; (Edmonton,
CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
INVIDI TECHNOLOGIES CORPORATION |
Princeton |
NJ |
US |
|
|
Assignee: |
Invidi Technologies
Corporation
Princeton
NJ
|
Family ID: |
49213572 |
Appl. No.: |
13/663780 |
Filed: |
October 30, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13447071 |
Apr 13, 2012 |
|
|
|
13663780 |
|
|
|
|
11944078 |
Nov 21, 2007 |
|
|
|
13447071 |
|
|
|
|
12758532 |
Apr 12, 2010 |
|
|
|
11944078 |
|
|
|
|
11743544 |
May 2, 2007 |
7698236 |
|
|
12758532 |
|
|
|
|
60746244 |
May 2, 2006 |
|
|
|
60746245 |
May 2, 2006 |
|
|
|
Current U.S.
Class: |
725/13 |
Current CPC
Class: |
H04N 21/4661 20130101;
G06Q 30/02 20130101; H04N 21/4667 20130101; H04N 21/4665 20130101;
H04N 21/25883 20130101; H04H 60/45 20130101; H04N 21/2668 20130101;
H04N 21/252 20130101; H04N 21/812 20130101; H04H 20/106 20130101;
H04N 21/44222 20130101; H04H 60/63 20130101 |
Class at
Publication: |
725/13 |
International
Class: |
H04N 21/442 20060101
H04N021/442 |
Claims
1. A method for use in targeting assets to users of user equipment
devices in a communications network, comprising the steps of:
operating a processor to progressively incorporate, over time, a
plurality of user inputs by one or more users of a user equipment
device into a model of a user composition of the one or more users,
the model including a plurality of user classification parameters;
filtering the user composition model to obtain an estimate of a
current user composition of the user equipment device; and
targeting one or more assets in the communications network using
the estimated current user composition.
2. The method of claim 1, wherein the filtered user composition
model is free of user equipment device usage patterns for the users
obtained before the progressive incorporation of the plurality of
user inputs.
3. The method of claim 1, further comprising: receiving first user
inputs at a first time; and receiving second user inputs at a
second time after the first time, and wherein the second user
inputs are incorporated into the model to a greater degree than are
the first user inputs.
4. The method of claim 1, further comprising: establishing a
reference event, wherein the progressively incorporated inputs
occurred at times after the reference event.
5. (canceled)
6. (canceled)
7. The method of claim 1, wherein the targeting comprises:
receiving one or more lists of assets for delivery at the user
equipment device; obtaining one or more targeting parameters for
the one or more lists of assets; and determining a level of
correspondence between the user classification parameters of the
current user composition of the user equipment device and the
targeting parameters for the one or more lists of assets.
8. The method of claim 7, wherein the determining is performed in
multiple dimensions relating to multiple classification and
targeting parameters.
9. The method of claim 8, further comprising: voting for at least
one asset of the one or more lists of assets based on the
determined level of correspondence between the user classification
parameters of the current user composition of the user equipment
device and the targeting parameters for the one or more lists of
assets.
10-13. (canceled)
14. The method of claim 1, further comprising: progressively
incorporating, over time, a plurality of user inputs by users of a
plurality of additional user equipment devices into a plurality of
models of user composition of the users, the models including a
plurality of user classification parameters; filtering the user
composition models to obtain estimates of current user compositions
of the plurality of additional user equipment devices; and
aggregating the current user compositions of the user equipment
device and the plurality of additional user equipment devices to
obtain a current user composition of an aggregated audience,
wherein the targeting comprises using the aggregated audience
current user composition for use in targeting one or more assets in
the communications network.
15. (canceled)
16. The method of claim 1, wherein the progressively incorporating
comprises: associating the user inputs with respective user
classification parameters; treating the values as points in fuzzy
sets; and aggregating the fuzzy sets into a multi-dimensional
feature terrain.
17. The method of claim 16, wherein the filtering comprises:
reducing noise in the feature terrain.
18. The method of claim 17, wherein the reducing comprises:
processing evidence in relation to reference values.
19. The method of claim 17, wherein the reducing comprises:
reducing a set of gradients across the feature terrain by
iteratively removing low-level gradients to progressively identify
candidate centers.
20. The method of claim 1, wherein the progressively incorporating
comprises: developing an observation model based on first inputs by
one or more users with respect to one or more user equipment
devices; and developing a signal model reflective of the possible
states and dynamics of a user composition of one or more users of a
first user equipment device with respect to time, wherein said
observation model probabilistically relates measurement data
related to said first inputs to the possible states and
dynamics.
21. The method of claim 20, wherein the filtering the user
composition model comprises: employing a stochastic filter to
estimate said user composition at a time of interest through an
approximate conditional distribution of a signal given the signal
and observation models and second inputs by one or more users.
22. The method as set forth in claim 21, wherein said inputs are a
click stream of user inputs over time and said observation model
models said click stream as a Markov chain.
23. The method as set forth in claim 22, wherein said observation
model takes into account programming related information for
network content indicated by at least some of said inputs.
24. The method as set forth in claim 23, further comprising the
step of processing said Markov chain using a mathematical model
wherein observations of said Markov chain may only transition to a
subset of a full set of states, where said subset depends on a
current state of said Markov chain.
25. The method as set forth in claim 21, wherein said step of
developing an observation model comprises modeling said observation
model as a Markov chain or a k step Markov chain.
26. The method as set forth in claim 25, wherein the transition
function for the observation Markov chain depends upon a position
of the signal to estimate.
27. The method as set forth in claim 21, wherein said signal is
established as representing said user composition and a separate
factor affecting said user inputs.
28. The method as set forth in claim 21, wherein a model of said
signal allows for representation of said user composition as
including two or more users.
29. The method as set forth in claim 21, wherein a model of said
signal allows for representation of a change in said user
composition.
30. The method as set forth in claim 29, wherein said change is a
change in a number of users associated with said user equipment
device.
31. The method as set forth in claim 21, wherein said step of
employing a stochastic filter comprises obtaining probabilistic
estimates of said signal based on said observation model and
measurement data.
32. The method as set forth in claim 31, wherein said step of
employing a stochastic filter comprises defining a nonlinear filter
to obtain probabilistic estimates of said signal based on said
observation model and measurement data.
33. The method as set forth in claim 32, wherein said step of
employing a stochastic filter further comprises establishing an
approximation filter for approximating operation of said nonlinear
filter.
34. The method as set forth in claim 33, wherein said approximation
filter is a particle filter.
35. The method as set forth in claim 33, wherein said approximation
filter is a discrete space filter.
36. The method as set forth in claim 21, wherein said step of using
comprises providing information based on said user composition to a
network platform operative to insert assets into a content stream
of said network.
37. The method as set forth in claim 36, wherein said information
identifies demographics of one or more users of said user equipment
device.
38. The method as set forth in claim 37, wherein said platform is
operative to aggregate user composition information associated with
multiple user equipment devices and to select one or more assets
for insertion based on said aggregated information.
39. The method as set forth in claim 38, wherein said platform is
operative to process information from multiple user equipment
devices as an observation model and to apply a filter with respect
to said observation model to estimate an aggregate composition of a
network audience at said time of interest.
40. The method as set forth in claim 37, wherein said platform is
operative to select assets for insertion based on said aggregate
composition and additional information affecting a delivery value
of particular assets.
41. The method as set forth in claim 36, wherein said information
identifies one or more appropriate assets for delivery to said user
equipment device based on said user composition.
42. The method as set forth in claim 21, wherein said step of using
comprises selecting, at said user equipment device, an asset for
delivery to said one or more users.
43. The method as set forth in claim 21, wherein said step of using
comprises reporting a goodness of fit of an asset delivered at said
user equipment device with respect to said one or more users.
44. An apparatus for use in targeting assets to users of user
equipment devices in a communications network, comprising: a port
operative for receiving input information regarding first inputs by
one or more users with respect to a user equipment device; and a
processor operative for providing an observation model based on
said first inputs, modeling the observation model as dependent upon
a signal model reflective of at least a user composition of one or
more users of said user equipment device with respect to time,
where said observation model probabilistically relates measurement
data related to said first inputs to said user composition,
employing a stochastic filter to estimate the user composition at a
time of interest as a state of a signal through an approximate
conditional distribution of the signal given the signal and
observation models and second inputs by one or more users, and
using the estimated user composition in targeting an asset with
respect to the user equipment device.
45. The apparatus as set forth in claim 44, wherein said processor
is operative for defining a nonlinear filter to obtain estimates of
said signal based on said observation model and measurement
data.
46. The apparatus as set forth in claim 45, wherein said processor
is operative for establishing an approximation filter for
approximating operation of said nonlinear filter.
47. The apparatus as set forth in claim 46, wherein said nonlinear
filter is one of a particle filter and a discrete space filter.
48. The apparatus as set forth in claim 44, further comprising a
port for transmitting information for use in targeting assets to a
separate network platform, wherein said information is based on
said estimated user composition.
49. A method for use in targeting assets to users of user equipment
devices in a broadcast network, comprising the steps of:
collectively analyzing a stream of data corresponding to a series
of first user inputs with respect to one or more user equipment
devices, wherein said step of collectively analyzing comprises
establishing an observation model; and applying logic for matching
a pattern described by a stream corresponding to a series of second
user inputs to a characteristic associated with an audience
classification of a user, wherein said step of applying logic
comprises employing a stochastic filter to approximately estimate
the conditional distribution of a signal given the observation
model and second inputs and extract signal estimates from said
series of second user inputs to estimate said audience
classification at a time of interest.
50. The method as set forth in claim 49, wherein said series of
user inputs are modeled as a Markov chain.
51. The method as set forth in claim 49, wherein said step of
applying logic comprises using a nonlinear filter model.
52. The method as set forth in claim 51, wherein said step of
applying logic comprises executing an approximation filter to
approximate operation of said nonlinear filter.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation-in-part of U.S. patent
application Ser. No. 13/447,071, entitled: "METHOD AND APPARATUS TO
PERFORM REAL-TIME ESTIMATION AND COMMERCIAL SELECTION SUITABLE FOR
TARGETED ADVERTISING," filed on Apr. 13, 2012, which is a
continuation of U.S. patent application Ser. No. 11/944,078,
entitled: "METHOD AND APPARATUS TO PERFORM REAL-TIME ESTIMATION AND
COMMERCIAL SELECTION SUITABLE FOR TARGETED ADVERTISING," filed on
Nov. 21, 2007, now abandoned. This application is also a
continuation-in-part of U.S. patent application Ser. No.
12/758,532, entitled: "FUZZY LOGIC BASED VIEWER IDENTIFICATION FOR
TARGETED ASSET DELIVERY SYSTEM," filed on Apr. 12, 2010, which is a
continuation of U.S. patent application Ser. No. 11/743,544,
entitled: "FUZZY LOGIC BASED VIEWER IDENTIFICATION FOR TARGETED
ASSET DELIVERY SYSTEM," filed on May 2, 2007, now U.S. Pat. No.
7,698,236, which claims priority to U.S. Provisional Patent
Application No. 60/746,244, entitled: "METHOD AND APPARATUS TO
PERFORM REAL-TIME ESTIMATION AND COMMERCIAL SELECTION SUITABLE FOR
TARGETED ADVERTISING," filed on May 2, 2006 and U.S. Provisional
Patent Application No. 60/746,245, entitled: "METHOD AND A SYSTEM
FOR DISCOVERING THE INDIVIDUAL VIEWERS OF A TELEVISION AUDIENCE
(ALONG WITH THEIR ATTRIBUTES, AND BEHAVIOR) AND USING THIS
INFORMATION TO ACCURATELY SELECT AND INSERT CANDIDATE ADS IN
REAL-TIME FOR ACTIVELY WATCHING VIEWERS," filed on May 2, 2006. The
content of all of these applications is incorporated herein by
reference as if set forth in full.
FIELD OF INVENTION
[0002] The present invention relates generally to targeted delivery
of assets, such as advertisements or other content, in a
communications network. In particular, the invention relates to
identifying a current network user and matching assets to the
user.
BACKGROUND OF THE INVENTION
[0003] Broadcast network content or programming is commonly
provided in conjunction with associated informational content or
assets. These assets include advertisements, associated
programming, public-service announcements, ad tags, trailers,
weather or emergency notifications and a variety of other content,
including paid and unpaid content. In this regard, asset providers
(e.g., advertisers) who wish to convey information (e.g.,
advertisements or "ads") regarding services and/or products to
users of the broadcast network often pay for the right to insert
their information into programming of the broadcast network. For
instance, advertisers may provide ad content to a network operator
such that the ad content may be interleaved with broadcast network
programming during one or more programming breaks. The delivery of
such paid assets often subsidizes or covers the costs of the
programming provided by the broadcast network. This may reduce or
eliminate costs borne by the users of the broadcast network
programming.
[0004] In order to achieve a better return on their investment,
asset providers often try to target their assets to a selected
audience that is deemed likely to be interested in the goods or
services of the asset provider. The case of advertisers on a cable
television network is illustrative. For instance, an advertiser or
a cable television network may target its ads to certain
demographic groups based on, for example, geographic location,
gender, age, income etc. Accordingly, once an advertiser has
created an ad that is targeted to a desired group of viewers (e.g.,
targeted group) the advertiser may attempt to procure insertion
times in the network programming when the targeted group is
expected to be among the audience of the network programming.
[0005] More recently, it has been proposed to target assets to
individual households. This would allow asset providers to better
target audience segments of interest or to tailor messages to
different audience segments. However, targeting households is
problematic. Again, the case of a cable television network is
illustrative. It is often possible to obtain audience
classification information for a household based on name or address
information. For example, information based on credit card
transactions or other financial transactions may be available from
third party databases. However, information based on an identified
household does not always ensure appropriate targeting of assets.
In the case of a family household, for example, a current network
user might be a mother, a father, a child, a babysitter, etc.
Additionally, where the matching of ads to households is performed
in the network, some mechanism is required to target the selected
ads to the appropriate households. This is difficult in broadcast
networks. Accordingly, household-based targeting, while an
improvement over untargeted asset delivery or conventional
ratings-based asset targeting in a broadcast network, still entails
significant obstacles and/or targeting uncertainty.
[0006] Current systems have generally suffered from one or more of
the following drawbacks: 1) they focus on who is in the household
rather than who is watching now; 2) they may only provide coarse
information about a subset of the household; 3) they require user
participation, which is undesirable for certain users and may
entail error; 4) they do not provide a framework for determining
when there are multiple viewers or for accurately defining
demographics in multiple viewer scenarios; 5) they are fairly
static in their assumptions and do not properly handle changing
household compositions and demographics; and/or 6) they employ
sub-optimal technologies, require extensive training, require
excessive resources or otherwise have limited practical
application.
SUMMARY OF THE INVENTION
[0007] It has been recognized that the effectiveness of asset
targeting can be enhanced by identifying a current network user,
e.g., determining demographic or other classification parameters of
a putative current network user or users. This would ideally allow
an asset targeting system to distinguish between different
potential users of a single household, as well as identifying
unknown users, such that appropriate targeting of assets can be
executed.
[0008] The present invention enables such functionality in the
context of asset delivery in communications networks, including
cable television networks. Moreover, such functionality can be
executed transparently, from the perspective of the network user,
based on monitoring ordinary network usage activities, for example,
as indicated by a click stream of a remote control. Moreover, the
present invention allows such functionality to be implemented in
substantially real-time, using limited processing resources. Thus,
for example, the user identification functionality can be executed
by an application running on a conventional digital set top box.
The invention also provides a mechanism for signaling the network
in relation to the user identification process, for example, to
enhance selection of assets for insertion into network content
streams or to report information for evaluating size and
composition of the audience actually reached.
[0009] Broadly, disclosed herein are methods, systems, and the like
(e.g., utilities) for use in targeting assets to users of user
equipment devices (e.g., digital set top boxes (DSTBs)) in a
communications network. One utility includes operating a processor
to progressively incorporate, over time, a plurality of user inputs
by one or more users of a user equipment device into a model of a
user composition of the one or more users made up of a plurality of
user classification parameters; filtering the user composition
model to obtain an estimate of a current user composition of the
user equipment device (e.g., where the current user composition may
be made up of plurality of users); and targeting one or more assets
in the communications network using the estimated current user
composition.
[0010] In one arrangement, the filtered user composition model may
be free of user equipment device usage patterns for the users
obtained before the progressive incorporation of the plurality of
user inputs. In this regard, the disclosed utilities can
advantageously estimate a current user composition in real time in
a manner substantially free of considering previously stored
information (e.g., historical periodicity data for one more users).
In accordance with another aspect of the present invention, a
current user of a communications network can be identified without
requiring persistent storage of user profiles. As an example, the
utility may include receiving first user inputs at a first time and
then receiving second user inputs at a second time after the first
time, where the second user inputs are incorporated into the model
to a greater degree than are the first user inputs. For instance, a
reference event (e.g., disconnection of power to the user equipment
device) may be established, where the progressively incorporated
inputs occurred at times after the reference event (e.g., and not
before the reference event).
[0011] In this regard, the utility may advantageously incorporate a
certain degree of "forgetfulness" therein so as to allow the
utility to adapt to change (e.g., from a first user to multiple
users to a second user), identify both known and unknown users,
limit the amount of viewing information that is available in the
system at any one time to address privacy concerns, and the like.
Moreover, the utility can be adapted to quickly converge on
classification parameters based on contemporaneous user inputs such
that errors due to user changes are reduced. An associated utility
involves developing a model of a network user based on user inputs
free from persistent storage of a profile of the user and using the
model of the network user in targeting assets to the user. For
instance, recent user inputs may be analyzed using machine learning
(e.g., involving fuzzy logic) to determine classification
parameters of a current user.
[0012] In another arrangement, the targeting of assets may include
receiving one or more lists of assets for delivery at the user
equipment device; obtaining one or more targeting parameters for
the one or more lists of assets; and determining a level of
correspondence between the user classification parameters of the
current user composition of the user equipment device and the
targeting parameters for the one or more lists of assets. For
instance, the determining may be performed in multiple dimensions
relating to multiple classification and targeting parameters.
Additionally or alternatively, the utility may include voting for
at least one asset of the one or more lists of assets based on the
determined level of correspondence between the user classification
parameters of the current user composition of the user equipment
device and the targeting parameters for the one or more lists of
assets. For instance, the at least one voted-for asset may include
targeting parameters having a higher level of correspondence with
the user classification parameters of the current user composition
that does a non-voted for asset.
[0013] The voting may include sending, from the user equipment
device, an indication at least one asset of the lists of assets
having targeting parameters with a higher level of correspondence
with the user classification parameters of the current user
composition that does at least one other asset of the lists of
assets. Furthermore, the utility may further include receiving the
one or more lists of assets for delivery at a plurality of
additional user equipment devices; determining a level of
correspondence between user classification parameters of one or
more current user compositions of the plurality of additional user
equipment devices and the targeting parameters for the one or more
lists of assets; voting for at least one asset of the one or more
lists of assets based on the determined level of correspondence
between the user classification parameters of the current user
compositions of the plurality of additional user equipment devices
and the targeting parameters for the one or more lists of assets;
and aggregating the votes of the user equipment device and the
plurality of additional user equipment devices. For instance, the
utility may further include receiving one or more updated lists of
assets for delivery at the user equipment device and the plurality
of additional user equipment devices.
[0014] In another arrangement, the utility may include
progressively incorporating, over time, a plurality of user inputs
by users of a plurality of additional user equipment devices into a
plurality of models of user composition of the users made up of a
plurality of user classification parameters; filtering the user
composition models to obtain estimates of current user compositions
of the plurality of additional user equipment devices; and
aggregating the current user compositions of the user equipment
device and the plurality of additional user equipment devices to
obtain a current user composition of an aggregated audience, where
the targeting includes using the aggregated audience current user
composition for use in targeting one or more assets in the
communications network. For instance, a level of correspondence
between the user classification parameters of the aggregated
audience current user composition and the targeting parameters may
be determined for the one or more lists of assets.
[0015] The user composition model may be filtered to obtain current
user composition estimates in various manners. For instance,
certain aspects of the invention relate to processing corrupted,
distorted and/or partial data observations received from the
measurement device to infer information about a signal of interest,
such as a substantially real time estimate of the state of the
signal (e.g., current user composition) at a time of interest. In
particular, such a filter system can provide practical
approximations of optimized nonlinear filter solutions based on
certain constraints on allowable states or combinations therefore
inferred from the observation environment.
[0016] In accordance with one aspect of the present invention, a
method and apparatus ("system") is provided for developing an
observation model with respect to data or measurements obtained
from the device under analysis. In particular, the system models
the input measurements as a Markov chain, whose transitions depend
upon the signal. The observation model may take into account
exogenous information or information external to (though not
necessarily independent of) the input measurements. In one
implementation, the input measurements reflect a click stream of
DSTB. The click stream may reflect channel selection events and/or
other inputs, e.g., related to volume control. In this case, the
observation model may further involve programming information
(e.g., downloaded from a network platform such as a Head End)
associated with selected channels. In this case, it is the click
stream information that is processed as a Markov chain.
[0017] Desired information related to the device can then be
obtained by estimating the state of the signal at a time of
interest. In the example of analyzing a click stream of a DSTB, the
signal may represent a user composition (involving one or more
users and/or associated demographics) and an additional factor
affecting the click stream such as a channel changing regime as
discussed in more detail below. Once the signal has been estimated,
a state of the signal at a past, present or future time can be
determined, e.g., to provide user composition information for use
in connection with an asset targeting system.
[0018] In accordance with a still further aspect of the present
invention, a system generates substantially real time estimates of
the probability distribution for a signal state based on both the
observations and an observation signal model. In this regard, a
nonlinear filter system can be used to provide an estimate of the
signal based on the observation model. The nonlinear filter system
may involve a nonlinear filter model and an approximation filter
for approximating an optimal nonlinear filter solution. For
example, the approximation filter may include a particle filter or
a discrete state filter for enabling substantially real time
estimates of the signal based on the observation model. In the DSTB
example, the nonlinear filter system allows for estimates that
incorporate user compositions including more than one viewer and
adapting to changes in the potential audience, e.g., additions of
previously unknown persons or departures of prior users with
respect to the potential audience.
[0019] In accordance with a further aspect of the present
invention, a system uses an estimate obtained by applying a filter,
with its associated signal and observation models, to a sequence of
observations to obtain information of interest with respect to the
signal. Specifically, information for a past, present or future
time can be obtained based on an estimated probability distribution
of the signal at the time of interest. In the case of analyzing
usage of a DSTB, the identity and/or demographics of a user or
users of the DSTB at a particular time can be determined from the
signal state. This information may be used, for example, to "vote"
or identify appropriate assets for an upcoming commercial or
programming spot, to select an asset from among asset options for
delivery at the DSTB and/or to determine or report a goodness of
fit of a delivered asset with respect to the user or users who
received the asset.
[0020] In one embodiment of the present invention, a system is
provided for use in targeting assets to users of user equipment
devices in a communications network, for example, a cable
television network. The system involves: developing an observation
model based on inputs (e.g., click stream data) by one or more
users with respect to a user equipment device (e.g., a DSTB);
modeling the signal as reflective of at least a user composition of
one or more users of said user equipment device with respect to
time; determining the likelihood of various user compositions at a
time of interest among possible states of the signal; and using the
estimated user composition in targeting an asset for the user
equipment device. In this manner, filtering theory is applied with
respect to inputs, such as a click stream, of a user equipment
device so as to yield an estimate indicative of user
composition.
[0021] The observations (e.g., the inputs) can be modeled as a
Markov chain. The model of the signal allows for representation of
the user composition as including two or more users. Accordingly,
multiple user situations can be identified for use in targeting
assets and/or better evaluating audience size and composition
(e.g., to improve valuation and billing for asset delivery). In
addition, the signal model preferably allows for representation of
a change in user composition, e.g., addition or removal of a person
from a user audience.
[0022] A nonlinear filter may be defined to estimate the signal
based on the observation model. In this regard, the signal may
model the user composition of a household with respect to time and
audience classification parameters (e.g., demographics of one or
more current users) can be estimated as a function of the state of
the signal at a time of interest. In order to provide a practical
estimation of an optimal nonlinear filter solution, an
approximation filter may be provided for approximating the
operation of the nonlinear filter. For example, the approximation
filter may include a particle filter or a discrete space filter as
described below. Moreover, the approximation filter may implement
at least one constraint with respect to one or more signal
components. In this regard, the constraint may operate to treat one
component of the signal as invariant with respect to a time period
where a second component is allowed to vary. Moreover, the
constraint may operate to treat at least one state of a first
component as illegitimate or to treat some combination of states of
different signal components as illegitimate. For example, in the
case of a click stream of a DSTB, the occurrence of a click event
indicates the certain presence of at least one person. Accordingly,
only user compositions corresponding to the presence of at least
one person are permissible at the time of a click event. Other
permissible or impermissible combinations may relate incomes to
locations. The constraints may be implemented in connection with a
finite space approximation filter. For example, values incident on
an illegitimate cell may be repositioned, e.g., proportionately
moved to neighboring legitimate cells. In this manner, the
approximation filter can quickly converge on a legitimate solution
without requiring undue processing resources. Where the constraint
operates to define at least one potential calculated state as
illegitimate, the approximation filter may redistribute one or more
counts associated therewith.
[0023] Additionally, the approximation filter may be operative to
inhibit convergence on an illegitimate state. Thus, the
approximation filter is designed to avoid convergence on a user
composition for a DSTB that is logically impossible or unlikely (a
click event when no user is present) or deemed illegitimate by rule
(an income range not permitted for a given location). In one
implementation, this is accomplished by adding seed counts to
legitimate cells of a discrete space filter to inhibit convergence
with respect to an illegitimate cell.
[0024] Preferably, the user composition information is processed at
the DSTB. That is, user information is processed at the DSTB and
used for voting, asset selection and/or reporting. Alternatively,
click stream data may be directed to a separate platform, such as a
Head End, where the user composition information can be estimated,
e.g., where messaging bandwidth is sufficient and DSTB processing
resources are limited. As a further alternative, the user
composition information (as opposed to, e.g., asset vote
information) may be transmitted to a Head End or other platform for
use in selecting content for insertion.
[0025] The estimated user composition information may be used by an
asset targeting system. For example, the information may be
provided to a network platform such as a Head End that is operative
to insert assets into a content stream of the network. In this
regard, the platform may utilize inputs from multiple DSTBs to
select assets for insertion into available network bandwidth.
Additional information, such as information reflecting the per user
value of asset delivery, may be utilized in this regard. The
platform may process information from multiple user equipment
devices as an observation model and apply an appropriately
configured filter with respect to the observation model to estimate
an overall composition of a network audience at a time of
interest.
[0026] In accordance with another aspect of the present invention,
stochastic control theory is applied to the problem of asset
selection, e.g., selecting the optimal set of commercial assets to
communicate through a limited number of advertising insertion
channels. Traditionally, stochastic control theory has been applied
in contexts where the state of a system is randomly (time) varying
and possibly the exact consequences of various controls applied to
the system are only known probabilistically.
[0027] When one only has noisy, imperfect observations of the
system, one must base the set of controls on filtering estimates
which are also randomly varying over time. When there are
nonlinearities present there is no separation principle to rely on
and one must work on a sample path by sample path basis. In the
present invention, we do not even get noisy, imperfect observations
of the state of the system we want to estimate (i.e., the
demographics of the viewers of the various DSTBs), but rather only
a noisy partial measurement of the DSTBs estimates of their
viewers. Hence, we take the novel approach of designing our system
to estimate the set of conditional probability distributions of the
DSTBs, from which audience estimates can be obtained as a two-step
procedure. We adapt our stochastic control procedures to handle
this more general setting.
[0028] In the present context, sampled viewer estimates from DSTBs
received at the Head End are taken to be observations of the system
of probability distributions over household viewing states, of
arriving advertising contracts, and of ad sale and delivery, in
order to allow control decisions regarding which contracts with
advertisers to accept. Stochastic control is used to optimize some
utility function of the system, e.g., stable profitability.
[0029] Another manner of filtering the user composition model to
obtain the current user composition estimates may involve utilizing
machine learning (e.g., fuzzy logic including fuzzy sets and/or
fuzzy rules) as part of matching assets to current users. The
machine learning system may involve identifying classification
parameters of at least one (e.g., current) user based on evidence
aggregated from user inputs collected in a learning mode. These
inputs may, for example, be analyzed based on correlated
programming information, or based on programming independent
characteristics, e.g., volume settings or quickness of the click
process.
[0030] For example, fuzzy logic may be used to identify a number of
discrete users in an audience (e.g., number of members of a
household) and/or to determine one or more classification
parameters of a user or users. This may be based on user inputs
such as a click stream of a remote control. Thus, user inputs may
be monitored and associated with values related to the
classification parameter(s). These values can then be treated as
points in a fuzzy set within a model of a plurality of user
classification parameters. In one implementation, a number of user
inputs may be monitored to aggregate points in a fuzzy set. The
current user composition estimation and/or matching may involve
multiple dimensions related to multiple classification parameters
(e.g., age, gender, income, etc.), and the aggregated points may be
used to define one or more features of a multidimensional feature
terrain. The feature terrain may be processed to remove noise and
to reduce the set of gradients in the terrain, for example, by
clustering features. The remaining features of the processed
feature terrain can then be used to identify each user in an
audience and determine one or more classification parameters for
each user. Similar processing can be used to identify viewing
patterns as a function of time (periodicity). For example,
different terrains can be developed for different time periods,
e.g., different times of day.
[0031] Additionally or alternatively, fuzzy logic may be used to
develop a characterization of a target audience of a network
programming event. For example, the target audience of an asset may
be defined by a demographic profile including a number of
demographic parameter values. These values may be associated with a
series of fuzzy numbers or fuzzy sets. An additional implementation
of fuzzy logic may be used to correlate the fuzzy numbers with
classification parameters of putative user. For example, a
congruent similarity function may be used to match the audience
characterization or targeting parameters to the classification
parameters. Similar processing can be used to match a periodicity
pattern to an identified user. Alternatively, where different
terrains are developed for different times, as noted above, such
periodicity is reflected in the terrains; that is, time becomes a
dimension of the terrain set. A match may be determined based on a
combination of the degree of correlation of the user classification
parameters to the ad targeting parameters and the likelihood that
an appropriate viewer will be watching at the time of the ad
delivery. The resulting match may be used to "vote" for assets to
be inserted into content streams of the network to select ads for
delivery and/or to report a "goodness of fit" of a user receiving
the asset to the asset targeting parameters. The noted utility may
also be operative to determine whether the user equipment device is
"on" and to determine whether any user is present at the user
equipment device. The user inputs or click stream data can be
processed at the user equipment device or at another location,
e.g., raw or preprocessed click stream data may be transmitted to a
head end for processing to determine classification parameter
information. For example, this may be done where messaging
bandwidth is sufficient and user equipment device resources are
limited.
[0032] In one implementation, the machine learning system may be a
substantially unsupervised system. That is, the system can
accumulate evidence and thereby learn a composition of a user set,
such as a viewing audience, without requiring a training process in
which the system is provided knowledge about or examples of usage
(e.g., viewing) patterns. In this manner, the system can readily
adapt to changes, e.g., changes in the viewing audience or viewing
audience demographics due to, for example, additions to or
departures from the household, changing demographics due to aging,
change of income, etc., addition of a television set (e.g., in a
child's room) that impacts viewership, etc. Moreover, the system
can operate substantially autonomously, thereby substantially
avoiding the need for any supervised set-up or retraining
process.
[0033] In accordance with another aspect of the present invention,
functionality for identifying a user can be executed at a user
equipment device. It has been recognized that a current user can be
effectively identified based on analysis of user inputs at a user
equipment device. An associated utility in accordance with the
present invention involves receiving user inputs at the user
equipment device and analyzing the inputs to associate audience
classification parameters with the user using a machine learning
system. For example, the inputs may relate to a click stream of a
remote control device reflecting program selections, volume control
inputs and the like. The machine learning system is preferably
capable of learning in a substantially unsupervised fashion. Fuzzy
logic can be used to analyze these inputs on an individual basis to
obtain evidence concerning the classification parameters of the
user. This evidence can then be aggregated and analyzed using fuzzy
logic to determine classification parameters of a user.
[0034] In accordance with another aspect of the present invention,
a user equipment device is operative to signal a broadcast network
regarding a user of the device. An associated utility involves
determining, at the user equipment device, user information
regarding the user of the device based at least in part on user
inputs to the device, and signaling the broadcast network based on
user information. For example, the user information may include
classification parameters of the user. The signals transmitted to
the broadcast network may reflect the results of a matching process
whereby user classification information is compared to targeting
information for an asset. In this regard, the information
transmitted across the network need not include any classification
information regarding the user. Such signaling information may be
used, for example, to vote for assets to be inserted into network
content streams or to report information regarding assets actually
delivered at the user equipment device, e.g., for measuring the
size and/or composition of the audience.
[0035] The various aspects of the invention can be provided in any
suitable combination. Moreover, any or all of the above noted
aspects can be implemented in connection with a targeted asset
delivery system.
BRIEF DESCRIPTION OF THE DRAWINGS
[0036] For a more complete understanding of the present invention
and further advantages thereof, reference is now made to the
following detailed description, taken in conjunction with the
drawings in which:
[0037] FIG. 1 illustrates delivery of assets to different users
watching the same programming channel.
[0038] FIG. 2 illustrates audience aggregation across multiple
programming networks.
[0039] FIG. 3 illustrates a virtual channel in the context of
audience aggregation.
[0040] FIG. 4 illustrates targeted asset insertion being
implemented at Customer Premises Equipment (CPEs).
[0041] FIG. 5 illustrates asset options being transmitted from a
headend on separate asset channels.
[0042] FIG. 6 illustrates a messaging sequence between a CPE, a
network platform, and a traffic and billing (T&B) system.
[0043] FIG. 7A illustrates an example of CPEs that include a
television set and a Digital Set Top Box (DSTB) as used by a
plurality of users.
[0044] FIG. 7B illustrates a user classifier.
[0045] FIG. 8 is a flow chart illustrating a process for
implementing time-slot and targeted impression buys.
[0046] FIG. 9 illustrates an overview of a classifier process in
accordance with the present invention.
[0047] FIG. 10 is a stay transition graph illustrating a process
for handling click stream data in accordance with the present
invention.
[0048] FIGS. 11-21 illustrate learning mode operation of the
classifier in accordance with the present invention.
[0049] FIGS. 22-26 illustrate working mode operation of the
classifier in accordance with the present invention.
[0050] FIG. 27 is a block diagram illustrating the basic functional
components of a classifier in accordance with the present
invention.
[0051] FIG. 28 is a schematic diagram of a targeted advertising
system in accordance with one embodiment.
[0052] FIG. 29 illustrates the REST structure in accordance with
one embodiment.
[0053] FIG. 30 illustrates a cell structure for a cell of a
discrete space filter in accordance with one embodiment.
[0054] FIG. 31 is a flowchart illustrating a filter evolution
process in accordance with one embodiment.
[0055] FIG. 32 is a block diagram illustrating a process for
simulating events in accordance with one embodiment.
DETAILED DESCRIPTION
[0056] The present invention relates to various structure and
functionality for delivery of targeted assets, classification of
network users, matching of asset targeting parameters to audience
classification parameters and network monitoring for use in a
communications network. The invention has particular application
with respect to networks where content is broadcast to network
users. In this regard, content may be broadcast in a variety of
networks including, for example, cable and satellite television
networks, satellite radio networks, IP networks used for
multicasting content and networks used for podcasts or telephony
broadcasts/multicasts. Content may also be broadcast over the
airwaves though, as will be understood from the description below,
certain aspects of the invention make use of bi-directional
communication channels which are not readily available, for
example, in connection with conventional airwave based televisions
or radios (i.e., such communication would involve supplemental
communication systems). In various contexts, the content may be
consumed in real time or stored for subsequent consumption. Thus,
while specific examples are provided below in the context of a
cable television network for purposes of illustration, it will be
appreciated that the invention is not limited to such contexts but,
rather, has application to a variety of networks and transmission
modes.
[0057] The targeted assets may include any type of asset that is
desired to be targeted to network users. It is noted that such
targeted assets are sometimes referred to as "addressable" assets
(though, as will be understood from the description below,
targeting can be accomplished without addressing in a
point-to-point sense). For example, these targeted assets may
include advertisements, internal marketing (e.g., information about
network promotions, scheduling or upcoming events), public service
announcements, weather or emergency information, or programming.
The targeted assets may be independent or included in a content
stream with other assets such as untargeted network programming. In
the latter case, the targeted assets may be interspersed with
untargeted programming (e.g., provided during programming breaks)
or may otherwise be combined with the programming as by being
superimposed on a screen portion in the case of video programming.
In the description below, specific examples are provided in the
context of targeted assets provided during breaks in television
programming. While this is an important commercial implementation
of the invention, it will be appreciated that the invention has
broader application. Thus, distinctions below between "programming"
and "assets" such as advertising should not be understood as
limiting the types of content that may be targeted or the contexts
in which such content may be provided.
[0058] As noted above, the present invention relates to identifying
members of an audience, determining classification information for
those users, determining which user or users may be watching at a
time of interest, and matching assets to the identified audience.
The matching related functionality is useful in a variety of
contexts in a targeted asset delivery system. Accordingly, an
overview of the targeted asset delivery system is first provided
below. Thereafter, the matching related functionality and
associated structure is described in detail.
I. An Exemplary Targeted Asset Delivery System
[0059] A. The Targeted Asset Delivery Environment
[0060] Although the matching-related subject matter of the present
invention can be used in a variety of targeted asset delivery
systems, a particularly advantageous targeted asset delivery system
is described below. The inventive system, in the embodiments
described below, allows for delivery of targeted assets such as
advertising for use in addressing certain shortcomings or
inefficiencies of conventional broadcast networks. Generally, such
targeting entails delivering assets to desired groups of
individuals or individuals having desired characteristics. These
characteristics or audience classification parameters may be
defined based on personal information, demographic information,
psychographic information, geographic information, or any other
information that may be relevant to an asset provider in
identifying a target audience. Preferably, such targeting is
program independent in recognition that programming is a highly
imperfect mechanism for targeting of assets. For example, even if
user analysis indicates that a particular program has an audience
comprised sixty percent of women, and women comprise the target
audience for a particular asset, airing on that program will result
in a forty percent mismatch. That is, forty percent of the users
potentially reached may not be of interest to the asset provider
and pricing may be based only on sixty percent of the total
audience. Moreover, ideally, targeted asset delivery would allow
for targeting with a range of granularities including very fine
granularities. For example, it may be desired to target a group,
such as based on a geographical grouping, a household
characterization or even an individual user characterization. The
present invention accommodates program independent targeting,
targeting with a high degree of granularity and targeting based on
a variety of different audience classifications.
[0061] FIGS. 1 and 2 illustrate two different contexts of targeted
asset delivery supported in accordance with the present invention.
Specifically, FIG. 1 illustrates the delivery of different assets,
in this case ads, to different users watching the same programming
channel, which may be referred to as spot optimization. As shown,
three different users 500-502 are depicted as watching the same
programming, in this case, denoted "Movie of the Week." At a given
break 504 the users 500-502 each receive a different asset package.
Specifically, user 500 receives a digital music player ad and a
movie promo, user 501 receives a luxury car ad and a health
insurance ad, and user 502 receives a minivan ad and a department
store ad. Alternately, a single asset provider (e.g., a motor
vehicle company) may purchase a spot and then provide different
asset options for the spot (e.g., sports car, minivans, pickup
trucks, etc.). Similarly, separate advertisers may collectively
purchase a spot and then provide ads for their respective products
(e.g., where the target audiences of the advertisers are
complementary). It will be appreciated that these different asset
packages may be targeted to different audience demographics. In
this manner, assets are better tailored to particular viewers of a
given program who may fall into different demographic groups. Thus,
spot optimization refers to the delivery of different assets (by
one or multiple asset providers) in a given spot.
[0062] FIG. 2 illustrates a different context of the present
invention, which may be termed audience aggregation. In this case,
three different users 600-602 viewing different programs associated
with different channels may receive the same asset or asset
package. In this case, each of the users 600-602 receives a package
including a digital music player ad and a movie promo in connection
with breaks associated with their respective channels. Though the
users 600-602 are shown as receiving the same asset package for
purposes of illustration, it is likely that different users will
receive different combinations of assets due to differences in
classification parameters. In this manner, users over multiple
channels (some or all users of each channel) can be aggregated
(relative to a given asset and time window) to define a virtual
channel having significant user numbers matching a targeted
audience classification. Among other things, such audience
aggregation allows for the possibility of aggregating users over a
number of low share channels to define a significant asset delivery
opportunity, perhaps on the order of that associated with one of
the high share networks. This can be accomplished, in accordance
with the present invention, using equipment already at a user's
premises (i.e., an existing CPE). Such a virtual channel is
graphically illustrated in FIG. 3, though this illustration is not
based on actual numbers. Thus, audience aggregation refers to the
delivery of the same asset in different spots to define an
aggregated audience. These different spots may occur within a time
window corresponding to overlapping (conflicting) programs on
different channels. In this manner, it is likely that these spots,
even if at different times within the window, will not be received
by the same users.
[0063] Such targeting including both spot optimization and audience
aggregation can be implemented using a variety of architectures in
accordance with the present invention. Thus, for example, as
illustrated in FIG. 4, targeted asset insertion can be implemented
at the CPEs. This may involve a forward-and-store functionality. As
illustrated in FIG. 4, the CPE 800 receives a programming stream
802 and an asset delivery stream 804 from the headend 808. These
streams 802 and 804 may be provided via a common signal link such
as a coaxial cable or via separate communications links. For
example, the asset delivery stream 804 may be transmitted to the
CPE 800 via a designated segment, e.g., a dedicated frequency
range, of the available bandwidth or via a programming channel that
is opportunistically available for asset delivery, e.g., when it is
otherwise off air. The asset delivery stream 804 may be provided on
a continuous or intermittent basis and may be provided concurrently
with the programming stream 802. In the illustrated example, the
programming stream 802 is processed by a program-decoding unit,
such as DSTB, and programming is displayed on television set 814.
Alternatively, the programming stream 802 may be stored in
programming storage 815 for CPE insertion.
[0064] In the illustrated implementation, the asset, together with
metadata identifying, for example, any audience classification
parameters of the targeted audience, is stored in a designated
storage space 806 of the CPE 800. It will be appreciated that
substantial storage at the CPE 800 may be required in this regard.
For example, such storage may be available in connection with
certain digital video recorder (DVR) units. A selector 810 is
implemented as a processor running logic on the CPE 800. The
selector 810 functions analogously to the headend selector
described above to identify breaks 816 and insert appropriate
assets. In this case, the assets may be selected based on
classification parameters of the household or, more preferably, a
user within the household. Such information may be stored at the
CPE 800 or may be determined based on an analysis of viewing habits
such as a click stream from a remote control as will be described
in more detail below. Certain aspects of the present invention can
be implemented in such a CPE insertion environment.
[0065] In FIG. 5, a different architecture is employed.
Specifically, in FIG. 5, asset options transmitted from headend 910
synchronously with a given break on a given channel for which
targeted asset options are supported. The CPE 900 includes a
channel selector 902, which is operative to switch to an asset
channel associated with a desired asset at the beginning of a break
and to return to the programming channel at the end of the break.
The channel selector 902 may hop between channels (between asset
channels or between an asset channel and the programming channel)
during a break to select the most appropriate assets. In this
regard, logic resident on the CPE 900 controls such hopping to
avoid switching to a channel where an asset is already in progress.
As described below, this logic can be readily implemented, as the
schedule of assets on each asset channel is known. Preferably, all
of this is implemented invisibly from the perspective of the user
of set 904. The different options may be provided, at least in
part, in connection with asset channels 906 or other bandwidth
segments (separate from programming channels 908) dedicated for use
in providing such options. In addition, certain asset options may
be inserted into the current programming channel 908. Associated
functionality is described in detail below. The architecture of
FIG. 5 has the advantage of not requiring substantial storage
resources at the CPE 900 such that it can be immediately
implemented on a wide scale basis using equipment that is already
in the field.
[0066] As a further alternative, the determination of which asset
to show may be made at the headend. For example, an asset may be
selected based on voting as described below, and inserted at the
headend into the programming channel without options on other asset
channels. This would achieve a degree of targeting but without spot
optimization opportunities as described above. Still further,
options may be provided on other asset channels, but the selection
as between those channels may be determined by the headend. For
example, information about a household or user (e.g., brand of car
owned, magazines subscribed to, etc.) stored on the headend may be
used to match an asset to a household or user. That information,
which may be termed "marketing labels," may be used by the headend
to control which asset is selected by the CPE. For example, the CPE
may be instructed that it is associated with an "ACME preferred"
customer. When an asset is disseminated with ACME preferred
metadata, the CPE may be caused to select that asset, thereby
overriding (or significantly factoring with) any other audience
classification considerations. However, it will be appreciated that
such operation may entail certain concerns relating to sensitive
information or may compromise audience classification based
targeting in other respects.
[0067] A significant opportunity thus exists to better target users
whom asset providers may be willing to pay to reach and to better
reach hard-to-reach users. However, a number of challenges remain
with respect to achieving these objectives including: how to
provide asset options within network bandwidth limitations and
without requiring substantial storage requirements and new
equipment at the user's premises; how to obtain sufficient
information for effective targeting while addressing privacy
concerns; how to address a variety of business related issues, such
as pricing of asset delivery, resulting from availability of asset
options and attendant contingent delivery; and how to operate
effectively within the context of existing network structure and
systems (e.g., across node filters, using existing traffic and
billing systems, etc.).
[0068] From the foregoing it will be appreciated that various
aspects of the invention are applicable in the context of a variety
of networks, including broadcast networks. In the following
discussion, specific implementations of a targeted asset system are
discussed in the context of a cable television network. Though the
system enhances viewing for both analog and digital users, certain
functionality is conveniently implemented using existing DSTBs. It
will be appreciated that, while these represent particularly
advantageous and commercially valuable implementations, the
invention is not limited to these specific implementations or
network contexts.
[0069] B. System Architecture
[0070] In one implementation, the system of the present invention
involves the transmission of asset options in time alignment or
synchronization with other assets on a programming channel, where
the asset options are at least partially provided via separate
bandwidth segments, e.g. channels at least temporarily dedicated to
targeted asset delivery. Although such options may typically be
transmitted in alignment with a break in programming, it may be
desired to provide options opposite continuing programming (e.g.,
so that only subscribers in a specified geographic area get a
weather announcement, an emergency announcement, election results
or other local information while others get uninterrupted
programming). Selection as between the available options is
implemented at the user's premises, as by a DSTB in this
implementation. In this manner, asset options are made available
for better targeting, without the requirement for substantial
storage resources or equipment upgrades at the user's premises
(e.g., as might be required for a forward-and-store architecture).
Indeed, existing DSTBs can be configured to execute logic for
implementing the system described below by downloading and/or
preloading appropriate logic.
[0071] Because asset options are synchronously transmitted in this
implementation, it is desirable to be efficient in identifying
available bandwidth and in using that bandwidth. Various
functionality for improved bandwidth identification, e.g.,
identifying bandwidth that is opportunistically available in
relation to a node filter, is described later in this discussion.
Efficient use of available bandwidth involves both optimizing the
duty cycle or asset density of an available bandwidth segment
(i.e., how much time, of the time a bandwidth segment is available
for use in transmitting asset options, is the segment actually used
for transmitting options) and the value of the options transmitted.
The former factor is addressed, among other things, by improved
scheduling of targeted asset delivery on the asset channels in
relation to scheduled breaks of the programming channels.
[0072] The latter factor is addressed in part by populating the
available bandwidth spots with assets that are most desired based
on current network conditions. These most desired assets can be
determined in a variety of ways including based on conventional
ratings. In the specific implementation described below, the most
desired assets are determined via a process herein termed voting.
FIG. 6 illustrates an associated messaging sequence 1000 in this
regard as between a CPE 1002 such as a DSTB, a network platform for
asset insertion such as a headend 1004 and a traffic and billing
(T&B) system 1006 used in the illustrated example for obtaining
asset delivery orders or contracts and billing for asset delivery.
It will be appreciated that the functionality of the T&B system
1006 may be split between multiple systems running on multiple
platforms and the T&B system 1006 may be operated by the
network operator or may be separately operated.
[0073] The illustrated sequence begins by loading contract
information 1008 from the T&B system 1006 onto the headend
1004. An interface associated with system 1006 allows asset
providers to execute contracts for dissemination of assets based on
traditional time-slot buys (for a given program or given time on a
given network) or based on a certain audience classification
information (e.g., desired demographics, psychographics, geography,
and/or audience size). In the latter case, the asset provider or
network may identify audience classification information associated
with a target audience. The system 1006 uses this information to
compile the contract information 1008, which identifies the asset
that is to be delivered together with delivery parameters regarding
when and to whom the asset is to be delivered.
[0074] The illustrated headend 1004 uses the contract information
together with a schedule of breaks for individual networks to
compile an asset option list 1010 on a channel-by-channel and
break-by-break basis. That is, the list 1010 lists the universe of
asset options that are available for voting purposes for a given
break on a given programming channel together with associated
metadata identifying the target audience for the asset, e.g., based
on audience classification information. The transmitted list 1010
may encompass all supported programming channels and may be
transmitted to all participating users, or the list may be limited
to one or a subset of the supported channels e.g., based on an
input indicating the current channel or the most likely or frequent
channels used by a particular user or group of users. The list 1010
is transmitted from the headend 1004 to the CPE 1002 in advance of
a break for which options are listed.
[0075] Based on the list 1010, the CPE 1002 submits a vote 1012
back to the headend 1004. More specifically, the CPE 1002 first
identifies the classification parameters for the current user(s)
and perhaps the current channel being watched, identifies the
assets that are available for an upcoming break (for the current
channel or multiple channels) as well as the target audience for
those assets and determines a "fit" of one or more of those asset
options to the current classification. In one implementation, each
of the assets is attributed a fit score for the user(s), e.g.,
based on a comparison of the audience classification parameters of
the asset to the putative audience classification parameters of the
current user(s). This may involve how well an individual user
classification parameter matches a corresponding target audience
parameter and/or how many of the target audience parameters are
matched by the user's classification parameters. Based on these fit
scores, the CPE 1002 issues the vote 1012 indicating the most
appropriate asset(s). Any suitable information can be used to
provide this indication. For example, all scores for all available
asset options (for the current channel or multiple channels) may be
included in the vote 1012. Alternatively, the vote 1012 may
identify a subset of one or more options selected or deselected by
the CPE 1002, with or without scoring information indicating a
degree of the match and may further include channel information. In
one implementation, the headend 1004 instructs CPEs (1002) to
return fit scores for the top N asset options for a given spot,
where N is dynamically configurable based on any relevant factor
such as network traffic levels and size of the audience.
Preferably, this voting occurs shortly before the break at issue
such that the voting more accurately reflects the current status of
network users. In one implementation, votes are only submitted for
the programming channel to which the CPE is set, and votes are
submitted periodically, e.g., every fifteen minutes.
[0076] The headend 1004 compiles votes 1012 from CPEs 1002 to
determine a set of selected asset options 1014 for a given break on
a supported programming channel. As will be understood from the
description below, such votes 1012 may be obtained from all
relevant and participating CPEs 1002 (who may be representative of
a larger audience including analog or otherwise non-participating
users) or a statistical sampling thereof. In addition, the headend
1004 determines the amount of bandwidth, e.g., the number of
dedicated asset option channels, that is available for transmission
of options in support of a given break for a given programming
channel.
[0077] Based on all of this information, the headend 1004 assembles
a flotilla of assets, e.g., the asset options having the highest
vote values or the highest weighted vote values where such
weighting takes into account value per user or other information
beyond classification fit. Such a flotilla may include asset
options inserted on the current programming channel as well as on
asset channels, though different insertion processes and components
may be involved for programming channel and asset channel
insertion. It will be appreciated that some assets may be assembled
independently or largely independently of voting, for example,
certain public service spots or where a certain provider has paid a
premium for guaranteed delivery. Also, in spot optimization
contexts where a single asset provider buys a spot and then
provides multiple asset options for that spot, voting may be
unnecessary (though voting may still be used to select the
options).
[0078] In one implementation, the flotilla is assembled into sets
of asset options for each dedicated asset channel, where the time
length of each set matches the length of the break, such that
channel hopping within a break is unnecessary. Alternatively, the
CPE 1002 may navigate between the asset channels to access desired
assets within a break (provided that asset starts on the relevant
asset channels are synchronized). However, it will be appreciated
that the flotilla matrix (where columns include options for a given
spot and rows correspond to channels) need not be rectangular.
Stated differently, some channels may be used to provide asset
options for only a portion of the break, i.e., may be used at the
start of the break for one or more spots but are not available for
the entire break, or may only be used after one or more spots of a
break have aired. A list of the selected assets 1014 and the
associated asset channels is then transmitted together with
metadata identifying the target audience in the illustrated
implementation. It will be appreciated that it may be unnecessary
to include the metadata at this step if the CPE 1002 has retained
the asset option list 1010. This list 1014 is preferably
transmitted shortly in advance of transmission of the asset 1016
(which includes sets of asset options for each dedicated contact
options channel used to support, at least in part, the break at
issue).
[0079] The CPE 1002 receives the list of selected asset options
1014 and associated metadata and selects which of the available
options to deliver to the user(s). For example, this may involve a
comparison of the current audience classification parameter values
(which may or may not be the same as those used for purposes of
voting) to the metadata associated with each of the asset options.
The selected asset option is used to selectively switch the CPE
1002 to the corresponding dedicated asset options channel to
display the selected asset 1016 at the beginning of the break at
issue. One of the asset option sets, for example, the one comprised
of the asset receiving the highest vote values, may be inserted
into the programming channel so that switching is not required for
many users. Assuming that the voting CPEs are at least somewhat
representative of the universe of all users, a significant degree
of targeting is thereby achieved even for analog or otherwise
non-participating users. In this regard, the voters serve as
proxies for non-voting users. The CPE 1002 returns to the
programming channel at the conclusion of the break. Preferably, all
of this is transparent from the perspective of the user(s), i.e.,
preferably no user input is required. The system may be designed so
that any user input overrides the targeting system. For example, if
the user changes channels during a break, the change will be
implemented as if the targeting system was not in effect (e.g., a
command to advance to the next channel will set the CPE to the
channel immediately above the current programming channel, without
regard to any options currently available for that channel,
regardless of the dedicated asset channel that is currently
sourcing the television output).
[0080] In this system architecture, as in forward-and-store
architectures or any other option where selections between asset
options are implemented at the CPE, there will be some uncertainty
as to how many users or households received any particular asset
option in the absence of reporting. This may be tolerable from a
business perspective. In the absence of reporting, the audience
size may be estimated based on voting data, conventional ratings
analysis and other tools. Indeed, in the conventional asset
delivery paradigm, asset providers accept Nielsen rating estimates
and demographic information together with market analysis to gauge
return on investment. However, this uncertainty is less than
optimal in any asset delivery environment and may be particularly
problematic in the context of audience aggregation across multiple
programming networks, potentially including programming networks
that are difficult to measure by conventional means.
[0081] The system of the present invention preferably implements a
reporting system by which individual CPEs 1002 report back to the
headend 1004 what asset or assets were delivered at the CPE 1002
and, optionally, to whom (in terms of audience classification).
Additionally, the reports may indicate where (on what programming
channel) the asset was delivered and how much (if any) of the asset
was consumed. Such reports 1018 may be provided by all
participating CPEs 1002 or by a statistical sampling thereof. These
reports 1018 may be generated on a break-by-break basis,
periodically (e.g., every 15 minutes) or may be aggregated prior to
transmission to the headend 1004. Reports may be transmitted soon
after delivery of the assets at issue or may be accumulated, e.g.,
for transmission at a time of day where messaging bandwidth is more
available. Moreover, such reporting may be coordinated as between
the CPEs 1002 so as to spread the messaging load due to
reporting.
[0082] In any case, the reports 1018 can be used to provide billing
information 1020 to the T&B system 1006 for valuing the
delivery of the various asset options. For example, the billing
information 1020 can be used by the T&B system 1006 to
determine how large an audience received each option and how well
that audience matched the target audience. For example, as noted
above, a fit score may be generated for particular asset options
based on a comparison of the audience classification to the target
audience. This score may be on any scale, e.g., 1-100. Goodness of
fit may be determined based on this raw score or based on
characterization of this score such as "excellent," "good," etc.
Again, this may depend on how well an individual audience
classification parameter of a user matches a corresponding target
audience parameter and/or how many of the target audience
parameters are matched by the user's audience classification
parameters. This information may in turn be provided to the asset
provider, at least in an aggregated form. In this manner, the
network operator can bill based on guaranteed delivery of targeted
messages or scale the billing rate (or increase delivery) based on
goodness of fit as well as audience size. The reports (and/or
votes) 1018 can also provide a quick and detailed measurement of
user distribution over the network that can be used to accurately
gauge ratings, share, demographics of audiences and the like.
Moreover, this information can be used to provide future audience
estimation information 1022, for example, to estimate the total
target universe based on audience classification parameters.
[0083] It will thus be appreciated that the present invention
allows a network operator such as an MSO to sell asset delivery
under the conventional asset delivery (time-slot) buy paradigm or
under the new commercial impression paradigm or both. For example,
a particular MSO may choose to sell asset delivery space for the
major networks (or for these networks during prime time) under the
old time-slot buy paradigm while using the commercial impression
paradigm to aggregate users over multiple low market share
networks. Another MSO may choose to retain the basic time-slot buy
paradigm while accommodating asset providers who may wish to fill a
given slot with multiple options targeted to different
demographics. Another MSO may choose to retain the basic time-slot
buy paradigm during prime time across all networks while using the
targeted impression paradigm to aggregate users at other times of
the day. The targeted impression paradigm may be used by such MSOs
only for this limited purpose.
[0084] FIG. 8 is a flow chart illustrating an associated process
1200. An asset provider (or agent thereof) can initiate the
illustrated process 1200 by accessing (1202) a contracting platform
as will be described below. Alternatively, an asset provider can
work with the sales department or other personnel of a system
operator or other party who accesses such a platform. As a still
further alternative, an automated buying system may be employed to
interface with such a platform via a system-to-system interface.
This platform may provide a graphical user interface by which an
asset provider can design a dissemination strategy and enter into a
corresponding contract for dissemination of an asset. The asset
provider can then use the interface to select (1204) to execute
either a time-slot buy strategy or a targeted impression buy
strategy. In the case of a time-slot buy strategy, the asset
provider can then use the user interface to specify (1206) a
network and time-slot or other program parameter identifying the
desired air times and frequency for delivery of the asset. Thus,
for example, an asset provider may elect to air the asset in
connection with specifically identified programs believed to have
an appropriate audience. In addition, the asset provider may
specify that the asset is to appear during the first break or
during multiple breaks during the program. The asset provider may
further specify that the asset is to be, for example, aired during
the first spot within the break, the last spot within the break or
otherwise designate the specific asset delivery slot.
[0085] Once the time-slots for the asset have thus been specified,
the MSO causes the asset to be embedded (1208) into the specified
programming channel asset stream. The asset is then available to be
consumed by all users of the programming channel. The MSO then
bills (1210) the asset provider, typically based on associated
ratings information. For example, the billing rate may be
established in advance based on previous rating information for the
program in question, or the best available ratings information for
the particular airing of the program may be used to bill the asset
provider. It will thus be appreciated that the conventional
time-slot buy paradigm is limited to delivery to all users for a
particular time-slot on a particular network and does not allow for
targeting of particular users of a given network or targeting users
distributed over multiple networks in a single buy.
[0086] In the case of targeted impression buys, the asset provider
can use the user interface as described in more detail below to
specify (1212) audience classification and other dissemination
parameters. In the case of audience classification parameters, the
asset provider may specify the gender, age range, income range,
geographical location, lifestyle interest or other information of a
targeted audience. The additional dissemination parameters may
relate to delivery time, frequency, audience size, or any other
information useful to define a target audience. Combinations of
parameters may also be specified. For example, an asset provider
may specify an audience size of 100,000 in a particular demographic
group and further specify that the asset is not delivered to any
user who has already received the asset a predetermined number of
times.
[0087] Based on this information, the targeted asset system of the
present invention is operative to target appropriate users. For
example, this may involve targeting only selected users of a major
network. Additionally or alternatively, this may involve
aggregating (1214) users across multiple networks to satisfy the
audience specifications. For example, selected users from multiple
programming channels may receive the asset within a designated time
period in order to provide an audience of the desired size, where
the audience is composed of users matching the desired audience
classification. The user interface preferably estimates the target
universe based on the audience classification and dissemination
parameters such that the asset provider receives an indication of
the likely audience size.
[0088] The aggregation system may also be used to do time of day
buys. For example, an asset provider could specify audience
classification parameters for a target audience and further specify
a time and channel for airing of the asset. CPEs tuned to that
channel can then select the asset based on the voting process as
described herein. Also, asset providers may designate audience
classification parameters and a run time or time range, but not the
programming channel. In this manner, significant flexibility is
enabled for designing a dissemination strategy. It is also possible
for a network operator to disable some of these strategy options,
e.g., for business reasons.
[0089] Based on this input information, the targeted asset system
of the present invention is operative to provide the asset as an
option during one or more time-slots of one or more breaks. In the
case of spot optimization, multiple asset options may be
disseminated together with information identifying the target
audience so that the most appropriate asset can be delivered at
individual CPEs. In the case of audience aggregation, the asset may
be provided as an option in connection with multiple breaks on
multiple programming channels. The system then receives and
processes (1218) reports regarding actual delivery of the asset by
CPEs and information indicating how well the actual audience fit
the classification parameters of the target audience. The asset
provider can then be billed (1220) based on guaranteed delivery and
goodness of fit based on actual report information. It will thus be
appreciated that a new asset delivery paradigm is defined by which
assets are targeted to specific users rather than being associated
with particular programs. This enables both better targeting of
individual users for a given program and improved reach to target
users on low-share networks.
[0090] From the foregoing, it will be appreciated that various
steps in the messaging sequence are directed to matching assets to
users based on classification parameters, allowing for goodness of
fit determinations based on such matching or otherwise depending on
communicating audience classification information across the
network. It is preferable to implement such messaging in a manner
that is respectful of user privacy concerns and relevant regulatory
regimes.
[0091] In the illustrated system, this is addressed by implementing
the system free from persistent storage of a user profile or other
sensitive information including, for example, personally
identifiable information (PII). Specifically, it may be desired to
protect as sensitive information subject matter extending beyond
the established definition of PII. As one example in this regard,
it may be desired to protect MAC addresses even though such
addresses are not presently considered to be included within the
definition of PII in the United States. Generally, any information
that may entail privacy concerns or identify network usage
information may be considered sensitive information. More
particularly, the system learns of current network conditions prior
to transmission of asset options via votes that identify assets
without any sensitive information. Reports may also be limited to
identifying assets that have been delivered (which assets are
associated with target audience parameters) or characterization of
the fit of audience classification parameters of a user(s) to a
target audience definition. Even if it is desired to associate
reports with particular users, e.g., to account for ad skipping as
discussed below, such association may be based on an identification
code or address not including PII. In any event, identification
codes or any other information deemed sensitive can be immediately
stripped and discarded or hashed, and audience classification
information can be used only in anonymous and aggregated form to
address any privacy concerns. With regard to hashing, sensitive
information such as a MAC or IP address (which may be included in a
designated header field) can be run through a hash function and
reattached to the header, for example, to enable anonymous
identification of messages from the same origin as may be desired.
Moreover, users can be notified of the targeted asset system and
allowed to opt in or opt out such that participating users have
positively assented to participate.
[0092] Much of the discussion above has referenced audience
classification parameters as relating to individuals as opposed to
households. FIG. 7A illustrates a theoretical example of a CPE
including a television set 1100 and a DSTB 1102 that are associated
with multiple users 1103-1106. Arrow 1107 represents a user input
stream, such as a click stream from a remote control, over time. A
first user 1105, in this case a child, uses the television 1100
during a first time period--for example, in the morning. Second and
third users 1103 and 1104 (designated "father" and "mother") use
the television during time periods 1109 and 1110, which may be, for
example, in the afternoon or evening. A babysitter 1106 uses the
television during a nighttime period in this example.
[0093] This illustrates a number of challenges related to targeted
asset delivery. First, because there are multiple users 1103-1106,
targeting based on household demographics would have limited
effectiveness. For example, it may be assumed that the child 1105
and father 1103 in many cases would not be targeted by the same
asset providers. Moreover, in some cases, multiple users may watch
the same television at the same time as indicated by the overlap of
time periods 1109-1110. In addition, in some cases such as
illustrated by the babysitter 1106 an unexpected user (from the
perspective of the targeted asset system) may use the television
1100.
[0094] These noted difficulties are associated with a number of
objectives that are preferably addressed by the targeted asset
system of the present invention. First, the system should
preferably be operative to distinguish between multiple users of a
single set and, in the context of the system described above, vote
and report to the network accordingly. Second, the system should
preferably react over time to changing conditions such as the
transitions from use by father 1103 to use by both father and
mother 1103 and 1104 to use by only mother 1104. The system should
also preferably have some ability to characterize unexpected users
such as the babysitter 1106. In that case, the system may have no
other information to go on other than the click stream 1107. The
system may also identify time periods where, apparently, no user is
present, though the set 1100 may still be on. Preferably, the
system also operates free from persistent storage of any user
profile or sensitive information so that no third party has a
meaningful opportunity to misappropriate such information or
discover the private network usage patterns of any of the users
1103-1106 via the targeted asset system. Privacy concerns can
alternatively be addressed by obtaining consent from users. In this
matter, sensitive information including PII can be transmitted
across the network and persistently stored for use in targeting.
This may allow for compiling a detailed user profile, e.g., at the
headend. Assets can then be selected based on the user profile and,
in certain implementations, addressed to specific CPEs.
[0095] In certain implementations, the present invention monitors
the click stream over a time window and applies a mathematical
model to match a pattern defined by the click stream to predefined
audience classification parameters that may relate to demographic
or psychographic categories. It will be appreciated that the click
stream will indicate programs selected by users, volume and other
information that may have some correlation, at least in a
statistical sense, to the classification parameters. In addition,
factors such as the frequency of channel changes and the length of
time that the user lingers on a particular asset may be relevant to
determining a value of an audience classification parameter. The
system can also identify instances where there is apparently no
user present.
[0096] In a first implementation, as is described in detail below,
logic associated with the CPE 1101 uses probabilistic modeling,
fuzzy logic and/or machine learning to progressively estimate the
audience classification parameter values of a current user or users
based on the click stream 1107. This process may optionally be
supplemental based on stored information (preferably free of
sensitive information) concerning the household that may, for
example, affect probabilities associated with particular inputs. In
this manner, each user input event (which involves one or more
items of change of status and/or duration information) can be used
to update a current estimate of the audience classification
parameters based on associated probability values. The fuzzy logic
may involve fuzzy data sets and probabilistic algorithms that
accommodate estimations based on inputs of varying and limited
predictive value.
[0097] In a second implementation, the click stream is modeled as
an incomplete or noisy signal that can be processed to obtain
audience classification parameter information. More specifically, a
series of clicks over time or associated information can be viewed
as a time-based signal. This input signal is assumed to reflect a
desired signature or pattern that can be correlated to audience
classification parameters. However, the signal is assumed to be
incomplete or noisy--a common problem in signal processing.
Accordingly, filtering techniques are employed to estimate the
"true" signal from the input stream and associated algorithms
correlate that signal to the desired audience classification
information. For example, a nonlinear adaptive filter may be used
in this regard. Modeling user inputs (e.g., a clickstream) as an
incomplete/noisy signal and then utilizing various filtering
techniques to estimate a state of the signal to obtain a current
audience classification (e.g., in terms of classification
parameters) will be discussed in more detail later in this
discussion.
[0098] In any event, certain preferred characteristics apply in
either of these noted examples. First, the inputs into the system
are primarily a click stream and stored aggregated or statistical
data, substantially free of any sensitive information. This
addresses privacy concerns as noted above but also provides
substantial flexibility to assess new environments such as
unexpected users. In addition, the system preferably has a
forgetfulness such that recent inputs are more important than older
inputs. Either of the noted examples accommodates this objective.
It will be appreciated that such forgetfulness allows the system to
adapt to change, e.g., from a first user to multiple users to a
second user. In addition, such forgetfulness limits the amount of
viewing information that is available in the system at any one
time, thereby further addressing privacy concerns, and limits the
time period during which such information could conceivably be
discovered. For example, information may be deleted and settings
may be reset to default values periodically, for example, when the
DSTB is unplugged.
[0099] A block diagram of a system implementing such a user
classification system is shown in FIG. 7B. The illustrated system
is implemented in a CPE 1120 including a user input module 1122 and
a classification module 1124. The user input module receives user
inputs, e.g., from a remote control or television control buttons,
that may indicate channel selections, volume settings and the like.
These inputs are used together with programming information 1132
(which allows for correlation of channel selections to programming
and/or associated audience profiles) for a number of functions. In
this regard, the presence detector 1126 determines whether it is
likely that a user is present for all or a portion of an asset that
is delivered. For example, a long time period without any user
inputs may indicate that no user is present and paying attention or
a volume setting of zero may indicate that the asset was not
effectively delivered. The classifier 1128 develops audience
classification parameters for one or more users of a household as
discussed above. The user identifier is operative to estimate which
user, of the classified users, is currently present. Together,
these modules 1126, 1128 and 1130 provide audience classification
information that can be used to vote (or elect not to vote) and/or
generate reports (or elect not to generate reports).
[0100] As noted above, one of the audience classifications that may
be used for targeting is location. Specifically, an asset provider
may wish to target only users within a defined geographic zone
(e.g., proximate to a business outlet) or may wish to target
different assets to different geographic zones (e.g., targeting
different car ads to users having different supposed income levels
based on location). In certain implementations, the present
invention determines the location of a particular CPE and uses the
location information to target assets to the particular CPE. It
will be appreciated that an indication of the location of a CPE
contains information that may be considered sensitive. The present
invention also creates, extracts and/or receives the location
information in a manner that addresses these privacy concerns. This
may also be accomplished by generalizing or otherwise filtering out
sensitive information from the location information sent across the
network. This may be accomplished by providing filtering or sorting
features at the CPE or at the headend. For example, information
that may be useful in the reporting process (i.e. to determine the
number of successful deliveries within a specified location zone)
may be sent upstream with little or no sensitive information
included. Additionally, such location information can be
generalized so as to not be personally identifiable. For example,
all users on a given block or within another geographic zone (such
as associated with a zip plus 2 area) may be associated with the
same location identifier (e.g., a centroid for the zone).
[0101] In one implementation, logic associated with the CPE sends
an identifier upstream to the headend where the identifier is
cross-referenced against a list of billing addresses. The billing
address that matches the identifier is then translated, for
example, using GIS information, into a set of coordinates (e.g.,
Cartesian geographic coordinates) and those coordinates or an
associated geographic zone identifier are sent back to the CPE for
storage as part of its location information. Alternatively, a list
may be broadcast. In this case, a list including location
information for multiple or all network users is broadcast and each
CPE selects its own information. Asset providers can also associate
target location information with an asset. For example, in
connection with a contract interface as specified below, asset
providers can define target asset delivery zones. Preferably this
can be done via a graphical interface (e.g., displaying a map), and
the defined zones can match, to a fine level of granularity,
targeted areas of interest without being limited to node areas or
other network topology. Moreover, such zones can have complex
shapes including discontiguous portions. Preferably the zones can
then be expressed in terms that allow for convenient transmission
in asset metadata and comparison to user locations e.g., in terms
of grid elements or area cells.
[0102] In another implementation, individual geographic regions are
associated with unique identifiers and new regions can be defined
based on the union of existing regions. This can be extended to a
granularity identifying individual CPEs at its most fine level.
Higher levels including numerous CPEs may be used for voting and
reporting to address privacy concerns.
[0103] Upon receipt of an asset option list or an asset delivery
request (ADR), the CPE parses the ADR and determines whether the
location of the CPE is included in the locations targeted by the
asset referenced in the ADR. For example, this may involve a point
in polygon or other point in area algorithm, a radius analysis, or
a comparison to a network of defined grid or cells such as a
quadtree data structure. The CPE may then vote for assets to be
received based on criteria including whether the location of that
particular CPE is targeted by the asset.
[0104] After displaying an asset option, the CPE may also use its
location information in the reporting process to enhance the
delivery data sent upstream. The process by which the CPE uses its
location information removes substantially all sensitive
information from the location information. For example, the CPE may
report that an asset targeted to a particular group of locations
was delivered to one of the locations in the group. The CPE in this
example would not report the location to which asset was actually
delivered.
[0105] Similarly, it is often desired to associate tags with asset
selections. Such tags are additional information that is
superimposed on or appended to such assets. For example, a tag may
provide information regarding a local store or other business
location at the conclusion of an asset that is distributed on a
broader basis. Conventionally, such tags have been appended to ads
prior to insertion at the headend and have been limited to coarse
targeting. In accordance with the present invention, tags may be
targeted to users in particular zones, locations or areas, such as
neighborhoods. Tags may also be targeted based on other audience
classification parameters such as age, gender, income level, etc.
For example, tags at the end of a department store ad may advertise
specials on particular items of interest to particular
demographics. Specifically, a tag may be included in an asset
flotilla and conditionally inserted based on logic contained within
the CPE. Thus the tags are separate units that can be targeted like
other assets, however, with conditional logic such that they are
associated with the corresponding asset.
[0106] The present invention may use information relating to the
location of a particular CPE to target a tag to a particular CPE.
For example, the CPE may contain information relating to its
location in the form of Cartesian coordinates as discussed above.
If an asset indicates that a tag may be delivered with it or
instead of it, the CPE determines whether there is, associated with
any of the potential tags, a location criterion that is met by the
location information contained in the particular CPE. For example,
a tag may include a location criterion defining a particular
neighborhood. If the CPE is located in that neighborhood, the CPE
1101 may choose to deliver the tag, assuming that other criteria
necessary for the delivery of the tag are met. Other criteria may
include the time available in the given break, other demographic
information, and information relating to the national or
non-localized asset.
[0107] As briefly note above, targeting may also be implemented
based on marketing labels. Specifically, the headend may acquire
information or marketing labels regarding a user or household from
a variety of sources. These marketing labels may indicate that a
user buys expensive cars, is a male, is 18-24 years old, and/or
include other information of potential interest to an asset
provider. In some cases, this information may be similar to the
audience classification parameters, though it may optionally be
static (not varying as television users change) and based on hard
data (as opposed to being surmised based on viewing patterns or the
like). In other cases, the marketing labels may be more specific or
otherwise different than the audience classification. In any event,
the headend may inform the CPE as to what kind of user/household it
is in terms of marketing labels. An asset provider can then target
an asset based on the marketing labels and the asset will be
delivered by CPEs where targeting matches. This can be used in
audience aggregation and spot optimization contexts.
[0108] Thus, the targeted asset system of the present invention
allows for targeting of assets in a broadcast network based on any
relevant audience classification, whether determined based on user
inputs such as a click stream, based on marketing labels or other
information pushed to the customer premises equipment, based on
demographic or other information stored or processed at the
headend, or based on combinations of the above or other
information. In this regard, it is therefore possible to use, in
the context of a broadcast network, targeting concepts that have
previously been limited to other contexts such as direct mail. For
example, such targeting may make use of financial information,
previous purchase information, periodical subscription information
and the like. Moreover, classification systems developed in other
contexts, may be leveraged to enhance the value of targeting
achieved in accordance with the present invention.
[0109] An overview of the system has thus been provided, including
introductory discussions of major components of the system, which
provides a system context for understanding the operation of the
matching related functionality and associated structure. This
matching related subject matter is described in the remainder of
this description.
II. Asset Matching
[0110] A. Overview
[0111] From the discussion above, it will be appreciated that
determining classification parameters for a user and matching the
classification parameters of the user to targeting parameters of an
asset is useful in several contexts. First, this matching-related
functionality is useful in the voting process. That is, one of the
functions of the targeting system in the system described above is
to receive ad lists (identifying a set of ads that are available
for an upcoming spot), determining the targeting parameters for the
various ads and voting for one or more ads based on how well the
targeting parameters match the classification parameters of a
current users. Thus, identifying the classification parameters of
the current user(s) and matching those parameters to the targeting
parameters is important in the voting context.
[0112] Matching related functionality is also important in the ad
selection context. Specifically, after the votes from the various
participating set top boxes have been processed, a flotilla of ads
is assembled for a commercial break. A given DSTB selects a path
through the flotilla (corresponding to a set of ads delivered by
the set top box at the commercial break) based on which ads are
appropriate for the user(s). Accordingly, identifying the current
user classification parameters and matching those parameters to the
targeting parameters is important in the ad selection context.
[0113] The matching related functionality may also be used in the
reporting context. In this regard, some or all at the DSTBs provide
reports to the network concerning the ads that were actually
delivered. This enables the targeting system and the traffic and
billing system to measure the audience for an ad so that the
advertiser can be billed appropriately. Preferably, the information
provided by these reports not only indicates the size of the
audience but how well the audience fits the target audience for the
ad. Accordingly, the system described above can provide goodness of
fit information identifying how well the classification parameters
of the user(s) who received the ad match the targeting parameters.
The matching related functionality is also useful in this
context.
[0114] In one implementation of the present invention, this
matching related functionality is performed by a classifier
resident at the DSTB. This classifier will be described in more
detail below. Generally, the classifier analyzes a click stream, or
series of remote control inputs, to determine probable
classification parameters of a current user(s). The classifier also
performs a matching function to determine a suitability of each of
multiple candidate ads (e.g., from an ad list) for the current
user(s) based on inferred classification parameters of a putative
user or users. The classifier can then provide matching related
information for use in the voting, ad selection and reporting
contexts as described above. In the description below, this
matching related information is primarily discussed in relation to
the voting context. However, it will be appreciated that
corresponding information can be used for ad selection and
reporting. In addition, while the invention can be used in
connection with targeting various types of assets in various
networks, the following description is set forth in the context of
targeting ads in a cable television network. Accordingly, the terms
"ad" and "viewer" are used for convenience and clarity. Moreover,
for convenience, though the classifier can identify multiple users,
the description below sometimes refers to a singular user or
viewer.
[0115] The classifier generally operates in two modes: the learning
mode and the working mode. It will be appreciated, however, that
these modes are not fully separate. For example, the classifier
continues to learn and adapt during normal operation. These modes
are generally illustrated in FIG. 9. In the learning mode, the
illustrated classifier 1300 monitors behavior of viewers 1302 in
the audience of a given DSTB 1304 to deduce classification
parameters for the viewers 1302. In this regard, an audience for a
given DSTB 1304 may include a father, a mother and a child, one or
more of whom may be present during a viewing session. The
classification parameters may include any of the classification
parameters noted above, such as gender, age, income, program
preferences or the like.
[0116] As shown in FIG. 9, in the learning mode, the classifier
receives inputs including click data 1310 from the user, program
data 1312 (such as program guide data) from the network and Nielsen
data 1314 generated by the Nielsen system. This information is
processed to learn certain behaviors of the viewer, including a
viewer program selection behavior. In this regard, the Nielsen data
1314 reflects the demographic composition for particular programs.
The program data 1312 may include information regarding the genre,
rating, scheduled time, channel and other information regarding
programs. The click data 1310 reflects channels selected by a user,
dwell time (how long a user remained on a given channel) and other
information that can be correlated with the Nielsen data 1314 and
program data 1312 to obtain evidence regarding classification
parameters of the viewer. In addition, the click data 1310 may
reflect frequency of channel hopping, quickness of the click
process, volume control selections and other information from which
evidence of viewer classification parameters may be inferred
independent of any correlation to program related information. As
will be discussed in more detail below, in the learning mode, the
classifier 1300 may begin to generate clusters of data around
segments of classification parameter values (e.g., associated with
conventional data groupings), thereby learning to identify viewers
1310 and classify the viewers 1302 in relation to their probable
gender, age, income and other classification parameters.
[0117] The state transition functionality is illustrated in FIG.
10. State changes are triggered by events, messages and
transactions. One of the important state transitions is the stream
of click events 1400. Each click event 1400 represents a state
transition (for example, a change from one program to another, a
change in volume setting, etc.). As shown, an absence of click
events 1400 or low frequency of click events may indicate that no
viewer is present or that any viewing is only passive 1404. If the
transition count 1406 exceeds a threshold (e.g., in terms of
frequency) and the DSTB is on or active 1402, then the classifier
may be operated to match program data 1408 and learn or store 1410
the program. Programs may be deleted 1412 in this regard so as not
to exceed a maximum stack depth or to implement a degree of
desirable forgetfulness as described above.
[0118] Referring again to FIG. 9, as the learning mode progresses,
viewer identifications are developed in relation to at least two
sets of characteristic information. First, a classification
parameter set is developed for each discovered viewer 1302 of the
DSTB audience. Second, for each discovered viewer 1302, a set of
rules is developed that defines the viewing behavior over time for
that viewer 1302. This is referred to below as the periodicity of
the viewer's viewing habits. Thus, the classification set for each
discovered viewer 1302 may identify the viewer's age, gender,
education, income and other classification parameters. This
information is coupled with the periodicity of the viewer's viewing
habits so as to allow the classifier to match an ad with a target
audience during a specific timeframe. That is, the determination by
the classifier as to who is watching at a given time may be
informed both by a substantially real-time analysis of viewing
behavior and by historical viewing patterns of a viewer 1302.
Alternatively, this process of developing classification parameter
sets for discovered users may take into consideration multiple time
frames, e.g., different times of day. Developing these
classification parameter sets for discovered viewers as a function
of time of day, e.g., on an hourly, half-hourly or other time
dependent basis, has been found effective, as viewership in many
households is significantly dependent on time of day.
[0119] It will be appreciated that the learning mode and working
mode need not be distinct. For example, the classifier may estimate
classification parameters for a current viewer 1302 even if
historical periodicity data has not been developed for that viewer
1302. Similarly, even where such information has been developed in
the learning mode, a current viewing audience may be continually
defined and redefined during the working mode. Thus, the classifier
does not require persistent storage of viewer profile information
in order to function. For example, any such stored information may
be deleted when the DSTB is turned off. In such a case, the
classifier can readily develop classification parameters for one or
more viewers when power is restored to the set top box. Moreover,
the classifier may be designed to incorporate a degree of
forgetfulness. That is, the classifier may optionally de-weight or
delete aged information from its evolving model of audience
members. In this manner, the classifier can adapt to changes in the
audience composition and identify previously unknown audience
members.
[0120] When sufficient viewer behavior information has been
collected (which may only require a small number of user inputs),
the illustrated classifier moves from the learning mode to the
working mode. In the working mode, the classifier 1306 performs a
number of related functions. First, it can receive ad lists 1308
for an upcoming commercial break, match the targeting parameters
for the ads on that list 1308 to the classification parameters of
the current viewer 1302, and vote for appropriate ads. The
classifier 1306 also selects ads available in a given ad flotilla
for delivery to the current user 1302. Moreover, the classifier
1306 can report goodness of fit information regarding ads delivered
during one or more commercial breaks. Again, in the working mode,
the classifier 1306 continues to learn through a process of
stochastic reinforcement, but the classifier 1306 is deemed to have
sufficient information to meaningfully estimate classification
parameters of a current viewer 1302 or audience.
[0121] As noted above, in the working mode, the classifier 1306
controls the voting process by effectively ranking ads from an ad
list 1308. In this regard, the illustrated working mode classifier
1306 receives information regarding available ads 1316 from an ad
repository 1318. These ads 1316 are associated with targeting
parameters, for example, in the form of audience segmentation and
viewer profile classification rules 1320. For example, an
advertiser may enter targeting parameters directly into the T &
B system via the ad interface. Typically, these targeting
parameters may be defined in relation to conventional audience
segmentation categories. However, as discussed above, the targeting
system of the present invention may accommodate different or finer
targeting parameters. The working mode classifier 1306 also
receives an ad list 1308 or a view list of candidate ads, as
described above. Specifically, the headend targeting system
component 1320 processes the inputs regarding available ads and
their targeting parameters to generate the ad list 1308 for
distribution to participating DSTBs.
[0122] The similarity and proximity analyzer 1322 uses the
targeting parameters associated with individual ads and the
classification parameters of the current user to execute matching
functionality. That is, the analyzer 1322 matches an ad with at
least one of the probable viewers 1302 currently thought to be
sitting in front of the television set 1324. As will be described
in more detail below, this is done by comparing, for example, the
target age range for an ad (which may be expressed as a slightly
fuzzified region) to the set representing the viewer's age (which
may also be a fuzzy set). The more these two sets overlap the
greater the compatibility or match. Such matching is performed in
multiple dimensions relating to multiple targeting/classification
parameters. This similarity analysis is applied across each
candidate ad of the ad list 1308, and a degree of similarity is
determined for each ad. When this process is complete, the ads in
each time period can be sorted, e.g., in descending order by
similarity, and one or more of the top ads may be selected for
voting.
[0123] The passive voting agent 1326 is operative to select ads
based on the match information. This process works in the
background generally using an out of band data stream. More
specifically, the illustrated voting agent 1326 selects a record or
ADR for each of the candidate ads and determines for each if any
viewers are likely to be present at the ad time. Additionally, the
voting agent 1326 determines if any such viewer has classification
parameters that acceptably match the targeting parameters for the
ad. In the voting context, for each match, a vote is made for the
ad. This vote is returned to the headend component 1320 where it is
combined with other votes. These aggregated votes are used to
generate the next generation of ad lists 1308.
[0124] An overview of the classifier system has thus been provided.
The learning mode, working mode and matching functionality is
described in more detail in the following sections.
[0125] B. Learning Mode Operation
[0126] As noted above, the learning mode classifier develops
classification parameter information for probable viewers as well
as periodicity information for those viewers. This process is
illustrated in more detail in FIG. 11. During learning mode, the
classifier 1500 is constructing a statistical model of the
audience. In particular, it is desirable to develop a model that
enables feature separability--the ability to reliably distinguish
between identified viewers of an audience. It is thus desired to
have a good definition of the classification parameters of each
viewer and the ability to identify the current viewer 1502, from
among the identified viewers of the audience, each time the
classifier needs to know who is watching the television. In FIG.
11, this process is illustrated with respect to two examples of the
classification parameters; namely, target gender and target
age.
[0127] As discussed above, the learning mode classifier 1500
receives inputs including programming viewing frequency (or
demographic) data from Nielsen, BBM or another ratings system (or
based on previously reported information of the targeted
advertising system) 1504, program data 1506 and click data 1508.
Based on this data, the classifier 1500 can determine which
program, if any, is being viewed at a particular time and what that
indicates regarding probable classification parameters of a viewer.
Additionally, the click data 1508, since it is an event stream, may
indicate the level of focus or concentration of the viewer 1502 at
any time and may provide a measure of the level of interest in a
particular program. The click data 1508 also allows the classifier
1500 to determine when the DSTB set is turned off and when it is
turned on.
[0128] The learning mode classifier 1500 fuses the incoming data
through a set of clustering and partitioning techniques designed to
uncover the underlying patterns in the data. The goal in this
regard is to discover the number of probable viewers, build a
classification parameter set for each viewer and determine the
viewing habits of each viewer over time (or to develop
classification parameter sets for likely viewers as a function of
time). This information allows the classifier 1500 to determine
what kind of audience probably exists at the delivery time for a
specific ad. In the illustrated example, this learning process
involves the development of two classifier modules--the age and
gender classifier module 1510 and the viewing behavior or
periodicity classifier module 1512. The periodicity classifier 1512
accumulates and reinforces the results of the age and gender
classification module across time. A sequence of age interval
classes 1510 are stored across an independent axis representing the
time of day and day of week that that evidence is collected. This
time axis is used to determine the time of day that each individual
detected in the age and gender classifier module 1510 tends to
watch television.
[0129] The gender and age classifier module 1510 gathers evidence
over time as to probable viewers. Once sufficient evidence is
collected, it is expected that the evidence will cluster in ways
that indicate a number of separate audience members. This is at
once a fairly simple and complex process. It is simple because the
core algorithms used to match viewing habits to putative age and
gender features are well understood and fairly easy to implement.
For example, it is not difficult to associate a program selection
with a probability that the viewer falls into certain demographic
categories. On the other hand, it is somewhat complex to analyze
the interplay among parameters and to handle subtle phenomena
associated with the strength or weakness of the incoming signals.
In the latter regard, two parameters that affect the learning
process are dwell time and Nielsen population size. The dwell time
relates to the length of time that a viewer remains on a given
program and is used to develop an indication of a level of
interest. Thus, dwell time functions like a filter on the click
stream events that are used in the training mechanism. For example,
one or more thresholds may be set with respect to dwell time to
attenuate or exclude data. In this regard, it may be determined
that the classifier does not benefit from learning that a viewer
watched a program if the viewer watched that program for less than
a minute or, perhaps, less than 10 seconds. Thresholds and
associated attenuation or exclusion factors may be developed
theoretically or empirically in this regard so as to enhance
identification accuracy.
[0130] Also related to dwell time is a factor termed the audience
expectation measure. This is the degree to which, at any time, it
is expected that the television (when the DSTB is turned on) will
have an active audience. That is, it is not necessarily desirable
to have the classifier learn what program was tuned in if nobody is
in fact watching. The audience expectation measure can be
determined in a variety of ways. One simple measure of this factor
is the number of continuous shows that has elapsed since the last
channel change or other click event. That is, as the length of time
between click events increases, the confidence that someone is
actively watching decreases. This audience expectation measure can
be used to exclude or attenuate data as a factor in developing a
viewer identification model.
[0131] Nielsen marketing research data is also useful as a scaling
and rate-of-learning parameter. As noted above, this Nielsen data
provides gender and age statistics in relation to particular
programs. As will be discussed in more detail below, click events
with sufficient dwell time may be used to accumulate evidence with
respect to each classification parameter segment, e.g., a fuzzy age
interval. In this regard, each piece of evidence effectively
increments the developing model such that classification parameter
values are integrated over time. How much a given fuzzy parameter
set is incremented is a function of the degree of membership that a
piece of evidence possesses with respect to each such fuzzy
set.
[0132] Thus, the degree of membership in a particular age group is
treated as evidence for that age. However, when the program and
time is matched with the Nielsen data, the gender distribution may
contain a broad spectrum of viewer population frequencies. The
dwellage percentage of the audience that falls into each age group
category is also evidence for that age group. Accordingly, the
amount that a set is incremented is scaled by the degree of
membership with respect to that set. Thus, for example, if few
viewers of an age category are watching a program, this is
reflected in only a small amount of evidence that the viewer is in
this age group.
[0133] The illustrated learning mode classifier 1500 also
encompasses a periodicity classifier module 1512. As the classifier
1500 develops evidence that allows for determining the number of
viewers in an audience of a DSTB and for distinguishing between the
viewers, it is possible to develop a viewing model with respect to
time for each of these viewers. This information can then be used
to directly predict who is likely to be watching at the time of ad
delivery. There are a number of ways to build the periodicity
model, and this can be executed during the learning mode operation
and/or the working mode operation. For example, this model may
involve mapping a viewer to their pattern. Alternatively, a pattern
may be discovered and then matched to a known viewer. In the
illustrated implementation, the latter viewer-to-pattern approach
is utilized. As will be understood from the description below, this
approach works well because the properties that define the
periodicity are fuzzy numbers. The match can therefore use the same
kind of similarity function that is used to match viewers to
targeting parameters of ads.
[0134] The discussion above noted that viewers are identified based
on integrating or aggregating evidence in relation to certain
(e.g., fuzzy) sets. This process may be more fully understood by
reference to FIG. 12. In this case, which for purposes of
illustration is limited to discovery of age and gender, this
involves a 2.times.M fuzzy pattern discovery matrix. The two rows
are gender segmentation vectors. The M columns are conventional age
intervals used in ad targeting. These age intervals are overlaid
with fuzzy interval measures. In the illustrated example, the
classifier is modeled around certain age intervals (12-17, 25-35,
35-49) because these are industry standard segmentations. It will
be appreciated, however, that specific age groups are not a
required feature of the classifier.
[0135] The fuzzy intervals are represented by the trapezoidal fuzzy
set brackets that illustrate a certain amount of overlap between
neighboring age intervals. This overlap may improve discrimination
as between different age ranges. The bars shown on the matrix
reflect the accumulation of evidence based on a series of click
events. As can be seen in the matrix of FIG. 12, over time, this
evidence tends to cluster in a fashion that indicates discrete,
identifiable viewers associated with different classification
parameters.
[0136] This is further illustrated in FIG. 13. In the example of
FIG. 13, this process of accumulating evidence to identify discrete
viewers of an audience is depicted in three-dimensional graphics.
Thus, the result of the learning process is a collection of
gradients or hills or mountains in the learning matrix or
multi-dimensional (in this case, two-dimensional) feature terrain.
In this case, the higher hills or "mountains" with their higher
gradient elevations provide the best evidence that their site in
the learning matrix is the site of a viewer. The hills are
constructed from the counts in each of the cells defined by the
classification parameter segmentation (e.g., age groups). The
greater the count, the higher the hill and, consequently, the more
certain it is that the characteristics correspond to a viewer of
the audience. Viewed from above, the gradients and their elevations
form a topological map, as shown in FIG. 14. The concentration and
height of the contour lines reflect a clustering that suggests
discrete and identifiable viewers. Thus, the map of FIG. 14
reflects three probable viewers identified from a learning process.
It is noted that the fuzzy terrain mapping, which allows certain
degree of overlap between surrounding age groups, provides a more
refined estimate of the actual classification parameter values of a
viewer. That is, an interpolation of evidence in adjacent fuzzy
sets enables an estimation of an actual parameter value that is not
limited to the set definitions. This interpolation need not be
linear and may, for example, be executed as a center of gravity
interpolation. That takes into account gradient height in each
fuzzy set as well as a scaled degree of membership of the height in
the set.
[0137] The process for applying evidence to the terrain may thus
result in a fuzzified terrain. That is, rather than simply applying
a "count" to a cell of the terrain based on determined
classification parameter values, a count can effectively be added
as terrain feature (e.g., a hill) centered on a cell (or on or near
a cell boundary) but including residual values that spill over to
adjacent cells. The residual values may spill over onto adjacent
cells in multiple dimensions. In one implementation, this effect is
defined by a proximity calculation. The result of applying evidence
to the terrain in a fuzzified fashion is potentially enhanced user
definition as well as enhanced ability to distinguish as between
multiple users.
[0138] The proximity algorithm and terrain seeding noise reduction
filtering can be illustrated by reference to an example involving
three classification parameter dimensions; namely, gender, age and
time of day. The feature terrain may be viewed as being defined by
a cube composed of a number of sub-cubes or grains. For example,
the terrain cube may be composed of 7680
grains--2.times.80.times.48 grains, corresponding to two gender, 80
age and 48 half-hour time categories. Each of the grains can be
populated with a reference or noise value. For example, the noise
values can be derived from a statistical analysis of the expected
viewers at each age, gender and time measured over all available
programming channels for which Nielson, BBM or another ratings
system have observers (or based on previously reported information
of the targeted advertising system). The noise may be drawn from a
distribution of these viewers from a suitable function (e.g.,
developed empirically or theoretically) and may or may not be as
simple as an average or weighted average. In any case, it is this
noise bias that cancels out a corresponding randomness in the
evidence leaving a trace or residue of evidence only when the
evidence is repeatedly associated with an actual viewer whose
behavior matches the (age, gender, time) coordinates of the
terrain.
[0139] It will be appreciated that the grain definition and
population of the grains with reference values or noise is not
limited to the granularity of the source of the reference values,
e.g., the standard Neilson categories. Rather, the reference values
can be interpolated or estimated to match the defined grain size of
the terrain cube. Thus, for example, Neilson source data may be
provided in relation to 16 age gender groups whereas the terrain
cube, as noted above, may include 2.times.80 corresponding grains
(or columns of grains where the column axis corresponds to the time
dimension). Various mathematical techniques can be used in this
regard. For example, the age distribution can be fitted to a curve
or function, which can then be solved for each age value. The
corresponding values are then applied to seed the terrain.
[0140] Evidence is the statistical frequency of viewers of a
particular age and gender who are watching a television program
(which is playing at a particular time). The combination of Neilson
frequencies and the program time generates 16 pieces of evidence
for each time period (there are 8 male and 8 female age groups with
their viewing frequencies). Finding out which of these 16 pieces of
evidence corresponds to the actual viewer is the job of the
statistical learning model underlying the classifier. Fundamental
to making this decision is the methodology used to add evidence to
the terrain. This involves first applying the noted noise filter as
follows:
d=f(a,g,t)-r(a,g,t) (1)
where (f) is the observed evidence and (r) represents the noise for
that age, gender and time. This value (d) will be either positive
or negative. The result is added to the terrain (t) on a
grain-by-grain basis:
t(a,g,t)=t(a,g,t)+d (2)
[0141] If the evidence is being drawn randomly from the incoming
statistics, then the number of positive and negative residuals (d)
will be approximately equal, and the total sum of the terrain value
(t) at that point will also be zero. If, however, the evidence is
associated with an actual viewer, then we would expect a small but
persistent bias in the frequency statistics to accumulate around
that real viewer. Over time, this means that residual (d) will be
positive more often than negative and that the contour at the
terrain cube will begin to grow. As more evidence is added, the
contour grows as a small hill on the terrain. This small hill is an
actual viewer (actually, because of the time axis, viewers appear
as a ridge of connected hills, somewhat like a winding mountain
range).
[0142] But because this is a statistical learning model, and
because reinforcement is sporadic (due to inconsistent viewer
behaviors), it is useful to fuzzify or spread the evidence, e.g.,
to surround each emerging contour with a small bit of probabilistic
evidence that will help us define an actual viewer's behavior in
the time dimension. To do this, we take the evidence (d) and use it
to populate adjoining grains. This is done in a series of
concentric circles out from the target terrain grain. Thus, for the
first set of adjoining grains (in all directions in age, gender and
time), we add x1=d*.10, for the next, x2=x1*.05, for the next,
x3=x2*.025, etc., until the multiplier fall below some threshold.
It will be appreciated that these multipliers are simply examples
and other values, derived empirically or theoretically, can be
used. As an example, if d=100, then the proximity values would look
something like this,
TABLE-US-00001 0.0125 0.0125 0.0125 0.0125 0.0125 0.0125 0.0125
0.0125 0.5 0.5 0.5 0.5 0.5 0.0125 0.0125 0.5 10 10 10 0.5 0.0125
0.0125 0.5 10 100 10 0.5 0.0125 0.0125 0.5 10 10 10 0.5 0.0125
0.0125 0.5 0.5 0.5 0.5 0.5 0.0125 0.0125 0.0125 0.0125 0.0125
0.0125 0.0125 0.0125
[0143] As can be seen, the value at each outward layer is based on
a fraction of the previous layer (not the original value). Of
course, in a real terrain, the original value is very small, so the
values in each outward cell become very, very small very, very
quickly. Yet, over time, they provide enough additional evidence to
support the growth of a valid contour site.
[0144] The proximity algorithm that fills out the terrain, also
provides a quick and effective way of discovering who is viewing
the television associated with the DSTB. The ridge of contours or
hills associated with a viewer wanders across the three-dimensional
terrain cube. These hills are smoothed out (made "fatter," so to
speak) over the terrain by the addition of the minute bits of
partial evidence laid down during the building of the terrain (the
x1, x2, x3, etc., in the previous section). To find the viewer, the
hills over the gender/age axes at a particular time can be summed
and averaged. The viewer is the hill with the maximum average
height. Optionally, a proximity algorithm can be used in
integrating these hills. For example, when determining the height
value associated with a given grain, a fraction of the height of
adjacent grains and a small fraction of the next outward layer of
grains (etc.) may be added. This is somewhat analogous to the
mountain clustering algorithm discussed herein and may be used as
an alternative thereto.
[0145] As noted above, these terrains may be developed as a
function of time of day. For example, the data may be deposited in
"bins" that collect data from different times of day on an hourly,
half-hourly or other basis (e.g., irregular intervals matching
morning, daytime, evening news, primetime, late night, etc.).
Again, the process of applying the evidence to these bins may be
fuzzified such that evidence spills over to some extent into
adjacent bins or cells in the time and other dimensions. Evidence
may be integrated in these bins over multiple days. The resulting
terrains may be conceptualized as multiple terrains corresponding
to the separate timeframes or as a single terrain with a time
dimension. This functionality may be implemented as an alternative
to the separate periodicity analysis described below.
[0146] The previous examples have reflected relatively clean
datasets that were easy to interpret so as to identify discrete
viewers and their associated classification parameters. In reality,
real world data may be more difficult to interpret. In this regard,
FIG. 15 illustrates a more difficult dataset in this regard. In
particular, the feature terrain of FIG. 15 does not readily yield
interpretation as to the number of viewers in the audience or their
specific classification parameters. Any number of factors may
result in such complexity. For example, the remote control may be
passed between different audience members, the click stream may be
influenced by other audience members, a click event of significant
duration may reflect distraction rather than interest, a viewer may
have a range of programming interests that do not cleanly reflect
their classification parameters, etc.
[0147] In order to resolve complicated data such as illustrated in
FIG. 15, the classifier implements processes of noise removal and
renormalization of the gradient terrain. The goal is to find the
actual centers of evidence so that the number of viewers and their
classification parameters can be accurately identified. One type of
process that may be implemented for removing or attenuating noise
involves consideration of reference values, e.g., average values
for all events at that time, taken in relation to the whole
audience. For example, the terrain may be seeded with reference
values or the reference values may be considered in qualifying or
rejecting data corresponding to individual events. In one
implementation, data is compared to reference values on an
event-by-event basis to qualify data for deposit into the bins for
use in developing the terrain. This has the effect of rejecting
data deemed likely to represent noise. In effect, the reference
values are subtracted from evidence as it is applied to the
terrain, thus impeding the process of constructing terrain features
so that terrain features substantially only rise as a result of
persistent or coherent accumulation of evidence likely reflective
of an actual user, and spurious peaks are avoided. Selecting the
reference values as average values, weighted average values or some
other values related to the observation context (but substantially
without information likely to bias the user identification and
definition problem) has the effect of scaling the filter effect to
properly address noise without inhibiting meaningful terrain
construction. Additionally, data may be qualified in relation to a
presence detector. As noted above, presence may be indicated by
reference to the on/off state of the DSTB and/or by the absence or
infrequency of inputs over a period of time. Data acquired when the
presence detector indicates that no user is deemed "present" may be
excluded.
[0148] Noise removal may further involve eliminating false centers
and sporadic evidence counts without disturbing the actual centers
to the extent possible. In this regard, FIG. 16 illustrates a
possible identification of viewer sites with respect to the data of
FIG. 15. FIG. 17 illustrates an alternative, also potentially
valid, interpretation of the data of FIG. 15. The classifier
implements an algorithm designed to determine which of competing
potentially valid interpretations is most likely correct. This
algorithm generally involves gradient deconstruction. The
deconstruction process is an iterative process that finds gradient
centers by first removing low-level interference noise (thus
revealing the candidate hills) and then measuring the compactness
of the distribution of hills around the site area. In this regard,
a mountain clustering algorithm can be implemented to iteratively
identify peaks, remove peaks and revise the terrain. The affect is
to identify cluster centers and to smooth out the hilliness between
cluster centers so that the cluster centers become increasingly
distinct. The remaining sites after the feature terrain is
processed in this regard are the sites of the putative viewers.
[0149] This mountain clustering and noise reduction functionality
may be further understood by reference to FIGS. 18-21. FIG. 18
shows a learning matrix or feature terrain with a set of gradients
scattered over the surface. In the first iteration of the
algorithm, as shown in FIG. 19, gradient C1 is identified as the
maximum mountain. The distance from C1's center of gravity to the
centers of each gradient on the surface (e.g., C2, C3, etc.) is
measured. The degree of mountain deconstruction on each gradient is
inversely proportional to the square distance between C1 and each
of the other clusters. This inverse square mechanism localizes
nearly all of the mountain deconstruction to the neighborhood of
C1. Thus, FIG. 20 shows significant deconstruction of features
proximate to C1 as a result of this first iteration. This causes
the general perimeter of the emerging site at C1 to contract. The
contraction also involves the assimilation of small gradients,
hence the height of C1 is increased, and the adjacent hilliness is
reduced. At the same time, the height of C3 is barely changed and
its set of satellite gradients has not yet begun to be assimilated.
The process is then repeated with respect to C3. After a number of
iterations, the final sites begin to emerge and stabilize. FIG. 21
shows the terrain after most of the smaller gradients have been
assimilated. The resulting processed terrain or feature space has
well defined gradients at each putative viewer site. The mountain
clustering process thus essentially removes much ambiguity.
[0150] A similar process is performed with respect to the
periodicity analysis. Specifically, a periodicity learning matrix
is created and updated in a manner analogous to construction and
updating of the viewer classification parameter matrix and its
conversion to the feature terrain. In this case, the periodicity
terrain produces a set of gradients defining, by their height and
width, the expectation that the viewer is watching television at
that point in time. A matching algorithm can then be used to match
a periodicity pattern to one of identified viewers.
[0151] C. Working Mode Operation
[0152] When the classifier has been sufficiently trained, it moves
from learning mode operation to working mode operation. As noted
above, these modes are not entirely distinct. For example, the
classifier can perform estimations of classification parameters
while still in the learning mode, and the classifier continues to
learn during the working mode. However, as described above, the
learning mode is a gradual process of collecting evidence and
measuring the degree to which the viewer sites are discernable in
the learning matrix. Thus while the classifier can operate quickly
using default values, working mode operation reflects a
determination that the viewers of an audience have been identified
and classified with a high degree of confidence.
[0153] The basic operation of the working mode classifier is
illustrated in FIG. 22. In the working mode, the classifier 2600
has access to the developed feature terrain, as discussed above, as
well as to a similarity function that is operative to match
targeting parameters to the classification parameters as indicated
by the viewer identification. More specifically, Nielsen data 2602
and program data 2604 continues to be fed into the classifier 2600
in the working mode to support its continued learning process that
essentially runs in the background. The classifier 2600 then
receives an ADR from the ad list 2608. The ADR is initially
filtered for high level suitability and then, if the ADS is still
available for matching analysis, selects each viewer and each
classification parameter for each viewer for comparison. Thus, FIG.
22 depicts the process of accessing a classification matrix 2606 of
a viewer. In this case, the matrix 2606 is a two-dimensional matrix
limited to gender and age classification parameters. In practice,
any number of classification parameters may be supported.
[0154] The retrieved classification parameter values of the user
and the targeting parameters of the ad are then provided to the
similarity and proximity analyzer 2612 where they are compared.
This function returns a degree of similarity for each attribute.
The total compatibility or relative compatibility rank (RCR) is
given as:
RCR = i = l N S i .times. w i i = l N w i ##EQU00001## [0155]
Where, [0156] s.sub.i is the similarity measurement for the
i.sup.th property [0157] w.sub.i is the weighting factor for the
i.sup.th property. If weighting (priority or ranking) is not used,
the default, w=1, means that weights do not affect the ranking.
[0158] Through this process, an ad may be found to be compatible
with one or more viewers of an audience. For example, such
compatibility may be determined in relation to an RCR threshold
value. Thus, when an ad is found to be compatible with one or more
of the viewers, the periodicity analyzer 2616 is called to see if
the viewer is likely to be present at the target ad insertion time.
If the viewer is unlikely to be watching, the degree of this time
constraint is used to adjust the RCR. Accordingly, the RCR is
recomputed as:
R C R = i = l N s i .times. w i i = l N w i .times. l ( pT )
##EQU00002## [0159] Where, [0160] 1( ) is the likelihood estimating
function from the periodicity analysis. This function returns a
fuzzy degree of estimate in the interval [0,1] (which is actually a
degree of similarity between the target time period and each of the
viewer's active time periods) [0161] p.sup.T is the target time
period
[0162] Accordingly, the RCR will have a high value if there is both
a high degree of match between the classification parameters of a
user and the targeting parameters of the ad, and there is a high
probability that the user will be watching at the ad delivery time.
This formula further has the desirable quality that a low
compatibility where the viewer is not watching, even if the
viewer's classification parameters are a very good match for a
given ad.
[0163] The voting agent 2614 is closely connected to the operation
of the working mode classifier 2600. In particular, the validity of
the vote is highly dependent on the ability to correctly identify a
viewer's classification parameters and viewing habits. Thus, the
voting agent 2614 essentially works in the same way as the view
list ranking Specifically, an ADR is sent to the voting agent 2614,
the voting agent 2614 extracts the ads targeting parameters and
calls the classifier 2600, which returns the RCR for this ad. In
this manner, ads are not only voted on but also delivered based on
a matching process.
[0164] D. Matching Functionality
[0165] The similarity function used to execute the various matching
functionality as discussed above can be understood by reference to
FIGS. 23-26. Thus, as noted above, when an ADR is received at the
classifier to be ranked, the targeting parameters and any ad
constraints are embedded in the ADR. The ADR may also indicate an
"importance" of the ad. For example, such importance may be based
on the ad pricing (e.g., CPM value) or another factor (e.g., a
network operator may specify a high importance for internal
marketing, at least for a specified geographic area such as where a
competing network is, or is becoming, available). The classifier
also has access to the classification parameters of the various
viewers in the audience, as discussed above. The first step in the
matching process is applying a similarity function, e.g., a fuzzy
similarity function, to each of the classification parameters and
targeting parameters. The similarity function then determines the
degree to which a targeting parameter is similar to or compatible
with a classification parameter. The weighted average of the
aggregated similarity of values for each of the
classification/targeting parameters is the base match score.
[0166] More specifically, the illustrated classifier fuzzifies the
targeting parameter and finds the degree of membership of the
corresponding classification parameter of the user in this
fuzzified region. Thus, as shown in FIG. 23, the targeting
parameters for an ad may specify a target age range of 24-42 years
of age. As shown in FIG. 23, this targeting parameter is redefined
as a fuzzy set. Unlike rigid sets, the fuzzy set has a small but
real membership value across the entire domain of the
classification parameter (age in this case). The membership
function means that the matching process cannot automatically
identify and rank classification parameters values that lie near
but, perhaps, not inside the target range. As an example, FIG. 24
shows a putative viewer with an inferred age of 26. In this case,
the viewer sits well inside the target age range. The degree of
membership is therefore 1.0, indicating a complete compatibility
with the target age. In fact, any age that is within the target age
range will return a matching membership of 1.0. However, the
matching process can also deal with situations where retrieved
classification parameters do not match the targeting parameter
range. FIG. 25 illustrates the case where a viewer is estimated to
be 20 years old and is therefore outside of the rigid target range
boundaries. If the classifier had Boolean selection rules, this
viewer would not be selected. The nature of the fuzzy target space,
however, means that viewer 2 is assigned a similarity or
compatibility value greater than zero, in this case 0.53. The
classifier now has the option of including viewer 2, knowing that
the viewer is moderately compatible with the target range.
[0167] FIG. 26 shows a slightly different situation--that of a
viewer with an inferred age outside of the required age interval.
As illustrated by the membership function, as the viewer age moves
away from the identified targeting age interval, the membership
function drops off quickly. In this case, viewer 3 has a
compatibility of only 0.18, indicating that it would normally be a
poor candidate for an ad with a 24-42 age requirement. It is noted,
however, that the fuzzy compatibility mechanism means that the
classifier can find and rank a viewer if any viewer exists.
[0168] E. Stochastic Filtering
[0169] As discussed previously, audience classification parameters
(e.g., of a household, of a current audience, etc.) can also be
determined or estimated by way of modeling a click stream as an
incomplete or noisy signal and processing the signal to obtain such
audience classification information. The information obtained via
filtering of the noisy signal can be used in a variety of contexts
such as for voting, ad selection and/or goodness of fit
determinations as described above. Alternatively, the description
below describes a filter theory based Head End ad selection system
that is an alternative to the noted voting processes. As a still
further alternative, click stream information can be provided to
the Head End, or another network platform, where the audience
classification parameters may be calculated. Thus, the audience
classification parameter, ad selection and other functionality can
be varied and may be distributed in various ways between the DSTBs,
Head End or other platforms.
[0170] The following section is broken into several parts. In the
first part, some background discussion of the relevant nonlinear
filter theory is provided. In the second part, the architecture and
model classes are discussed.
[0171] 1.1 Nonlinear Filtering
[0172] To properly solve the targeted advertisement viewership
(potential and current) problem, one may look to the mathematically
optimal field of filtering.
[0173] 1.1.1 Traditional Nonlinear Filtering Overview
[0174] Nonlinear filtering deals with the optimal estimation of the
past, present and/or future state of some nonlinear random dynamic
process (typically called `the signal`) in real-time based on
corrupted, distorted or partial data observations of the signal. In
general, the signal X.sub.t is regarded as a Markov process defined
on some probability space (.OMEGA., I,P) and is the solution to
some Martingale problem. The observations typically occur at
discrete times t.sub.k and are dependent upon the signal in some
stochastic manner using a sensor function Y.sub.k=h(X.sub.t.sub.k,
V.sub.k). Indeed, the traditional theory and methods are built
around this type of observations, where the measurements are
distorted (by nonlinear function h), corrupted (by noise V),
partial (by the possible dependence of h on only part of the
signal's state) samples of the signal. The optimal filter provides
the conditional distribution of the state of the signal given the
observations available up until the current time:
P(X.sub.t.epsilon.dx|.sigma.{Y.sub.k,0.ltoreq.t.sub.k.ltoreq.t})
[0175] The filter can provide optimal estimates for not only the
current states of the signal but for previous and future states, as
well as path segments of the signal:
P(X.sub.[t.sub.r.sub.,t.sub.s.sub.].epsilon.dx|.sigma.{Y.sub.k,0.ltoreq.-
t.sub.k.ltoreq.t})
where 0.ltoreq.t.sub.r.ltoreq.t.sub.s<.infin..
[0176] In certain linear circumstances, an effective optimal
recursive formula is available. Suppose the signal follows a
"linear" stochastic differential equation
dX.sub.t=AX.sub.tdt+BdW.sub.t, with A being a linear operator, B
being a fixed element and W being a Brownian motion. Furthermore,
the observation function takes the form of
Y.sub.k=CX.sub.t.sub.k+V.sub.k where {V.sub.k}.sub.k=1.sup..infin.
are independent Gaussian random variables and C is a linear
operator. This formula is known as the Kalman filter. While the
Kalman filter is very efficient in performing its estimates, its
use in applications is inherently limited due to the strict
description of the signal and observation processes. In the case
where the dynamics of the signal are nonlinear, or the observations
have non-additive and/or correlated noise, the Kalman filter
provides sub-optimal estimates. As a result, other methods are
sought out to provide optimal estimates in these more common
scenarios.
[0177] While equations for optimal nonlinear estimation have been
available for several decades, until recently they were found to be
of little use. The optimal equations were unimplementable on a
computer, requiring infinite memory and computational resources to
be used. However, in the past decade and a half, approximations to
the optimal filtering equations have been created to overcome this
problem. These approximations are typically asymptotically optimal,
meaning that as an increasing amount of resources are used in their
computation they converge to the optimal solution. The two most
prevalent types of such methods are particle methods and discrete
space methods.
[0178] 1.1.2 Particle Filters
[0179] Particle filtering methods involve creating many copies of
the signal (called `particles`) denoted as
{.xi..sub.t.sup.j}.sub.j=1.sup.N.sup.1, where N.sub.t is the number
of particles being used at time t. These particles are evolved
independently over time according to the signal's stochastic law.
Each particle is then assigned a weight value
W.sub.1,m(.xi..sub.t.sup.j) to effectively incorporate the
information from the sequence of observations {Y.sub.1, . . . ,
Y.sub.m}. This can be done in such a way that the weight after m
observations is the weight after m-1 multiplied by a factor
dependent on the m.sup.th observation Y.sub.m. However, these
weights invariably become extremely uneven meaning that many
particles (those with relatively low weights) become unimportant
and do little other than consume computer cycles. Rather than only
removing these particles and reducing calculation to an
ever-decreasing number of particles, one resamples the particles,
which means the positions and weights of particles are adjusted to
ensure that all particles contribute to the conditional
distribution calculation in a meaningful way while ensuring that no
statistical bias is introduced by this adjustment. Early particle
methods tended to resample far too extensively, introducing
excessive resampling noise into the system of particles and
degrading estimates. Suppose that after resampling the weights of
the particles after m observations are denoted as {tilde over
(W)}.sub.1,m{.xi..sub.t.sup.j}.sub.j=1.sup.N.sup.1. Then, the
particle filter's approximation to the optimal filter's conditional
distribution is:
P ( X t .di-elect cons. A Y 1 , , Y m ) .apprxeq. j = 1 N t m W ~ 1
, m ( .xi. j ) 1 .xi. tm j .di-elect cons. A j = t N t m W ~ 1 , m
( .xi. j ) ##EQU00003##
As N.sup.t.fwdarw..infin., the particle-filtering estimate yields
the optimal nonlinear filter estimate.
[0180] An improvement that introduced significantly less resampling
degradation and improved computational efficiency was introduced in
U.S. Pat. No. 7,058,550, entitled "Selectively Resampling Particle
Filter," which is incorporated herein by reference. This method
performed pair-wise resampling as follows:
[0181] 1. While {tilde over (W)}.sub.1,m(.xi..sup.j)<p{tilde
over (W)}.sub.1,m(.xi..sup.i) for the highest weighted particle j
and the lowest weighted particle i, then:
[0182] 2. Set the state of particle i to j with probability
W ~ 1 , m ( .xi. j ) W ~ 1 , m ( .xi. j ) + W ~ 1 , m ( .xi. i )
##EQU00004##
and set the state of particle j to i with probability
W ~ 1 , m ( .xi. j ) W ~ 1 , m ( .xi. j ) + W ~ 1 , m ( .xi. i ) .
##EQU00005##
[0183] 3. Reset the weight of particles i and j to
W ~ 1 , m ( .xi. j ) = W ~ 1 , m ( .xi. i ) = W ~ 1 , m ( .xi. j )
W ~ 1 , m ( .xi. i ) 2 . ##EQU00006##
[0184] In this method, a control parameter .rho. is introduced to
appropriately moderate the amount of resampling performed. As
described in U.S. Pat. No. 7,058,550, this value can be dynamic
over time in order to adapt to the current state of the filter as
well as the particular application. This filing also included
efficient systems to store and compute the quantities required in
this algorithm on a computer.
[0185] 1.1.3 Discrete Space Filters
[0186] When the state space of the signal is on some bounded finite
dimensional space, then a discrete space and amplitude
approximation can be used. A discrete space filter is described in
detail in U.S. Pat. No. 7,188,048, entitled "Refining Stochastic
Grid Filter" (REST Filter), which is incorporated herein by
reference. In this form, the state space D is partitioned into
discrete cells .eta..sub.c for c in some finite index set C. For
instance, this space D could be a d-dimensional Euclidean space or
some counting measure space. Each cell yields a discretized
amplitude known as a "particle count" (denoted as n.sup..eta.c),
which is used to form the conditional distribution of the discrete
space filter:
P ( X t .di-elect cons. A Y 1 , , Y m ) .apprxeq. c .di-elect cons.
C n .eta. c 1 .eta. c .di-elect cons. A c .di-elect cons. C n .eta.
c ##EQU00007##
[0187] The particle counts of each state cell are altered according
to the signal's operator as well as the observation data that is
processed. As the number of cells becomes infinite, then the REST
filter's estimate converges to the optimal filter. To be clear,
this filing considers directly discretizing filtering equations
rather than discretizing the signal and working out an
implementable filtering equation for the discretized signal.
[0188] In U.S. Pat. No. 7,188,048, the invention utilized a dynamic
interleaved binary index tree to organize the cells with data
structures in order to efficiently recursively compute the filter's
conditional estimate based on the real-time processing of
observations. While this structure was amenable to certain
applications, in scenarios where the dimensional complexity of the
state space is small, the data structure's overhead can reduce the
method's utility.
[0189] 1.2 Stochastic Control
[0190] To properly solve the targeted commercial selection problem,
one should look to the mathematically optimal field of stochastic
control.
[0191] Conceptually, one could invent particle methods or direct
discretization methods to solve a stochastic control problem
approximately on a computer. However, these have not yet been
implemented or at least widely recognized. Instead, implementation
methods usually discretize the whole problem and then solve the
discretized problem.
[0192] 2.1 Targeted Advertising System Architecture FIG. 28 depicts
the overall targeted advertising system. The system is composed of
a Head End 4100 and one or more DSTBs 4200. The DSTBs 4200 are
attempting to estimate the conditional probability of the state of
potential viewers in household 4205, including the current
member(s) of the household watching television, using the DSTB
filter 4202. The DSTB filter 4202 uses a pair of models 4201
describing the signal (household) and the observations (the click
stream data 4206). The DSTB filter 4202 is initialized via the
setting 4302 downloaded from the Head End 4100. To estimate the
state of the household the DSTB filter 4202 also uses program
information 4207 (which may be current, or in the recent past or
future), which is available from a store of program information
4208.
[0193] The DSTB filter 4202 passes its conditional distribution or
estimates derived thereof to a commercial selection algorithm 4203,
which then determines which commercials 4204 to display to the
current viewers based on the filter's output, the downloaded
commercials 4301, and any rules 4302 that govern what commercials
are permissible given the viewer estimates. The commercials
displayed to the viewers are recorded and stored.
[0194] The DSTB filter 4202 estimates, as well as commercial
delivery statistics and other information, may be randomly sampled
4303 and aggregated 4304 to provide information to the Head End
4100. This information is used by a Head End filter 4102, which
computes (subject to its available resources) the conditional
distribution for the aggregate potential and actual viewership for
the set of DSTBs with which it is associated. The Head End filter
4102 uses an aggregate household and DSTB feedback model 4101 to
provide its estimates. These estimates are used by the Head End
commercial selection system 4103 to determine which commercials
should be passed to the set of DSTBs controlled by the Head End
4100. The commercial selection system 4103 also takes into account
any market information 4105 available concerning the current
commercial contracts and economics of those contracts. The
resulting commercials selected 4301 are subsequently downloaded to
the DSTBs 4200. The commercials selected for downloading affect the
level settings 4104, which provide constraints on certain
commercials being shown to certain types of individuals.
[0195] The following two sections describe certain detail elements
of this system.
[0196] 2.2 Household Signal and Observation Model Description In
this section, the general signal and observation model description
are given as well as examples of possible embodiment of this
model.
[0197] 2.2.1 Signal Model Description
[0198] In general, the signal of a household is modeled as a
collection of individuals and a household regime. In one preferred
embodiment, this household represents the people who could
potentially watch a particular television that uses a DSTB. Each
individual (denoted as X.sup.i) at a given point in time t has a
state from the state space s.epsilon.S, where S represents the set
of characteristics that one wishes to determine for each person
within a household. For example, in one embodiment one may wish to
classify the age, gender, income, and watching status of each
individual. In addition, it has been found that certain behavioral
information, in particular, the amount of television watched by
each individual, is useful in developing and using classifications.
Age and income may be considered as real values, or as a discrete
range. In this example, the state space would be defined as:
S={0-12, 12-18, 18-24, 24-38, 38+}.times.{Male,
Female}.times.{0-$50,000, $50,000+}.times.{Yes, No}
[0199] The household member tuple is then
k = 0 .infin. S k , ##EQU00008##
where k denotes the number of individuals and S.sup.0 denotes the
single state with no individuals. The household member tuple
X.sub.t=(X.sub.t.sup.1, . . . , X.sub.t.sup.n.sup.t) has a
time-varying random number of members, where n.sub.t is the number
of members at time t. Since the order of members within this
collection is immaterial to the problem, we use the empirical
measure of the members .chi..sub.t{dot over
(=)}.SIGMA..sub.i=1.sup.n.sup.1.delta.x.sub.i.sup.i to represent
the household.
[0200] The household regime represents a current viewing "mindset"
of the household that can materially influence the generation of
click stream data. The household's current regime r.sub.t is a
value from the state space R. In one embodiment of the invention,
the regimes can consist of values such as "normal," "channel
flipping," "status checking," and "favorite surfing."
[0201] Thus, the complete signal is composed of the household and
the regime:
.chi..sub.t=(.chi..sub.t,R.sub.t)
which evolves in some state space E.
[0202] The state of the signal evolves over time via rate functions
.lamda., which probabilistically govern the changes in signal
state. The probability that the state changes from state i to j
later than some time t is then:
R.sub.i.fwdarw.j.sup.T(t)=P(T>t)=exp(-.intg..sub.o.sup.t.lamda..sub.T-
(s)ds)
[0203] There are separate rate functions for the evolution of each
individual, the household membership itself, and the household's
regime. In one embodiment of the invention, the rate functions for
an individual i depend only on the given individual, the empirical
measure of the signal, the current time, and some external
environmental variables .lamda.(t, .chi..sub.t.sup.i,
.chi..sub.t.epsilon..sub.t).
[0204] The number of individuals within the household n.sub.t
varies over time via birth and death rates. Birth and death rates
do not merely indicate new beings being born or existing beings
dying--they can represent events that cause one or more individuals
to enter and exit the household. These rates are calculated based
on the current state of all individuals within the household. For
example, in one embodiment of the invention a rate function
describing the likelihood of a bachelor to have either a roommate
or spouse enter the household may be calculated.
[0205] In one embodiment of the invention, these rate functions can
be formulated as mathematical equations with parameters empirically
determined by matching the estimated probability and expected value
of state changes from available demographic, macroeconomic, and
viewing behavior data. In another embodiment, age can be evolved
deterministically in a continuous state space such as [0, 120].
[0206] 2.2.2 Observation Model Description
[0207] In general, the observation model describes the random
evolution of the click stream information that is generated by one
or more individuals' interaction with a DSTB. In one preferred
embodiment of the invention, only current and past channel change
information is represented in the observation model. Given a
universe of M channels, we have a channel change queue at time
t.sub.k of Y.sub.k=(y.sub.k, . . . , y.sub.k-B+1) with B
representing the number of retained channel changes, channels that
were watched in the past B discrete time steps. In one preferred
embodiment of the invention, only the times when a channel change
occurs as well as the channel that was changed to are recorded to
reduce overhead.
[0208] In the more general case, a viewing queue contains this
current and past channels as well as such things as volume history.
In the aforementioned case, the viewing queue degenerates to the
channel change queue.
[0209] The probability of the viewing queue changing from state i
to state j at time t based on the state of the signal and some
downloadable content D.sub.t (denoted as p.sub.i.fwdarw.j(D.sub.t,
X.sub.t)) is then determined. In one preferred embodiment, this
downloadable content contains, among other things, some program
information detailing a qualitative category description of the
shows that are currently available, for instance, for each show,
whether the show is an "Action Movie" or a "Sitcom", as well as the
duration of the show, the start time of the show, the channel the
show is being played on, etc.
[0210] In the absence of a special regime, an empirical method has
been created to calculate the Markov chain transition
probabilities. These probabilities are dependent on the current
state of all members of the household and the available programs.
This method is validated using observed watching behavior and
Varadarajan's law of large numbers. Suppose that P is a discrete
probability measure, assigning probabilities to
.OMEGA.={.omega..sub.1, . . . , .omega..sub.K} and we have N
independent copies of the experiment of selecting an element. Then,
the law of large numbers says that
1 N i = 1 N k = 1 K 1 .omega. k = .omega. i P , ##EQU00009##
where .omega..sup.i is the i.sup.th random outcome of drawing an
element from .OMEGA..
[0211] In one embodiment of the invention, this method focuses on
calculating the probabilities for a channel queue of size 1 (i.e.,
Y.sub.k=y.sub.k). The observation probabilities, that is, the
probabilities of switching between two viewing queues over the next
discrete step, can be first calculated by determining the
probability of switching categories of the programs and then
finding the probability of switching into a particular channel
within that category. The first step is to calculate, often in a
offline manner, the relative proportion of category changes that
occur due to channel changes and/or changes in programs on the same
channel. In order to perform this calculation, the set of all
possible member states X.sub.t is mapped into a discrete state
space .PI. such that f(X.sub.t)=.pi..sub.t for some .pi..sub.t
.epsilon. .PI. for all possible X.sub.t. We suppose there are a
fixed, finite set of categories C={c.sub.1, c.sub.2, . . . ,
c.sub.K}. Furthermore, let there be N.sub.v viewer records, with
each viewer record representing a constant period of time .DELTA.t,
and with each three-tuple viewing record V(k)=(.pi.,b,c) with k=1,
2, . . . , N.sub..sigma.and b, c .epsilon. C, containing
information about the discretized state of the household (r) and
the category at the beginning (b) and the end (c) of the time
period. Then, for each .pi. .epsilon. II and b, c .epsilon. C, we
calculate:
N ( .pi. , b , c ) = { k = 1 N .upsilon. 1 v ( k ) ( .pi. , b , c )
, 0 , ##EQU00010##
b.fwdarw.c valid this time step, otherwise.
[0212] When the optimal estimation system is running in real-time,
the probabilities for the category transition from c.sub.i to
c.sub.j that occurs at a given time step are calculated first by
calculating the probability of category changes given the currently
available programs:
P c i .fwdarw. c J ( .pi. ) = [ N ( .pi. , c i , c j ) cx = 1 K N (
.pi. , c i , c .alpha. ) ##EQU00011##
where the summation from .alpha.=1 to K accounts for all of the
categories in C. Suppose that c.sub.i is the category associated
with channel i and c.sub.j is the category associated with channel
j. Then, this probability is converted into the needed channel
transition probability by:
P i .fwdarw. j ( .pi. ) = P c 1 .fwdarw. c J ( .pi. ) n t ( c j )
##EQU00012##
Where n.sub.t(c.sub.j) is the number of channels that have shows
that fall in category c.sub.1 at the end of the current time
step.
[0213] An alternative probability measure may be calculated by the
"popularity" of channels instead of the transition between channels
at each discrete time step. This above method can be used to
provide this form by simply summing over the transition
probabilities for a given category:
P c J ( .pi. ) = .alpha. = 1 K N ( .pi. , c .alpha. , c j ) .beta.
, .gamma. = 1 K N ( .pi. , c .beta. , c .gamma. ) .
##EQU00013##
Again, this probability is converted into the needed channel
transition probability by using an instance of multiplication
rule:
P j ( .pi. ) = P c J ( .pi. ) n t ( c j ) , ##EQU00014##
Where, again, n.sub.t(c.sub.j) is the number of channels that have
shows that fall into category c.sub.j at the end of the current
time step.
[0214] In one embodiment of the invention, several or all of the
categories will be programs themselves, given the finest level of
granularity. In other instances, it is preferable to have broad
categories to reduce the number of probabilities that need to be
stored down.
[0215] 2.3 Optimal Estimation with Markov Chain Observations
[0216] In the traditional filtering theory summarized above, one
has that the observations are a distorted, corrupted partial
measurement of the signal, according to a formula like
Y.sub.k=h(.chi..sub.t.sub.k,V.sub.k),
where t.sub.k is the observation time for the k.sup.th observation
and {V.sub.K}.sub.k=1.sup.00 is some driving noise process, or some
continuous time variant. However, for the DSTB model that we
described in the immediately previous subsections, we have that Y
is a discrete time Markov chain whose transition probabilities
depend upon the signal. In this case, the new state Y.sub.k can
depend upon its previous state, rendering the standard theory
discussed above invalid. In this section, a new, analogous theory
and system is presented for solving problems where the observations
are a Markov chain. One noticeable generality of the system is that
Markov chain observations may only be allowed to transition to a
subset of all the states, a subset that depends on the state that
the chain is currently in. This is a useful feature in the targeted
advertising application, since much of the viewing queue's previous
data may remain in the viewing queue after an observation and the
insertion of some new data. For assimilation ease, this is
described in the context of targeted advertisement even though it
clearly applies in general.
[0217] Suppose that we have a Markov signal X.sub.t with generator
and with an initial distribution v. Recall that the signal X.sub.t
evolves within the state space E. To be precise, the signal is
defined to be the unique D.sub.E{0,.infin.) process that satisfies
the (, v)-martingale problem:
P(X.sub.0,E, )=.sigma.( )
and
M.sub.t(.phi.){dot over
(=)}.phi.(X.sub.t)-.phi.(X.sub.0)-.intg..sub.0.sup.t.phi.(X.sub.x)ds
is a martingale for all .phi. .epsilon. D().
[0218] We wish to estimate the conditional distribution of X.sub.t
based upon {1, 2, . . . , M}-valued discrete-time Markov chain
observations that depends upon X.sub.t as well as some exogenous
information D.sub.t. Recall that Y.sub.k=(y.sub.k, . . .
y.sub.k-B+1), with B representing the number of retained channel
changes. To make things manifest, suppose that
{v.sub.k}.sub.k=-.infin..sup..infin. is a sequence of independent
random variables that are independent of the signal and observation
such that
P ( v k = i ) = 1 M ##EQU00015##
for i=1, 2, . . . , M and k .epsilon. Z and that the observation
y.sub.k occurs at time t.sub.k with finite state space {1, . . . ,
M} of events available, where
y k = v k k = 0 , - 1 , - 2 , y k k = 1 , 2 , 3 , ##EQU00016##
transitions between values in {1, . . . , M} with homogeneous
transition probabilities p.sub.i.fwdarw.j(D.sub.t1X.sub.i) of going
from state i to state j at time t. Here, D.sub.t and X.sub.t are
the current states of the pertinent exogenous information and
signal states at the time of the possible state change.
[0219] To ease notation, we define D.sub.k{dot over
(=)}D.sub.t.sub.tX.sub.k{dot over (=)}X.sub.t.sub.k and set
Vk = ( u k 1 u k - 1 , uk - B + 1 ) T for k = 1 , 2 , ##EQU00017##
Z j = { k = 1 j k - 1 ( X k ) for j = 1 , 2 , 1 for j = - 1 , - 2 ,
and Z t Z j for t .di-elect cons. ( t j , t j + 1 ) , where k ( X k
) = M .times. p .gamma. k - 1 .fwdarw. .gamma. k ( D k , X k ) .
##EQU00017.2##
[0220] Then, some mathematical calculations show that
E [ f ( X t ) | .sigma. { Y 1 , , Y j } ] = E _ f ( X t ) ( Z ( T )
) - 1 | .sigma. { Y 1 , , Y j } E _ [ ( Z ( T ) ) - 1 | .sigma. { Y
1 , , Y j } ] , for t j .ltoreq. T , where f : E .fwdarw. R and P _
( A ) = E [ 1 A Z ( T ) ] .A-inverted. A .di-elect cons. .sigma. {
( X t , Y t ) , t .ltoreq. T } . Letting .eta. ( t ) 1 Z ( t ) , (
1 ) ##EQU00018##
and noting the denominator and numerator of equation (1) above are
both calculated from [g(X.sub.t).eta.(t)|]F.sub.t.sup..gamma.. with
g=1 and g=f respectively, where
F.sub.t.sup..gamma..sigma.{Y.sub.1, . . . , Y.sub.j} for t
.epsilon.[t.sub.j,t.sub.j+1),
we just need an equation for
.mu..sub.tf{dot over (=)}
[f(X.sub.t).eta.(t)|F.sub.t.sup..gamma.]
for a rich enough class of functions f:E.fwdarw.R.
[0221] More mathematics establishes that .mu..sub.t(dx)
(1.sub.x.sub.t.sub..epsilon.dx(t)|F.sub.t.sup..gamma.)
satisfies
.mu. t ( .PHI. ) - .mu. 0 ( .PHI. ) = .intg. 0 t .mu. s ( L ) s + k
= 1 n t .mu. t k ( .PHI. .zeta. _ k ) ##EQU00019##
for all t .epsilon.[0,.infin.) and .phi. .epsilon. D(), where
.zeta. _ k ( x ) = 1 - 1 .zeta. k ( x ) ##EQU00020##
and n.sub.s=max {k:t.sub.k.ltoreq.s}.
[0222] 2.4 Filtering Approximations
[0223] In order to use the above derivation in a real-time computer
system, approximations must be made so that the resulting equations
can be implemented on the computer architecture. Different
approximations must be made in order to use a particle filter or a
discrete space filter. These approximations are highlighted in the
sections below.
[0224] 2.4.1 Particle Filter Approximation
[0225] By equation (1) we only need to approximate
.mu. t ( ds ) E _ [ 1 X t .di-elect cons. dx .eta. ( t ) | F t
.gamma. ] , where ##EQU00021## .eta. ( t ) = k = 1 t M .times. p
.gamma. k - 1 .fwdarw. .gamma. k ( D k , X k ) = k = 1 t M .times.
p .gamma. k - 1 .fwdarw. .gamma. k ( D k , X t k )
##EQU00021.2##
is the weighting function. Now, suppose that we introduce signal
particles {.xi..sub.t.sup.i,t.ltoreq.0}.sub.i=1.sup..infin., which
evolve independently of each other, each with the same law as the
historical signal, and define the weights
.eta. i ( t ) = k = 1 t M .times. p .gamma. k - 1 .fwdarw. .gamma.
k ( D k , .xi. t k i ) , ##EQU00022##
Then, it follows by deFinnetti's theorem and the law of large
numbers that
1 N i = 1 N .eta. i ( t ) .delta. .xi. t i ( dx ) .mu. t ( dx ) .
##EQU00023##
[0226] 2.4.2 Discrete Space Approximation
[0227] If we can assume that the state space of E of X.sub.t is a
compact metric space, then for each N .epsilon. N, we let l.sub.N
and M.sub.N satisfy l.sub.N.fwdarw..infin. and
M.sub.N.fwdarw..infin. as M.fwdarw..infin.. For D.sub.N={1, . . .
d.sub.N}.OR right. N, we suppose that {C.sub.k.sup.N, k .epsilon.
D.sub.N} is a partition of E such that
max k diam ( C k N ) .fwdarw. N .fwdarw. .infin. 0 ,
##EQU00024##
and for large enough N that all the discrete state components are
in different cells. Then, we take y.sub.k.sup.N .epsilon.
C.sub.k.sup.N and define J.sub.N{dot over (=)}{0, 1, . . . ,
M.sub.N}.sup.d.sup.N. Take .eta.(C.sup.N)=j to mean
.eta.(C.sub.i.sup.N)=j.sup.i for all i .epsilon. D.sub.N and .eta.
.epsilon. M.sub.c.sup.f(E). Then, the unnormalized distribution of
the signal .mu..sub.t.sup.u satisfies
.mu. t ( .eta. ( C N ) = j ) = .mu. 0 ( .eta. ( C N ) = j ) +
.intg. 0 t .mu. s ( L N 1 .eta. ( C N ) = j ) s + k = 1 n t .mu. t
k ( 1 { .eta. ( C N ) = j } .zeta. _ k ) ##EQU00025##
where .sup.N is some discretized version of . The application of
REST then creates particle counts {N.sub.t.sup.c,p} for each cell
in C.sup.N and for each household population p within the
cell-dependent set of allowable populations P.sub.c.sup.N, such
that
.mu. t N ( dx ) = c .di-elect cons. C N p .di-elect cons. P c N n t
c , p .delta. p , c ( dx ) . ##EQU00026##
[0228] Then, it follows that
.mu..sub.t.sup.N(dx).mu..sub.t(dx)
as N.fwdarw..infin. for each t.gtoreq.0.
[0229] 2.5 Refining Stochastic Grid Filter with Discrete Finite
State Spaces
[0230] In U.S. Pat. No. 7,188,048, a general form of the REST
filter was detailed. This method and system has demonstrated to be
of use in several applications, particularly in Euclidean space
tracking problems as well as discrete counting measure problems.
However, several improvements upon this method have been
discovered, which provide dramatic reductions in the memory and
computational requirements for an embodiment of the invention. A
new method and system for the REST filter is described herein where
the signal can be modeled with a discrete and finite state space.
Examples using the targeted advertising model are provided for
clarity, but this method can be used with any problem that features
the environment discussed below.
[0231] 2.5.1 Environment Description
[0232] In certain problems, the signal is composed of zero or more
targets X.sub.t.sup.i and zero or more regimes R.sub.t.sup.j. For
example, in targeted advertising one embodiment of the signal model
is in the form .chi..sub.t=(X.sub.t, R.sub.t), where x.sub.t is the
empirical measure of the targets (or, more specifically, the
household members) and there is only one regime. Furthermore, each
target and regime have only a discrete and finite number of states,
and there are a finite number of targets and regimes (and
consequently a finite number of possible combinations of targets
and regimes). The finite number of combinations need not be all
possible combinations--only a finite number of legitimate
combinations are required. For instance, a finite number of
possible types of households (meaning households that exhibit
particular demographic compositions within) can be derived from
geography-dependent census information at relatively granular
levels. Instead of having all potential combinations of individuals
(up to some maximum household membership n.sub.MAX), only those
combinations which can be possibly found within a given geographic
region need to be considered legitimate and contained within the
state space.
[0233] In these restricted problems, some components of the state
of the target(s) and/or regime(s) may be invariant over the short
period during which the optimal estimation is occurring. In these
cases, such state information is held to be constant, while other
portions of the state information remain variant. In one embodiment
of the household signal model, the age, gender, income, and
education levels of each individual within the household may be
considered to be constant, as these values change over longer
periods of time and the DSTB estimation occurs over a period of a
few weeks. However, the current watching status and household
regime information will change over relatively short time frames,
and as a result these states are left to vary in the estimation
problem. We shall denote the invariant portion of the signal as
{circumflex over (X)} and the variant portion of the signal as
{tilde over (X)}. There are N possible invariant states (the
i.sup.th such state donated by {circumflex over (X)}.sup.i) and
M.sub.i possible variant states for the i.sup.th invariant state
(the j.sup.th state denoted by {circumflex over (X)}.sup.i,j).
[0234] 2.5.2 REST Finite State Space System Overview
[0235] FIG. 29 depicts one preferred embodiment of the REST filter
in a finite state space environment. REST is composed of a
collection of invariant state cells, each of which represents one
possible collection of targets and regimes for the signal along
with their invariant state properties. Each invariant cell contains
a collection of variant state cells, each representing the possible
time-variant states of the given invariant cell. Implicitly, the
variant cells contain the invariant state information of their
parent invariant cell, meaning each variant cell represents a
particular potential state of the signal. The invariant cells
themselves represent an aggregate container object only and are
used for convenience purposes. The collections of variant and
invariant cells may be stored on a computer medium in the form of
arrays, vectors, list or queues. Cells which have no particle count
at a given time t may be removed from such containers to reduce
space and computational requirements, although a mechanism to
reinsert such cells at a later date is then necessary.
[0236] As shown in FIG. 30, each variant state sell contains a
particle count n.sub.t.sup.i,j. This particle count represents the
discretized amplitude of that cell. As noted previously, this
amplitude is used to calculate the conditional probability of a
given state. Each variant state cell also contains a set of
imaginary clocks .lamda..sub.t.sup.i,j,q. These imaginary clocks
represent the time varying progression towards the event of a
particle count change within a cell driven by both continuous
transition rates and discrete observation events. For each variant
state cell there are Q.sub.i,j possible state transitions. In this
environment, all valid state transitions occur within the same
invariant state cell. To account for simultaneous changes in the
conditional distribution of the REST filter, a temporary particle
counter entitled particle count .DELTA.n.sub.t.sup.i,j is used to
store the number of particles that will be added or removed from
the given variant state cell once the sequential processing of all
cells is completed. Cells which have a valid state transition from
the variant state cell with state {tilde over (X)}.sub.i,j are said
to be neighbors of that cell.
[0237] As mentioned above, the invariant state cells are containers
used to simplify the processing of information. Each invariant
state cell's particle count n.sub.t.sup.i is an aggregate of its
child variant state cell particle counts. Similarly, the invariant
state cell's imaginary time clock is an aggregation of all clocks
from the variant cells. This aggregation facilitates the filter's
evolution, as invariant states which have no current particle count
can be skipped at various stages of processing.
[0238] 2.5.3 REST Filter Evolution
[0239] FIG. 31 depicts the typical evolution of the REST filter.
This evolution method updates the conditional distribution of the
filter over some time period .DELTA.t by transferring particles
between neighboring cells using the imaginary clock values. The
movement of a particle between neighboring cells is known as an
event. (In practice, the movement of particles can be replaced with
equivalent births and deaths to allow efficient cancellation of
opposite rates.) Such events are simulated en masse to reduce the
computational overhead of the evolution. The number of events to
simulate is based on the total imaginary clock sum .lamda..sub.t
for all cells. FIG. 32 shows the method that determines how
particles move to each neighboring cell. When the simulation of
events is complete, the particle counts are updated and the
imaginary clocks are scaled back to represent the change in the
state of the filter.
[0240] Compared to the previous method described in U.S. Pat. No.
7,188,048, additional steps have been added to improve the
effectiveness of the filter. Specifically, an adjustment to the
cell particle counts now occurs prior to the push down observations
method, and a drift back routine has been added prior to particle
control. In certain problems, some cell states may have no
possibility of being the current signal state based on observation
information. For instance, a household must have a least one member
currently watching if a channel change is recorded. In these
circumstances, the particles in all invalid states must be
redistributed proportionately to valid states. Thus, if there are
n.sub.t.sup.invalid particles to redistribute, then all valid
variant state cells will receive
n t invalid n t i , j i , j n t i , j ##EQU00027##
particles, and will receive an additional particle with
probability
n t invalid n t i , j i , j n t i , j - n t invalid n t i , j i , j
n t i , j . ##EQU00028##
When this type of observation-based adjustment is used, it is
likely that the rates governing the evolution of the signal must be
appropriately altered to coincide with the use of observation data
in this manner.
[0241] To improve the robustness of the REST filter, a drift back
method has been added. This method uses some function f({tilde over
(X)}.sup.i,j,t) to add n.sub.t.sup.seed particles to variant state
cells based on the initial distribution v of the signal. The number
of particles to add to each cell depends on time, the given cell,
and the overall state of the filter. This method ensures that the
filter does not converge to a small set of incorrect states without
the ability to recover from an incorrect localization.
[0242] 2.6 Head End Estimations
[0243] In order to maximize the profitability of multiple service
operators' advertising operations, the determination of which
commercials to distribute to a collection of DSTBs is critical. As
more information is available about the actual viewership of
commercials based on the conditional distributions (or conditional
estimates derived thereof) of a DSTB-based asymptotically optimal
nonlinear filter, the pricing of specific commercial slots can be
more dynamic, thus improving overall profits.
[0244] To capitalize upon this potential, an estimate of the
collection of household probability distributions, that includes
such things as the number of people within each demographic, is
performed at the Head End based on the whole set or a random
sampling of conditional DSTB estimates. The following model
contains a prefer embodiment of the Head End estimation system.
[0245] 2.6.1 Head End Signal Model
[0246] The Head End signal model consists of pertinent trait
information of potential and current television viewers that have
DSTB, in communication with a particular Head End. A state space S
is defined that represents such a collection of traits for a single
individual. In one embodiment of the invention, this space could be
made up of age ranges, gender, and recent viewing history for an
individual. To keep track of individuals, we let C.sup.0=0 be the
household type of no individuals and C.sup.n be the collection of
household types with n individuals
C.sup.n={((s.sub.1n.sub.1), . . . ,
(s.sub.r,n.sub.r)):s.sub.i.epsilon.S and distinct, n.sub.1+n.sub.2+
. . . +n.sub.r+n}.
The collection of households would then be the union
n = 0 .infin. C n ##EQU00029##
of the households with n people in them. Realistically, there would
be a largest household N that we could handle and we set the
household state space to be
E = n = 0 N C n , ##EQU00030##
where N is some large number.
[0247] To process the estimate transferred back from the DSTBs
through the random sample mechanism, we also want to track the
current channel for each DSTB. This means that each DSTB state;
including potential household viewership, watching status, and
current channel; is taken from
D{dot over (=)}E.times.{1, 2, . . . , M},
where there is M possible channels that the DSTB could be tuned
to.
[0248] We are not worried about a single DSTB nor even which DSTBs
are in a particular state but rather with how many DSTBs are in
state d .epsilon. D. Therefore, we let X to be tracked, be a finite
counting measure valued process, counting the number of DSTBs in
each category d .epsilon. D over time. For technical reasons we
define the signal to be either the probability distribution of X of
the probability distributions of each component of X.
[0249] In an embodiment of the invention, it is possible to track
in aggregate the possible number of DSTBs in each category to
minimize the computational requirements. In such a case, elements
of size o are used so that the total will still sum to the maximum
number of DSTBs. For example, suppose that there are 1 million
DSTBs. Then, we would have 100,000 elements (consisting of a=10
DSTBs each) distributed over D. Suppose M(D) denotes the counting
measure on D and M(D) denotes the subset of M(D) that has exactly
100,000 elements. The signal will evolve mathematically according
to a martingale problem
f(X.sub.t)=f(X.sub.0)+.intg..sub.0.sup.tf(X.sub.s)ds+M.sub.t(f),
where t.fwdarw.M.sub.t(f) is a martingale for each continuous,
bounded functional f on M(D) and is some operator that would be
determined largely from the DSTB rates and the natural assumption
that the households act independently.
[0250] Any households that provide their demographics in exposed
mode are not considered to be part of the signal.
[0251] 2.6.2 Head End Observation Models Herein we describe two
observation models: one for the random sampling of DSTBs and one
for delivery statistics.
[0252] For the random sample observation model, we consider the
channel and viewership by letting X be our process as in the
previous section, and let V.sub.k denote the random selection at
time t.sub.k in the sampling process. To be precise, suppose that
there are M DSTBs for a particular Head End and suppose that a DSTB
that believes at least one person is currently watching will supply
a sample with a fixed probability of five percent. Then, V.sub.k
would be a matrix with a random number of rows, each row consisting
of M entries with exactly one nonzero entry corresponding to the
index of the particular DSTB which has provided a sample. The
number rows would be the number of DSTBs providing a sample. The
locations of the nonzero entries are naturally distinct over the
rows and would be chosen uniformly over the possible permutations
to reflect the actual sampling taken.
[0253] Now, we let ({circumflex over (P)}.sub.t.sub.k, U.sub.k) be
the (column) vectors of the conditional distribution viewership
estimates and corresponding channel changes of the M DSTBs, all at
time t.sub.k. Then, this observation process would be
.theta..sub.t.sub.k.sup.1=h(V.sub.k ({circumflex over (P)}.sub.k,
U.sub.k)).
Here, the V.sub.k would do the random selection and the h would be
a function providing the information that is chosen to be
communicated to the Head End.
[0254] For the aggregated ad delivery statistics model, we have
time-indexed sequences of functions H.sub.k,j that provide a count
of the various ads delivered previously at time t.sub.k-t.sub.j.
There would be a small amount of noise W.sub.k,j due to the fact
that some DSTBs may not return any information due to temporary
malfunction (i.e. a `missed observation`), and due to the fact that
the estimated viewership used to determine a successful delivery is
not guaranteed to be correct.
[0255] The second observation information from the aggregated
delivery statistics would be
.theta..sub.t.sub.k.sup.2,j=H.sub.k,j({circumflex over
(P)}.sub.t.sub.k.sub.-t.sub.j,W.sub.k,j).
Here, j ranges back over the spot segments in the reporting periods
and t.sub.k is the reporting period time.
[0256] 2.6.3 Head End Filter
[0257] In a preferred embodiment of the invention, the signal for
the Head End is taken to be a representation for the probability
distributions from the DSTBs. This assignment can make the
estimation problem more workable.
[0258] 2.7 Head End Commercial Selection
[0259] In certain embodiments of the invention, other information
may be available which also can be used to perform the aggregate
viewership estimation. For example, aggregate (and possibly
delayed) ad delivery statistics can also provide inferences in the
estimated viewership of DSTBs, as well as any `exposed mode`
information whereby households opt to provide their state
information (demographics, psychographics, etc.) in exchange for
some compensation.
[0260] In this setting, commercial contract is modeled as a graph
of incremental profit in terms of the contract details, available
resources and future signal state. We call these graphs contract
graphs which arrive with rates that depend upon the contract
details, signal state and economic environments. Some of the
contract details may include:
[0261] Number of times commercial is to be shown (could contain
minimum and maximum thresholds), likely in thousands;
[0262] Time range for time of day/week that commercial is to be
shown;
[0263] The Target demographic(s) for the commercial;
[0264] Particular channels or programs that the commercial is to be
shown on; and
[0265] Customer that wrote the contract.
[0266] The random arrival of the contract graphs is denoted as the
contract graph process. Furthermore, an allotment of resources
(that need not be the maximum allotable to any contract) to a
contract graph process is called a feasible selection if, given the
state (present and future) and the environment, the allotted
resources do not exceed the available resources, i.e. the available
commercial spots over the various categories. Now, due to the fact
that these limited resource become depleted as one accepts
contracts, current versus future potential profits are modeled
through a utility function. This utility function takes the stream
of contract graphs available (both presently and with future random
arrivals) and returns a number indicating profit in terms of
dollars or some other form of satisfaction. Due to the random
future behavior of contract graphs, the utility function cannot
simply provide maximum profits without taking into account
deviation from the expected profit to ensure the maximization does
not allow significant risk of poor profit.
[0267] To perform optimal commercial selection, the following
models need to be defined: the Head End signal model, the Head End
observation model, the contract generation model, and the utility
(profit) model.
[0268] 2.7.1 Contract Model
[0269] The commercial contracts that arise are modeled as a marked
point process over the contract graphs. The rate of arrival for the
contracts depends upon the previous contracts executed as well as
external factors such as economic conditions.
[0270] Suppose that 1 denotes Lesbegue measure. Then, we let C
denote the space of possible contract graphs with some topology on
it, {.eta..sub.t, t.gtoreq.0} denote the counting measure
stochastic process for the arrival of contract graphs up until time
t and .xi. denote a Poisson measure over
C.times.[0,.infin.).times.[0,.infin.) with some mean measure
v.times.l.times.l. Furthermore, we let .lamda.(c,.eta..sub.[0,t),
t) be the rate (with respect to v) that a new contract will come
with contract graph c .epsilon. C at time t when .eta..sub.0,t) the
records the arrival of contract graphs from time 0 up to but not
including time t. Then, we model contract arrival by the following
stochastic differential equation"
n.sub.t(A)=.eta..sub.0(A)+.intg..sub.A.times.[0,.infin.).times.[0,t]1.su-
b.[0,.lamda.(c,.eta..sub.o,s.sub.,s))(v).xi.(dc.times.dv.times.ds)
for all A.epsilon.B(C).
[0271] It is possible that the contract details noted above may be
altered upon acceptance of a contract. As a result, the contract
details are modeled to depend on an external environment which can
evolve over time.
[0272] 2.7.2 Utility Function Description
[0273] To ease notation, we let R(D.sub.S) be the available
resources, now and in the future, based upon the downloadable
program information D.sub.S at time s.
[0274] We will not be able to accept all contracts that arise and
we have to make the decision whether to accept or reject a contract
without looking into the future. We denote an admissible selection
as a feasible selection such that each resource allocation decision
does not use future contract or future observation information. In
terms of the notation of the previous section, we suppose that
n.sub.t represents the number of contracts that have arrived of the
various types up to and including time t and take
.gamma. t ( l ) = .intg. Q .intg. C .times. [ 0 , t ] c ( l s - , X
s - , q ) .eta. ( c .times. s ) q for each t .gtoreq. 0 ,
##EQU00031##
where Q represents the set of all potential customers and
{l.sub.s,s.gtoreq.0} is a selection process, i.e., allocates
resources to each contract c. Then, {.sub.s.gtoreq.0} is an
admissible selection if l.sub.s.ltoreq.R(D.sub.s) for each
s.gtoreq.0 and l.sub.s does not use future contract or observation
information, i.e., is measurable with respect to
.sigma.({.eta..sub.u,u.ltoreq.s},
{.theta..sub.t.sub.k.sup.1,.theta..sub.t.sub.k.sup.2,j j .epsilon.
N, t.sub.k.ltoreq.s}) for each s.gtoreq.0. Now, .gamma..sub.t(l)
represents the profit obtained up to time t through admissible
selection l. To ease notation, we let .LAMBDA. be the set of all
such admissible selections.
[0275] The utility function J balances current profit with future
profit and the chance of obtaining very high profits on a
particular contract with the risk of no or low profit. In order to
ensure that we start off reasonably, we will deweight future profit
in an exponential manner. Moreover, in order that we are not overly
aggressive we will include a variance-like condition. One
embodiment of the resulting utility function is
J(X,l)=.intg..sub.[0,.infin.)e.sup.-.lamda.t[.gamma..sub.t(l)-.alpha.(.g-
amma..sub.t(l)).sup.2]dt,
for small constants .lamda., a>0. Then, the goal of the
commercial selection process is to maximize E[J(X,l)] over the l
.epsilon. .LAMBDA.. Such a goal can be solved using one or more
asymptotically optimal filters.
[0276] In summary, a matching algorithm may involve the following
steps. First, an ADR is received from matching to one or more of
the identified viewers. The similarity function is applied with
respect to each parameter, and the results are aggregated as
discussed above in order to determine a degree of match. Once the
classifier has discovered one or more viewers that match the basic
targeting parameters of the ad, the classifier determines whether
or not any of these viewers are currently watching the television
set. To do this, the periodicity analysis function is called to
match a week by day and week by time of day terrain surface to the
required time. This process returns a value reflecting the expected
degree of match between the viewing time behavior of each viewer
and the time frame of the ad. The degree of match in this regard is
used to scale the base compatibility score to produce a time
compatibility score. Once the classifier has thus identified a set
of compatible viewers and determined which of these viewers are
currently watching the television (that is, the time compatibility
value is greater than some threshold), the classifier determines
whether or not to accept this ad (vote for the ad or select the ad
for delivery) based on any frequency limitation constraints and
also subject to consideration of ad importance. That is, there may
be additional constraints associated with the ad regarding the
frequency with which the ad may be delivered to an individual
viewer or the total number of times that the ad may be delivered to
a viewer. The frequency analyzer returns a value and range of zero
to one that is used to scale the time compatibility rank. This
creates a frequency compatible rank. In the case of ad importance,
a first ad may be selected (and voted) rather than a second ad,
where the ads have a similar degree of "match" or even where the
second ad has a better match, due to differences in ad importance
(e.g., where the first ad has a higher importance).
[0277] An ad may also have constraints. For example, the ad may
have target age limitations, genre restrictions, network
restrictions, program nature restrictions, rating restrictions or
the like. The placement constraint analyzer that meets the
above-noted compatibility requirements and then searches for any
required placement constraints. The placement analysis returns a
gateway value of one or zero where one indicates no active
placement constraints and zero indicates placement constraints that
are violated. This creates the final compatibility index score.
[0278] It will be appreciated that the matching process need not be
based on a continuous, or even finely graded, value range. For
example, the result of the matching process may be a binary "match"
or "no match" determination. In this regard, a threshold, or set of
thresholds with associated decision logic, may be used to define a
match or lack thereof for an ad with respect to a current
audience.
[0279] As shown in FIG. 10, the classifier may thus be viewed as
incorporating a number of functional components including a stay
transition and link manager, a feature acquisition subsystem, a
mountain clustering subsystem, periodicity analysis subsystem and
an ad matching and ranking subsystem. The stay transition and link
manager are operative to monitor the click stream and determine
whether the DSTB is turned on as well as tracking stay changes. The
feature acquisition subsystem is operative to build the initial
feature terrain as discussed above. The mountain clustering
subsystem is operative to process the feature terrain to remove
noise and better define viewer sites as discussed above. The
periodicity analysis subsystem recognizes viewing patterns and
matches those patterns to viewers as identified from the processed
feature terrain space. Finally, the ad matching and ranking
subsystem compares viewer classification parameters to targeting
parameters of an ad and also analyzes viewing habits of the viewer
in relation to the delivery time, so as to match ads to viewers and
develop a ranking system for voting, ad selection and
reporting.
[0280] The foregoing description of the present invention has been
presented for purposes of illustration and description.
Furthermore, the description is not intended to limit the invention
to the form disclosed herein. Consequently, variations and
modifications commensurate with the above teachings, and skill and
knowledge of the relevant art, are within the scope of the present
invention. For example, although fuzzy sets and fuzzy rules,
stochastic filtering, etc. have been described in connection with
various processes above, at least some aspects of the present
invention can be implemented without such features. The embodiments
described hereinabove are further intended to explain best modes
known of practicing the invention and to enable others skilled in
the art to utilize the invention in such, or other embodiments and
with various modifications required by the particular
application(s) or use(s) of the present invention. It is intended
that the appended claims be construed to include alternative
embodiments to the extent permitted by the prior art.
* * * * *