A method for constructing a context profile within a system implementing symmetrical object profiles. The method includes establishing one or more contextual boundary parameters defining a context within which transactions occur. A plurality of transactions associated with the context is filtered using the contextual boundary parameters to obtain a pool of filtered transactions. Each of the transactions is conducted between at least two objects in the system including a plurality of objects associated with the symmetrical object profiles. An array of filtered objects including objects involved in at least one filtered transaction is established. Each filtered object is defined by a current version of a corresponding object profile and is associated with a corresponding transaction. The method includes generating a context object profile associated with the context that is based on attribute values of filtered object profiles associated with the array of filtered objects.
|
10. A method of recommending objects comprising:
storing a plurality of symmetrical objects and a plurality of past selections, the plurality of symmetrical objects including a plurality of consumer objects and a plurality of inanimate objects, the plurality of symmetrical objects having attribute names that match, each attribute name having a value, each past selection including two or more symmetrical objects;
determining a time range, a location, and a consumer object based on received consumer information, the consumer object being one of the plurality of symmetrical objects;
identifying a plurality of filtered selections from the plurality of past selections, the plurality of filtered selections having been selected in the past during the time range and from the location, the plurality of filtered selections including a plurality of filtered objects, each filtered object being one of the plurality of symmetrical objects;
determining a plurality of total differences for the plurality of filtered objects such that a total difference is determined for each filtered object, determining the plurality of total differences including:
for each filtered object,
determining a plurality of attribute differences such that an attribute difference is determined for each attribute name of a filtered object, each attribute difference being a difference between a value of an attribute name of the consumer object and a value of a corresponding attribute name of the filtered object; and
summing the plurality of attribute differences to determine the total difference for the filtered object; and
selecting the filtered object that has a smallest total difference to be a recommended object.
1. A non-transitory computer-readable medium having computer executable instructions for performing a method for recommending objects, the method comprising:
storing a plurality of symmetrical objects and a plurality of past selections, the plurality of symmetrical objects including a plurality of consumer objects and a plurality of inanimate objects, the plurality of symmetrical objects having attribute names that match, each attribute name having a value, and each past selection including two or more symmetrical objects;
determining a time range, a location, and a consumer object based on received consumer information, the consumer object being one of the plurality of symmetrical objects;
identifying a plurality of filtered selections from the plurality of past selections, the plurality of filtered selections having been selected in the past during the time range and from the location, the plurality of filtered selections including a plurality of filtered objects, each filtered object being one of the plurality of symmetrical objects;
determining a plurality of total differences for the plurality of filtered objects such that a total difference is determined for each filtered object, determining the plurality of total differences including:
for each filtered object,
determining a plurality of attribute differences such that an attribute difference is determined for each attribute name of a filtered object, each attribute difference being a difference between a value of an attribute name of the consumer object and a value of a corresponding attribute name of the filtered object; and
summing the plurality of attribute differences to determine the total difference for the filtered object; and
selecting the filtered object that has a smallest total difference to be a recommended object.
18. A computer system comprising:
a processor; and
a memory coupled to the processor and having stored therein instructions that, if executed by the computer system, cause the computer system to execute a method comprising:
storing a plurality of symmetrical objects and a plurality of past selections, the plurality of symmetrical objects including a plurality of consumer objects and a plurality of inanimate objects, the plurality of symmetrical objects having attribute names that match, each attribute name having a value, each past selection including two or more symmetrical objects;
determining a time range, a location, and a consumer object based on received consumer information, the consumer object being one of the plurality of symmetrical objects;
identifying a plurality of filtered selections from the plurality of past selections, the plurality of filtered selections having been selected in the past during the time range and from the location, the plurality of filtered selections including a plurality of filtered objects, each filtered object being one of the plurality of symmetrical objects;
determining a plurality of total differences for the plurality of filtered objects such that a total difference is determined for each filtered object, determining the plurality of total differences including:
for each filtered object,
determining a plurality of attribute differences such that an attribute difference is determined for each attribute name of a filtered object, each attribute difference being a difference between a value of an attribute name of the consumer object and a value of a corresponding attribute name of the filtered object; and
summing the plurality of attribute differences to determine the total difference for the filtered object; and
selecting the filtered object that has a smallest total difference to be a recommended object.
2. The non-transitory computer-readable medium of
the plurality of filtered objects are consumer objects or inanimate objects.
3. The non-transitory computer-readable medium of
the values of the attribute names of the filtered objects are values currently associated with the attribute names.
4. The non-transitory computer-readable medium of
5. The non-transitory computer-readable medium of
6. The non-transitory computer-readable medium of
the location includes a physical location and a virtual location; and
the plurality of consumer objects includes psychographic information.
7. The non-transitory computer-readable medium of
the plurality of filtered selections is identified with a context object, the context object having a plurality of attribute names, each attribute name of the context object having a value that is equal to an average value of the corresponding attribute names of the plurality of filtered objects.
8. The non-transitory computer-readable medium of
9. The non-transitory computer-readable medium of
11. The method of
wherein the plurality of filtered objects are consumer objects or inanimate objects.
12. The method of
the values of the attribute names of the filtered objects are values currently associated with the attribute names.
13. The method of
14. The method of
the location includes a physical location and a virtual location; and
the plurality of consumer objects includes psychographic information.
15. The method of
16. The method of
transmitting the recommended object to a consumer device associated with the consumer object, wherein the values of the attribute names of the consumer object and the values of the attribute names of the filtered object selected as the recommended object are modified if the recommended object is selected.
17. The method of
19. The computer system of
20. The computer system of
the values of the attribute names of the filtered objects are values currently associated with the attribute names.
21. The computer system of
the values of the attribute names of a filtered object associated with a filtered selection reflect the values present when the filtered selection was made.
22. The computer system of
the location includes a physical location and a virtual location; and
the plurality of consumer objects includes psychographic information.
23. The computer system of
24. The computer system of
25. The computer system of
|
This application is related to U.S. patent application Ser. No. 13/661,736, entitled “METHOD AND SYSTEM FOR SYMMETRICAL OBJECT PROFILING FOR ONE OR MORE OBJECTS,” having a filing date of Oct. 26, 2012, which is herein incorporated by reference in its entirety. This application is also related to U.S. patent application Ser. No. 13/661,869, entitled “METHOD AND SYSTEM FOR MATCHING OBJECTS HAVING SYMMETRICAL OBJECT PROFILING,” having a filing date of Oct. 26, 2013, which is herein incorporated by reference in its entirety.
There are increasing numbers of distribution channels for connecting consumers with other items (e.g., products, services, content, information, etc.). For instance, the internet facilitates a communication network that joins millions of computers together. Through these distribution channels, users are able to access and search for information, make purchases of products, send and receive electronic mail, etc. As such, the internet and other distribution channels have become commonplace in the lives of the general populace.
Given these distribution channels, technology has evolved to help facilitate matching objects together, such as, the connection of a user with possibly desired items. For instance, targeting, as a form of matching, is used to connect or match various objects together, such as, advertisements and users. In practice, the delivery of advertisements to targeted users is an established technology that takes advantage of the distribution channels, wherein the advertisements are targeted to users exhibiting particular traits. In general, traits can include demographic, psychographic, consumer histories, and other user activities that help categorize or define a user. Further, traits may be compiled into a user profile that is specific to a particular user, wherein user profiles and the information contained within are used for targeting. Generally, an advertisement may be matched or targeted to a user profile exhibiting certain characteristics.
Unfortunately, there are many shortcomings to the targeting of items (e.g., advertising) to a particular group of users. These shortcomings lead to inefficient and non-effective targeting or matching. For instance, it is known that a user may have different objectives under different scenarios. That is, a user that is on the road and/or traveling may have different tastes and desires than a user that is at home relaxing. However, targeted matching of items to the user does not account for the variable tastes and desires of the user, and as such, the targeting of items would be the same to the user regardless of the circumstances the user is found.
It is desirous to have profiles that reflect varying circumstances for objects that are potentially transacting for purposes of proper matching and targeting of objects.
In embodiments of the present invention, a system for matching objects together is described that implements a context object profile in a system including symmetrical object profiles across one or more objects. The system includes a profile manager that is configured for managing a plurality of object profiles associated with a plurality of objects. Each of the plurality of object profiles includes attribute valuations of a symmetrical set of attributes, wherein the plurality of objects is associated with one or more object types. The system includes a storage system configured for storing current versions of the plurality of object profiles. The system includes a context manager configured for establishing a context within which a subset of transactions of the plurality of transaction is conducted. The context is associated with a corresponding context object profile including attribute valuations for a corresponding symmetrical set of attributes, wherein the attribute valuations are based on objects conducting transactions in the subset of transactions.
In some embodiments, a non-transitory computer-readable storage medium is disclosed having stored thereon, computer-executable instructions that, when executed causes the computer system to perform a method for profiling. The method is implemented within a system comprising a plurality of objects that is associated with symmetrical object profiles, each comprising a set of attributes. The plurality of objects is associated with a plurality of object types. The method includes establishing one or more contextual boundary parameters defining a context within which one or more transactions occur. The method includes filtering a plurality of transactions using the one or more contextual boundary parameters to obtain a pool of filtered transactions associated with the context. Each of the transactions is conducted between at least two objects in the system including a plurality of objects associated with object profiles each comprising one or more attribute values. The method includes establishing an array of filtered objects comprising objects involved in at least one of the pool of filtered transactions. Each filtered object is defined by a current version of a corresponding object profile that is associated with a corresponding transaction. Also, each filtered object profile includes one or more attribute values. The method includes generating a context object profile associated with the context that is based on attribute values of filtered object profiles associated with the array of filtered objects.
In another embodiment, a computer system for implementing profiling is disclosed. The computer system includes a processor and memory coupled to the processor, and having stored therein instructions that, if executed by the computer system, cause the computer system to execute a method for profiling. The method is implemented within a system comprising a plurality of objects that is associated with symmetrical object profiles, each comprising a set of attributes. The plurality of objects is associated with a plurality of object types. The method includes establishing one or more contextual boundary parameters defining a context within which one or more transactions occur. The method includes filtering a plurality of transactions using the one or more contextual boundary parameters to obtain a pool of filtered transactions associated with the context. Each of the transactions is conducted between at least two objects in the system including a plurality of objects associated with object profiles each comprising one or more attribute values. The method includes establishing an array of filtered objects comprising objects involved in at least one of the pool of filtered transactions. Each filtered object is defined by a current version of a corresponding object profile that is associated with a corresponding transaction. Also, each filtered object profile includes one or more attribute values. The method includes generating a context object profile associated with the context that is based on attribute values of filtered object profiles associated with the array of filtered objects.
These and other objects and advantages of the various embodiments of the present disclosure will be recognized by those of ordinary skill in the art after reading the following detailed description of the embodiments that are illustrated in the various drawing figures.
The accompanying drawings, which are incorporated in and form a part of this specification and in which like numerals depict like elements, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the disclosure.
Reference will now be made in detail to the various embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. While described in conjunction with these embodiments, it will be understood that they are not intended to limit the disclosure to these embodiments. On the contrary, the disclosure is intended to cover alternatives, modifications and equivalents, which may be included within the spirit and scope of the disclosure as defined by the appended claims. Furthermore, in the following detailed description of the present disclosure, numerous specific details are set forth in order to provide a thorough understanding of the present disclosure. However, it will be understood that the present disclosure may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to unnecessarily obscure aspects of the present disclosure.
Notation and Nomenclature
Some portions of the detailed descriptions that follow are presented in terms of procedures, logic blocks, processing, and other symbolic representations of operations on data bits within a computer memory. These descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. In the present application, a procedure, logic block, process, or the like, is conceived to be a self-consistent sequence of steps or instructions leading to a desired result. The steps are those utilizing physical manipulations of physical quantities. Usually, although not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated in a computer system. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as transactions, bits, values, elements, symbols, characters, samples, pixels, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussions, it is appreciated that throughout the present disclosure, discussions utilizing terms such as “filtering,” “determining,” “accessing,” “establishing,” “generating,” “comparing,” “matching,” or the like, refer to actions and processes (e.g., flowcharts 6A, 6B, 8 and 11 of
Embodiments described herein may be discussed in the general context of computer-executable instructions residing on some form of computer-readable storage medium, such as program modules, executed by one or more computers or other devices. By way of example, and not limitation, computer-readable storage media may comprise non-transitory computer storage media and communication media. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The functionality of the program modules may be combined or distributed as desired in various embodiments.
Computer storage media includes 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), electrically erasable programmable ROM (EEPROM), flash memory or other memory technology, compact disk ROM (CD-ROM), digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can accessed to retrieve that information.
Communication media can embody computer-executable instructions, data structures, and program modules, and includes any information delivery media. 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, radio frequency (RF), infrared and other wireless media. Combinations of any of the above can also be included within the scope of computer-readable media.
Both the central processing unit (CPU) 110 and the graphics processing unit (GPU) 120 are coupled to memory 140. System memory 140 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and/or other computer-readable instructions. Examples of system memory 140 include, without limitation, RAM, ROM, flash memory, or any other suitable memory device. In the example of
The system 100 includes a user interface 160 that, in one implementation, includes an on-screen cursor control device. The user interface may include a keyboard, a mouse, and/or a touch screen device (a touchpad).
CPU 110 and/or GPU 120 generally represent any type or form of processing unit capable of processing data or interpreting and executing instructions. In certain embodiments, processors 110 and/or 120 may receive instructions from a software application or hardware module. These instructions may cause processors 110 and/or 120 to perform the functions of one or more of the example embodiments described and/or illustrated herein. For example, processors 110 and/or 120 may perform and/or be a means for performing, either alone or in combination with other elements, one or more of the monitoring, determining, gating, and detecting, or the like described herein. Processors 110 and/or 120 may also perform and/or be a means for performing any other steps, methods, or processes described and/or illustrated herein.
The system 100 includes a host system 290 that is configured to manage object profiles for a plurality of objects. The host system 290 is capable of generating a context that is associated with a context profile used for matching objects, such that at three objects are considered when matching objects: a context object and at least two transaction objects. That is, when determining whether there is a good match between two objects (e.g., a video and a viewer), the context of the potential interaction scenario is calculated and used as part of the matching logic.
In some embodiments, the computer-readable medium containing a computer program may be loaded into computing system 100. All or a portion of the computer program stored on the computer-readable medium may then be stored in system memory 140 and/or various portions of storage devices. When executed by processors 110 and/or 120, a computer program loaded into computing system 100 may cause processor 110 and/or 120 to perform and/or be a means for performing the functions of the example embodiments described and/or illustrated herein. Additionally or alternatively, the example embodiments described and/or illustrated herein may be implemented in firmware and/or hardware.
Accordingly, embodiments of the present invention provide for a profiling and matching system that includes a context object in a transaction between matching objects, such that the potential interaction scenario is considered when matching two potential transaction objects. Other embodiments provide the above accomplishments and further provide for a profiling and matching system that includes symmetrical profiles for all objects (e.g., context object and transaction objects) and all object types to give more accurate reflections of relationships between the objects based on their interactions with each other. Still other embodiments provide the above accomplishments and further provide for a context profile that evolves over time as transaction occur within its boundary parameters, and as such, the dynamically evolving context profile provides for better accuracy when profiling and matching at least two transaction objects.
Symmetrical Object Profiling
Embodiments of the present invention are described within the environment of managing object profiles for various purposes, including transaction objects to be involved in a potential transaction. More specifically, information contained within object profiles are used to understand characteristics of objects (e.g., consumers) to deliver and/or suggest appropriate advertisements, content, and user experiences. Also, once characteristics are defined for each object, information contained within object profiles are used to match two or more objects to each other (e.g., matching an object with an advertisement, asset, experience, etc), and to perform additional analytics. Further, a context object profile is used to define a situational context within which a potential transaction may occur when matching two or more transaction objects potentially involved in a transaction. The use of the context object and its associated profile provides for increased accuracy when performing matching of transaction objects.
In embodiments of the present invention, an object profile includes psychographic information used for defining a corresponding object or grouping of objects. The psychographic information describes behavioral characteristics, such as, those for a consumer or group of consumers, and describes its or their attitudes, perceptions, and behaviors. In general, psychographic information provides insight into the personality, values, attitudes interests and lifestyles of a corresponding object or grouping of objects. With regards, to a context object, its corresponding context object profile is a reflection of the behavioral characteristics of all objects conducting transactions within a contextual boundary. As such, in one embodiment, the context object profile includes and considers current versions of object profiles. In another embodiment, the context object profile includes and considers previous versions of object profiles of those objects determined at the time of corresponding transactions, wherein each of the previous versions of object profiles reflects a state of the behavioral characteristics for a corresponding object as determined at the time of a corresponding transactions.
Additionally, an object profile includes other types of information, including demographic information in other embodiments. For instance, demographic information is used to define the characteristics and statistics of a population of a region. Examples of demographic information include gender, race, age, home ownership, employment status, location, etc. In some instances, psychographic information includes and/or uses demographic information for defining behavioral characteristics of the corresponding object or grouping of objects. For instance, age may be used to describe a psychographic makeup of a consumer, such that instead of being labeled as a 35 year old on the basis of factual data, the consumer's behaviors, attitudes and actions reflect those of someone who is 10 years older. As such, the consumer's psychographic profile would be of a 45 year old.
In embodiments of the present invention, objects within a system are each associated with symmetrical object profiles containing the same attribute information. That is, within the system, all objects (e.g., transaction objects and context objects) comprising one or more types of objects are defined by and are reflected by the same attributes, wherein objects comprise one or more types of objects (e.g., consumers, assets, products, advertisements, experiences, etc.). In that manner, any object takes on its own psychographic profile as defined by the attribute scores in its own object profile. More specifically, an inanimate object (e.g., product, asset, advertisement, experience, etc.) is defined by an object profile that is reflective of the objects (e.g., consumers) that it interacts with, such as, transactions involving two or more objects. For example, a movie as an object is defined by its object profile that is reflective of those consumers who have requested that movie, such as, in an online video content hosting site.
In another embodiment, symmetrical object profiles exist across a plurality of object types. For instance, a system including two object types (e.g., viewers and videos as content) also includes additional object types (e.g., third, fourth, and fifth types), wherein the objects spread across the five example object types are associated with corresponding symmetrical object profiles comprising the same attributes. As an example, a first object type is a user or viewer, a second object type is an article, and a third object type is an online text based article including an embedded video associated with the article. Transactions may occur between any of the objects, such as, a transaction occurs between a user and an article when the user over a web site requests the article for reading.
In another embodiment, an object type comprises a compound object representing one or more objects, or a group of objects. The group of objects is associated with a plurality of symmetrical object profiles, each represented by the same set of attributes but with varying valuations. The compound object profile is based on the object profiles associated with member objects of the corresponding group. That is, attribute valuations in the compound object profile are based on the attribute valuations of object profiles in the group of objects. For example, object profiles for each of a family of individuals combined comprise a compound object profile. As such, the family unit is defined by a separate compound object that reflects the individual components. In relation to a context object, a compound object is treated similarly for analysis and matching as any other transactional object.
Context Object Profiling
As shown in
As shown, an online platform/site or host site 290 is coupled to communication network 250. Though shown as one block, host site 290 may include one or more actual servers located in one or more locations, but act to provide server functionality to support a profiling and matching system that considers a context object when matching objects for a potential transaction, such that the potential interaction scenario is considered when matching two potential transaction objects.
For example, host site 290 is configurable to manage online content for purposes of distribution and archiving. That is, host site 290 manages, distributes, and provides access to a plurality of assets (e.g., (e.g., television/cable programs, entertainment clips, news, video content, movies, etc.) stored in repository 280 to other objects through communication network 250. For instance, host site 290 may comprise a part of a larger online entertainment service that provides for a source for users to search for and access entertainment content. In that manner, a consumer (e.g., consumer 215) may interact with host site 290 to select a movie to download for viewing. The selection by the consumer defines a transaction involving the consumer and the movie, and in embodiments of the present invention, object profiles for both the consumer and the movie are updated to reflect that transaction.
Host site 290 is configured to support a profile and matching system to facilitate matching of objects within system 200. In particular, profile manager 295 creates, manages, and stores a plurality of object profiles for objects involved in transactions handled by host system 290. For instance, a plurality of object profiles related to the assets stored in repository 280 are created, managed and stored by profile manager 295. Additionally, profile manager 295 manages object profiles for objects that interact with host site 290, including registered consumers (e.g., 215, 220, and 225) requesting assets through host site 290, and other object types (e.g., web sites, linking sites, etc.) interacting with assets controlled by host site 290. Further, the profile manager manages and stores context profiles used for matching objects.
As previously described, object profiles are symmetrical across all objects and all types of objects in a system facilitating transactions between those objects. For instance, profiles are mirrored between consumer objects, product and service asset objects, and context objects, such that a transaction between two objects is related to a context object which defines the situational context within which the transaction was conducted.
Further, the host site includes a context manager 500 that is configured to dynamically create a context that defines a situational interaction scenario within which a potential transaction may occur through proper matching. A more detailed description for the creation a context object profile is provided in relation to
Also, the host site 290 includes a matching generator 905 that considers a context object when matching objects for a potential transaction. In that manner, the potential interaction scenario is considered thereby focusing on a particular context influencing the objects involved in a potential transaction. That is, the matching generator 905 matches a dynamically created context object and at least two transaction objects to be considered for a potential transaction, such that the situational context is used to refine the matching process. A more detailed description of the matching generator 905 is provided in relation to
Further, storage module 280 is configurable to store the various object profiles as generated and managed by profile manager 295. As shown, storage module 280 is coupled locally to host site 290, in one embodiment. However, storage module 280 may be remotely located in other embodiments, and accessible through communication network 250. Still other embodiments are supported, wherein object profiles are stored at locations associated with a corresponding object, such as, a local computing resource.
A context object represents an instance of discrete parameter values that define a specific set of circumstances in which objects interact. As shown in
The context profile (Cp) of an context object (C) evolves over time as transactions occur within its contextual boundary parameters. As such, just as transaction objects in a matching and profiling system dynamically change with each transaction, the nature of the context object is ever evolving. The dynamic nature of the context is reprinted in a context profile that is continually defined as interactions occur within the parameters of the context. The dynamic nature of the context profile Cp gives a more accurate reflection of the context at any point in time, and therefore provides for more accurate matching of potential transacting objects.
When determining whether two objects are a good match, a logic method can refer to the context profile Cp to refine the matching process when determining a possible match between transaction objects. As shown in
Unlike transaction object profiles, the context object profile includes context boundary parameters that are static or fixed. These parameters define the context, or situational scenario, within which a potential transaction may occur. That is, the contextual parameters define the boundaries of what constitutes a particular contextual scenario. In one embodiment, the context is associated with one transaction object, and in another embodiment, the context is associated with more than one transaction object.
In one embodiment, contextual boundary parameters include measurements in time and space. The “time” parameter points to an instance, or period of time, and includes, but is not limited to, a span of seconds, minutes, hours, days, weeks, seasons, or decades. The “space” parameter defines physical locations and/or a virtual locations. The physical location(s) may point out where the objects are located when conducting the transaction (e.g., a region, state, or country). The virtual location(s) may point out which web sites are used for selecting content, which internet service provider is used, etc. For example, when performing matching between a consumer and one or more items of video content, the contextual object profile may be defined by context boundary parameters including the approximate time of the transaction within a given range (e.g., 0200-0300 GMT), and a given location of the consumer (e.g., London, restaurant, bar, sports bar, home, etc.).
As such, contextual boundary parameters define the physical and virtual environment within which a transaction has or will occur. Examples of contextual boundary parameters other than time and place are contemplated. For instance, a parameter defines whether a consumer is alone or is with friends or family, or the willingness to spend more freely based on various reasons.
In particular,
As shown the context manager 500 includes a context originator 510 configured to determine and/or receive one or more contextual boundary parameters that define a context. Also, the context manager includes a transaction filter 520 for determining which transactions in a history of transactions were conducted within the context. An object filter 530 is configured to determine which objects are associated with the filtered transactions. Further, a context object profile generator 540 is configured to dynamically generate a context object profile based on the filtered transactions and filtered objects that is used to perform matching between two or more transaction objects.
At 602, the method includes establishing a plurality of symmetrical object profiles for a plurality of objects, such that a set of attributes is symmetrical across the object profiles. That is, object profiles share the same set of attributes but attribute valuations may vary between object profiles, wherein each object profile comprises one or more attribute values. The plurality of objects is associated with one or more object types in a profiling and matching system that matches two or more objects, such as, a first object representing a consumer and a second object representing content (e.g., video, audio, etc.).
At 604, the method includes establishing a context object profile that defines a context within which one or more transactions occurs. The context object profile also comprises one of the symmetrical object profiles. Attribute valuations in the context object profile are closely related to attribute valuations for objects conducting transactions that are executed within the boundaries of the context. That is, the attribute valuations in the context object profile are predictors used for identifying objects that fall within the particular context. In that manner, attribute valuations in the context object profile are closely related to objects that have previously conducted transactions that are executed within the particular context. As such, attribute valuations in the context object profile are used to identify or match objects together that would likely conduct current or future transactions executed within the boundaries of the particular context.
At 610, the method includes establishing one or more contextual boundary parameters, wherein the parameters define a context within which one or more transactions or potential transactions occur. In one embodiment, the contextual boundary parameters are determined based on the current environment within which a match is requested. For instance, a request for matching a first object (e.g., consumer) with one or more content item objects (e.g., movies, online content, etc.) is delivered within a particular context, which is definable through one or more boundary parameters.
The parameters represent a measure of time and/or space, in one embodiment. Time may include a span of seconds, minutes, hours, days, weeks, seasons, or decades. Space may include physical and/or virtual locations. In one implementation, the parameters define boundaries including time and location (e.g., virtual and physical space). As an example, boundaries for a context object may include a time boundary between 3:00-3:05 PM Easter Time (ET), conducted over a web site (e.g., nbc.com), and with consumers located in Dulles, Virginia. (time, virtual space, and physical space). In another embodiment, the contextual boundary parameters are received from an external source. In one embodiment, the context originator 510 of
At 620, the method includes filtering a plurality of transactions using the one or more boundary parameters to obtain a pool of filtered transactions, each of which is associated with the context. Each of the plurality of transactions is conducted between at least two objects in a profiling and matching system including a plurality of objects. The objects in the system is associated with object profiles, each comprising one or more attribute values. Also, the plurality of objects is associated with one or more object types. Further, the transactions included within the pool of filtered transactions have been conducted under a similar context, definable by the same contextual boundary parameters.
In one embodiment, stored contextual boundary information relating to previous transactions is sorted in order to determine which of those transactions are conducted within the context as defined by the corresponding contextual boundary parameters. In one embodiment, the transaction filter 520 of
At 630, the method includes establishing an array of filtered objects based on the filtered transactions. More particularly, the filtered objects are involved in at least one of the pool of filtered transaction. In one embodiment, each filtered object is associated with a current version of a corresponding object profile that is associated with a corresponding transaction that occurred previously within the boundary parameters of the context. For instance, a consumer involved in a transaction occurring in the past is associated with a current consumer profile reflecting the behavioral characteristics collected and determined up to the present. The current version of the object profile is used for determining the corresponding context object profile, in one embodiment. As a result, a dynamically changing and generated context profile is generated based on historical transactions occurring within the same context, and use current versions of the objects profiles relating to objects conducting those transactions.
In another embodiment, each filtered object is defined by a previous version of a corresponding object profile that is associated with a corresponding transaction. That is, a filtered object is a previous version of a current object, but the filtered object exists in a state associated with a corresponding transaction. As previously described, a previous version of any filtered object profile includes one or more attribute values for a symmetrical object profile. In one implementation, the object filter included within the context manager of
At 640, the method includes generating a context object profile associated with the context, wherein the profile is based on attribute values of filtered object profiles associated with the array of filtered objects. More particularly, the profile portion of the context object mirrors, in structure, the profile defined for the other objects, such as other transaction objects, in the system. That is, in one embodiment, the object profiles (e.g., transaction and context object profiles) are symmetrical in that they have the same attribute information, though their valuations for attributes may be different. For example, if each object profile in the system is comprised of gender, age, and genre attributes, then the context object profile portion is also comprised of these same attributes. In one implementation, the context object profile generator included within the context manager of
In one embodiment, transaction objects in the profiling and matching system have their profiles updated after every transaction. As such, transaction object profiles are shaped by every transaction in which they are involved.
On the other hand, context objects profile calculations are determined based on transactions that occurred within the defined boundary parameter. That is, a particular context object profile is based on all transactions that occurred previously within those parameters. More particularly, the context object profile associated with the context is based on attribute valuations of the filtered object profiles that are associated with the filtered objects. As such, in one embodiment, for each transaction, the current version of the corresponding transaction object profiles is used when determining the context object profile. In another embodiment, for each transaction, corresponding transaction object profiles reflecting that transaction and states existing in association with the time period of executing that transaction are used to determine the context object profile used for matching transaction objects in a potential transaction. That is, previous versions of an object profile that reflect the state of the profile existing in association with a corresponding transaction are stored and used to determine the context object profile.
In one embodiment, the object profile is based on transactions that have occurred over a look-back range. Specifically, the look-back range is defined by a period, and as such, the plurality of transactions is limited over a look-back range for the purposes of filtering transactions considered for determining the context profile. In one implementation, the look-back range is all time. That is, all transactions in the universe of transactions (e.g., those handled by host site 290 of
In particular,
As shown, object A is conducting transactions with objects F and H. In one embodiment, the first and second objects are of the same type, such as that involving objects A and F (e.g., in a person to person matching system). In other embodiments, the objects involved in a transaction are of different types, such as that involving objects A and H. Also, object C has conducted transactions with objects I, J, and K. Object D has conducted transactions with objects J and G. also, object E has conducted with transactions with K and G.
It is important to note that a space or location may define a physical space (e.g., a home address) or virtual space (e.g., web site visited). For instance, objects A, F and K exist or are interacting over physical location I 730A; objects H, C, and K exist or are interacting over physical location II 730B; objects I, J and E exist or are interacting over physical location III 730C; and objects B, D, and G exist in physical location IV 730D. Also, objects A, H, I, and B exist or are interacting over virtual location i 740A; objects F, C, J, and D exist or are interacting over virtual location ii 740B; and objects L, K, E, and G exist or are interacting over virtual location iii 740C.
As shown, each of the objects are associated with both a physical and virtual location; however, as previously discussed, objects may be associated with only one of the physical and virtual locations, though not shown. For instance, object A exists or is interacting over physical location 1730A and virtual location i 740A. Additionally, each object may exist in a different space and potentially in two spaces at the same time (e.g., a video is being watched in New York City on a particular website).
It is within the contextual boundary that a context object profile is determined based on all the transaction activity that has previously occurred between objects, as defined by the contextual boundary parameters. That is, previous versions of transaction object profiles that reflect the state of the profile existing in association with a corresponding transaction are stored and used to determine a corresponding context object profile.
At 810, the method includes retrieving all object transactions executed within the contextual boundary parameters. That is, a plurality of transactions conducted within the profiling and matching system if filtered using the contextual boundary parameters to obtain a pool of filtered transactions.
At 820, the method includes retrieving the current profiles for all the objects that were involved in at least one of the filtered transactions. For example, in a system matching consumers with video as facilitated by a host site (e.g., host site 290 of
In another embodiment, the method includes retrieving previous profiles for objects that were involved in at least one of the filtered transactions. For instance, a previous version of a transaction object profile reflects a state of the profile existing in association with a corresponding transaction, and is used to determine a corresponding context object profile.
At 830, the method includes establishing a new, blank, context object profile that mirrors the attributes (not their valuations) and categories of its member objects. For instance, the profiling and matching system supports objects with symmetrical object profiles having similar attributes. For example,
As shown, the context object profile includes one or more attributes as defined by attribute column 910, each defining a particular characteristic. Attribute valuations can take on a sliding scale within a category. That is, valuations may be greater than 0 for one or more attributes within a given category, as long as attribute valuations within a given category total 100 percent, or a representative 1.000. Attributes are further grouped into one or more categories, as defined by category column 905. For instance, for purposes of illustration only, categories in the context object profile include those describing or defining gender, age, and movie genre. Other groupings of the same or different categories and/or attributes may define other declared compound object profiles. Further, valuations for each attribute in their various categories for the object profile is provided in scoring column 915. In its initial state, attribute values for the context object profile each have a zero value.
At 840, the method includes determining the attribute valuations for the context object profile by simulating the interactions between the context object profile and each object profile.
For instance,
Table 900B includes column 925 which illustrates a context object profile of
Table 900B includes column 930, which illustrates a transaction object profile of an object included within the array of filtered objects. As shown, the profile is the current profile of the object, in one embodiment. In another embodiment, the profile is the previous version of the profile that reflects the state of the profile existing in association with a corresponding transaction. The object profile includes the same set of attributes and categories of attributes as that provided for the context object profile in column 925, and that provided in
As shown in
The process is included for each simulated transaction with transaction objects included in the array of filtered objects. For instance,
Table 900C includes column 945, which illustrates an object profile of a transaction object that was involved a transaction falling within the contextual boundary as defined by the contextual boundary parameters. A simulated transaction between the transaction object profile and the context object profile is the second transaction with the context object. The transaction object profile includes the same set of attributes and categories of attributes as that provided for the context object profile in column 940, and that previously provided in
As shown in
In determining the valuation of the male attribute, valuations for the male attribute for transaction object profiles in the array of filtered objects are considered and are further based on the number of transaction conducted. In one embodiment, the new valuation is determined by summing the valuations for the male attributes for all objects involved in the previously described simulated transactions and divided by the number of transactions. In the example provided in
The process for incorporating each of the attribute valuations associated with transaction object profiles in the array of filtered objects is repeated until the context object profile reflects the simulated effect of having transacted with each of the transaction objects.
It is important to note that the context object profile exists independently of the transaction object profiles. In addition, the context object profile is not an average of the transaction object profiles. Rather, the context object profile is determined independently based on the transactions of the profiles of the array of filtered objects. Further, current profiles for filtered objects are used in one embodiment, or previous versions of the profiles for filtered objects may be used. Also, when determining the context object profile, there is no effect on the individual transaction object profiles.
Matching Objects in a System Using a Context Object
Various analytics are performed once object profiles are established and/or generated within a system comprising a plurality of objects associated with a plurality of symmetrical object profiles, each with varying attribute valuations. For instance, matching between one or more objects in the system is performed based on attribute valuations in the transaction object profiles and context object profile.
A context object profile provides a description of the prevalent attributes, and respective degrees, for a particular time and space defining an attribute in a profiling and matching system that includes a context object in a transaction between transaction objects, such that the potential interaction scenario is considered when matching two potential transaction objects.
For example, context object profile 1000 illustrated in
If the profiling and matching system is seeking likely positive matches between two transaction objects in a system for the stated context (“3:00-3:15 PM EST/nbc.com/Dulles, Virginia”), the context profile gives guidance on the types of objects that are most applicable in this scenario—rather than only relying on matching the respective transaction object profiles. That is, a third object profile, associated with the context object, is considered along with the one or more transaction objects.
As shown in
In addition, the profile storage system 1150 also includes a group of current matching object profiles 1157 that is associated with an array of filtered objects, wherein the filtered objects are associated with transactions conducted within the contextual boundary parameters of the given context. The group of current matching transaction profiles is selected for purposes of matching. For instance, the group of transaction object profiles may be associated with a group of assets (e.g., advertisements, video assets, etc.), each of which is capable of being matched to the first object (e.g., consumer). Embodiments of the present invention provide for selecting the best matching object for matching with any object (e.g., the first object).
Also shown in
The matching object filter is configured for filtering a plurality of transaction objects of a second object type (e.g., video content) by the context object profile to obtain a narrowed set of matching objects that is associated with an array of filtered transaction objects for purposes of matching two or more transaction objects together for a given context.
For example, comparator 1110, compares attributes in the first set of attribute valuations for the first object against and/or with attributes in corresponding matching object profiles associated with the plurality of matching objects. A comparison is made between the respective object profiles to determine a relationship between the first object and each of the matching objects based on object profiling.
Further, matching system 1105 includes a matching module 1130 that is configured for determining a first matching object profile comprising attributes closest to the first set of valuations for the first object. The matching module 1130 also matches the first object to the first matching object based on which matching object profile has the closest relationship with the first object based on attribute valuations in both symmetrical object profiles.
The method outlined in
In particular, at 1210, the method includes filtering a plurality of objects of a second object type by said context object profile to obtain a narrowed set of matching objects. For instance, the matching objects include objects in the array of filtered objects each of which is associated with transactions that fall within a given context and/or contextual boundaries associated with the context. The narrowed set of matching objects is used for purposes of matching at least one of the objects of the second object type with a first object profile associated with a first object of a first object type (e.g., consumer).
At 1220, the method includes accessing and/or receiving a first set of valuations for the set of attributes for a first object profile that is associated with the first object of a first object type. For instance, for purposes of illustration, the first object is associated with a consumer who is requesting or is to be matched with a second object type (e.g., a video asset or advertisement, etc.).
More specifically, at 1230, the method includes comparing attributes in the first set of valuations associated with the first object profile, with attributes in corresponding matching object profiles for the array of filtered transaction objects. That is, for a particular transaction object profile, attributes valuations for each valuation in the symmetrical object profiles are compared.
In one embodiment, attribute comparison is performed for each of the array of filtered transaction objects, such that attributes are compared between the first object profile and each transaction object profile to be considered for matching. The comparison includes determining a second set of valuations for the set of attributes for a corresponding transaction object profile to be considered for matching. The transaction object profile includes the same attributes as found in the first object profile in a system of symmetrical object profiles.
Further, for each attribute in the set of attributes, a variance is determined between a first valuation associated with the first object profile, and a second valuation associated with the corresponding transaction object profile considered for matching. That is, the variance is determined by subtracting the second valuation from the first valuation. In one embodiment, the variance calculated is an absolute value of the difference between the second valuation from the first valuation.
At 1240, the method includes determining a first matching transaction object comprising attributes that are closest to the first set of valuations for attributes in the first object profile. In particular, for each of the array of filtered transaction objects, a plurality of total variances is determined that is associated with the plurality of matching object profiles. That is, each total variance corresponds to a transaction object considered for matching (e.g., included within the array of filtered transaction objects) and the variances determined between attribute valuations between the first object profile and the corresponding transaction object profile.
In one embodiment, the total variance for a corresponding transaction object profile considered for matching is determined by totaling variances across the set of attributes. That is, absolute values for variances for corresponding attributes in the set of attributes, as determined from valuations found in the first object profile and the corresponding transaction object profile, are summed to determine the total variance for a corresponding transaction object profile considered for matching. In that manner, the total variance is determined for every matching object profile in the group.
In one embodiment, the first matching transaction object is determined by selecting the least total variance from the plurality of total variances associated with the array of filtered transaction objects and their associated object profiles. The least total variance is associated with the first matching transaction object, such that the first object and the first matching transaction object are matched together at 1250 because the first object has the closest relationship with the first matching transaction object in comparison to other transaction objects in the array of filtered transaction objects.
Thus, according to embodiments of the present disclosure, systems and methods are described for matching transaction objects together in a system that considers the context within which a potential transaction may occur.
While the foregoing disclosure sets forth various embodiments using specific block diagrams, flowcharts, and examples, each block diagram component, flowchart step, operation, and/or component described and/or illustrated herein may be implemented, individually and/or collectively, using a wide range of hardware, software, or firmware (or any combination thereof) configurations. In addition, any disclosure of components contained within other components should be considered as examples because many other architectures can be implemented to achieve the same functionality.
The process parameters and sequence of steps described and/or illustrated herein are given by way of example only and can be varied as desired. For example, while the steps illustrated and/or described herein may be shown or discussed in a particular order, these steps do not necessarily need to be performed in the order illustrated or discussed. The various example methods described and/or illustrated herein may also omit one or more of the steps described or illustrated herein or include additional steps in addition to those disclosed.
While various embodiments have been described and/or illustrated herein in the context of fully functional computing systems, one or more of these example embodiments may be distributed as a program product in a variety of forms, regardless of the particular type of computer-readable media used to actually carry out the distribution. The embodiments disclosed herein may also be implemented using software modules that perform certain tasks. These software modules may include script, batch, or other executable files that may be stored on a computer-readable storage medium or in a computing system. These software modules may configure a computing system to perform one or more of the example embodiments disclosed herein. One or more of the software modules disclosed herein may be implemented in a cloud computing environment. Cloud computing environments may provide various services and applications via the Internet. These cloud-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessible through a Web browser or other remote interface. Various functions described herein may be provided through a remote desktop environment or any other cloud-based computing environment.
The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as may be suited to the particular use contemplated.
Embodiments according to the present disclosure are thus described. While the present disclosure has been described in particular embodiments, it should be appreciated that the disclosure should not be construed as limited by such embodiments, but rather construed according to the below claims.
Ng, Sheau, Fort, Pavel A., Shriber, Amy
Patent | Priority | Assignee | Title |
D922396, | Dec 07 2017 | MPI Corporation | Display screen or portion thereof with graphical user interface |
D956777, | Aug 11 2020 | SPECTER OPS, INC | Display screen or portion thereof with graphical user interface |
D956778, | Aug 11 2020 | SPECTER OPS, INC | Display screen or portion thereof with an animated graphical user interface |
D956779, | Aug 11 2020 | SPECTER OPS, INC | Display screen or portion thereof with an animated graphical user interface |
Patent | Priority | Assignee | Title |
7698170, | Aug 05 2004 | VERSATA DEVELOPMENT GROUP, INC | Retail recommendation domain model |
7720720, | Aug 05 2004 | VERSATA DEVELOPMENT GROUP, INC | System and method for generating effective recommendations |
8296179, | May 02 2007 | MONSTER WORLDWIDE, INC | Targeted advertisement placement based on explicit and implicit criteria matching |
20060090185, | |||
20060294084, | |||
20080004954, | |||
20080201310, | |||
20090176520, | |||
20090248494, | |||
20090327081, | |||
20100262456, | |||
20100293058, | |||
20110295687, | |||
20120095836, | |||
20120166435, | |||
20120166540, | |||
20120330754, | |||
20130080330, | |||
20130318085, | |||
20140244398, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
May 10 2013 | FORT, PAVEL A | NBCUniversal Media LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030404 | /0598 | |
May 11 2013 | NG, SHEAU | NBCUniversal Media LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030404 | /0598 | |
May 13 2013 | NBCUniversal Media, LLC | (assignment on the face of the patent) | / | |||
May 13 2013 | SHRIBER, AMY | NBCUniversal Media LLC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030404 | /0598 |
Date | Maintenance Fee Events |
Oct 18 2021 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Apr 17 2021 | 4 years fee payment window open |
Oct 17 2021 | 6 months grace period start (w surcharge) |
Apr 17 2022 | patent expiry (for year 4) |
Apr 17 2024 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 17 2025 | 8 years fee payment window open |
Oct 17 2025 | 6 months grace period start (w surcharge) |
Apr 17 2026 | patent expiry (for year 8) |
Apr 17 2028 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 17 2029 | 12 years fee payment window open |
Oct 17 2029 | 6 months grace period start (w surcharge) |
Apr 17 2030 | patent expiry (for year 12) |
Apr 17 2032 | 2 years to revive unintentionally abandoned end. (for year 12) |