U.S. patent application number 12/023944 was filed with the patent office on 2009-08-06 for system and method for targeted recommendations using social gaming networks.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Shaykat Chaudhuri, Shyam Krishnamoorthy, Pooja Mathur, Theodore Ludovicus Michel.
Application Number | 20090197681 12/023944 |
Document ID | / |
Family ID | 40932246 |
Filed Date | 2009-08-06 |
United States Patent
Application |
20090197681 |
Kind Code |
A1 |
Krishnamoorthy; Shyam ; et
al. |
August 6, 2009 |
System and method for targeted recommendations using social gaming
networks
Abstract
Systems, methods and computer readable media are disclosed for
targeting a recommendation to a first user of an online
multi-player gaming environment based on tracked data of a second
user with which the first user has a relationship on the online
multi-player gaming environment. In addition to the general system,
methods and computer readable medium for such recommendations, the
recommendations can be further refined by incorporating information
about the first user, including how the user accesses the online
multi-player gaming environment.
Inventors: |
Krishnamoorthy; Shyam;
(Kirkland, WA) ; Mathur; Pooja; (Streamwood,
IL) ; Chaudhuri; Shaykat; (Sammamish, WA) ;
Michel; Theodore Ludovicus; (Bellevue, WA) |
Correspondence
Address: |
WOODCOCK WASHBURN LLP (MICROSOFT CORPORATION)
CIRA CENTRE, 12TH FLOOR, 2929 ARCH STREET
PHILADELPHIA
PA
19104-2891
US
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
40932246 |
Appl. No.: |
12/023944 |
Filed: |
January 31, 2008 |
Current U.S.
Class: |
463/42 |
Current CPC
Class: |
A63F 2300/5506 20130101;
A63F 2300/552 20130101; A63F 2300/556 20130101; G06Q 30/02
20130101; A63F 2300/5533 20130101; A63F 13/87 20140902; A63F 13/795
20140902; G07F 17/32 20130101; G07F 17/3272 20130101; A63F 13/12
20130101; G07F 17/3223 20130101; A63F 2300/5566 20130101; A63F
2300/572 20130101 |
Class at
Publication: |
463/42 |
International
Class: |
A63F 9/24 20060101
A63F009/24 |
Claims
1. A method for targeting a recommendation to a first user of an
online multi-player gaming environment, the method comprising:
tracking activity of the first user in an online multi-player
gaming environment, wherein the activity is indicative of a
relationship between the first user and a second user; receiving
first data indicative of a preference of the second user;
determining a recommendation based on the first data and the
activity; sending the recommendation to the first user.
2. The method of claim 1, wherein determining a recommendation
based on the first data and the activity comprises determining the
recommendation as most relevant of a plurality of
recommendations.
3. The method of claim 1, wherein tracking the activity comprises
storing data about the activity in a database.
4. The method of claim 3, further comprising filtering the data
about the activity such that the data is indicative of an
interaction between the first user and the second user.
5. The method of claim 1, wherein the first data comprises any of a
game that the second user plays, a video that the second user
watches, a content that the second user purchases, a service that
the second user uses, and a preferred language of the second
user.
6. The method of claim 1, wherein the recommendation comprises a
descriptive object selected to be compatible with communications
capabilities of an access device to the online multi-player gaming
environment of the first user.
7. The method of claim 6, wherein the access device comprises any
of a gaming console, a cellular telephone, a personal data
assistant, a general purpose computer, and a portable digital music
player.
8. The method of claim 1, wherein recommendation suggests a course
of action for the first user.
9. The method of claim 1, wherein the recommendation comprises at
least any of a friend to add to a friends list, a game to play, a
competition in which to engage, a group to which to subscribe, and
an opponent to play a game against.
10. The method of claim 1, further comprising receiving a request
for the recommendation.
11. The method of claim 1, further comprising receiving a second
data indicative of a preference of the first user; and determining
the recommendation based on the second data.
12. The method of claim 1, wherein the first data comprises any of
gaming activities of the second user within the gaming environment,
e-commerce activities of the second user within the gaming
environment, e-commerce activities of the second user outside of
gaming the environment, and social activities of the second user
within the environment.
13. The method of claim 1, wherein determining the recommendation
comprises determining the recommendation based on any of a
characteristic of a social network of the first user, a behavior of
a third user connected to the first user via the second user, and a
characteristic of the first user's gaming environment.
14. The method of claim 1, wherein determining the recommendation
comprises determining the recommendation based on a characteristic
of a social network of the second user.
15. The method of claim 14, wherein the characteristic of a social
network of the second user comprises any of a quantity of friends
associated with the second user, feedback from other users about
the second user, behavior of friends of the second user, and
behavior of friends of the second user's friends.
16. The method of claim 1, wherein determining the recommendation
comprises determining the recommendation based on communications
capabilities of an access device associated with the first
user.
17. The method of claim 1, wherein the recommendation comprises a
link to purchase a product.
18. The method of claim 1, wherein a relationship between the first
user and the second user comprises asynchronous interaction between
the first user and the second user.
19. A system for targeting a recommendation to a first user of an
online multiplayer gaming environment, the system comprising: a
memory to store first data indicative of an activity of the first
user in the online multiplayer gaming environment, wherein the
activity is indicative of a relationship between the first user and
a second user and second data indicative of a preference of the
first user; and a processor to determine a recommendation based on
the first data and the second data and to send the recommendation
to the first user, wherein the processor filters the first data
such that the first data is indicative of an interaction between
the first user and the second user and wherein the recommendation
suggests a course of action for the first user.
20. A computer readable storage medium for targeting a
recommendation to a first user of an online multiplayer gaming
environment, the computer readable storage medium including
computer executable instructions that when executed perform the
method comprising: establishing a connection with the online
multiplayer gaming environment; tracking activity of the first user
in an online multi-player gaming environment, wherein the activity
is indicative of a relationship between the first user and a second
user; sending first data indicative of the activity; receiving a
recommendation based on the first data and a preference of the
second user; and presenting the recommendation to the first user.
Description
BACKGROUND OF THE INVENTION
[0001] Online multi-player services for video games such as the
XBOX LIVE.RTM. service (Microsoft Corporation, Redmond, Wash.)
allow gamers anywhere in the world to play with and against each
other. Online multi-player services enable users to interact with
each other within the gaming service.
[0002] Electronic commerce systems strive to connect a user to
items and/or services likely to be of interest to the user. For
example, an electronic commerce system may present recommendations,
suggestions, related items and/or services, or the like to the
user. The user may also be shown contextual advertisements similar
to the item or service being viewed.
[0003] These electronic commerce systems generally use make
recommendations based on the user's buying/viewing history, the
clustering of purchases made by others at the site, recommendations
made by strangers to the user, and the like. However, these legacy
recommendation techniques do not leverage the unique information
available in the environment of an online multi-player gaming
service that captures aspects of the natural social network
developed within the online multi-player gaming service. The art of
targeted recommendations may be improved by leveraging this unique
information about the relationships of like minded users.
SUMMARY OF THE INVENTION
[0004] The disclosed methods and systems leverage the preferences
of users in an on-line multiplayer gaming environment and the
natural social-networking relationships among those users to
provide recommendations, such as e-commerce recommendations. To
illustrate, a first user and a second user may connect to an
on-line multiplayer gaming environment. Once connected, the users
may interact with the gaming environment and/or each other within
the gaming environment.
[0005] Activity that indicates a relationship between a first user
and second user may be tracked. The activity may be indicative of
an interaction between the first user and the second user within
the on-line multiplayer gaming environment. For example, the first
user and the second user may have played a game together, may have
listed each other as friends within the gaming environment, may
have participated in a common on-line chat within the gaming
environment, or the like. The users may transfer game data to each
other, may play the same instance of the same game, may transfer
text, audio or video communications with each other, or the
like.
[0006] An e-commerce preference of the second user may be received.
The e-commerce preference may be associated with a product and/or
service that the second user has purchased and/or used. For
example, the e-commerce preference may be associated with a game
that the second user regularly plays within the gaming
environment.
[0007] The activity between the first and second user as well as
the e-commence preference of the second user may be used to
determine a recommendation for the first user. The recommendation
may be sent to the first user in a format compatible with an access
device of the first user. For example, the access device may
include a gaming console and the recommendation may include a link
to a recommended product, such as a downloadable game within the
gaming environment.
[0008] Because the first user and the second user may have an
established relationship within the natural social network of an
on-line multiplayer gaming environment, it is more likely that they
have common interests, hobbies, beliefs, values, etc. Thus, it is
more likely that a recommendation based on the preferences of a
second user will be more relevant to the first user and more
effective at connecting the first user with a desired product
and/or service.
[0009] The foregoing is a summary and thus contains, by necessity,
simplifications, generalizations and omissions of detail. Those
skilled in the art will appreciate that the summary is illustrative
only and is not intended to be in any way limiting.
BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The systems, methods, and computer readable media for making
recommendations to users of an online multi-player gaming service
via a computerized gaming environment based on that user's behavior
and social networks in accordance with this specification are
further described with reference to the accompanying drawings in
which:
[0011] FIG. 1 illustrates an example system for providing a
targeted recommendation to a user based a using a social
online-multiplayer gaming network.
[0012] FIG. 2 illustrates an example system for providing a
targeted recommendation to a user based a using a social
online-multiplayer gaming network.
[0013] FIG. 3 illustrates an example operational procedure for
providing a targeted recommendation to a user based a using a
social online-multiplayer gaming network.
[0014] FIG. 4 is a block diagram of an exemplary computer network
environment suitable for providing a targeted recommendation to a
user based a using a social online-multiplayer gaming network.
[0015] FIG. 5 is a block diagram illustrating an example gaming
console that may be incorporated into the computer network
environment.
[0016] FIG. 6 is a block diagram of an example computing
environment that may be incorporated into the computer network
environment.
[0017] FIG. 7 illustrates a block diagram of one embodiment of a
processor.
DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS
[0018] Certain specific details are set forth in the following
description and figures to provide a thorough understanding of
various embodiments. Those of ordinary skill in the relevant art
will understand that they can practice other embodiments without
one or more of the details described below. While various methods
are described with reference to steps and sequences in the
following disclosure, the description as such is for providing a
clear implementation of embodiments of the invention, and the steps
and sequences of steps should not be taken as required. FIGS. 1, 2
and 4-7 illustrate operating environments in which operating
procedures may be performed. FIG. 3 depicts example operating
procedures.
[0019] FIG. 1 illustrates using data in social networks within an
online multi-player gaming environment 100 to make recommendations
122. The system comprises a computing network 108 which links a
gaming server 102, e-commerce server 104, recommendation server
106, a first user's access device 112, and a second user's access
device 116. The gaming server 102, e-commerce server 104 and
recommendation server 106 may exist on one physical computational
device or a plurality of computational devices. Likewise, the
online-multi-player gaming environment may comprise a single
computing server or a plurality of such servers that are networked
together.
[0020] An access device 112, 114 is a computing device which a user
110, 114 may use to connect to an online multi-player gaming
environment 100. This may comprise a dedicated video game console,
a general purpose computer which is configured to play games
online, a portable digital media player which is configured to play
simple games, a cellular telephone or personal data assistant which
is configured to play simple games, or the like. Through the access
device 112, 116, a user 110, 114 is able to access the online
multi-player gaming environment 100 and engage in activities
thereon.
[0021] The online multi-player gaming environment 100 is an
environment that comprises services that enable users to interact
with one another. For example, a user may play a game with or
against another user, chat with another user via audio, video and
text (both in real-time and asynchronously), post to a message
board, view audio or video, and otherwise participate in the
services offered by the service. As a result of users interacting
via the environment, social networks may be formed. A social
network is a social structure made of nodes (which are generally
individuals or organizations) that are tied by one or more specific
types of interdependency, such as values, visions, idea, financial
exchange, friends, kinship, dislike, conflict, trade, and web
links. These network connections may be both explicit, such as when
two users add each other to a list of "friends" kept by the server,
or implicit, such as when two users post to the same message board,
though do not explicitly direct their messages at each other.
[0022] A component of an online multi-player gaming environment may
be an e-commerce server 104. This provides the functionality that
allows a user to search for, learn about, and purchase an item. The
item may be an entire game, additional content for a game like a
new map on which to play, video content, music, and the like.
Included in the functionality of purchasing an item is the
functionality of interfacing with financial institutions to
transfer funds to pay for a purchase. The e-commerce server may be
a web server separate from the online multi-player gaming
environment.
[0023] Another component of an online multi-player gaming
environment may be a gaming server 102. This gaming sever may allow
a user to find other users playing the same game, establish an
instance of the game with each other, and to enable the mutual play
of the game. The gaming server may also track such things as a
user's high score, the best users in a game, tournament play, and a
user's record against another user. In one embodiment, the gaming
server assists a user in finding other users to play a game with,
initializes the game according to the chosen parameters, and then
monitors all communication between players while the game occurs.
In another embodiment, the gaming server assists a user in finding
other users to play a game with, initializes the game according to
the chosen parameters, and then the users communicate independent
of the game server during game play.
[0024] An e-commerce activity or preference of a second user may
comprise an item the second user has searched for, an item the
second user has viewed the details of, an item the second user has
rated, an item the second user has read reviews of and an item the
second user has purchased. Data indicative of the first user's
online activity may comprise a game that the first user plays, a
video that the first user watches, a content that the first user
purchases, a service that the first user uses, and a preferred
language of the first user. Data indicative of a second user's
preference may comprise a game that the second user plays, a video
that the second user watches, a content that the second user
purchases, a service that the second user uses, and a preferred
language of the second user.
[0025] A recommendation server 106 may take both data indicative of
a first user's online activity 118 drawn from the first user's
access device 112 as well as data indicative of a second user's
preference 120 drawn from a second user's access device 116 to
determine a recommendation 112 which is then sent to the first
user. The recommendation server takes this data and from it
determines a recommendation which comprises an item offered by the
service in which the first user is likely to be interested. The
recommendation may comprise a friend to add to a friends list, a
video to watch, a song to hear, a game to play, a competition in
which to engage, a group to which to subscribe, and an opponent to
play a game against. For example, the recommendation server may
take the first user's friends list, and data that many of the users
on that friends list have downloaded a new game to make a
recommendation of that new game to the first user.
[0026] FIG. 2 illustrates an example system for providing a
targeted recommendation to a user based a using a social
online-multiplayer gaming environment. Recommendation server 200
can be implemented on a general purpose computing device, or on a
plurality of general purpose computing devices which are networked
together. The server may comprise memory that stores a first data
of a first user's activity while using the online multi-player
gaming environment. That data may be indicative of a relationship
between the first user and a second user. The memory may also store
a second data that may be indicative of a preference of the second
user. The server may further comprise a processor that may
determine a recommendation based on the first data and the second
data and send that recommendation to the first user.
[0027] There exists with the recommendation server 200, which may
be a component of an online multi-player gaming environment, a
bi-directional communication link with a first user's access device
202. This device may comprise a gaming console, a cellular
telephone, a personal data assistant, a general purpose computer,
and a portable digital music player that is capable of playing
simple games.
[0028] While interacting with the online multi-playing gaming
environment, the user will convey behavioral data which is
collected by the behavioral data collection component 204. This
behavioral data may be the entirety of the information conveyed by
the first user to the environment, such as which sections of the
environment the user views, which videos the user watches, and
which games the user plays. The behavioral data may also be
e-commerce behavior.
[0029] The behavioral data is then sent from the behavioral data
collection component to the behavioral data cleansing and
aggregation component 206. This component may determine which
portion of the data is valuable in making a recommendation, and
pass only that data along. For instance, in one embodiment, it may
not be useful in making a recommendation to know how much time the
user has spent viewing a particular section of the environment,
only that the user has viewed that section. In such a case, the
behavioral data cleansing and aggregation component would pass
along from that data the information about which sections the user
viewed, but not how long the user spent viewing each section.
[0030] The behavioral data cleansing and aggregation component then
sends the cleaned data to a data analytics and inference engine
214. The engine takes this information, along with information from
a user database 208, an item database 210 and a games database to
assign relative weights to each item in the item database, where
the relative weight represents the likelihood that the first user
will be interested in the item. The user database 208 may comprise
a collection of users, noting which ones have relationships with
the first user and the nature of such relationship, as well as
preferences of each user regarding items. The item database 210 may
comprise a collection of items offered by the recommendation
server, such as a game, a video, a song, a user to befriend, and
supplemental content to a game, as well as information that
describes each item, such as a title, descriptive text, and a
preview. The games database may comprise a list of games that may
be played on the online multi-player gaming environment, and also
games that may be downloaded to an access device and played
independent of the environment.
[0031] The data analytics and reference engine 214 then sends its
weighted results to a recommendation component 216. The
recommendation component takes that information, along with the
user database 208, the item database 210 and the games database 212
and may use that information to determine a recommended item to
return to the first user via the first user access device 202. In
one embodiment, the recommendation component may return to the
first user the item which the first user is most likely to desire.
In another embodiment, the recommendation component may return to
the first user a plurality of items which comprise those items that
the user is likely to be interested in. For example, the
recommendation may comprise a link to purchase the item,
descriptive text about the item, a title for the item, a preview of
the item, reviews of the item, and where appropriate, the item
itself.
[0032] FIG. 3 illustrates an example operational flow for providing
a targeted recommendation to a user based a using a social
online-multiplayer gaming network. Those skilled in the art will
note that the disclosed process is illustrative and that different
implementations are contemplated.
[0033] At 300 the process flow begins. The process may be triggered
in response to a determination that a first user is using the
online-multiplayer gaming service, for example.
[0034] At 302, activity of the first user within an online
multiplayer gaming environment may be tracked. The activity may
include logging into the online multiplayer gaming environment
selecting aspects of a game to play, such as game maps and/or
levels to play. The activity may include selecting characteristics
that modify game play such as music, game options, difficulty
levels, and the like. The activity may include operations that
interact with other users of the online multiplayer gaming
environment. For example, the activity may include online chatting,
collaborative game play, message postings, and the like.
[0035] The activity may be indicative of a relationship between the
first user and a second user. For example, the first and second
user may play each other in an online match. The first and second
user may chat with each other. The first and second user may play
with other users in common. The first and second user may have
similar game options and/or difficulty levels. The first and second
user may be part of the same online grouping or team.
[0036] In an embodiment, the activity may include playing games
that the first and second user play with or against each other. The
activity may include audio, video and text communications directly
between the first user and the second user. The activity may
include interactions with mutual friends. The activity may include
presenting videos, music, message boards, etc. that are common to
both the first user and the second user.
[0037] The tracking may include storing data about the activity in
a database. The storing may include filtering the data about the
activity such that the data is indicative of an interaction between
the first user and the second user.
[0038] The interaction between the first user and the second user
could comprise an explicit interaction. For example, the two users
may add each other to their respective friends lists, may play a
game with or against each other, may post to the same thread on a
message board, and/or may have a direct conversation with each
other, such as over instant messaging, audio, and/or video chat.
The interaction between the first user and the second user could
also be implicit of a relationship. For example, they could share a
mutual friend, have played the same game, watched the same video,
log in from the same time zone, share a default language
preference, or rated something the same level.
[0039] The interaction between the first user and the second may
occur in real-time, such as during an audio or video chat session,
or playing a game together, or asynchronously, such as when the
first user posts to a message board while the second user is not
using the environment, and the second user later responds on that
message board while the first user is not using the
environment.
[0040] At 304, first data that is indicative of a preference of the
second user may be received, for example, at the recommendation
engine. In an embodiment, the first data comprises a game that the
second user plays, a video that the second user watches, a content
that the second user purchases, a service that the second user
uses, and a preferred language of the second user. Additionally,
the preference of the second user may also comprise preferences as
manifested by any of gaming activities of the second user within
the gaming environment, e-commerce activities of the second user
within the gaming environment, e-commerce activities of the second
user outside of gaming the environment, and social activities of
the second user within the environment.
[0041] A preference of the second user may be explicit. Such an
explicit preference may comprise answering a survey, rating a
product, message board post, video, game or user, or voting for or
against something in a poll. A preference of the second user may
also be implicit. Such an implicit preference may comprise playing
a specific game, playing a specific game often, viewing content,
and spending a large portion of time on a specific portion of the
environment.
[0042] A preference of the second user may originate in the gaming
system. Such a preference that originates in the gaming system may
comprise downloading a map for a game, playing a game against a
particular user, and playing a game. A preference of the second
user may also originate outside the gaming system. Such a
preference that originates outside the gaming system may comprise
searching for, and purchasing a product from an e-commerce
website.
[0043] At 306, a recommendation based on the first data and the
activity may be determined. The recommendation may suggest a course
of action for the first user. For example, the recommendation may
recommend a friend to add to a friends list, a game to play, a
competition in which to engage, a group to which to subscribe, and
an opponent to play a game against.
[0044] The online multi-player gaming environment may determine a
plurality of recommendations suitable for the first user. The
recommendation presented to the user may be selected as the most
relevant of the determined recommendations.
[0045] In an embodiment, determining the recommendation may include
receiving a data indicative of a preference of the first user and
basing the recommendation on the preference of the first user. The
preferences of the first user may help provide better results, like
where the first user has shown a strong preference away from
obtaining new game maps for games the user possesses.
[0046] Furthermore, in an embodiment, the recommendation may be
determined determining the recommendation based on any of a
characteristic of a social network of the first user, a behavior of
a third user connected to the first user via the second user, and a
characteristic of the first user's gaming environment, or the like.
The additional data about the first user may be help provide better
results.
[0047] The recommendation may be determined based on the
communications capabilities of an access device associated with the
first user. The access device could comprise a gaming console, a
cellular telephone, a personal data assistant, a general purpose
computer, and a portable digital music player. For example, where
the first user is using an portable digital music player that has
the capability to play simple games, it may be preferable to make
the recommendation either a song or a simple game--things that can
be used with the portable digital music player.
[0048] In an embodiment, the recommendation could comprise a
suggestion for a course of action for the first user. This course
of action could be to visit a message board with content that might
be of interest to the first user, or to use the service at a
certain time, when users of a similar skill level at a game
frequently play that game.
[0049] In an embodiment, determining the recommendation may be
based on any of a characteristic of a social network of the first
user, a behavior of a third user connected to the first user via
the second user, and a characteristic of the first user's gaming
environment
[0050] In one embodiment, determining the recommendation comprises
determining the recommendation based on a characteristic of a
social network of the second user. The characteristic of a social
network of the second user may comprise any of a quantity of
friends associated with the second user, feedback from other users
about the second user, behavior of friends of the second user, and
behavior of friends of the second user's friends.
[0051] In one embodiment, this operation also includes receiving a
request for the recommendation from the first user. The first user
may click on a link that indicates that the user wishes to see
which game maps are recommended to that user, or when viewing such
a map may click on a link to display similar maps that the user
might like. In both of those instances, such action comprises a
request by the first user to receive a recommendation that is sent
to the online multi-player gaming environment.
[0052] The recommendation system may employ an information
filtering algorithm to determine the recommendation based on the
activity and the first data about the preferences of the second
user. The information filtering algorithm may include collaborative
filtering methods that coordinate multiple inputs from multiple
sources to formulate a recommendation. For example, the information
filtering algorithm may be a slope-one algorithm.
[0053] At 308, the recommendation may be sent to the first user.
The recommendation may include a descriptive object. The
descriptive object may be selected to be compatible with the
communications capabilities of the first user's access device. For
example, the descriptive object may include descriptive text,
price, title, length, an image of the recommendation, a preview of
the recommendation, a rating of the quality level of the
recommendation, a rating of the age-appropriateness of the
recommendation, or the like.
[0054] The recommendation may include additional content. For
example, where a song is recommended, a short sample of the song
may be included in the recommendation. The recommendation may
further include a descriptive object containing the text that
describes the song, genre information, artist information, the song
name, a photograph of the artist or album from which the song is
drawn, the length of the song, a sample of an accompanying music
video to the song, and other such information.
[0055] The descriptive object may be selected based on the
compatibility of the first user's access device. For example, the
first user's access device may include a gaming console, a cellular
telephone, a personal data assistant, a general purpose computer,
and a portable digital music player. To illustrate, where the first
user is using an portable digital music player that has the
capability to play audio files, the descriptive object might
include towards audio information. Similarly, where the first
user's access device has limited communications bandwidth, the
selected descriptive object may have a complementary small storage
size. In an embodiment, the recommendation may be sent to the first
user responsive to a request from the first user for the
recommendation. The first user may not wish to receive unsolicited
recommendations, but may welcome one when he or she initiates the
process.
[0056] In an embodiment, the recommendation may include a link to a
product. For example, the link may be a hyperlink in accordance
with the hypertext markup language (HTML), eXtensible markup
language (XML), or the like. The link may facilitate a purchase of
a product and/or service in accordance with the recommendation.
[0057] FIG. 4 is a diagram of an example computer network that may
include aspects of media reliability. Computers 400a-400e may host
various computing objects such as games or other applications.
Although the physical environment shows the connected devices as
computers, such illustration is merely for explanation and may
comprise various digital devices and processors such as PDAs, game
consoles, cellular telephones, etc. Moreover, communications
network 460 may itself comprise a number of computers, servers and
network devices such as routers and the like.
[0058] There are a variety of systems, components, and network
configurations that support distributed computing environments. For
example, computing systems may be connected together by wired or
wireless systems, by local networks or widely distributed networks.
Currently, many of such networks are coupled to the Internet, which
provides the infrastructure for widely distributed computing and
may encompass many different networks. Aspects of various
embodiments could be usable to distribute computer-readable
instructions, code fragments, applications, and the like, to
various distributed computing devices.
[0059] An example of a known network configuration is the Microsoft
Xbox.RTM. networking service. Microsoft Xbox.RTM. consoles support
home network connections to a service called Xbox LIVE.RTM.. Xbox
LIVE.RTM. is an online network developed by Microsoft that enables
Xbox.RTM. game systems to play with or against other Xbox.RTM.
users over the Internet or other network. The service allows
players to communicate verbally, maintains scoreboards, etc. The
connection allows for multi-player Internet contact.
[0060] The network infrastructure enables a host of network
topologies such as client/server, peer-to-peer, or hybrid
architectures. The client is a member of a class or group that uses
the services of another class or group to which it is not related.
Thus, in computing, a client may be a process (i.e., a set of
instructions or tasks) that requests a service provided by another
program. The client process may utilize the requested service
without having to know any working details about the other program
or the service itself. In a client/server architecture,
particularly a networked system, a client is usually a computer
that accesses shared network resources provided by another computer
(i.e., a server). A server may be a remote computer system
accessible over a remote network such as, for example, the
Internet. The client process may be active in a first computer
system, and the server process may be active in a second computer
system, communicating with one another over a communications
medium, thus providing distributed functionality and allowing
multiple clients to take advantage of the information-gathering
capabilities of the server.
[0061] Clients and servers may communicate with one another using
the functionality provided by a protocol layer. For example,
Hypertext-Transfer Protocol (HTTP) is a common protocol that is
used in conjunction with the World Wide Web (WWW). A computer
network address such as a Uniform Resource Locator (URL) or an
Internet Protocol (IP) address may be used to identify the server
or client computers to each other. Communication among computing
devices may be provided over a communications medium. In
particular, the client and server may be operatively coupled to one
another by way of TCP/IP connections for high-capacity
communication.
[0062] In general, the computer network may comprise both server
devices and client devices deployed in a network environment (in a
peer-to-peer environment devices may be both clients and servers).
Communications network 460 may be a LAN, WAN, intranet or the
Internet, or any combination thereof that facilitates communication
among a number of computing devices 400a-400e. Moreover,
communication network 460 may comprise wireless, wired or a
combination of wireless and wired connections. Additionally, the
computer network may comprise a distributed computing environment.
In such an environment, a computing task may be spread over a
number of computing devices that are addressable elements in a
computer network.
[0063] According to an embodiment, communication network 460 may
host a network service 450 that is accessible from the plurality of
computers 400a-400e. The network service 450 may gather information
and track users of computers 400a-400e to provide computing
services for the users of service 450.
[0064] FIG. 5 is a block diagram of an example game console via
which the above techniques may be implemented. In general, the
processor 500 is one type of computing device or system and is
exemplary of a computing device or system that can be used with
such techniques. In the example scenario, the processor 500
comprises a game console, such as an XBOX.RTM. game console for
example. Media content played on or read by a game console 500 may
include, but is not limited to, game content and such non-game
content as movie content, music content, audio content, video
content, video conferencing content, and/or digital video disk
(DVD) content. The game content can also include, e.g., data and
media relating to vehicles, characters, weapons, spells, levels,
updated statistics, or other such graphically displayable or game
usable information that applies to any particular game to be played
on a game console that is generally known to user/players of game
consoles. The media content can include any game content that can
optionally be combined with non-game content.
[0065] Game console 500 has a central processing unit (CPU) 501
having a level 1 (L1) cache 502, a level 2 (L2) cache 504, and a
flash ROM (Read-only Memory) 506. The level 1 cache 502 and level 2
cache 504 temporarily store data and hence reduce the number of
memory access cycles, thereby improving processing speed and
throughput. The flash ROM 506 can store executable code that is
loaded during an initial phase of a boot process when the game
console 500 is initially powered. Alternatively, the executable
code that is loaded during the initial boot phase can be stored in
a FLASH memory device (not shown). Further, ROM 506 can be located
separate from CPU 501. Game console 500 can, optionally, be a
multi-processor system; for example game console 500 can have three
processors 501, 503, and 505, where processors 503 and 505 have
similar or identical components to processor 501.
[0066] A graphics processing unit (GPU) 508 and a video
encoder/video codec (coder/decoder) 514 form a video processing
pipeline for high speed and high resolution graphics processing.
Data is carried from the graphics processing unit 508 to the video
encoder/video codec 514 via a bus. The video processing pipeline
outputs data to an A/V (audio/video) port 540 for transmission to a
television or other display device. A memory controller 510 is
connected to the GPU 508 and CPU 501 to facilitate processor access
to various types of memory 512, such as, but not limited to, a RAM
(Random Access Memory).
[0067] Processor 500 may include an I/O controller 520, a system
management controller 522, an audio processing unit 523, a network
interface controller 524, a first USB host controller 526, a second
USB controller 528 and a front panel I/O subassembly 530 that may
be implemented on a module 518. The USB controllers 526 and 528
serve as hosts for peripheral controllers 542(1)-842(2), a wireless
adapter 548, and an external memory unit 546 (e.g., flash memory,
external CD/DVD ROM drive, removable media, etc.). The network
interface 524 and/or wireless adapter 548 provide access to a
network (e.g., the Internet, home network, etc.) and may be any of
a wide variety of various wired or wireless interface components
including an Ethernet card, a modem, a Bluetooth module, a cable
modem, and the like.
[0068] System memory 543 may store application data that is loaded
during the boot process. A media drive 544 may comprise a DVD/CD
drive, hard drive, or other removable media drive, etc. The media
drive 544 may be internal or external to the game console 500. When
media drive 544 is a drive or reader for removable media (such as
removable optical disks, or flash cartridges), then media drive 544
is an example of an interface onto which (or into which) media are
mountable for reading. The media drive 544 may access the
application data 544 for execution, playback, etc. by game console
500. The media drive 544 may be connected to the I/O controller 520
via a bus, such as a Serial ATA bus or other high speed connection
(e.g., IEEE 1394). While media drive 544 may generally refer to
various storage embodiments (e.g., hard disk, removable optical
disk drive, etc.), game console 500 may specifically include a hard
disk 552, which can be used to store game data, application data,
or other types of data.
[0069] The system management controller 522 may provide a variety
of service functions related to assuring availability of the game
console 500. The audio processing unit 523 and an audio codec 532
may form a corresponding audio processing pipeline with high
fidelity, 3D, surround, and stereo audio processing according to
aspects of the present subject matter described herein. A
communication link may carry audio data between the audio
processing unit 523 and the audio codec 526. The audio processing
pipeline outputs data to the A/V port 540 for reproduction by an
external audio player or device having audio capabilities.
[0070] The front panel I/O subassembly 530 supports the
functionality of the power button 550 and the eject button 552, as
well as any LEDs (light emitting diodes) or other indicators
exposed on the outer surface of the game console 500. A system
power supply module 536 may provide power to the components of the
game console 500. A fan 538 may cool the circuitry within the game
console 500.
[0071] The interconnection between the CPU 501, GPU 508, memory
controller 510, and various other components within the game
console 500 may be via one or more buses, including serial and
parallel buses, a memory bus, a peripheral bus, and a processor or
local bus using any of a variety of bus architectures.
[0072] When the game console 500 is powered on or rebooted,
application data can be loaded from the system memory 543 into
memory 512 and/or caches 502, 504 and executed on the CPU 501. The
application can present a graphical user interface that provides a
consistent user experience when navigating to different media types
available on the game console 500. In operation, applications
and/or other media contained within the media drive 544 may be
launched or played from the media drive 544 to provide additional
functionalities to the game console 500.
[0073] The game console 500 may be operated as a standalone system
by simply connecting the system to a television or other display.
In this standalone mode, the game console 500 may allow one or more
users to interact with the system, watch movies, listen to music,
and the like. However, with the integration of broadband
connectivity made available through the network interface 524 or
the wireless adapter 548, the game console 500 may further be
operated as a participant in a larger network community.
[0074] A computer system can be roughly divided into three
component groups: the hardware component, the hardware/software
interface system component, and the applications programs component
(also referred to as the "user component" or "software component").
In various embodiments of a computer system the hardware component
may comprise the central processing unit (CPU) 521, the memory
(both ROM 564 and RAM 525), the basic input/output system (BIOS)
566, and various input/output (I/O) devices such as a keyboard 540,
a mouse 562, a monitor 547, and/or a printer (not shown), among
other things. The hardware component comprises the basic physical
infrastructure for the computer system.
[0075] FIG. 6 illustrates an exemplary system for implementing
aspects of the presently disclosed subject matter, including a
general purpose computing device in the form of a computer 641.
Components of computer 641 may include, but are not limited to, a
processing unit 659, a system memory 622, a graphics processing
unit 629 (and a graphics interface 631), a video memory 630 (and a
video interface 632), and a system bus 621 that couples various
system components including the system memory 622 to the processing
unit 659. The system bus 621 may be any of several types of bus
structures, including a memory bus or memory controller, a
peripheral bus, and a local bus using any of a variety of bus
architectures. By way of example and not limitation, such
architectures include Industry Standard Architecture (ISA) bus,
Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus,
Video Electronics Standards Association (VESA) local bus, and
Peripheral Component Interconnect (PCI) bus (also known as
Mezzanine bus).
[0076] Computer 641 typically includes a variety of
computer-readable media. Computer-readable media can be any
available media that can be accessed by computer 641, and includes
both volatile and nonvolatile media, removable and non-removable
media. By way of example and not limitation, computer-readable
media may comprise computer storage media and communication media.
Computer storage media includes both volatile and nonvolatile,
removable and non-removable media implemented in any method or
technology for storage of information such as computer readable
instructions, data structures, program modules or other data.
Computer storage media includes, but is not limited to, random
access memory (RAM), read-only memory (ROM), electronically
erasable programmable read-only memory (EEPROM), flash memory or
other memory technology, CD-ROM, digital versatile disks (DVD) or
other optical disk storage, magnetic cassettes, magnetic tape,
magnetic disk storage or other magnetic storage devices, or any
other medium which can be used to store the desired information and
which can be accessed by computer 641.
[0077] Communication media typically embodies computer readable
instructions, data structures, program modules or other data in a
modulated data signal such as a carrier wave or other transport
mechanism, and includes any information delivery media. The term
"modulated data signal" means a signal that has one or more of its
characteristics set or changed in such a manner as to encode
information in the signal. By way of example and not limitation,
communication media includes wired media such as a wired network or
direct-wired connection, and wireless media such as acoustic, RF,
infrared and other wireless media. Combinations of the any of the
above should also be included within the scope of computer readable
media.
[0078] The system memory 622 includes computer storage media in the
form of volatile and/or nonvolatile memory such as read only memory
(ROM) 623 and random access memory (RAM) 660. A basic input/output
system 624 (BIOS), containing the basic routines that help to
transfer information between elements within computer 641, such as
during start-up, is typically stored in ROM 623. RAM 660 typically
contains data and/or program modules that are immediately
accessible to and/or presently being operated on by processing unit
659. By way of example and not limitation, FIG. 6 illustrates
operating system 625, application programs 626, other program
modules 627, and program data 628.
[0079] The computer 641 may also include other
removable/non-removable, volatile/nonvolatile computer storage
media. By way of example only, FIG. 6 illustrates a hard disk drive
638 that reads from or writes to non-removable, nonvolatile
magnetic media, a magnetic disk drive 639 that reads from or writes
to a removable, nonvolatile magnetic disk 654, and an optical disk
drive 640 that reads from or writes to a removable, nonvolatile
optical disk 653 such as a CD-ROM or other optical media. Other
removable/non-removable, volatile/nonvolatile computer storage
media that can be used in the exemplary operating environment
include, but are not limited to, magnetic tape cassettes, flash
memory cards, digital versatile disks, digital video tape, solid
state RAM, solid state ROM, and the like. The hard disk drive 638
is typically connected to the system bus 621 through a
non-removable memory interface such as interface 634, and magnetic
disk drive 639 and optical disk drive 640 are typically connected
to the system bus 621 by a removable memory interface, such as
interface 635.
[0080] The drives and their associated computer storage media
discussed above and illustrated in FIG. 6 provide storage of
computer readable instructions, data structures, program modules
and other data for the computer 641. In FIG. 6, for example, hard
disk drive 638 is illustrated as storing operating system 658,
application programs 657, other program modules 656, and program
data 655. Note that these components can be either the same as or
different from operating system 625, application programs 626,
other program modules 627, and program data 628. Operating system
658, application programs 657, other program modules 656, and
program data 655 are given different numbers here to illustrate
that, at a minimum, they are different copies. A user may enter
commands and information into the computer 641 through input
devices such as a keyboard 651 and pointing device 652, commonly
referred to as a mouse, trackball or touch pad. Other input devices
(not shown) may include a microphone, joystick, game pad, satellite
dish, scanner, or the like. These and other input devices are often
connected to the processing unit 659 through a user input interface
636 that is coupled to the system bus, but may be connected by
other interface and bus structures, such as a parallel port, game
port or a universal serial bus (USB). A monitor 642 or other type
of display device is also connected to the system bus 621 via an
interface, such as a video interface 632. In addition to the
monitor, computers may also include other peripheral output devices
such as speakers 644 and printer 643, which may be connected
through an output peripheral interface 633.
[0081] The computer 641 may operate in a networked environment
using logical connections to one or more remote computers, such as
a remote computer 646. The remote computer 646 may be a personal
computer, a server, a router, a network PC, a peer device or other
common network node, and typically includes many or all of the
elements described above relative to the computer 641, although
only a memory storage device 647 has been illustrated in FIG. 6.
The logical connections depicted in FIG. 6 include a local area
network (LAN) 645 and a wide area network (WAN) 649, but may also
include other networks. Such networking environments are
commonplace in offices, enterprise-wide computer networks,
intranets and the Internet.
[0082] When used in a LAN networking environment, the computer 641
is connected to the LAN 645 through a network interface or adapter
637. When used in a WAN networking environment, the computer 641
typically includes a modem 650 or other means for establishing
communications over the WAN 649, such as the Internet. The modem
650, which may be internal or external, may be connected to the
system bus 621 via the user input interface 636, or other
appropriate mechanism. In a networked environment, program modules
depicted relative to the computer 641, or portions thereof, may be
stored in the remote memory storage device. By way of example and
not limitation, FIG. 6 illustrates remote application programs 648
as residing on memory device 647. It will be appreciated that the
network connections shown are exemplary and other means of
establishing a communications link between the computers may be
used.
[0083] It should be understood that the various techniques
described herein may be implemented in connection with hardware or
software or, where appropriate, with a combination of both. Thus,
the methods and apparatus of the presently disclosed subject
matter, or certain aspects or portions thereof, may take the form
of program code (i.e., instructions) embodied in tangible media,
such as floppy diskettes, CD-ROMs, hard drives, or any other
machine-readable storage medium wherein, when the program code is
loaded into and executed by a machine, such as a computer, the
machine becomes an apparatus for practicing the presently disclosed
subject matter. In the case of program code execution on
programmable computers, the computing device generally includes a
processor, a storage medium readable by the processor (including
volatile and non-volatile memory and/or storage elements), at least
one input device, and at least one output device. One or more
programs may implement or utilize the processes described in
connection with the presently disclosed subject matter, e.g.,
through the use of an API, reusable controls, or the like. Such
programs are preferably implemented in a high-level procedural or
object oriented programming language to communicate with a computer
system. However, the program(s) can be implemented in assembly or
machine language, if desired. In any case, the language may be a
compiled or interpreted language, and may be combined with hardware
implementations.
[0084] FIG. 7 illustrates an example system for providing a
targeted recommendation to a user based a using a social
online-multiplayer gaming environment 700. In one embodiment, a
first user accesses the environment via the first user's access
device 702. This device could comprise an e-commerce or advertising
client capable of playing games, a dedicated gaming device, or a
music or other device interface that is capable of playing games.
The data transmitted during the course of this interaction between
the first user and the environment is captured and stored by the
behavioral data collection component 704 of the environment. The
data is then sent to the behavioral data cleansing and aggregation
component 706, which filters out unnecessary information to the
process of determining a recommendation, transmits it to the
correct databases (the user database 708, the item database 710 and
the games database) as well as aggregates it to the level necessary
for proper processing.
[0085] Then, the data analytics and inference engine 714 takes
information about items contained in the item database 710 as well
as information aggregated from the first user's behavior, as well
as existing information about the first user, his or her friends,
and his or her social network. This data analytics and inference
engine 714 determines amongst all relevant items in the item
database 710, the best recommendation for the first user, given his
or her past behaviors well as the behavior of his or her friends in
his social networks. For example, if all of the first user's
friends have purchased a certain game's additional map and the
first user has not, the likelihood of the first user purchasing
that map is much higher than him or her buying an item in which no
one in his or her network has show interest.
[0086] The recommendation component 716 takes the calculated
relevance of each recommendable item from the data analytics and
inference engine 714 and combines it with data from the user
database 708, item database 710 and games database 712 in order to
determine a recommendation to send to the first user. In one
embodiment, this recommendation is the recommendation determined to
be most helpful to the user. Along with the recommendation can be
sent meta-data about the recommendation. For example, where the
recommendation is a song, an image of the artist or album
associated with the song, as well as text covering the song name,
the artist name, the album name, the length of the song, similar
artists, and a description of the song may be sent along with a
link to purchase the item. This recommendation is then returned to
the first user.
[0087] FIG. 7 is a block diagram of an exemplary processor 700 for
implementing the systems and methods disclosed herein. The
processor 700 may include a processing portion 702, a memory
portion 704, and an input/output portion 706. Coupling the
processing portion 702, memory portion 704, and input/output
portion 706 together (coupling not shown in FIG. 7) may allow
communications there-between. The input/output portion 706 is
capable of providing and/or receiving content over a network as
described above.
[0088] The processor 700 can be implemented as a client processor
and/or a server processor. In a basic configuration, the processor
700 can include at least one processing portion 702 and memory
portion 704. The memory portion 704 can store any information
utilized in conjunction with media reliability. Depending upon the
exact configuration and type of processor, the memory portion 704
can be volatile (such as RAM) 708, non-volatile (such as ROM, flash
memory, etc.) 710, or a combination thereof. The processor 700 may
include both removable storage 712 and non-removable storage 714
including, but not limited to, magnetic or optical disks, tape,
flash, smart cards or the like. Computer storage media, such as
memory portions 704, 708, 710, 712, and 714, may include volatile
and nonvolatile, removable and non-removable media implemented in
any method or technology for storage of information such as
computer readable instructions, data structures, program modules,
or other data. Computer storage media include, but are not limited
to, RAM, ROM, EEPROM, flash memory or other memory technology,
CD-ROM, digital versatile disks (DVD) or other optical storage,
magnetic cassettes, magnetic tape, magnetic disk storage or other
magnetic storage devices, universal serial bus (USB) compatible
memory, smart cards, or any other medium which can be used to store
the desired information and which can be accessed by the processor
700. Any such computer storage media can be part of the processor
700.
[0089] The processor 700 can also contain communications
connection(s) 720 that allow the processor 700 to communicate with
other devices. Communications connection(s) 720 is an example of
communication media. Communication media typically embodies
computer readable instructions, data structures, program modules or
other data in a modulated data signal such as a carrier wave or
other transport mechanism and may include any information delivery
media. Modulated data signal may compose a signal that has one or
more of its characteristics set or changed in such a manner as to
encode information in the signal. By way of example, and not
limitation, communication media may include wired media such as a
wired network or direct-wired connection, and wireless media such
as acoustic, RF, infrared and other wireless media. The term
computer readable media as used herein may include both storage
media and communication media. The processor 700 also can have
input device(s) 718 such as keyboard, mouse, pen, voice input
device, touch input device, etc. Output device(s) 716 such as a
display, speakers, printer, etc. also can be included.
* * * * *