US20220164361A1 - Method, apparatus, and computer program product for extending an action vector - Google Patents

Method, apparatus, and computer program product for extending an action vector Download PDF

Info

Publication number
US20220164361A1
US20220164361A1 US17/538,346 US202117538346A US2022164361A1 US 20220164361 A1 US20220164361 A1 US 20220164361A1 US 202117538346 A US202117538346 A US 202117538346A US 2022164361 A1 US2022164361 A1 US 2022164361A1
Authority
US
United States
Prior art keywords
rendered object
client
action vector
action
device rendered
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US17/538,346
Inventor
Jikai Lei
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Groupon Inc
Original Assignee
Groupon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Groupon Inc filed Critical Groupon Inc
Priority to US17/538,346 priority Critical patent/US20220164361A1/en
Assigned to GROUPON, INC. reassignment GROUPON, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LEI, JIKAI
Publication of US20220164361A1 publication Critical patent/US20220164361A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Definitions

  • Client devices submit search queries and may interact with device rendered objects returned within the search results, the device rendered objects associated with device rendered object categories.
  • a client device may tend to interact with device rendered objects associated with only a subset of device rendered object categories, making a vector containing data representing interaction activity by the client device across all device rendered object categories sparse.
  • a computing entity or apparatus is configured to scan each client action vector cell of the client action vector to identify an empty client action vector cell, the client action vector associated with a client profile; upon identifying an empty client action vector cell, extract an empty client action vector cell device rendered object category; retrieve, from a similarity table, a similarity measure for each of the other device rendered object categories of the plurality of device rendered object categories, the similarity measure being in comparison to the empty client action vector cell device rendered object category; for each of the other device rendered object categories of the plurality of device rendered object categories having a similarity measure above a similarity threshold, extract an action count from the client action vector cell associated with the device rendered object category; compute a similarity action measure for the device rendered object category based at least on the action count and the similarity measure; and compute an action measure for the empty client action vector cell using at least one of the similarity action measures; and increment an action count in the empty client action vector cell based on the action measure.
  • inventions include corresponding systems, methods, and computer programs, configured to perform the operations of the apparatus, encoded on computer storage devices. These and other embodiments can each optionally include one or more of the following features: generating the client action vector by receiving a device rendered object interaction signal from a client device associated with a client profile, wherein the device rendered object interaction signal is indicative of the client device having selected a device rendered object; extracting a first device rendered object category from the device rendered object; and incrementing an action count in a client action vector cell associated with the first device rendered object category.
  • inventions can each optionally include generating the similarity table, wherein the similarity table comprises a plurality of similarity cells, wherein the similarity table has a plurality of columns, each column associated with a different device rendered object category of the plurality of device rendered object categories, wherein the similarity table has a plurality of rows, each row associated with a different search query, and wherein each device rendered object category column contains a row for every search query and each search query row contains a column for every device rendered object category.
  • Other embodiments can each optionally include generating the similarity table by receiving a plurality of search queries from a plurality of client devices; for each received search query, generating a search query row, upon receiving a device rendered object interaction signal associated with the search query, extracting a device rendered object category; and incrementing a similarity cell count in a cell associated with both the search query and the device rendered object category.
  • Other embodiments can each optionally included extracting each column of the similarity table and the device rendered object interaction category associated therewith; calculating a similarity measure for each column between the column and the other columns of the similarity table; and assigning similarity measures to the device rendered object categories wherein a similarity measure is associated with a pair of categories.
  • Other embodiments can each optionally include calculating the similarity measure using a cosine similarity.
  • FIG. 1 is a system architecture diagram of a system configured to practice embodiments of the present invention
  • FIG. 2 is an exemplary schematic diagram of a computing entity according to one embodiment of the present invention.
  • FIG. 3 illustrates an exemplary similarity table generation data flow according to one embodiment of the present invention
  • FIG. 4 illustrates an exemplary similarity table according to one embodiment of the present invention
  • FIG. 5 illustrates an exemplary client action vector generation data flow according to one embodiment of the present invention
  • FIG. 6 illustrates an exemplary client action vector according to one embodiment of the present invention
  • FIG. 7 illustrates an exemplary client action vector extension data flow according to one embodiment of the present invention
  • FIG. 8 illustrates an exemplary extended client action vector according to one embodiment of the present invention
  • FIG. 9 illustrates an exemplary client action vector extension process according to one embodiment of the present invention'
  • FIG. 10 illustrates an exemplary client action vector generation process according to one embodiment of the present invention
  • FIG. 11 illustrates an exemplary similarity table generation process according to one embodiment of the present invention.
  • FIG. 12 illustrates an exemplary similarity measure calculation process according to one embodiment of the present invention.
  • Various embodiments of the invention generally relate to extending an action vector associated with a client device.
  • the methods, apparatus and computer program products described herein are operable to scan each client action vector cell of the client action vector to identify an empty client action vector cell, the client action vector associated with a client profile; upon identifying an empty client action vector cell, extract an empty client action vector cell device rendered object category; retrieve, from a similarity table, a similarity measure for each of the other device rendered object categories of the plurality of device rendered object categories, the similarity measure being in comparison to the empty client action vector cell device rendered object category; for each of the other device rendered object categories of the plurality of device rendered object categories having a similarity measure above a similarity threshold, extract an action count from the client action vector cell associated with the device rendered object category; compute a similarity action measure for the device rendered object category based at least on the action count and the similarity measure; and compute an action measure for the empty client action vector cell using at least one of the similarity action measures; and increment an action count in the empty client action vector
  • Device rendered objects are selected for transmission to a client device as part of search results, the selection based upon data contained within a client action vector of a client profile associated with the client device.
  • the client action vector is generated based upon device rendered object interaction activity performed by the client device. Where a client device has performed little to no device rendered object interaction activity for a particular device rendered object category, device rendered objects may not be selected for transmission to the client device for that particular device rendered object category in the future. Accordingly, a data store of device rendered objects may become unbalanced, thereby negatively impacting resources of a device rendered object system. Also, it is impossible to provide for enough system time and data storage in order to allow for the client device to interact with device rendered objects of every device rendered object category over time (i.e., in order to have each cell of a client action vector populated for a given client profile).
  • the inventors have identified that the system resources and time allocated to such device rendered object presentation selections based upon client action vectors are easily exhausted and compromised as a result of these challenges.
  • the inventors have determined that the ability to extend a client action vector utilizing device rendered object interaction data associated with the client device as well as similarity measures between device rendered object categories would reduce the computing resources (e.g., processing power, processing time, data storage, transmission times) and time necessary to perform selection and transmission of device rendered objects.
  • data As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received, and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
  • a computing device is described herein to receive data from another computing device
  • the data may be received directly from another computing device or may be received indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like, sometimes referred to herein as a “network.”
  • intermediary computing devices such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like, sometimes referred to herein as a “network.”
  • the data may be sent directly to another computing device or may be sent indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like.
  • client device refers to computer hardware and/or software that is configured to access a service made available by a server.
  • the server is often (but not always) on another computer system, in which case the client device accesses the service by way of a network.
  • Client devices may include, without limitation, smart phones, tablet computers, laptop computers, wearables, personal computers, enterprise computers, and the like.
  • the terms “user,” “client,” “consumer,” and “customer” may be used interchangeably to refer, without limitation, to a client, customer, purchaser, shopper, user and the like who may be using a client device to receive and interact with a device rendered object.
  • client profile refers to a collection of preferences, settings, configurations, client device identifiers, data, and information associated with a specific user.
  • a profile refers therefore to the explicit digital representation of a person's identity and other data or information associated with the user.
  • a client profile can be used to store a description of characteristics of the user and/or of the client device, as well as credentials, past behaviors, and preferences of the user.
  • search query refers to a query for electronic documents or digital content items submitted to a platform by a user utilizing a client device.
  • search results refers to results returned from such a query.
  • a user using the client device may submit a query for “Japanese food” into an interface and the system may return a list of device rendered objects and/or URLs having keywords, metadata, or the like contained therein or associated therewith.
  • the search results thus include the returned list of device rendered objects, all keywords and metadata associated therewith, and an arrangement or ranked order of the returned list.
  • the term “device rendered object” may be used to refer to a set of executable instructions that, when executed by a processor of a computing device, renders an object for display.
  • An example of a device rendered object can be an instrument of a promotion.
  • the instrument may be any type of gift card, tender, electronic certificate, medium of exchange, voucher, or the like that embodies terms of a promotion from which the instrument resulted and may be used toward at least a portion of the purchase, acquisition, procurement, consumption or the like of goods, services and/or experiences.
  • the instrument may take the form of tender that has a given value that is exchangeable for goods, services and/or experiences and/or a reduction in a purchase price of a particular good, service or experience.
  • the instrument may have multiple values, such as accepted value, a promotional value, and/or a residual value.
  • accepted value of the instrument is defined by the value exchanged for the instrument.
  • promotional value is defined by the promotion from which the instrument resulted and is the value of the instrument beyond the accepted value.
  • residual value is the value after redemption, the value after the expiration or other violation of a redemption parameter, the return or exchange value of the instrument and/or the like.
  • each device rendered object has associated data indicating one or more categories (such as a restaurant promotion, a spa promotion, a travel promotion, a local promotion, etc.), sub-categories (such as a sushi restaurant), location, hyper-locations, prices or the like.
  • categories such as a restaurant promotion, a spa promotion, a travel promotion, a local promotion, etc.
  • sub-categories such as a sushi restaurant
  • location hyper-locations, prices or the like.
  • category data such as “beauty, wellness, and healthcare,” “food and drink,” “leisure offers and activities” and/or “services.”
  • a gym may also have more than one location, and may be able to provide promotions in a variety of price ranges and time frames.
  • the device rendered object may be further associated with sub-category data such as “Chinese food” or “Mexican food.”
  • each search query has associated data indicating one or more categories, sub-categories, or the like.
  • a search query may be associated with category data such as “beauty, wellness, and healthcare,” “food and drink,” “leisure offers and activities” and/or “services.”
  • category data such as “beauty, wellness, and healthcare,” “food and drink,” “leisure offers and activities” and/or “services.”
  • the search query may be further associated with sub-category data such as “Chinese food” or “Mexican food.”
  • client action vector having categories associated therewith
  • client action vector may have sub-categories associated therewith without departing from the scope of the present invention.
  • the terms “device rendered object service” or “device rendered object system” may include a service that is accessible via one or more computing devices and that is operable to provide device rendered object services on behalf of one or more providers that are offering one or more instruments that are redeemable for goods, services, experiences and/or the like.
  • the device rendered object service may take the form of a redemption authority, a payment processor, a rewards provider, an entity in a financial network, a promoter, an agent and/or the like.
  • the device rendered object service is, in some example embodiments, configured to present one or more device rendered objects (e.g., promotions) to client devices, accept payments for device rendered objects from client devices, issue instruments upon acceptance of an object, participate in redemption, generate rewards, provide a point of sale device or service, issue payments to providers and/or otherwise participate in the exchange of goods, services or experiences for currency, value and/or the like.
  • device rendered objects e.g., promotions
  • the terms “provider” and “merchant” may be used interchangeably and may include, but are not limited to, a business owner, consigner, shopkeeper, tradesperson, vendor, operator, entrepreneur, agent, dealer, organization or the like that is in the business of providing a good, service or experience to a consumer, facilitating the provision of a good service or experience to a consumer and/or otherwise operating in the stream of commerce.
  • the “provider” or “merchant” need not actually market a product or service via the device rendered object service, as some merchants or providers may utilize the device rendered object service only for the purpose of gathering client profile information, vector activity information, similarity table information, or the like.
  • the term “device rendered object interaction” refers to electronic interaction with a device rendered object by a client device.
  • the device rendered object interaction may take the form of an accessing or selection of the device rendered object, a viewing of the device rendered object on an electronic display, a scrolling over the device rendered object, a retrieval of the device rendered object, a purchase transaction completed for the device rendered object, and/or the like.
  • the interaction data may include various other interactions, including without limitation, mouse-over events and durations, the amount of time spent by the client device viewing particular content, the rate at which impressions of particular content result in sales associated with that content, demographic information associated with each particular client using the client device, data indicating other content accessed by the client device (e.g., browser cookie data), the time or date on which content was accessed, the frequency of impressions for particular content, a financial transaction performed between the client device and a device rendered object service/system associated with a particular device rendered object, associations between particular clients or client demographics and particular impressions, and/or the like.
  • interactions including without limitation, mouse-over events and durations, the amount of time spent by the client device viewing particular content, the rate at which impressions of particular content result in sales associated with that content, demographic information associated with each particular client using the client device, data indicating other content accessed by the client device (e.g., browser cookie data), the time or date on which content was accessed, the frequency of impressions for particular content, a financial transaction performed between
  • device rendered object interaction signal refers to electronic indication that an interaction as defined above has occurred with respect to a particular device rendered object.
  • client action vector refers to a data structure used to stored information about actions performed by a client device associated with a client profile.
  • the actions performed by the client device are search queries.
  • the actions performed by the client device are device rendered object interactions.
  • the client action/activity vector may take the form of a vector, feature vector, linked list, array, record, tuple, a data structure containing data fields, and/or the like.
  • client action vector cell refers to a data field of a data structure used to store information about actions performed by a client device associated with a client profile (e.g., a client action vector as described above).
  • client action vector cell may take the form of a cell, an array element, a node of a linked list, and/or the like.
  • action count refers to a number of search queries performed by a client device, associated with a client profile, for a particular category in a client action vector.
  • the action count is electronically stored in the data structure referred to herein as a client action vector cell.
  • empty client action vector cell refers to a cell of a client action vector storing an action count equivalent to 0.
  • the action count can be equivalent to 0 because the client device has not yet submitted a search query that is associated with the cell.
  • empty client action vector cell category refers to a category associated with a client action vector cell that has an action count value of 0.
  • the empty client action vector cell category may be “Chinese food” and/or the like.
  • similarity table refers to a data structure comprised of multiple data structures referred to herein as horizontal rows and vertical columns.
  • a similarity table cell is a unit where a row and column intersect.
  • the similarity table may have rows representing search queries and columns representing device rendered object categories.
  • the similarity table may take the form of multiple vectors, multiple arrays, multiple linked lists, multiple records, a data structure containing multiple data fields, and the like.
  • similarity measure refers to a computer-generated value representing a measure of similarity between any two device rendered object categories of a similarity table.
  • the similarity measure may be calculated by extracting each device rendered object category column of the similarity table and performing a cosine similarity analysis on the columns to generate a plurality of similarity measures.
  • similarity threshold refers to a pre-defined minimum amount of similarity that is required between two device rendered object categories of a plurality of categories.
  • the similarity threshold may be 0.8, whereby any category having a similarity cell count below 0.8 will not be considered in calculating a similarity action measure and those categories having a similarity cell count of 0.8 or greater will be considered in calculating a similarity action measure.
  • similarity action measure refers to a computer-generated value for a particular device rendered object category that is calculated based upon the device rendered object category's similarity measure and the device rendered object category's action count.
  • action measure refers to a computer-generated value representing an artificial action count for a first device rendered object interaction category.
  • the action measure is based on a similarity action measure of a second device rendered object interaction category.
  • the similarity action measure is based on the similarity action measures associated with the first device rendered object interaction category and one or more of the plurality of device rendered object interaction categories.
  • search query refers to a text associated with a search query that has been requested/performed as defined above.
  • search query row refers to a row of a similarity table as defined above.
  • the row is associated with a search query performed.
  • a row may represent the search query “Japanese food in Chicago” of search queries submitted by client devices.
  • device rendered object category refers to a category associated with a device rendered object as defined above.
  • device rendered object category column refers to a column of a similarity table as defined above.
  • the column is associated with a particular category of device rendered objects.
  • a column may represent the category “Chinese food” of device rendered objects.
  • similarity cell count refers to a number representative of intersections between a search query row and a device rendered object category column of a similarity table.
  • a search query may have been performed for “Chinese food” and a client device interacted with a device rendered object associated with “Japanese food.”
  • the similarity cell at the intersection of the search query row for “Chinese food” and the device rendered object category column for “Japanese food” will have a similarity cell count that is incremented.
  • programmatically expected indicates machine prediction of occurrence of certain events.
  • a “programmatically expected” number of purchases by a first consumer is a number determined by machine prediction specifying the expected number of promotions that will be purchased by the first consumer.
  • the term “likelihood” refers to a measure of probability for occurrence of a particular event.
  • the likelihood that a client device will interact with a device rendered object category may be a value associated with a specific scale.
  • the likelihood that a client device will request a search query and interact with a device rendered object of a particular category may be a value associated with a specific scale.
  • the machine predictions discussed above are based, at least in part, on the “likelihood” that an event will occur.
  • machine predictions are based on attributes associated with a client profile and/or an associated device rendered object category or search query.
  • subset describes a proper subset.
  • a proper subset of set is portion of the set that is not equal to the set. For example, if elements A, B, and C belong to a first set, a subset including elements A and B is a proper subset of the first set. However, a subset including elements A, B, and C is not a proper subset of the first set.
  • Methods, apparatuses, and computer program products of the present invention may be embodied by any of a variety of devices.
  • the method, apparatus, and computer program product of an example embodiment may be embodied by a networked device, such as a server or other network entity, configured to communicate with one or more devices, such as one or more client devices.
  • the computing device may include fixed computing devices, such as a personal computer or a computer workstation.
  • example embodiments may be embodied by any of a variety of mobile devices, such as a portable digital assistant (PDA), mobile telephone, smartphone, laptop computer, tablet computer, wearable, or any combination of the aforementioned devices.
  • PDA portable digital assistant
  • FIG. 1 illustrates an example computing system within which embodiments of the present invention may operate.
  • Client devices may access a device rendered object system 115 via a communications network 104 (e.g., the Internet, LAN, WAN, or the like) using client devices 101 A- 101 N.
  • the device rendered object system 115 may comprise a server 107 in communication with one or more databases or repositories 108 , 109 , 110 , 111 .
  • the server 107 may be embodied as a computer or computers as known in the art.
  • the server 107 may provide for receiving of electronic data from various sources, including but not necessarily limited to the client devices 101 A- 101 N.
  • the server 107 may be operable to receive and process search queries requested by the client devices 101 A- 101 N.
  • the server 107 may facilitate the generation and providing of various digital content objects associated with digital content object categories in response to the search queries.
  • the databases or repositories 108 - 111 may be embodied as a data storage device such as a Network Attached Storage (NAS) device or devices, or as a separate database server or servers.
  • the databases 108 - 111 include information accessed and stored by the server 107 to facilitate the operations of the activity vector management system 115 .
  • the databases 108 - 111 may include, without limitation, client profiles for users of the system 115 , one or more similarity tables, client action vectors, categories, device rendered objects, category information, and/or the like.
  • Client action vector repository 110 may include a client profile for each user of the system 115 .
  • the client profile includes a client action vector specific to the user.
  • a client profile may be created upon initial registration or interaction by a user with the system 115 .
  • Similarity table repository 109 may include one or more similarity tables representing intersections of search queries and device rendered object categories for all client devices accessing the system 115 .
  • the one or more similarity tables are constantly updated in real time.
  • Device rendered object repository 108 may include a plurality of device rendered objects for transmission to and display on client devices.
  • Category repository 111 may include mappings of device rendered objects to device rendered object categories.
  • the server 107 may comprise a similarity table generator 103 that is configured to generate a similarity table and similarity measures according to the description herein.
  • the server 107 may further comprise a client action vector generator 104 that is configured to generate client action vectors according to the description herein.
  • the server 107 may further comprise a client action vector extender 106 that is configured to extend a client action vector according to the description herein.
  • the client devices 101 A- 101 N may be any computing device as defined above. Electronic data received by the server 107 from the client devices 101 A- 101 N may be provided in various forms and via various methods.
  • the client devices 101 A- 101 N may include desktop computers, laptop computers, smartphones, netbooks, tablet computers, wearables, and the like.
  • a client device 101 A- 101 N is a mobile device, such as a smart phone or tablet
  • the client device 101 A- 101 N may execute an “app” to interact with the system 115 .
  • apps are typically designed to execute on mobile devices, such as tablets or smartphones.
  • an app may be provided that executes on mobile device operating systems such as iOS®, Android®, or Windows®.
  • These platforms typically provide frameworks that allow apps to communicate with one another and with particular hardware and software components of mobile devices.
  • the mobile operating systems named above each provide frameworks for interacting with location services circuitry, wired and wireless network interfaces, user contacts, and other applications. Communication with hardware and software modules executing outside of the app is typically provided via application programming interfaces (APIs) provided by the mobile device operating system.
  • APIs application programming interfaces
  • the client device 101 A- 101 N may interact with the system 115 via a web browser.
  • the client device 101 A- 101 N may include various hardware or firmware designed to interface with the system 115 .
  • the one or more client devices 101 A- 101 N are configured to generate a search query that is intended to produce search results.
  • the search query is transmitted by wired or wireless communication over the communications network 104 to the system 115 .
  • the search query is provided to the search engine 105 of the server 107 .
  • the server 107 utilizes search engine 105 to perform searches or queries based on the search query.
  • the server 107 returns results that may include one or more device rendered objects retrieved from device rendered object repository 108 .
  • Client devices 101 A- 101 N may interact with the device rendered objects.
  • repositories 108 - 111 may be one or more repositories, and may be part of or separate from server 107 .
  • the server 107 may be embodied by one or more computing systems, such as apparatus 200 shown in FIG. 2 .
  • the apparatus 200 may include a processor 202 , a memory 201 , input/output circuitry 204 , communications circuitry 205 , search circuitry 203 , and client action vector management circuitry 206 .
  • the apparatus 200 may be configured to execute the operations described herein.
  • these components 201 - 206 are described with respect to functional limitations, it should be understood that the particular implementations necessarily include the use of particular hardware. It should also be understood that certain of these components 201 - 206 may include similar or common hardware.
  • circuitry may both leverage use of the same processor, network interface, storage medium, or the like to perform their associated functions, such that duplicate hardware is not required for each set of circuitry.
  • circuitry as used herein with respect to components of the apparatus should therefore be understood to include particular hardware configured to perform the functions associated with the particular circuitry as described herein.
  • circuitry should be understood broadly to include hardware and, in some embodiments, software for configuring the hardware.
  • circuitry may include processing circuitry, storage media, network interfaces, input/output devices, and the like.
  • other elements of the apparatus 200 may provide or supplement the functionality of particular circuitry.
  • the processor 202 may provide processing functionality
  • the memory 201 may provide storage functionality
  • the communications circuitry 205 may provide network interface functionality, and the like.
  • the processor 202 (and/or co-processor or any other processing circuitry assisting or otherwise associated with the processor) may be in communication with the memory 201 via a bus for passing information among components of the apparatus.
  • the memory 201 may be non-transitory and may include, for example, one or more volatile and/or non-volatile memories.
  • the memory may be an electronic storage device (e.g., a computer readable storage medium).
  • the memory 201 may be configured to store information, data, content, applications, instructions, or the like, for enabling the apparatus to carry out various functions in accordance with example embodiments of the present invention.
  • the processor 202 may be embodied in a number of different ways and may, for example, include one or more processing devices configured to perform independently. Additionally or alternatively, the processor may include one or more processors configured in tandem via a bus to enable independent execution of instructions, pipelining, and/or multithreading.
  • processing circuitry may be understood to include a single core processor, a multi-core processor, multiple processors internal to the apparatus, and/or remote or “cloud” processors.
  • the processor 202 may be configured to execute instructions stored in the memory 201 or otherwise accessible to the processor. Alternatively, or additionally, the processor may be configured to execute hard-coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Alternatively, as another example, when the processor is embodied as an executor of software instructions, the instructions may specifically configure the processor to perform the algorithms and/or operations described herein when the instructions are executed.
  • the apparatus 200 may include input/output circuitry 204 that may, in turn, be in communication with processor 202 to provide output to the user and, in some embodiments, to receive an indication of a user input.
  • the input/output circuitry 204 may comprise a user interface and may include a display and may comprise a web user interface, a mobile application, a client device, a kiosk, or the like.
  • the input/output circuitry 204 may also include a keyboard, a mouse, a joystick, a touch screen, touch areas, soft keys, a microphone, a speaker, or other input/output mechanisms.
  • the processor and/or user interface circuitry comprising the processor may be configured to control one or more functions of one or more user interface elements through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor (e.g., memory 204 , and/or the like).
  • computer program instructions e.g., software and/or firmware
  • the communications circuitry 205 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device, circuitry, or module in communication with the apparatus 200 .
  • the communications circuitry 205 may include, for example, a network interface for enabling communications with a wired or wireless communication network.
  • the communications circuitry 205 may include one or more network interface cards, antennae, buses, switches, routers, modems, and supporting hardware and/or software, or any other device suitable for enabling communications via a network.
  • the communication interface may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s).
  • Search circuitry 203 includes hardware configured to receive search queries and to perform searches or queries based on such search queries.
  • the search circuitry 203 may utilize processing circuitry, such as the processor 202 , to perform these actions.
  • the search circuitry 203 may send and/or receive data from client action vector management circuitry 206 .
  • the sent and/or received data may be client profile information, search query information, device rendered object interaction information, device rendered object category information, and the like.
  • the search circuitry 203 may include a separate processor, specially configured field programmable gate array (FPGA), or application specific interface circuit (ASIC).
  • client action vector management circuitry 206 described below, may be sub-circuitry belonging to search circuitry 203 .
  • the search circuitry 203 may be implemented using hardware components of the apparatus configured by either hardware or software for implementing the functions described herein.
  • Client action vector management circuitry 206 includes hardware configured to manage client action vectors for one or more users associated with client profiles.
  • the client action vector management circuitry may utilize processing circuitry, such as the processor 202 , to perform these actions.
  • processing circuitry such as the processor 202
  • the client action vector management circuitry may include a separate processor, specially configured field programmable gate array (FPGA), or application specific interface circuit (ASIC) for performing the functions described herein.
  • Circuitry 206 may be implemented using hardware components of the apparatus configured by either hardware or software for implementing these planned functions.
  • any such computer program instructions and/or other type of code may be loaded onto a computer, processor or other programmable apparatus's circuitry to produce a machine, such that the computer, processor or other programmable circuitry that execute the code on the machine create the means for implementing various functions, including those described herein.
  • all or some of the information presented by the example displays discussed herein can be based on data that is received, generated and/or maintained by one or more components of apparatus 200 .
  • one or more external systems such as a remote cloud computing and/or data storage system may also be leveraged to provide at least some of the functionality discussed herein.
  • embodiments of the present invention may be configured as methods, mobile devices, backend network devices, and the like. Accordingly, embodiments may comprise various means including entirely of hardware or any combination of software and hardware. Furthermore, embodiments may take the form of a computer program product on at least one non-transitory computer-readable storage medium having computer-readable program instructions (e.g., computer software) embodied in the storage medium. Any suitable computer-readable storage medium may be utilized including non-transitory hard disks, CD-ROMs, flash memory, optical storage devices, or magnetic storage devices.
  • FIG. 3 illustrates an exemplary similarity table generation data flow according to one embodiment of the present invention.
  • a similarity table generator 301 receives data representing search query activity 302 and data representing device rendered object interaction 303 .
  • the data representing search query activity 302 comprises text associated with the search query.
  • the data representing device rendered object interactions 303 comprises a device rendered object category associated with the device rendered objects with which interactions have occurred.
  • Similarity table generator 301 builds a similarity table 305 whereby the columns of the similarity table 305 represent device rendered object categories and the rows of the similarity table 305 represent search queries.
  • a similarity count in a cell of the similarity table 305 represents an intersection of the search query and device rendered object category associated with the cell.
  • Similarity table generator 301 also performs a similarity analysis on each column of the similarity table 305 to produce a plurality of similarity measures (e.g., a similarity measure for each column or device rendered object category). Similarity table generator 301 performs the similarity analysis by extracting each column and performing a similarity analysis defined by similarity analysis type 304 on each column compared to each of the other columns. A similarity measure for a particular column is a measure of how similar the column is compared to another of the other columns of the similarity table 305 .
  • FIG. 4 illustrates an exemplary similarity table according to one embodiment of the present invention.
  • Similarity table 401 comprises a plurality of columns, each column associated with a device rendered object category (shown by box 402 in FIG. 4 ).
  • Similarity table 401 comprises a plurality of rows, each row associated with a search query (shown by box 403 in FIG. 4 ).
  • FIG. 5 illustrates an exemplary client action vector generation data flow according to one embodiment of the present invention.
  • Client action vector generator 501 receives data representing device rendered object interaction signals performed by the client device 502 , and a client profile associated with the client device 503 .
  • the client action vector 505 includes data fields or cells representative of the number of times a client device has interacted with device rendered objects of each device rendered object category of a plurality of device rendered object categories.
  • FIG. 6 illustrates an exemplary client action vector according to one embodiment of the present invention.
  • Client action vector 601 comprises a plurality of columns, each column associated with a device rendered object category 603 (e.g., A, B, C . . . I, in FIG. 6 ).
  • Client action vector 601 comprises a row 602 , where the row 602 is associated with device rendered object interactions by a client profile.
  • Client action vector 601 comprises a plurality of cells that represent the number of times a client device associated with the client profile has interacted with device rendered objects of each device rendered object category.
  • client action vector cells 605 and 606 are “empty,” meaning the client device associated with the client profile has not interacted with device rendered objects associated with categories “E” or “F.”
  • FIG. 7 illustrates an exemplary client action vector extension data flow according to one embodiment of the present invention.
  • a client action vector extender 701 receives as input a client action vector 702 associated with a client profile (utilizing client device) as well as a similarity table 703 (and similarity measures) associated with all client profiles across the device rendered object system.
  • the client profile 704 associated with the client device is also received as input by the client action vector extender 701 .
  • client action vector extender 701 Utilizing a received normalization algorithm 705 , client action vector extender 701 produces an extended client action vector 706 .
  • FIG. 8 illustrates an exemplary extended client action vector according to one embodiment of the present invention.
  • Client action vector 801 comprises a plurality of columns, each column associated with a device rendered object category 803 (e.g., A, B, C . . . I, in FIG. 8 ).
  • Client action vector 801 comprises a row 802 , where the row 802 is associated with a client profile.
  • Client action vector 801 comprises a plurality of cells that represent the number of times a client device associated with the client profile has interacted with device rendered objects associated with each device rendered object category.
  • FIG. 9 illustrates an exemplary client action vector extension process according to one embodiment of the present invention.
  • a first cell or field of a client action vector is selected 901 , and if it is not empty 902 , the next cell or field of the client action vector is selected 903 until the entire client action vector has been traversed.
  • a device rendered object category is extracted 904 and the similarity measures between the device rendered object category and each of the other categories of a plurality of device rendered object categories are retrieved 905 .
  • the similarity measure of the category as compared to the extracted device rendered object category is at or above a pre-defined similarity threshold 907 .
  • an action count is extracted from a cell of the client action vector associated with the device rendered object category 909 .
  • a similarity action measure is computed based on the action count and the similarity measure 910 . If a similarity measure does not meet or exceed the pre-defined threshold, the next device rendered object category is selected until all device rendered object categories are exhausted 908 . Similarly, after computing a similarity action measure 910 for a device rendered object category, a next device rendered object category is selected until all device rendered object categories are exhausted 908 .
  • an action measure for the empty client action vector cell is computed 911 .
  • An action count of the empty client action vector cell is incremented 912 to match the action measure.
  • FIG. 10 illustrates an exemplary client action vector generation process according to one embodiment of the present invention.
  • a device rendered object interaction signal is received 1001 from a client device. If the client device is associated with an existing profile 1002 , a client action vector for the client profile is retrieved 1003 . If the client device is not associated with an existing profile 1002 , a new client action vector as well as a new client profile are generated for the client device 1004 .
  • a device rendered object category is extracted 1005 from the device rendered object interaction signal, and an action count of a client action vector cell in the client action vector associated with the device rendered object category is incremented 1006 .
  • FIG. 11 illustrates an exemplary similarity table generation process according to one embodiment of the present invention.
  • a plurality of search queries is received from a plurality of client devices 1101 .
  • a search query row is generated 1102 .
  • any device rendered object interaction data associated with the search query is received 1103 and a device rendered object category is extracted 1104 .
  • a similarity count in a cell representing an intersection between the search query and associated extracted device rendered object category is incremented 1105 .
  • FIG. 12 illustrates an exemplary similarity measure calculation process according to one embodiment of the present invention.
  • each column of a similarity table is extracted 1201 .
  • each column of the similarity table may be referred to as a vector, and each device rendered object category is associated with its own vector.
  • a similarity measure is calculated for each column 1202 , where the similarity measure is a comparison between each column and the other columns of the similarity table. Similarity measures are then assigned to the device rendered object category associated with the column 1203 .
  • a client action vector for a client device associated with a client profile u can be denoted as UDAu:
  • a ui is a tuple of two floats: ⁇ I u (i),C u (i)>.
  • I u (i) represents a number of times device rendered objects in device rendered object category i have been presented to a client device associated with the client profile.
  • C u (i) represents a number of times a client device associated with the client profile has interacted with device rendered objects associated with device rendered object category i.
  • An action count for device rendered object category i for client profile u is can be denoted as:
  • an all client action vector can be denoted as UDA all and an all client profile action count for device rendered object category i can be denoted as CTR all (i).
  • CTR all a set of similar device rendered object categories
  • Si(t) a similarity threshold
  • CM sim i,j
  • a similarity ratio can be defined as:
  • device rendered object category similarities can be used (i.e., a similarity measures).
  • Action counts from client action vector cells associated with one device rendered object category can be “converted” to similarity action measures for an empty client action vector cell associated with a second device rendered object category, e.g., i.
  • This similarity action measure can be computed according to the following:
  • a similarity action measure can be computed from all similar categories of i, S i (t), according to the following:
  • T is a transformation function to transform a number of times device rendered objects in device rendered object category i that have been presented to a client device associated with the client profile. Possible choices for T include:
  • the client action vector associated with a client profile u might have an existing action count for device rendered object category i, in which case a similarity action measure for the client profile u from similar device rendered object categories can be combined with the existing action count:
  • I ⁇ u ⁇ ( S i ⁇ ( t ) ) ⁇ k ⁇ S i ⁇ ( t ) ⁇ ⁇ ⁇ I u ⁇ ( k ) ⁇ S i ⁇ ( t ) ⁇ ( eqn . ⁇ 12 )
  • the similarity action measure is the average number of times device rendered objects have been displayed to the client device from similar device rendered object categories to i.
  • the similarity action measure is only computed for category i if the similarity action measure from similar categories is larger than the original action count.
  • an updated similarity ratio can be defined as:
  • FIG. 2 Although an example processing system has been described in FIG. 2 , implementations of the subject matter and the functional operations described herein can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
  • Embodiments of the subject matter and the operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
  • Embodiments of the subject matter described herein can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, information/data processing apparatus.
  • the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, which is generated to encode information/data for transmission to suitable receiver apparatus for execution by an information/data processing apparatus.
  • a computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them.
  • a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal.
  • the computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
  • the operations described herein can be implemented as operations performed by an information/data processing apparatus on information/data stored on one or more computer-readable storage devices or received from other sources.
  • the term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing.
  • the apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
  • the apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them.
  • the apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
  • a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment.
  • a computer program may, but need not, correspond to a file in a file system.
  • a program can be stored in a portion of a file that holds other programs or information/data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code).
  • a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
  • a processor will receive instructions and information/data from a read-only memory or a random access memory or both.
  • the essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data.
  • a computer will also include, or be operatively coupled to receive information/data from or transfer information/data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
  • mass storage devices for storing data
  • a computer need not have such devices.
  • Devices suitable for storing computer program instructions and information/data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
  • the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information/data to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer.
  • a display device e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor
  • a keyboard and a pointing device e.g., a mouse or a trackball
  • Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.
  • a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web
  • Embodiments of the subject matter described herein can be implemented in a computing system that includes a back-end component, e.g., as an information/data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described herein, or any combination of one or more such back-end, middleware, or front-end components.
  • the components of the system can be interconnected by any form or medium of digital information/data communication, e.g., a communication network.
  • Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
  • LAN local area network
  • WAN wide area network
  • inter-network e.g., the Internet
  • peer-to-peer networks e.g., ad hoc peer-to-peer networks.
  • the computing system can include clients and servers.
  • a client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other.
  • a server transmits information/data (e.g., an HTML, page) to a client device (e.g., for purposes of displaying information/data to and receiving user input from a user interacting with the client device).
  • Information/data generated at the client device e.g., a result of the user interaction

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Embodiments of the present invention provide methods, systems, apparatuses, and computer program products for extending an action vector. In one embodiment, an apparatus is configured to scan each client action vector cell of the client action vector to identify an empty client action vector cell, the client action vector associated with a client profile; upon identifying an empty client action vector cell, extract an empty client action vector cell device rendered object category; retrieve, from a similarity table, a similarity measure for each of the other device rendered object categories of the plurality of device rendered object categories, the similarity measure being in comparison to the empty client action vector cell device rendered object category; for each of the other device rendered object categories of the plurality of device rendered object categories having a similarity measure above a similarity threshold, extract an action count from the client action vector cell associated with the device rendered object category; compute a similarity action measure for the device rendered object category based at least on the action count and the similarity measure; and compute an action measure for the empty client action vector cell using at least one of the similarity action measures; and increment an action count in the empty client action vector cell based on the action measure.

