Embodiments of the invention relate generally to computer-implemented venture exchanges, and more particularly, to systems, computer-readable media, and methods for predicting an affinity to engage in a particular venture, such as a bet, and recommending participation in a networked exchange, which can be a computer-implemented betting exchange.
Conventional betting exchanges are computer networked processes that provide virtual trading places at which individuals invest (e.g., bet) on outcomes that they predict are likely to occur. Typically, an operator of a betting exchange—or bookmaker—determines the outcomes (or at least influences the details of bets), and mediates the resolution of the bets among many individuals. Bets available in the betting exchanges are usually open to large numbers of individuals, most of whom do not know the identities of the other individuals.
Conventional betting exchanges generally have large quantities of bets, as well as many different types of bets. Generally, traditional betting exchanges typically present bets to the betting community at-large. Usually, the presentation of numerous bets can obfuscate other bets, thereby further increasing the quantities of bets that an individual needs to search. This can lead to inefficiencies as some bets that cannot be easily found may remain “unmatched.” An unmatched bet is a bet that has yet to found and matched by another individual. Unmatched bets tie up individuals' wagers for an extended amount of time, thereby decreasing enthusiasm for betting, as well as the rate which bets are processed (which, in turn, reduces liquidity). Further, many typical betting exchanges do not provide a vehicle to sufficiently facilitate camaraderie and cohesiveness among individuals who prefer certain bets and/or know each other. This, in turn, can also dampen participation that might otherwise be present when individuals bet competitively with other known individuals.
It would be desirable to provide improved techniques, systems, computer-readable media, and methods that minimize one or more of the drawbacks associated with conventional techniques for facilitating the exchange of bets.
The invention and its various embodiments are more fully appreciated in connection with the following detailed description taken in conjunction with the accompanying drawings, in which:
Like reference numerals refer to corresponding parts throughout the several views of the drawings. Note that most of the reference numerals include one or two left-most digits that generally identify the figure that first introduces that reference number.
Various embodiments or examples of the invention may be implemented in numerous ways, including as a system, a process, an apparatus, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical, electronic, or wireless communication links. In general, operations of disclosed processes may be performed in an arbitrary order, unless otherwise provided in the claims.
A detailed description of one or more examples is provided below along with accompanying figures. The detailed description is provided in connection with such examples, but is not limited to any particular example. The scope is limited only by the claims, and numerous alternatives, modifications, and equivalents are encompassed. Numerous specific details are set forth in the following description in order to provide a thorough understanding. These details are provided as examples and the described techniques may be practiced according to the claims without some or all of the accompanying details. For clarity, technical material that is known in the technical fields related to the examples has not been described in detail to avoid unnecessarily obscuring the description.
In at least some embodiments, recommendation generator 150 can include either a venture affinity predictor 152 or a presentation engine 154, or both. Venture affinity predictor 152 can be configured to determine ventures for which user 103 has an affinity based on information from any number of sources. Examples of sources of such information include pool of participants 102, sub-pool participants 105, and user 103. Venture affinity predictor 152 can receive data representing global attributes 115 (as information from pool of participants 102) to generate recommendations expressed in terms, for example, of aggregated attributes of the participants. Thus, venture affinity predictor 152 can use global attributes 115 for predicting ventures that, for example, might appeal to a predominant number of participants in pool of participants 102. In some cases, venture affinity predictor 152 uses global attributes 115 to generate venture recommendations when other sources of information are limited (e.g., when user 103 is not logged in or a registered member of venture exchange system 100). Venture affinity predictor 152 can also receive data representing group attributes 114, which can describe the characteristics for the ventures in which one or more of sub-pool participants 105 participate. Further, venture affinity predictor 152 can receive data representing user-specific attributes 128, which can describe characteristics of user 103. User-specific attributes 128 can be derived from one or more views 120 (or sessions) of interface 108. For example, user-specific attributes 128 can be provided via view 120a, which can include an electronic form into which user 103 inputs user-specific information, such as name, gender, age, residence, etc. As another example, user-specific attributes 128 can be provided responsive to the interaction of user 103 with one or more views 120a to 120c. For example, user-specific attributes 128 can include information indicating recommended bets that were presented to user 103, but were not selected. Thus, venture affinity predictor 152 can predict that other bets having similar attributes as the unselected recommended ventures likely will not be selected, too. Therefore, those types of ventures can be recommended less or not at all, at least with respect to user 103. In operation, venture affinity predictor 152 can use group attributes 114, global attributes 115, and user-specific attributes 128, or any combination thereof, to generate venture recommendations for which user 103 likely will have an affinity. Recommendation generator 150 can provide the venture recommendations (e.g., as data representing user-specific venture recommendations 126) to a portion (“P2”) 110 of interface 108.
In at least some embodiments, presentation engine 154 can be configured to optimize the presentation of the venture recommendations in a manner that user 103 can readily detect ventures in which user 103 is interested. For example, presentation engine 154 can be configured to order venture recommendations for presentation at portion 110 of interface 108 as a function of group attributes 114, global attributes 115, and/or user-specific attributes 128. In at least one embodiment, recommendation generator 150 can include a venture creation unit 156, which can be configured to create a customized venture responsive to venture creation factors 122 input into a portion (“P3”) 112 of interface 108. Examples of venture creation factors 122 include identifiers (e.g., names) of sub-pool participants 105 and indications whether to limit access to a venture to only sub-pool participants 105, thereby making it private and inaccessible to others in pool of participants 102. Further, recommendation generator 150 can be configured to access group attributes 114, filter those attributes, and stream data representing friend ventures 124 to a portion (“P1”) 109 of interface 108. The streaming attributes can be displayed on portion 109 of interface 108 to report bet-related activities as a betting activity ticker or feed. In some instances, the betting activity ticker or feed can be implemented similar to a news feed-like format. Thus, user 103 can observe ventures in which his/her friends are participating, and can also participate in friend-created ventures, among other betting news-related information or things.
In view of the foregoing, the structures and/functionalities of recommendation generator 150 can provide recommendations that user 103 prefers, and can present the recommendations in a manner that facilitates expeditious searching to locate suitable ventures in which to participate. The recommendations can be a function of group attributes 114, thereby providing user 103 with recommended ventures as a function of the ventures in which friends 105 participate. The friends can presumably be trustworthy sources of information for predicting ventures that might also interest user 103. Additionally, recommendation generator 150 can tune the ventures that are recommended by monitoring which presented recommendations are ignored by user 103. Further, recommendation generator 150 can use global attributes 115 to present venture recommendations as a function of the aggregate behaviors and/or selections of pool of participants 102, rather than relying on, for example, keyword-related recommendations. Thus, recommendation generator 150 can reduce the search cost for user 103 to find ventures (e.g., bets) that they would be interested in. Any number of views 120 (e.g., as served web pages) can be used to continuously collect and process data. In various embodiments, any of the described elements in
Sub-pool venture analyzer 234 can be configured to receive friend-related data 206 (e.g., as group attributes) in connection with ventures in which the user's friends are participating, in at least some embodiments. Sub-pool venture analyzer 234 can analyze the ventures that the user's friends are participating in, and can extract information that can be useful to predict whether a user prefers one or more bets over other bets. Sub-pool venture analyzer 234 can store friend-related data 206 in sub-pool database (“DB”) 240. Examples of friend-related data 206 can include: an amount of friends of the user that have participated in a venture/bet, the amounts wagered as a function of one or more friends, activity levels of any friend (e.g., adding or removing units of value for a bet), a list of bets that any friend is participating in, search results of any friend's search, and the like. User activity tracker 236 can be configured to receive user activity context data 202 (e.g., as at least a portion of user-specific attributes) in connection with the activities of the user for various ventures, in at least some embodiments. User activity tracker 236 can store user activity context data 202 in user-specific attributes repository 242. In operation, user activity tracker 236 can analyze the context in which the user is reviewing, searching, selecting (and not selecting), and participating in various ventures. For example, user activity tracker 236 can determine which recommended ventures (e.g., generated by the recommendation generator) were ignored by the user, based on user activity context data 202. User model generator 222 can use this information to exclude or deemphasize presentation of similar ventures for recommendation purposes. Examples of other user activity context data 202 include: (1) the page context data that describes the category factor associated with any web page view by the user (so that venture affinity predictor 220 can emphasize or enhance the prediction of other similar bets based on user-favored categories), (2) the amount of times a user viewed a bet, (3) the bet subject matter for determining whether the user is a fan of a particular subject (for example, a team or a player) for predicting that bets about that subject matter are likely to be preferable to the user, (4) the geographic location of the user as determined, for example, by mapping an IP address to a geographical location, (5) recent actions of the user (e.g., adding a bet, increasing/decreasing a bet amount, etc.) to discover the temporal “mood” of the user during a period of time, and present bets that the user currently is more interested in, (6) the number of times the user has participated in bets of the same category, (7) the number of times the user has participated in similar bets, (8) the amount of money the user has wagered on a bet, (9) the frequency that a user wins similar bets, (10) favored outcomes that the user typically selects (e.g., user predominantly bets either “for” or “against” an outcome, etc.), and the like. Attribute manager 238 can be configured to manage the usage and/or storage of user-specific attributes in repository 242 and global attributes in repository 244, in at least some embodiments. Attribute manager 238 can store explicit attribute data 208 as user-specific data in user-specific attributes repository 242. In one embodiment, explicit attribute data 208 can be extracted from an electronic form into which the user enters user-specific information directly, or from surveys. Attribute manager 238 can also operate to manage the usage and/or storage of global attributes 209 in repository 244. Examples of global attributes 209 include: (1) an amount of money in the pot for a bet, (2) the number of participants who have participated in a bet, (3) recent activity relating to the bet (e.g., how many bets have been placed in the last 24 hours), (4) the expiration time at which the bet will close, (5) how soon the bet will resolve, (6) betting volumes for a bet (e.g., rate at which units of value flow into a pot, amounts of individuals participating), and the like.
User model generator 222 can be configured to generate a data model representing the likes (e.g., affinity for participating in a venture/bet) and dislikes, and to store the data model in repository 246. In at least some embodiments, the user model includes a data arrangement of data (or a subset thereof) stored in repositories 240 to 244, the data arrangement being well-suited for use by prediction engine 224.
Prediction engine 224 can be configured to generate recommended ventures 210 for delivery to a presentation engine (not shown). Prediction engine 224 can be further configured to access data in repository (“venture-specific data”) 248 and repository (“prediction generation rules”) 249. Repository 248 maintains data representing bets (e.g., all bets, public or otherwise) available to one or more participants, including the user and its friends. Repository 249 can include prediction generation rules that guide the prediction engine 224 in performing the recommendation process. In at least some embodiments, the prediction generation rules cause prediction engine 224 to identify open bets (i.e., not closed) and generate a list of those bets that are open. The prediction generation rules can also cause prediction engine 224 to filter bets on the list as a function of venture selection context data 202. For example, if venture selection context data 202 indicate that the user has viewed or is viewing a category sub-page (e.g., one level down into a category, such as baseball in the sports category), then venture recommendations can be limited to bets within the category (or sub-category). Next, prediction engine 224 can be configured to rank the bets as a function of the data in the user model repository 246. The prediction rules can then also cause prediction engine 224 to evaluate the venture selection context data 202 to determine recent activity to, for example, to identify unselected recommendations for subsequent de-emphasis. According to various embodiments, the prediction generation rules can cause prediction engine 224 to perform any type of ranking or weighting to determine the most relevant recommendations to present to a user. For example, if the prediction rules attribute more weight to locality than other attributes, then prediction engine 224 can evaluate the IP address to present geographically relevant ventures/bets to a user (e.g., bets relating to a local minor league ball team in Visalia, Calif.).
Presentation manager 314 can be configured to generate user-specific venture recommendations 316 for review by a user. Presentation manager 314 can be further configured to access user-specific attributes and global attributes in repositories 332 and 334, respectively. Then, presentation manager 314 can tune the presentation of user-specific venture recommendations 316, according to how the presentation rules in repository 336 causes presentation manager 314 to process the attributes. In various embodiments, the presentation rules that are implemented can vary depending on how an interface or window is to be presented to a user. For example, for a first page (e.g., an introductory or “dashboard” page), the presentation rules can be configured to cause presentation manager 314 to present recommended ventures/bets at the top of an interface. In some cases, presentation manager 314 can also present a betting activity ticker or feed on the first page to display the latest activity in the network of friends for the user. The betting activity ticker or feed can include recommendations embedded within it. For a second page (e.g., a user profile page), the presentation rules can be configured to cause presentation manager 314 to present a subset of the bets that the user is participated/has participated in. Presentation manager 314 can use the attributes to determine which bets constitute the subset of venture recommendations that are to be presented to the user. In some embodiments, presentation manager 314 can be configured to present user-specific venture recommendations 316 in a “mini view” on interface 398. A “mini view” can be a portion of interface 398 in which a bet is displayed with an identifier (e.g., a name, such as “Who will win the World Series”) and/or photo (e.g., photo of Kobe Bryant for a basketball bet), a favored outcome (as provided by user-specific attribute data, or by a user model), friend-related information, and an amount of value units wagered. Presentation manager 314 can be configured to display the bets within a particular category, and can determine which bets to display and in which order. Presentation manager 314 can be configured to order search results responsive to a search query. Presentation manager 314 can be configured to display other bets that the user is likely to participate in. Presentation manager 314 can also be configured to show recommended bets after a user has placed a bet and invited friends to participate in the bet that the user made.
In some embodiments, presentation manager 314 can include a message generator 390 that can be configured to transmit user-specific venture recommendations 316 via any number of communication media, channels, or techniques. For example, message generator 390 can transmit one or more user-specific venture recommendations 316 as a Short Message Service (“SMS”) message 392, an email message 394, or any other type of electronic message 396.
In this example, recommended bet portion 512 includes information originating from various sources to describe a bet offered to a user in a manner that can influence participation. As shown, recommended bet portion 512 is depicted as a shortened view (or mini view) of a bet. A mini view presents an outcome, such as outcome (“George Washington”) 516 for the bet having a title 510 of “2008 US Presidential Election Winner.” In various embodiments, a recommendation generator can determine an affinity (e.g., a user's affinity) for George Washington, whether in the context of previous bets or any other tangential activity (e.g., searches for George Washington, etc.), and can recommend George Washington as an outcome. Recommended bet portion 512 also includes a field 514 suggesting a unit of value (e.g., 20 units) that can be over-written with any other number of units of value. Also included is an indication of an amount (e.g., expressed as a percentage) of people (either in the pool of participants or in the sub-pool of friends, as well as a specific individual (not shown)) that have picked the outcome presented. As such, friend-related information can be presented coincident to the presentation of an outcome of a bet to provide a user with real-time information based on select individuals' choices. Part 518 of recommended bet portion 512 is shown to include “Xxxxx,” which can be representative of the total pot. A user input 520 can be configured to activate participation in a bet. Part 522 of recommended bet portion 512 is shown to include “another outcome” selection, which can be a link to an alternative outcome should the recommend outcome 516 not be attractive to the user. Further, part 524 of recommended bet portion 512 is shown to include “closes in 6 months,” which is the time left until the bet closes and further participation and/or bet alterations are locked out.
Next, consider a case in which the user desires to search for a bet based on ordered categories 560, which can be presented in a manner as determined by a recommendation generator. Here, the user uses cursor 510 to select the “Sports” category (note that the subsequent presentation of results can be obtained by entering “Sports” into field 540).
In some examples, logic module 1012 can be configured to control panel generator 1014 to form panels that include venture recommendations. Rendering engine 1008 can be configured to operate as a layout engine for web pages, for example, to manipulate both content (e.g., as expressed in or including HTML, XML, image files, etc.) and formatting information (e.g., as expressed in or including CSS, XSL, etc.) for rendering the data or information as one or more panels on an interface. Interface module 1004 can exchange panel presentation data, including content data, image data, audio data, as well as other data, between application 1002 and another application (e.g., a host, client, web services-based, distributed (i.e., enterprise), application programming interface (“API”), operating system, program, procedure or others) that can use data and information generated from panel generator 1014 to render presented panels on a display screen. In other examples, the above-described techniques and elements can be varied in design, implementation, and function and are not limited to the descriptions provided. In one embodiment, logic module 1012 can include a recommendation generator 1090 that is configured to include structure and/or functionality similar to previously-described recommendation generators.
In some examples, logic module 1024 and panel generator 1022 can be implemented as part of application 1020, which can be implemented separately from other functional components or modules, such as interface module 1026, display module 1028, rendering module 1030, and repository 1032. Data bus 1034 can be implemented to communicate data over a given port between application 1020 and interface module 1026, display module 1028, rendering module 1030, and repository 1032. In other words, application 1020 can be implemented as a standalone application or as a component (i.e., module) of another application. Data or information associated with a panel can be stored in repository 1032, which can be implemented using a database, data store, data warehouse, or any other type of data repository or structure. In other examples, more, fewer, or different modules can be used to implement the described techniques for panel presentation and are not limited to those provided.
According to some examples, computer system 1100 performs specific operations in which processor 1104 executes one or more sequences of one or more instructions stored in system memory 1106. Such instructions can be read into system memory 1106 from another computer readable medium, such as static storage device 1108 or disk drive 1110. In some examples, hard-wired circuitry can be used in place of or in combination with software instructions for implementation. In the example shown, system memory 1106 includes modules of executable instructions for implementing an operation system (“O/S”) 1132, an application 1136, and a recommendation generator 1138.
The term “computer readable medium” refers, at least in one embodiment, to any medium that participates in providing instructions to processor 1104 for execution. Such a medium can take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1110. Volatile media includes dynamic memory, such as system memory 1106. Transmission media includes coaxial cables, copper wire, and fiber optics, including wires that comprise bus 1102. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, wave, or any other medium from which a computer can read.
In some examples, execution of the sequences of instructions can be performed by a single computer system 1100. According to some examples, two or more computer systems 1100 coupled by communication link 1120 (e.g., LAN, PSTN, or wireless network) can perform the sequence of instructions in coordination with one another. Computer system 1100 can transmit and receive messages, data, and instructions, including program code (i.e., application code) through communication link 1120 and communication interface 1112. Received program code can be executed by processor 1104 as it is received, and/or stored in disk drive 1110, or other non-volatile storage for later execution. In one embodiment, system 1100 is implemented as a hand-held device, such as a mobile phone 1150. But in other embodiments, system 1100 can be implemented as a personal computer (i.e., a desk top computer) or any other computing device.
In some examples, one or more panels for creating electronic documents can be presented on interface 1206, which can be an interface for an application such as a web browsing program, Internet content portal, client or desktop application for any purpose. Interface 1206, in some embodiments, can include Uls for stand-alone video players, including a DVD-player UI. Panels can be used to provide additional or supplemental information that can be contextually relevant to another panel presented in interface 1206. Computer 1208, notebook computer (“notebook” or “laptop”) 1210, smart phone 1212, personal digital assistant (“PDA”) 1214, server 1216, and administrator computer 1218 can provide content data for rendering content as well as other data, which can be implemented to generate, for example, an electronic form and content input field in interface 1206. In some cases, an operating system installed on computer 1208 can communicate (i.e., via an application programming interface (“API”)) content data and/or other related data to another application installed on computer 1208 to render (i.e., interpreting data and information to draw or display the content in an interface) one or more panels presented in interface 1206. In some examples, different types of panels can be rendered in interface 1206. In one embodiment, interface 1206 can include any number and/or any type of display environments, such as CRT and LCD displays. Note that the above-described system and elements can be varied and are not limited to the descriptions or examples provided. In at least some of the embodiments of the invention, the structures and/or functions of any of the above-described interfaces and panels can be implemented in software, hardware, firmware, circuitry, or a combination thereof. Note that the structures and constituent elements shown herein, as well as their functionality, can be aggregated with one or more other structures or elements. Alternatively, the elements and their functionality can be subdivided into constituent sub-elements, if any. As software, the above-described described techniques can be implemented using various types of programming or formatting languages, frameworks, syntax, applications, protocols, objects, or techniques, including C, Objective C, C++, C#, Flex™, Fireworks®, Java™, Javascript™, AJAX, COBOL, Fortran, ADA, XML, HTML, DHTML, XHTML, HTTP, XMPP, Ruby, Ruby on Rails, and others, such as MySQL. These can be varied and are not limited to the examples or descriptions provided.
The various embodiments of the invention can be implemented in numerous ways, including as a system, a process, an apparatus, or a series of program instructions on a computer readable medium such as a computer readable storage medium or a computer network where the program instructions are sent over optical or electronic communication links. In general, the steps of disclosed processes can be performed in an arbitrary order, unless otherwise provided in the claims.
The foregoing description, for purposes of explanation, uses specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. In fact, this description should not be read to limit any feature or aspect of the present invention to any embodiment; rather features and aspects of one embodiment can readily be interchanged with other embodiments. Notably, not every benefit described herein need be realized by each embodiment of the present invention; rather any specific embodiment can provide one or more of the advantages discussed above. In the claims, elements and/or operations do not imply any particular order of operation, unless explicitly stated in the claims. It is intended that the following claims and their equivalents define the scope of the invention.