Description

  • This application is a continuation of and claims priority to U.S. application Ser. No. 16/033,956, titled “METHOD, APPARATUS, AND COMPUTER PROGRAM PRODUCT FOR EXTENDING AN ACTION VECTOR,” filed Jul. 12, 2018, which claims the benefit of U.S. Provisional Patent Application No. 62/531,756, titled “METHOD, APPARATUS, AND COMPUTER PROGRAM PRODUCT FOR EXTENDING AN ACTION VECTOR,” filed Jul. 12, 2017, the entireties of which are hereby incorporated by reference.
  • BACKGROUND
  • Client devices submit search queries and may interact with device rendered objects returned within the search results, the device rendered objects associated with device rendered object categories. A client device may tend to interact with device rendered objects associated with only a subset of device rendered object categories, making a vector containing data representing interaction activity by the client device across all device rendered object categories sparse. Through applied effort, ingenuity, and innovation, many of these identified problems have been solved by developing solutions that are included in embodiments of the present invention, many examples of which are described in detail herein.
  • SUMMARY
  • This specification relates to extending a client action vector. In one embodiment, a computing entity or apparatus is configured to scan each client action vector cell of the client action vector to identify an empty client action vector cell, the client action vector associated with a client profile; upon identifying an empty client action vector cell, extract an empty client action vector cell device rendered object category; retrieve, from a similarity table, a similarity measure for each of the other device rendered object categories of the plurality of device rendered object categories, the similarity measure being in comparison to the empty client action vector cell device rendered object category; for each of the other device rendered object categories of the plurality of device rendered object categories having a similarity measure above a similarity threshold, extract an action count from the client action vector cell associated with the device rendered object category; compute a similarity action measure for the device rendered object category based at least on the action count and the similarity measure; and compute an action measure for the empty client action vector cell using at least one of the similarity action measures; and increment an action count in the empty client action vector cell based on the action measure.
  • Other embodiments include corresponding systems, methods, and computer programs, configured to perform the operations of the apparatus, encoded on computer storage devices. These and other embodiments can each optionally include one or more of the following features: generating the client action vector by receiving a device rendered object interaction signal from a client device associated with a client profile, wherein the device rendered object interaction signal is indicative of the client device having selected a device rendered object; extracting a first device rendered object category from the device rendered object; and incrementing an action count in a client action vector cell associated with the first device rendered object category.
  • Other embodiments can each optionally include generating the similarity table, wherein the similarity table comprises a plurality of similarity cells, wherein the similarity table has a plurality of columns, each column associated with a different device rendered object category of the plurality of device rendered object categories, wherein the similarity table has a plurality of rows, each row associated with a different search query, and wherein each device rendered object category column contains a row for every search query and each search query row contains a column for every device rendered object category.
  • Other embodiments can each optionally include generating the similarity table by receiving a plurality of search queries from a plurality of client devices; for each received search query, generating a search query row, upon receiving a device rendered object interaction signal associated with the search query, extracting a device rendered object category; and incrementing a similarity cell count in a cell associated with both the search query and the device rendered object category.
  • Other embodiments can each optionally included extracting each column of the similarity table and the device rendered object interaction category associated therewith; calculating a similarity measure for each column between the column and the other columns of the similarity table; and assigning similarity measures to the device rendered object categories wherein a similarity measure is associated with a pair of categories.
  • Other embodiments can each optionally include calculating the similarity measure using a cosine similarity.
  • The details of one or more embodiments of the subject matter described in this specification are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the subject matter will become apparent from the description, the drawings, and the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
  • FIG. 1 is a system architecture diagram of a system configured to practice embodiments of the present invention;
  • FIG. 2 is an exemplary schematic diagram of a computing entity according to one embodiment of the present invention;
  • FIG. 3 illustrates an exemplary similarity table generation data flow according to one embodiment of the present invention;
  • FIG. 4 illustrates an exemplary similarity table according to one embodiment of the present invention;
  • FIG. 5 illustrates an exemplary client action vector generation data flow according to one embodiment of the present invention;
  • FIG. 6 illustrates an exemplary client action vector according to one embodiment of the present invention;
  • FIG. 7 illustrates an exemplary client action vector extension data flow according to one embodiment of the present invention;
  • FIG. 8 illustrates an exemplary extended client action vector according to one embodiment of the present invention;
  • FIG. 9 illustrates an exemplary client action vector extension process according to one embodiment of the present invention'
  • FIG. 10 illustrates an exemplary client action vector generation process according to one embodiment of the present invention;
  • FIG. 11 illustrates an exemplary similarity table generation process according to one embodiment of the present invention; and
  • FIG. 12 illustrates an exemplary similarity measure calculation process according to one embodiment of the present invention.
  • DETAILED DESCRIPTION OF VARIOUS EMBODIMENTS
  • Various embodiments of the present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. The term “or” is used herein in both the alternative and conjunctive sense, unless otherwise indicated. The terms “illustrative” and “exemplary” are used to be examples with no indication of quality level. Like numbers refer to like elements throughout.
  • Overview
  • Various embodiments of the invention generally relate to extending an action vector associated with a client device. For example, the methods, apparatus and computer program products described herein are operable to scan each client action vector cell of the client action vector to identify an empty client action vector cell, the client action vector associated with a client profile; upon identifying an empty client action vector cell, extract an empty client action vector cell device rendered object category; retrieve, from a similarity table, a similarity measure for each of the other device rendered object categories of the plurality of device rendered object categories, the similarity measure being in comparison to the empty client action vector cell device rendered object category; for each of the other device rendered object categories of the plurality of device rendered object categories having a similarity measure above a similarity threshold, extract an action count from the client action vector cell associated with the device rendered object category; compute a similarity action measure for the device rendered object category based at least on the action count and the similarity measure; and compute an action measure for the empty client action vector cell using at least one of the similarity action measures; and increment an action count in the empty client action vector cell based on the action measure.
  • Device rendered objects are selected for transmission to a client device as part of search results, the selection based upon data contained within a client action vector of a client profile associated with the client device. The client action vector is generated based upon device rendered object interaction activity performed by the client device. Where a client device has performed little to no device rendered object interaction activity for a particular device rendered object category, device rendered objects may not be selected for transmission to the client device for that particular device rendered object category in the future. Accordingly, a data store of device rendered objects may become unbalanced, thereby negatively impacting resources of a device rendered object system. Also, it is impossible to provide for enough system time and data storage in order to allow for the client device to interact with device rendered objects of every device rendered object category over time (i.e., in order to have each cell of a client action vector populated for a given client profile).
  • The inventors have identified that the system resources and time allocated to such device rendered object presentation selections based upon client action vectors are easily exhausted and compromised as a result of these challenges. The inventors have determined that the ability to extend a client action vector utilizing device rendered object interaction data associated with the client device as well as similarity measures between device rendered object categories would reduce the computing resources (e.g., processing power, processing time, data storage, transmission times) and time necessary to perform selection and transmission of device rendered objects.
  • Definitions
  • As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received, and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention. Further, where a computing device is described herein to receive data from another computing device, it will be appreciated that the data may be received directly from another computing device or may be received indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like, sometimes referred to herein as a “network.” Similarly, where a computing device is described herein to send data to another computing device, it will be appreciated that the data may be sent directly to another computing device or may be sent indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, hosts, and/or the like.
  • The term “client device” refers to computer hardware and/or software that is configured to access a service made available by a server. The server is often (but not always) on another computer system, in which case the client device accesses the service by way of a network. Client devices may include, without limitation, smart phones, tablet computers, laptop computers, wearables, personal computers, enterprise computers, and the like.
  • As used herein, the terms “user,” “client,” “consumer,” and “customer” may be used interchangeably to refer, without limitation, to a client, customer, purchaser, shopper, user and the like who may be using a client device to receive and interact with a device rendered object.
  • The term “client profile” refers to a collection of preferences, settings, configurations, client device identifiers, data, and information associated with a specific user. A profile refers therefore to the explicit digital representation of a person's identity and other data or information associated with the user. In some embodiments, a client profile can be used to store a description of characteristics of the user and/or of the client device, as well as credentials, past behaviors, and preferences of the user.
  • The term “search query” refers to a query for electronic documents or digital content items submitted to a platform by a user utilizing a client device. The term “search results” refers to results returned from such a query. In some examples, a user using the client device may submit a query for “Japanese food” into an interface and the system may return a list of device rendered objects and/or URLs having keywords, metadata, or the like contained therein or associated therewith. The search results thus include the returned list of device rendered objects, all keywords and metadata associated therewith, and an arrangement or ranked order of the returned list.
  • The term “device rendered object” may be used to refer to a set of executable instructions that, when executed by a processor of a computing device, renders an object for display. An example of a device rendered object can be an instrument of a promotion. The instrument may be any type of gift card, tender, electronic certificate, medium of exchange, voucher, or the like that embodies terms of a promotion from which the instrument resulted and may be used toward at least a portion of the purchase, acquisition, procurement, consumption or the like of goods, services and/or experiences. In some examples, the instrument may take the form of tender that has a given value that is exchangeable for goods, services and/or experiences and/or a reduction in a purchase price of a particular good, service or experience. In some examples, the instrument may have multiple values, such as accepted value, a promotional value, and/or a residual value. In some examples, the accepted value of the instrument is defined by the value exchanged for the instrument. In some examples, the promotional value is defined by the promotion from which the instrument resulted and is the value of the instrument beyond the accepted value. In some examples, the residual value is the value after redemption, the value after the expiration or other violation of a redemption parameter, the return or exchange value of the instrument and/or the like.
  • In embodiments, each device rendered object has associated data indicating one or more categories (such as a restaurant promotion, a spa promotion, a travel promotion, a local promotion, etc.), sub-categories (such as a sushi restaurant), location, hyper-locations, prices or the like. For example, an object may be associated with a gym, and the gym may be associated with category data such as “beauty, wellness, and healthcare,” “food and drink,” “leisure offers and activities” and/or “services.” A gym may also have more than one location, and may be able to provide promotions in a variety of price ranges and time frames. The device rendered object may be further associated with sub-category data such as “Chinese food” or “Mexican food.”
  • In embodiments, each search query has associated data indicating one or more categories, sub-categories, or the like. For example, a search query may be associated with category data such as “beauty, wellness, and healthcare,” “food and drink,” “leisure offers and activities” and/or “services.” The search query may be further associated with sub-category data such as “Chinese food” or “Mexican food.”
  • It is understood that while some embodiments described herein refer to a client action vector having categories associated therewith, the client action vector may have sub-categories associated therewith without departing from the scope of the present invention.
  • It is understood that while some embodiments described herein refer to a similarity table having categories associated therewith, the similarity table may have sub-categories associated therewith without departing from the scope of the present invention.
  • As used herein, the terms “device rendered object service” or “device rendered object system” may include a service that is accessible via one or more computing devices and that is operable to provide device rendered object services on behalf of one or more providers that are offering one or more instruments that are redeemable for goods, services, experiences and/or the like. In some examples, the device rendered object service may take the form of a redemption authority, a payment processor, a rewards provider, an entity in a financial network, a promoter, an agent and/or the like. As such, the device rendered object service is, in some example embodiments, configured to present one or more device rendered objects (e.g., promotions) to client devices, accept payments for device rendered objects from client devices, issue instruments upon acceptance of an object, participate in redemption, generate rewards, provide a point of sale device or service, issue payments to providers and/or otherwise participate in the exchange of goods, services or experiences for currency, value and/or the like.
  • As used herein, the terms “provider” and “merchant” may be used interchangeably and may include, but are not limited to, a business owner, consigner, shopkeeper, tradesperson, vendor, operator, entrepreneur, agent, dealer, organization or the like that is in the business of providing a good, service or experience to a consumer, facilitating the provision of a good service or experience to a consumer and/or otherwise operating in the stream of commerce. The “provider” or “merchant” need not actually market a product or service via the device rendered object service, as some merchants or providers may utilize the device rendered object service only for the purpose of gathering client profile information, vector activity information, similarity table information, or the like.
  • The term “device rendered object interaction” refers to electronic interaction with a device rendered object by a client device. In some examples, the device rendered object interaction may take the form of an accessing or selection of the device rendered object, a viewing of the device rendered object on an electronic display, a scrolling over the device rendered object, a retrieval of the device rendered object, a purchase transaction completed for the device rendered object, and/or the like.
  • In some embodiments, the interaction data may include various other interactions, including without limitation, mouse-over events and durations, the amount of time spent by the client device viewing particular content, the rate at which impressions of particular content result in sales associated with that content, demographic information associated with each particular client using the client device, data indicating other content accessed by the client device (e.g., browser cookie data), the time or date on which content was accessed, the frequency of impressions for particular content, a financial transaction performed between the client device and a device rendered object service/system associated with a particular device rendered object, associations between particular clients or client demographics and particular impressions, and/or the like.
  • The term “device rendered object interaction signal” refers to electronic indication that an interaction as defined above has occurred with respect to a particular device rendered object.
  • The term “client action vector” or “client activity vector” refers to a data structure used to stored information about actions performed by a client device associated with a client profile. In some embodiments, the actions performed by the client device are search queries. In some embodiments, the actions performed by the client device are device rendered object interactions. In some examples, the client action/activity vector may take the form of a vector, feature vector, linked list, array, record, tuple, a data structure containing data fields, and/or the like.
  • The term “client action vector cell” refers to a data field of a data structure used to store information about actions performed by a client device associated with a client profile (e.g., a client action vector as described above). In some examples, the client action vector cell may take the form of a cell, an array element, a node of a linked list, and/or the like.
  • The term “action count” refers to a number of search queries performed by a client device, associated with a client profile, for a particular category in a client action vector. In some embodiments, the action count is electronically stored in the data structure referred to herein as a client action vector cell.
  • The term “empty client action vector cell” refers to a cell of a client action vector storing an action count equivalent to 0. In some examples, the action count can be equivalent to 0 because the client device has not yet submitted a search query that is associated with the cell.
  • The term “empty client action vector cell category” refers to a category associated with a client action vector cell that has an action count value of 0. In some examples, the empty client action vector cell category may be “Chinese food” and/or the like.
  • The term “similarity table” refers to a data structure comprised of multiple data structures referred to herein as horizontal rows and vertical columns. A similarity table cell is a unit where a row and column intersect. In some examples, the similarity table may have rows representing search queries and columns representing device rendered object categories. In some examples, the similarity table may take the form of multiple vectors, multiple arrays, multiple linked lists, multiple records, a data structure containing multiple data fields, and the like.
  • The term “similarity measure” refers to a computer-generated value representing a measure of similarity between any two device rendered object categories of a similarity table. In some examples, the similarity measure may be calculated by extracting each device rendered object category column of the similarity table and performing a cosine similarity analysis on the columns to generate a plurality of similarity measures.
  • The term “similarity threshold” refers to a pre-defined minimum amount of similarity that is required between two device rendered object categories of a plurality of categories. In some examples, the similarity threshold may be 0.8, whereby any category having a similarity cell count below 0.8 will not be considered in calculating a similarity action measure and those categories having a similarity cell count of 0.8 or greater will be considered in calculating a similarity action measure.
  • The term “similarity action measure” refers to a computer-generated value for a particular device rendered object category that is calculated based upon the device rendered object category's similarity measure and the device rendered object category's action count.
  • The term “action measure” refers to a computer-generated value representing an artificial action count for a first device rendered object interaction category. In some examples, the action measure is based on a similarity action measure of a second device rendered object interaction category. In some examples, the similarity action measure is based on the similarity action measures associated with the first device rendered object interaction category and one or more of the plurality of device rendered object interaction categories.
  • The term “search query” refers to a text associated with a search query that has been requested/performed as defined above.
  • The term “search query row” refers to a row of a similarity table as defined above. The row is associated with a search query performed. For example, a row may represent the search query “Japanese food in Chicago” of search queries submitted by client devices.
  • The term “device rendered object category” refers to a category associated with a device rendered object as defined above.
  • The term “device rendered object category column” refers to a column of a similarity table as defined above. The column is associated with a particular category of device rendered objects. For example, a column may represent the category “Chinese food” of device rendered objects.
  • The term “similarity cell count” refers to a number representative of intersections between a search query row and a device rendered object category column of a similarity table. For example, a search query may have been performed for “Chinese food” and a client device interacted with a device rendered object associated with “Japanese food.” In this representative example, the similarity cell at the intersection of the search query row for “Chinese food” and the device rendered object category column for “Japanese food” will have a similarity cell count that is incremented.
  • It should be appreciated that the term “programmatically expected” indicates machine prediction of occurrence of certain events. For example, a “programmatically expected” number of purchases by a first consumer is a number determined by machine prediction specifying the expected number of promotions that will be purchased by the first consumer.
  • As used herein, the term “likelihood” refers to a measure of probability for occurrence of a particular event. For example, the likelihood that a client device will interact with a device rendered object category may be a value associated with a specific scale. As another example, the likelihood that a client device will request a search query and interact with a device rendered object of a particular category may be a value associated with a specific scale. In some implementations, the machine predictions discussed above are based, at least in part, on the “likelihood” that an event will occur. Similarly, in some implementations, machine predictions are based on attributes associated with a client profile and/or an associated device rendered object category or search query.
  • It should be appreciated that the term “subset” describes a proper subset. A proper subset of set is portion of the set that is not equal to the set. For example, if elements A, B, and C belong to a first set, a subset including elements A and B is a proper subset of the first set. However, a subset including elements A, B, and C is not a proper subset of the first set.
  • Example System Architecture
  • Methods, apparatuses, and computer program products of the present invention may be embodied by any of a variety of devices. For example, the method, apparatus, and computer program product of an example embodiment may be embodied by a networked device, such as a server or other network entity, configured to communicate with one or more devices, such as one or more client devices. Additionally or alternatively, the computing device may include fixed computing devices, such as a personal computer or a computer workstation. Still further, example embodiments may be embodied by any of a variety of mobile devices, such as a portable digital assistant (PDA), mobile telephone, smartphone, laptop computer, tablet computer, wearable, or any combination of the aforementioned devices.
  • FIG. 1 illustrates an example computing system within which embodiments of the present invention may operate. Client devices may access a device rendered object system 115 via a communications network 104 (e.g., the Internet, LAN, WAN, or the like) using client devices 101A-101N. The device rendered object system 115 may comprise a server 107 in communication with one or more databases or repositories 108, 109, 110, 111.
  • The server 107 may be embodied as a computer or computers as known in the art. The server 107 may provide for receiving of electronic data from various sources, including but not necessarily limited to the client devices 101A-101N. For example, the server 107 may be operable to receive and process search queries requested by the client devices 101A-101N. The server 107 may facilitate the generation and providing of various digital content objects associated with digital content object categories in response to the search queries.
  • The databases or repositories 108-111 may be embodied as a data storage device such as a Network Attached Storage (NAS) device or devices, or as a separate database server or servers. The databases 108-111 include information accessed and stored by the server 107 to facilitate the operations of the activity vector management system 115. For example, the databases 108-111 may include, without limitation, client profiles for users of the system 115, one or more similarity tables, client action vectors, categories, device rendered objects, category information, and/or the like.
  • Client action vector repository 110 may include a client profile for each user of the system 115. The client profile includes a client action vector specific to the user. A client profile may be created upon initial registration or interaction by a user with the system 115.
  • Similarity table repository 109 may include one or more similarity tables representing intersections of search queries and device rendered object categories for all client devices accessing the system 115. In some embodiments, the one or more similarity tables are constantly updated in real time.
  • Device rendered object repository 108 may include a plurality of device rendered objects for transmission to and display on client devices.
  • Category repository 111 may include mappings of device rendered objects to device rendered object categories.
  • The server 107 may comprise a similarity table generator 103 that is configured to generate a similarity table and similarity measures according to the description herein. The server 107 may further comprise a client action vector generator 104 that is configured to generate client action vectors according to the description herein. The server 107 may further comprise a client action vector extender 106 that is configured to extend a client action vector according to the description herein.
  • The client devices 101A-101N may be any computing device as defined above. Electronic data received by the server 107 from the client devices 101A-101N may be provided in various forms and via various methods. For example, the client devices 101A-101N may include desktop computers, laptop computers, smartphones, netbooks, tablet computers, wearables, and the like.
  • In embodiments where a client device 101A-101N is a mobile device, such as a smart phone or tablet, the client device 101A-101N may execute an “app” to interact with the system 115. Such apps are typically designed to execute on mobile devices, such as tablets or smartphones. For example, an app may be provided that executes on mobile device operating systems such as iOS®, Android®, or Windows®. These platforms typically provide frameworks that allow apps to communicate with one another and with particular hardware and software components of mobile devices. For example, the mobile operating systems named above each provide frameworks for interacting with location services circuitry, wired and wireless network interfaces, user contacts, and other applications. Communication with hardware and software modules executing outside of the app is typically provided via application programming interfaces (APIs) provided by the mobile device operating system.
  • Additionally or alternatively, the client device 101A-101N may interact with the system 115 via a web browser. As yet another example, the client device 101A-101N may include various hardware or firmware designed to interface with the system 115.
  • Examples of data flows for exchanging electronic information among one or more client devices 101A-101N and the system 115 is described below.
  • In the depicted embodiment, the one or more client devices 101A-101N are configured to generate a search query that is intended to produce search results. The search query is transmitted by wired or wireless communication over the communications network 104 to the system 115. In the depicted embodiment, the search query is provided to the search engine 105 of the server 107.
  • The server 107 utilizes search engine 105 to perform searches or queries based on the search query. The server 107 returns results that may include one or more device rendered objects retrieved from device rendered object repository 108. Client devices 101A-101N may interact with the device rendered objects.
  • It will be appreciated that repositories 108-111 may be one or more repositories, and may be part of or separate from server 107.
  • Example Apparatus for Implementing Embodiments of the Present Invention
  • The server 107 may be embodied by one or more computing systems, such as apparatus 200 shown in FIG. 2. The apparatus 200 may include a processor 202, a memory 201, input/output circuitry 204, communications circuitry 205, search circuitry 203, and client action vector management circuitry 206. The apparatus 200 may be configured to execute the operations described herein. Although these components 201-206 are described with respect to functional limitations, it should be understood that the particular implementations necessarily include the use of particular hardware. It should also be understood that certain of these components 201-206 may include similar or common hardware. For example, two sets of circuitry may both leverage use of the same processor, network interface, storage medium, or the like to perform their associated functions, such that duplicate hardware is not required for each set of circuitry. The use of the term “circuitry” as used herein with respect to components of the apparatus should therefore be understood to include particular hardware configured to perform the functions associated with the particular circuitry as described herein.
  • The term “circuitry” should be understood broadly to include hardware and, in some embodiments, software for configuring the hardware. For example, in some embodiments, “circuitry” may include processing circuitry, storage media, network interfaces, input/output devices, and the like. In some embodiments, other elements of the apparatus 200 may provide or supplement the functionality of particular circuitry. For example, the processor 202 may provide processing functionality, the memory 201 may provide storage functionality, the communications circuitry 205 may provide network interface functionality, and the like.
  • In some embodiments, the processor 202 (and/or co-processor or any other processing circuitry assisting or otherwise associated with the processor) may be in communication with the memory 201 via a bus for passing information among components of the apparatus. The memory 201 may be non-transitory and may include, for example, one or more volatile and/or non-volatile memories. In other words, for example, the memory may be an electronic storage device (e.g., a computer readable storage medium). The memory 201 may be configured to store information, data, content, applications, instructions, or the like, for enabling the apparatus to carry out various functions in accordance with example embodiments of the present invention.
  • The processor 202 may be embodied in a number of different ways and may, for example, include one or more processing devices configured to perform independently. Additionally or alternatively, the processor may include one or more processors configured in tandem via a bus to enable independent execution of instructions, pipelining, and/or multithreading. The use of the term “processing circuitry” may be understood to include a single core processor, a multi-core processor, multiple processors internal to the apparatus, and/or remote or “cloud” processors.
  • In an example embodiment, the processor 202 may be configured to execute instructions stored in the memory 201 or otherwise accessible to the processor. Alternatively, or additionally, the processor may be configured to execute hard-coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor may represent an entity (e.g., physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Alternatively, as another example, when the processor is embodied as an executor of software instructions, the instructions may specifically configure the processor to perform the algorithms and/or operations described herein when the instructions are executed.
  • In some embodiments, the apparatus 200 may include input/output circuitry 204 that may, in turn, be in communication with processor 202 to provide output to the user and, in some embodiments, to receive an indication of a user input. The input/output circuitry 204 may comprise a user interface and may include a display and may comprise a web user interface, a mobile application, a client device, a kiosk, or the like. In some embodiments, the input/output circuitry 204 may also include a keyboard, a mouse, a joystick, a touch screen, touch areas, soft keys, a microphone, a speaker, or other input/output mechanisms. The processor and/or user interface circuitry comprising the processor may be configured to control one or more functions of one or more user interface elements through computer program instructions (e.g., software and/or firmware) stored on a memory accessible to the processor (e.g., memory 204, and/or the like).
  • The communications circuitry 205 may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data from/to a network and/or any other device, circuitry, or module in communication with the apparatus 200. In this regard, the communications circuitry 205 may include, for example, a network interface for enabling communications with a wired or wireless communication network. For example, the communications circuitry 205 may include one or more network interface cards, antennae, buses, switches, routers, modems, and supporting hardware and/or software, or any other device suitable for enabling communications via a network. Additionally or alternatively, the communication interface may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s).
  • Search circuitry 203 includes hardware configured to receive search queries and to perform searches or queries based on such search queries. The search circuitry 203 may utilize processing circuitry, such as the processor 202, to perform these actions. The search circuitry 203 may send and/or receive data from client action vector management circuitry 206. In some implementations, the sent and/or received data may be client profile information, search query information, device rendered object interaction information, device rendered object category information, and the like. It should also be appreciated that, in some embodiments, the search circuitry 203 may include a separate processor, specially configured field programmable gate array (FPGA), or application specific interface circuit (ASIC). In some implementations, client action vector management circuitry 206, described below, may be sub-circuitry belonging to search circuitry 203. The search circuitry 203 may be implemented using hardware components of the apparatus configured by either hardware or software for implementing the functions described herein.
  • Client action vector management circuitry 206 includes hardware configured to manage client action vectors for one or more users associated with client profiles. The client action vector management circuitry may utilize processing circuitry, such as the processor 202, to perform these actions. However, it should also be appreciated that, in some embodiments, the client action vector management circuitry may include a separate processor, specially configured field programmable gate array (FPGA), or application specific interface circuit (ASIC) for performing the functions described herein. Circuitry 206 may be implemented using hardware components of the apparatus configured by either hardware or software for implementing these planned functions.
  • As will be appreciated, any such computer program instructions and/or other type of code may be loaded onto a computer, processor or other programmable apparatus's circuitry to produce a machine, such that the computer, processor or other programmable circuitry that execute the code on the machine create the means for implementing various functions, including those described herein.
  • It is also noted that all or some of the information presented by the example displays discussed herein can be based on data that is received, generated and/or maintained by one or more components of apparatus 200. In some embodiments, one or more external systems (such as a remote cloud computing and/or data storage system) may also be leveraged to provide at least some of the functionality discussed herein.
  • As described above and as will be appreciated based on this disclosure, embodiments of the present invention may be configured as methods, mobile devices, backend network devices, and the like. Accordingly, embodiments may comprise various means including entirely of hardware or any combination of software and hardware. Furthermore, embodiments may take the form of a computer program product on at least one non-transitory computer-readable storage medium having computer-readable program instructions (e.g., computer software) embodied in the storage medium. Any suitable computer-readable storage medium may be utilized including non-transitory hard disks, CD-ROMs, flash memory, optical storage devices, or magnetic storage devices.
  • Example Processes for Managing and Extending a Client Action Vector
  • FIG. 3 illustrates an exemplary similarity table generation data flow according to one embodiment of the present invention. A similarity table generator 301 receives data representing search query activity 302 and data representing device rendered object interaction 303. In some embodiments, the data representing search query activity 302 comprises text associated with the search query. In some embodiments, the data representing device rendered object interactions 303 comprises a device rendered object category associated with the device rendered objects with which interactions have occurred.
  • Similarity table generator 301 builds a similarity table 305 whereby the columns of the similarity table 305 represent device rendered object categories and the rows of the similarity table 305 represent search queries. A similarity count in a cell of the similarity table 305 represents an intersection of the search query and device rendered object category associated with the cell.
  • Similarity table generator 301 also performs a similarity analysis on each column of the similarity table 305 to produce a plurality of similarity measures (e.g., a similarity measure for each column or device rendered object category). Similarity table generator 301 performs the similarity analysis by extracting each column and performing a similarity analysis defined by similarity analysis type 304 on each column compared to each of the other columns. A similarity measure for a particular column is a measure of how similar the column is compared to another of the other columns of the similarity table 305.
  • FIG. 4 illustrates an exemplary similarity table according to one embodiment of the present invention. Similarity table 401 comprises a plurality of columns, each column associated with a device rendered object category (shown by box 402 in FIG. 4). Similarity table 401 comprises a plurality of rows, each row associated with a search query (shown by box 403 in FIG. 4). Similarity table 401 comprises a plurality of cells that represent the intersection of search queries and device rendered object categories. For example, similarity cell 404 contains a count “X” representing a number of times (e.g., X=5) a device rendered object interaction associated with category “F” has resulted from a search query “B.”
  • FIG. 5 illustrates an exemplary client action vector generation data flow according to one embodiment of the present invention. Client action vector generator 501 receives data representing device rendered object interaction signals performed by the client device 502, and a client profile associated with the client device 503. The client action vector 505 includes data fields or cells representative of the number of times a client device has interacted with device rendered objects of each device rendered object category of a plurality of device rendered object categories.
  • FIG. 6 illustrates an exemplary client action vector according to one embodiment of the present invention. Client action vector 601 comprises a plurality of columns, each column associated with a device rendered object category 603 (e.g., A, B, C . . . I, in FIG. 6). Client action vector 601 comprises a row 602, where the row 602 is associated with device rendered object interactions by a client profile. Client action vector 601 comprises a plurality of cells that represent the number of times a client device associated with the client profile has interacted with device rendered objects of each device rendered object category. For example, client action vector cell 604 contains a count “X” representing a number of times (e.g., X=5) a device rendered object associated with category “F” has been interacted with by the client device associated with the client profile. Also, for example, client action vector cells 605 and 606 are “empty,” meaning the client device associated with the client profile has not interacted with device rendered objects associated with categories “E” or “F.”
  • FIG. 7 illustrates an exemplary client action vector extension data flow according to one embodiment of the present invention. A client action vector extender 701 receives as input a client action vector 702 associated with a client profile (utilizing client device) as well as a similarity table 703 (and similarity measures) associated with all client profiles across the device rendered object system. The client profile 704 associated with the client device is also received as input by the client action vector extender 701. Utilizing a received normalization algorithm 705, client action vector extender 701 produces an extended client action vector 706.
  • FIG. 8 illustrates an exemplary extended client action vector according to one embodiment of the present invention. Client action vector 801 comprises a plurality of columns, each column associated with a device rendered object category 803 (e.g., A, B, C . . . I, in FIG. 8). Client action vector 801 comprises a row 802, where the row 802 is associated with a client profile. Client action vector 801 comprises a plurality of cells that represent the number of times a client device associated with the client profile has interacted with device rendered objects associated with each device rendered object category. For example, client action vector cell 804 contains a count “X” representing a number of times (e.g., X=5) a device rendered object associated with category “F” has been interacted with by the client device associated with the client profile. Because, from FIG. 6, it may have been determined that the client device associated with the client profile had not interacted with device rendered objects associated with categories “E” or “F,” a client action vector extender 701 can be utilized to provide numbers for the empty cells. As such, previously empty cell 805 now includes a number “Y” representing a number of times (e.g., Y=10) a device rendered object associated with category “E” might have been interacted with by the client device associated with the client profile. Similarly, previously empty cell 806 now includes a number “Z” representing a number of times (e.g., Z=9) a device rendered object associated with category “F” might have been interacted with by the client device associated with the client profile.
  • FIG. 9 illustrates an exemplary client action vector extension process according to one embodiment of the present invention. A first cell or field of a client action vector is selected 901, and if it is not empty 902, the next cell or field of the client action vector is selected 903 until the entire client action vector has been traversed. Upon identifying an empty cell 902, a device rendered object category is extracted 904 and the similarity measures between the device rendered object category and each of the other categories of a plurality of device rendered object categories are retrieved 905. For each device rendered object category other than the extracted device rendered object category 906, if the similarity measure of the category as compared to the extracted device rendered object category is at or above a pre-defined similarity threshold 907, an action count is extracted from a cell of the client action vector associated with the device rendered object category 909. A similarity action measure is computed based on the action count and the similarity measure 910. If a similarity measure does not meet or exceed the pre-defined threshold, the next device rendered object category is selected until all device rendered object categories are exhausted 908. Similarly, after computing a similarity action measure 910 for a device rendered object category, a next device rendered object category is selected until all device rendered object categories are exhausted 908.
  • Using one or more of the computed similarity action measures, an action measure for the empty client action vector cell is computed 911. An action count of the empty client action vector cell is incremented 912 to match the action measure.
  • FIG. 10 illustrates an exemplary client action vector generation process according to one embodiment of the present invention. A device rendered object interaction signal is received 1001 from a client device. If the client device is associated with an existing profile 1002, a client action vector for the client profile is retrieved 1003. If the client device is not associated with an existing profile 1002, a new client action vector as well as a new client profile are generated for the client device 1004. A device rendered object category is extracted 1005 from the device rendered object interaction signal, and an action count of a client action vector cell in the client action vector associated with the device rendered object category is incremented 1006.
  • FIG. 11 illustrates an exemplary similarity table generation process according to one embodiment of the present invention. A plurality of search queries is received from a plurality of client devices 1101. For each received search query, a search query row is generated 1102. Also for each search query, any device rendered object interaction data associated with the search query is received 1103 and a device rendered object category is extracted 1104. For each search query, a similarity count in a cell representing an intersection between the search query and associated extracted device rendered object category is incremented 1105.
  • FIG. 12 illustrates an exemplary similarity measure calculation process according to one embodiment of the present invention. According to one embodiment, each column of a similarity table is extracted 1201. It will be appreciated that each column of the similarity table may be referred to as a vector, and each device rendered object category is associated with its own vector. A similarity measure is calculated for each column 1202, where the similarity measure is a comparison between each column and the other columns of the similarity table. Similarity measures are then assigned to the device rendered object category associated with the column 1203.
  • Computational Details
  • A client action vector for a client device associated with a client profile u can be denoted as UDAu:

  • UDA u =<A u1 ,A u2 , . . . ,A un>  (1)
  • where Aui is a tuple of two floats: <Iu(i),Cu(i)>. Iu(i) represents a number of times device rendered objects in device rendered object category i have been presented to a client device associated with the client profile. Cu(i) represents a number of times a client device associated with the client profile has interacted with device rendered objects associated with device rendered object category i. An action count for device rendered object category i for client profile u is can be denoted as:
  • C T R u ( i ) = C u ( i ) I u ( i ) ( 2 )
  • For all client profiles within a device rendered object system, an all client action vector can be denoted as UDAall and an all client profile action count for device rendered object category i can be denoted as CTRall(i). For device rendered object category i, a set of similar device rendered object categories can be denoted as Si(t), where t is a similarity threshold.
  • For device rendered object category i and device rendered object category j, a similarity measure can be represented as CMsim(i,j).
  • For device rendered object category i, a similarity ratio can be defined as:
  • SIM u ( i ) = CTR u ( i ) CTR all ( i ) ( 3 )
  • To compute a similarity ratio for an empty client action vector cell, device rendered object category similarities can be used (i.e., a similarity measures).
  • Action counts from client action vector cells associated with one device rendered object category, e.g., j, can be “converted” to similarity action measures for an empty client action vector cell associated with a second device rendered object category, e.g., i. This similarity action measure can be computed according to the following:
  • u , j ( i ) = C u ( j ) * CM sim ( i , j ) I u ( j ) ( 4 )
  • For a given device rendered object category, i, a similarity action measure can be computed from all similar categories of i, Si(t), according to the following:
  • where ( 5 ) p k = T ( I u ( k ) ) l S i ( t ) T ( I u ( l ) ) ( 6 )
  • and where T is a transformation function to transform a number of times device rendered objects in device rendered object category i that have been presented to a client device associated with the client profile. Possible choices for T include:
      • An identical transformation, or T(x)=x. This means that a proportion of number of times device rendered objects in category i have been presented to the client device is used as the weight for the category.
      • A nonlinear transformation, or T(x)=tan h(x/β). This transformation gives almost equal weights when the number of times device rendered objects in category i have been presented to the client device is larger than certain threshold, which is approximately controlled by β. This reflects the idea that when the number of times device rendered objects in category i have been presented to the client device are large enough (e.g., >5), they are equally reliable and they should get similar weights.
      • A step function. This gives equal weights to all categories whose number of times device rendered objects in the category have been presented to the client device is larger than a certain threshold and zero weights otherwise. This means activity data of similar categories is not used if the number of times device rendered objects in the categories have been presented to the client device are not reliable.
  • In some embodiments, the client action vector associated with a client profile u might have an existing action count for device rendered object category i, in which case a similarity action measure for the client profile u from similar device rendered object categories can be combined with the existing action count:
  • if CTR u ( i ) < ( i , S i ( t ) ) , ( 7 ) then ( i ) = w 1 CTR u ( i ) + w 2 ( i , S i ( t ) ( 8 ) else ( i ) = ( i ) where ( 9 ) w 1 = I u ( i ) I ^ u ( S i ( t ) ) + I u ( i ) and ( 10 ) w 2 = 1 - w 1 ( 11 )
  • and where
  • I ^ u ( S i ( t ) ) = k S i ( t ) I u ( k ) S i ( t ) ( eqn . 12 )
  • is the average number of times device rendered objects have been displayed to the client device from similar device rendered object categories to i. The similarity action measure is only computed for category i if the similarity action measure from similar categories is larger than the original action count.
  • For client profile u and device rendered object category i, an updated similarity ratio can be defined as:
  • ( i ) = ( i ) CTR all ( i ) ( 13 )
  • Additional Implementation Details
  • Although an example processing system has been described in FIG. 2, implementations of the subject matter and the functional operations described herein can be implemented in other types of digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
  • Embodiments of the subject matter and the operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them. Embodiments of the subject matter described herein can be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on computer storage medium for execution by, or to control the operation of, information/data processing apparatus. Alternatively, or in addition, the program instructions can be encoded on an artificially-generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, which is generated to encode information/data for transmission to suitable receiver apparatus for execution by an information/data processing apparatus. A computer storage medium can be, or be included in, a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Moreover, while a computer storage medium is not a propagated signal, a computer storage medium can be a source or destination of computer program instructions encoded in an artificially-generated propagated signal. The computer storage medium can also be, or be included in, one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).
  • The operations described herein can be implemented as operations performed by an information/data processing apparatus on information/data stored on one or more computer-readable storage devices or received from other sources.
  • The term “data processing apparatus” encompasses all kinds of apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, a system on a chip, or multiple ones, or combinations, of the foregoing. The apparatus can include special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). The apparatus can also include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of them. The apparatus and execution environment can realize various different computing model infrastructures, such as web services, distributed computing and grid computing infrastructures.
  • A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or information/data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub-programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
  • The processes and logic flows described herein can be performed by one or more programmable processors executing one or more computer programs to perform actions by operating on input information/data and generating output. Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and information/data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for performing actions in accordance with instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive information/data from or transfer information/data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Devices suitable for storing computer program instructions and information/data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
  • To provide for interaction with a user, embodiments of the subject matter described herein can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information/data to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer. Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, a computer can interact with a user by sending documents to and receiving documents from a device that is used by the user; for example, by sending web pages to a web browser on a user's client device in response to requests received from the web browser.
  • Embodiments of the subject matter described herein can be implemented in a computing system that includes a back-end component, e.g., as an information/data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a web browser through which a user can interact with an implementation of the subject matter described herein, or any combination of one or more such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital information/data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), an inter-network (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).
  • The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server transmits information/data (e.g., an HTML, page) to a client device (e.g., for purposes of displaying information/data to and receiving user input from a user interacting with the client device). Information/data generated at the client device (e.g., a result of the user interaction) can be received from the client device at the server.
  • While this specification contains many specific implementation details, these should not be construed as limitations on the scope of any inventions or of what may be claimed, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described herein in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
  • Similarly, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
  • Thus, particular embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims can be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown, or sequential order, to achieve desirable results. In certain implementations, multitasking and parallel processing may be advantageous.
  • CONCLUSION
  • Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

Claims (21)

1-24. (canceled)
25. A system, comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to:
determine a device rendered object category for an action vector cell associated with an empty condition in an action vector data structure;
determine a similarity measure between the device rendered object category and a different device rendered object category for a different action vector cell in the action vector data structure;
in response to a determination that the similarity measure satisfies a similarity threshold value,
extract an action count from the different action vector cell associated with the different device rendered object category, wherein the action count corresponds to a number of actions performed by one or more client devices for the different device rendered object category; and
configure the action vector cell of the action vector data structure based at least in part on the action count associated with the number of actions performed by the one or more client devices;
select one or more device rendered objects from the action vector data structure; and
transmit the one or more device rendered objects to at least one client device, wherein the at least one client device is configured to render the one or more device rendered objects via an electronic interface of the at least one client device.
26. The system of claim 25, wherein the one or more storage devices store instructions that are operable, when executed by the one or more computers, to further cause the one or more computers to:
determine an updated action count for the action vector cell of the action vector data structure based at least in part on the action count associated with the number of actions performed by the one or more client devices.
27. The system of claim 25, wherein the one or more storage devices store instructions that are operable, when executed by the one or more computers, to further cause the one or more computers to:
receive a device rendered object interaction signal from the at least one client device;
determine a client profile associated with the at least one client device; and
select the action vector data structure based on the client profile.
28. The system of claim 25, wherein the one or more storage devices store instructions that are operable, when executed by the one or more computers, to further cause the one or more computers to:
receive a device rendered object interaction signal from the at least one client device;
determine a particular device rendered object category associated with the device rendered object interaction signal.
29. The system of claim 28, wherein the one or more storage devices store instructions that are operable, when executed by the one or more computers, to further cause the one or more computers to:
in response to a determination that the particular device rendered object category corresponds to the different device rendered object category, configure the action count for the different action vector cell based on the device rendered object interaction signal.
30. The system of claim 28, wherein the one or more storage devices store instructions that are operable, when executed by the one or more computers, to further cause the one or more computers to:
in response to a determination that the particular device rendered object category corresponds to the different device rendered object category, configure a similarity data table structure associated with the action vector data structure and at least one other action vector data structure based on the device rendered object interaction signal.
31. The system of claim 25, wherein the one or more storage devices store instructions that are operable, when executed by the one or more computers, to further cause the one or more computers to:
in response to a determination that the similarity measure does not satisfy the similarity threshold value,
select a next device rendered object category for a next action vector cell in the action vector data structure; and
determine a different similarity measure between the device rendered object category and the next device rendered object category.
32. The system of claim 25, wherein the one or more storage devices store instructions that are operable, when executed by the one or more computers, to further cause the one or more computers to:
scan respective action vector cells in the action vector data structure to identify the action vector cell associated with the empty condition.
33. A computer-implemented method, comprising:
determining, by a computing device comprising a processor, a device rendered object category for an action vector cell associated with an empty condition in an action vector data structure;
determining, by the computing device, a similarity measure between the device rendered object category and a different device rendered object category for a different action vector cell in the action vector data structure;
in response to determining that the similarity measure satisfies a similarity threshold value,
extracting, by the computing device, an action count from the different action vector cell associated with the different device rendered object category, wherein the action count corresponds to a number of actions performed by one or more client devices for the different device rendered object category; and
configuring, by the computing device, the action vector cell of the action vector data structure based at least in part on the action count associated with the number of actions performed by the one or more client devices;
selecting, by the computing device, one or more device rendered objects from the action vector data structure; and
transmitting, by the computing device, the one or more device rendered objects to at least one client device, wherein the at least one client device is configured to render the one or more device rendered objects via an electronic interface of the at least one client device.
34. The computer-implemented method of claim 33, further comprising:
determining, by the computing device, an updated action count for the action vector cell of the action vector data structure based at least in part on the action count associated with the number of actions performed by the one or more client devices.
35. The computer-implemented method of claim 33, further comprising:
receiving, by the computing device, a device rendered object interaction signal from the at least one client device;
determining, by the computing device, a client profile associated with the at least one client device; and
selecting, by the computing device, the action vector data structure based on the client profile.
36. The computer-implemented method of claim 33, further comprising:
receiving, by the computing device, a device rendered object interaction signal from the at least one client device;
determining, by the computing device, a particular device rendered object category associated with the device rendered object interaction signal.
37. The computer-implemented method of claim 36, further comprising:
in response to determining that the particular device rendered object category corresponds to the different device rendered object category, configuring, by the computing device, the action count for the different action vector cell based on the device rendered object interaction signal.
38. The computer-implemented method of claim 36, further comprising:
in response to determining that the particular device rendered object category corresponds to the different device rendered object category, configuring, by the computing device, a similarity data table structure associated with the action vector data structure and at least one other action vector data structure based on the device rendered object interaction signal.
39. The computer-implemented method of claim 33, further comprising:
in response to determining that the similarity measure does not satisfy the similarity threshold value,
selecting, by the computing device, a next device rendered object category for a next action vector cell in the action vector data structure; and
determining, by the computing device, a different similarity measure between the device rendered object category and the next device rendered object category.
40. The computer-implemented method of claim 33, further comprising:
scanning, by the computing device, respective action vector cells in the action vector data structure to identify the action vector cell associated with the empty condition.
41. A computer program product, stored on a computer readable medium, comprising instructions that when executed by one or more computers cause the one or more computers to:
determine a device rendered object category for an action vector cell associated with an empty condition in an action vector data structure;
determine a similarity measure between the device rendered object category and a different device rendered object category for a different action vector cell in the action vector data structure;
in response to a determination that the similarity measure satisfies a similarity threshold value,
extract an action count from the different action vector cell associated with the different device rendered object category, wherein the action count corresponds to a number of actions performed by one or more client devices for the different device rendered object category; and
configure the action vector cell of the action vector data structure based at least in part on the action count associated with the number of actions performed by the one or more client devices;
select one or more device rendered objects from the action vector data structure; and
transmit the one or more device rendered objects to at least one client device, wherein the at least one client device is configured to render the one or more device rendered objects via an electronic interface of the at least one client device.
42. The computer program product of claim 41, further comprising instructions that when executed by the one or more computers cause the one or more computers to:
determine an updated action count for the action vector cell of the action vector data structure based at least in part on the action count associated with the number of actions performed by the one or more client devices.
43. The computer program product of claim 41, further comprising instructions that when executed by the one or more computers cause the one or more computers to:
receive a device rendered object interaction signal from the at least one client device;
determine a client profile associated with the at least one client device; and
select the action vector data structure based on the client profile.
44. The computer program product of claim 41, further comprising instructions that when executed by the one or more computers cause the one or more computers to:
receive a device rendered object interaction signal from the at least one client device;
determine a particular device rendered object category associated with the device rendered object interaction signal; and
in response to a determination that the particular device rendered object category corresponds to the different device rendered object category, configure the action count for the different action vector cell based on the device rendered object interaction signal.
US17/538,346 2017-07-12 2021-11-30 Method, apparatus, and computer program product for extending an action vector Abandoned US20220164361A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/538,346 US20220164361A1 (en) 2017-07-12 2021-11-30 Method, apparatus, and computer program product for extending an action vector

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762531756P 2017-07-12 2017-07-12
US16/033,956 US11216470B1 (en) 2017-07-12 2018-07-12 Method, apparatus, and computer program product for extending an action vector
US17/538,346 US20220164361A1 (en) 2017-07-12 2021-11-30 Method, apparatus, and computer program product for extending an action vector

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US16/033,956 Continuation US11216470B1 (en) 2017-07-12 2018-07-12 Method, apparatus, and computer program product for extending an action vector

Publications (1)

Publication Number Publication Date
US20220164361A1 true US20220164361A1 (en) 2022-05-26

Family

ID=79169656

Family Applications (2)

Application Number Title Priority Date Filing Date
US16/033,956 Active 2039-06-27 US11216470B1 (en) 2017-07-12 2018-07-12 Method, apparatus, and computer program product for extending an action vector
US17/538,346 Abandoned US20220164361A1 (en) 2017-07-12 2021-11-30 Method, apparatus, and computer program product for extending an action vector

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US16/033,956 Active 2039-06-27 US11216470B1 (en) 2017-07-12 2018-07-12 Method, apparatus, and computer program product for extending an action vector

Country Status (1)

Country Link
US (2) US11216470B1 (en)

Also Published As

Publication number Publication date
US11216470B1 (en) 2022-01-04

Similar Documents

Publication Publication Date Title
US11615439B2 (en) Method and apparatus for clustering platform sessions and user accounts associated with the platform sessions
US11741111B2 (en) Machine learning systems architectures for ranking
US20160203501A1 (en) Systems and methods for merchant business intelligence tools
US20220301015A1 (en) Method, apparatus, and computer program product for adaptive tail digital content object bid value generation
US20220374942A1 (en) Method, system, and apparatus for programmatically determining and adjusting electronic bid values for a digital content object based on conversion rates
US20220019598A1 (en) Method, apparatus, and computer program product for improving network database functionalities
US20220198488A1 (en) Method and system for programmatic generation of survey queries
US20220164361A1 (en) Method, apparatus, and computer program product for extending an action vector
US11275789B2 (en) Method, apparatus, and computer program product for inferring device rendered object interaction behavior
US11593844B1 (en) Method, apparatus, and computer program product for predictive initial electronic bid value generation for new digital content objects
US11615123B2 (en) Method, system, and apparatus for rapid geographic search in an actor-based geographic search network
US11604836B1 (en) Method, apparatus, and computer program product for predictive dynamic bidding rule generation for digital content objects
US11863809B2 (en) Method, system, and apparatus for programmatically generating a channel incrementality ratio
US20230368249A1 (en) Method, system, and apparatus for programmatically determining and adjusting electronic bid values for a digital content object
US11729257B2 (en) Method, apparatus, and computer program product for balancing network resource demand
US20240205484A1 (en) Method, system, and apparatus for programmatically generating a channel incrementality ratio
US11544774B1 (en) Method, apparatus, and computer program product for device rendered object sets based on multiple objectives
US20210326392A1 (en) Algorithmic attribution
WO2022235263A1 (en) Attribution model for related and mixed content item responses

Legal Events

Date Code Title Description
AS Assignment

Owner name: GROUPON, INC., ILLINOIS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LEI, JIKAI;REEL/FRAME:058449/0413

Effective date: 20200728

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION