1. Field
The subject matter disclosed herein relates to data processing, and more particularly to methods and apparatuses that may be implemented to dynamically update an ad cache through one or more computing platforms and/or other like devices.
2. Information
Data processing tools and techniques continue to improve. Information in the form of data is continually being generated or otherwise identified, collected, stored, shared, and analyzed. Databases and other like data repositories are common place, as are related communication networks and computing resources that provide access to such information.
The Internet is ubiquitous; the World Wide Web provided by the Internet continues to grow with new information seemingly being added every second. With so much information being available, advertising on the Internet often allows advertisers to target audiences viewing their advertisements. Use of the Internet for online advertising facilitates a two way flow of information between end users and advertisers. For example, an end user may request an ad and in doing so may provide information in the form of data that describes the end user in some manner. Conversely, traditional print and “hard copy” advertising may constitute a one-way flow of information from advertisers to end users.
Claimed subject matter is particularly pointed out and distinctly claimed in the concluding portion of the specification. However, both as to organization and/or method of operation, together with objects, features, and/or advantages thereof, it may best be understood by reference to the following detailed description when read with the accompanying drawings in which:
Reference is made in the following detailed description to the accompanying drawings, which form a part hereof, wherein like numerals may designate like parts throughout to indicate corresponding or analogous elements. It will be appreciated that for simplicity and/or clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, it is to be understood that other embodiments may be utilized and structural and/or logical changes may be made without departing from the scope of claimed subject matter. It should also be noted that directions and references, for example, up, down, top, bottom, and so on, may be used to facilitate the discussion of the drawings and are not intended to restrict the application of claimed subject matter. Therefore, the following detailed description is not to be taken in a limiting sense and the scope of claimed subject matter defined by the appended claims and their equivalents.
In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, well-known methods, procedures, components and/or circuits have not been described in detail.
The World Wide Web includes vast amounts of information or content that may be displayed to an end user. For example, an end user may utilize an application program, such as a web browser, to display one or more electronic documents (such as web pages) provided by one or more content providers or web site operators. Under some circumstances, a web site operator or content provider may desire to display one or more online advertisements along with content requested by an end user. As used herein the phrase “ad,” “online advertisements,” “advertising,” and/or the like may include online pop-up ads, banner ads, and/or the like. Under some circumstances, it may be desirable to determine which online advertisement to display with a particular electronic document based at least in part on user centric information and/or electronic document centric information. For example, an advertisement for an auto dealership may, under some circumstances, be more effective if displayed along with an article relating to an auto show than that same advertisement would be if displayed along with an article relating to a movie review.
As used herein, the term “electronic document” may include any information in a digital format, of which at least a portion may be perceived in some manner (e.g., visually, audibly) by a user if reproduced by a digital device such as, for example, a computing platform. For one or more embodiments, an electronic document may comprise a web page coded in a markup language, such as, for example, HTML (hypertext markup language), and/or the like. However, the scope of claimed subject matter is not limited in this respect. Also, for one or more embodiments, such electronic documents may comprise one or more elements. Such elements in one or more embodiments may comprise text, for example, as may be displayed as part of a web page presentation. Also, for one or more embodiments, the elements may comprise a graphical object, such as, for example, a digital image. In a particular implementation, a web page may contain embedded references to images, audio, video, other web documents, etc. One common type of reference used to identify and locate resources on the web is a Uniform Resource Locator (URL).
Some exemplary methods and systems are described herein that may be used to dynamically update an ad cache. Such an ad cache may be utilized as a part of an ad search engine. Such an ad search engine may maintain such an ad cache as a memory component of the ad search engine. Such an ad cache may be utilized for returning an ad result in response to an ad query. Such an ad result may include one or more online advertisements. Such online advertisements may be described below as an ad unit. Such an ad unit may include a creative component. For example, such an ad unit may include text, graphic or video data (herein referred to as “creative component”). Additionally, metadata associated with such creative components may include one or more keyword terms associated with the ad unit. Such ad units may be delivered to an end user based at least in part on one or more forms of online marketing processes, such as on contextual advertising, search advertising, search engine marketing, sponsored listings, and/or the like, and/or combinations thereof, for example.
Referring to
Process 100 depicted in
During typical online activity, an end user 102 may request a page and/or other like data file(s) of content from publisher device 104, as illustrated at action 112. Publisher device 104 may, in turn, return a content page to the end user, where the content page may contain a link and/or the like to a request for an advertisement from ad manager 106, as illustrated at action 114. In the illustrated embodiment, ad manager 106 may handle ad requests for advertisements from end users 102, as illustrated at action 116. Such an ad request for advertisement may include an HTTP request for advertising content initiated by a content page provided by publisher devices 104 to end users 102. For example, a request for advertisements may contain one or more current contextual features associated with a given end user including user centric data and/or publisher centric data. Such user centric data may include or otherwise be associated with an end user demographic (e.g. age, gender, income, and/or the like), end user location (e.g. continent, country, state/providence, city, zip, and/or the like), time (e.g. end user time, advertiser time, coordinated universal time (UTC), and/or the like), end user interests (e.g. sports, politics, and/or the like), and/or the like., and/or combinations thereof. Such publisher centric data may include or otherwise be associated with publication content (e.g. shopping, search, and/or the like), publication Uniform Resource Locator (URL), publication domain, publication site, and/or the like, and/or combinations thereof. For example, an ad request may specify features such as user centric data including end user gender, such as male or female, and/or the like. Similarly, an ad request may specify features such as user centric data including end user age, such as age in years, by birthday, and/or the like, for example. Likewise, an ad request may specify features such as user centric data including end user location, such as a geographic location, address, latitude and longitude, Global Positioning System location, and/or the like, for example. Further, an ad request may specify features such as user centric data including end user time, such as a time of day, time zone, and/or the like, for example. Likewise, an ad request may specify features such as, publisher centric data including publication content, such as topic areas associated with such content, key words associated with such content and/or the like, for example. Further, an ad request may specify features such as publisher centric data including publication URL, publication domain, and/or publication site that may refer to all or a portion of a string of characters used to represent a resource available on the Internet, for example. For example, an ad request may specify that the requesting content page is directed towards “sports”, located on the domain “example.com”, that the end user is a male between the ages 18 and 25, and that the end user is located in California.
In the illustrated embodiment, ad manager 106 may be operative to generate an ad query based at least in part on such an ad request, as illustrated at action 118. Such an ad query may be sent to ad index 108. Ad index 108 may provide an index of ads. For example, index 108 may parse a given ad into indexable terms, such as keyword terms that may be associated with concepts and/or entities. Such concepts and/or entities may include, but are not limited to, words, phrases, categories, topics, geographical information, and/or the like. Index 108 may index such terms and may store information regarding which ads contain a given concept and/or entity based at least in part on such indexed terms.
Ad manager 106 may receive an ad result set from index 108 based at least in part on ad query 118, as illustrated at action 120. Ad manager 106 may be capable of ranking such an ad result set such that the most relevant ads in the ad result set are presented to a user, according to descending relevance, as illustrated at action 122. For example, a first ad in such a ranked ad result set may be the most relevant in response to an ad query. Likewise, a last ad in such a ranked ad result set may be the least relevant while still falling within the scope of the ad query. Such a ranked ad result set may comprise an ad result that is transmitted to end user 102, as illustrated at action 124. In one embodiment, such ranking may consider user centric data and/or publisher centric data.
In some situations, it may be cost effective to use prior ad query/ad result searches in processing a subsequent ad request. In order to facilitate such use of prior ad query/ad result searches, a cache 110 may be utilized. In one example, ad search engine 101 may maintain ad cache 110 as a memory component of ad search engine 101, although the scope of claimed subject matter is not limited in this respect. For example, cache 110 may receive prior ad queries and/or ad results at action 126. Upon receiving such ad queries and/or ad results, cache 110 may be updated to incorporate additional ad query/ad result searches, as illustrated at action 128. As will be discussed in greater detail below, such an update may be a dynamic update. As used herein the term “dynamic update” may refer to an update to cache 110 that does not require rendering cache 110 unavailable for returning ad results, such as by rendering cache 110 unavailable by rebuilding all or a portion of the entire cache during an update.
As illustrated at action 136, a subsequent ad request may be received at ad manager 106. Ad manager 106 may in turn send a subsequent ad query to cache 110, as illustrated at action 138. As illustrated at action 139, such a subsequent ad query may be compared with one or more prior ad queries stored in cache 110. Prior ad results associated with such prior ad queries may be identified based at least in part on such a comparison. Such identified prior ad results may be returned to ad manager 106, as illustrated at action 140. Such prior ad results may be ranked by ad manager 106, as illustrated at action 142, and returned to end user 102, as illustrated at action 144.
Referring to
Additionally or alternatively, ad cache 110 may be dynamically updated based at least in part on such a subsequent ad query and/or such a revised second ad result. For example, such a subsequent ad query and/or such a revised second ad result may be received from ad manager 106 by cache 110, as illustrated at action 212. Ad cache 110 may be dynamically updated based at least in part on such a subsequent ad query and/or such a revised second ad result, as illustrated at action 214.
In operation, procedure 200 may be utilized to augment an ad search to ad index 108 by providing ad index 108 access to a preliminary search from ad cache 110. For example, as will be described in greater detail below with regard to
Accordingly, a given ad query containing both static features and dynamic features may be analyzed by cache 110. In some cases, cache 110 may be capable of matching both the static features and dynamic features to identify a prior ad result. In such a case, such prior ad results may be returned to end user 102 via ad manager 106 (see
Referring to
At action 302, selectivity of one or more features associated with a prior ad query may be quantified. Such a quantification (also referred to herein as “weight”) may occur at cache 110. At action 304, a cache key may be determined based at least in part on one or more features. As used herein the term “key” may refer to a simplified representation of two or more values into a single value. As described below, a portion of such features may be included and/or excluded from a cache key based at least in part on such a quantification.
For example, such features may be chosen based at least in part on a quantified selectivity of such features, as quantified at action 302. In such a case, procedure 300 may be utilized to construct a dynamic cache 110 (
At action 306, selectivity of one or more features associated with a subsequent ad query may be quantified. Such a quantification may occur at cache 110. At action 308, a query key may be determined based at least in part on one or more features. For example, such features may be chosen based at least in part on a quantified selectivity of such features, as quantified at action 306. As described above, a portion of such features may be included and/or excluded from a query key based at least in part on such a quantification.
At action 308, a comparison of such a query key may be made to such a cache key. For example, comparison 139 (
In operation, procedure 300 may receive subsequent ad queries which include one or more features. As discussed above, such features can include user centric information and/or publisher centric information. A cache could have keys that use all of those features, since changes to any of such features can affect the ad results returned. However, because some of those features change fairly often (as different users often have different features), cache hit rates may be significantly lower than desired. Accordingly, procedure 300 may utilize a subset of such features to search cache 110 based on a given ad query. For example, for a feature set fs1 associated with a subsequent ad query, a similar feature set fs2 associated with a cached prior ad query may be found by dropping fs1's non-selective or less important features. In such a case, ad results associated with such a cached prior ad query may be similar enough to provide useful ad results to the subsequent ad query associated with feature set fs1.
Additionally or alternatively, some features from feature set fs1 may be replaceable with other similar features (fs3) during searching ad cache 110 based on subsequent ad queries. Further, such a replacing of certain features may be utilized in updating ad cache 110, such as described in
Referring to
Referring to
For example, such data objects 502 represented within metric space may be associated with an individual cluster center 504. In such a case, such data objects 502 may be represented based at least in part on a mapping of ad query feature and/or ad result features as vectors within metric space via such a distance function. For example, cache 110 (
For example, cluster structure 500 may be used to dynamically construct clusters 508 and/or to improve storage efficiency. One possible serving implementation may be to maintain more common ad query features as a key to a cluster 508. For example, cluster center keys may be determined for respective cluster centers 504. Such cluster center keys may be utilized to identify more common ad query features, while less dynamic features and/or less selective features may be represented by data object 502 within a given cluster. For example, such common ad query features may be identified based at least in part on associating weights with individual features to determine whether such features meet a defined threshold value for inclusion in such a cluster center key. Additionally or alternatively, such less dynamic features and/or less selective features may be represented by sub-clusters within a hierarchical cluster structure. In such a case, such clusters 508 sub-clusters may be formed so as to represent a varying degree of sensitivity to such less dynamic features and/or less selective features.
Additionally or alternatively, cluster structure 500 may include one or more inverted indexes. Such inverted indexes may be similar in structure to ad index 108 (
In operation, cluster structure 500 may be utilized within cache 110 (
Referring back to
At action 404, one or more clusters may be identified from such a hierarchical cluster structure. For example, one or more clusters may be identified based at least in part on a comparison of such a query key to a cluster center key. Such a cluster center key may represent values of features associated with an individual cluster of such a hierarchical cluster structure. For example, such a cluster center key may represent values of features associated with a cluster center 504 (
In operation, procedure 400 may process ad queries with a large set of contextual features. Procedure 400 may be utilized improve query cache 110 (
Computing environment system 600 may include, for example, a first device 602, a second device 604 and a third device 606, which may be operatively coupled together through a network 608.
First device 602, second device 604 and third device 606, as shown in
In the context of this particular patent application, the term “special purpose computing platform” means or refers to a general purpose computing platform once it is programmed to perform particular functions pursuant to instructions from program software. By way of example, but not limitation, any of first device 602, second device 604, or third device 606 may include: one or more special purpose computing platforms once programmed to perform particular functions pursuant to instructions from program software. Such program software does not refer to software that may be written to perform process 100 of
Network 608, as shown in
As illustrated by the dashed lined box partially obscured behind third device 606, there may be additional like devices operatively coupled to network 608, for example.
It is recognized that all or part of the various devices and networks shown in system 600, and the processes and methods as further described herein, may be implemented using or otherwise include hardware, firmware, software, or any combination thereof.
Thus, by way of example, but not limitation, second device 604 may include at least one processing unit 620 that is operatively coupled to a memory 622 through a bus 623.
Processing unit 620 is representative of one or more circuits configurable to perform at least a portion of a data computing procedure or process. By way of example, but not limitation, processing unit 620 may include one or more processors, controllers, microprocessors, microcontrollers, application specific integrated circuits, digital signal processors, programmable logic devices, field programmable gate arrays, and the like, or any combination thereof.
Memory 622 is representative of any data storage mechanism. Memory 622 may include, for example, a primary memory 624 and/or a secondary memory 626. Primary memory 624 may include, for example, a random access memory, read only memory, etc. While illustrated in this example as being separate from processing unit 620, it should be understood that all or part of primary memory 624 may be provided within or otherwise co-located/coupled with processing unit 620.
Secondary memory 626 may include, for example, the same or similar type of memory as primary memory and/or one or more data storage devices or systems, such as, for example, a disk drive, an optical disc drive, a tape drive, a solid state memory drive, etc. In certain implementations, secondary memory 626 may be operatively receptive of, or otherwise configurable to couple to, a computer-readable medium 628. Computer-readable medium 628 may include, for example, any medium that can carry and/or make accessible data, code and/or instructions for one or more of the devices in system 600.
Second device 604 may include, for example, a communication interface 630 that provides for or otherwise supports the operative coupling of second device 604 to at least network 608. By way of example, but not limitation, communication interface 630 may include a network interface device or card, a modem, a router, a switch, a transceiver, and the like.
Second device 604 may include, for example, an input/output 632. Input/output 632 is representative of one or more devices or features that may be configurable to accept or otherwise introduce human and/or machine inputs, and/or one or more devices or features that may be configurable to deliver or otherwise provide for human and/or machine outputs. By way of example, but not limitation, input/output device 632 may include an operatively enabled display, speaker, keyboard, mouse, trackball, touch screen, data port, etc.
Some portions of the detailed description are presented in terms of algorithms or symbolic representations of operations on data bits or binary digital signals stored within a computing system memory, such as a computer memory. These algorithmic descriptions or representations are examples of techniques used by those of ordinary skill in the data processing arts to convey the substance of their work to others skilled in the art. An algorithm is here, and generally, is considered to be a self-consistent sequence of operations or similar processing leading to a desired result. In this context, operations or processing involve physical manipulation of physical quantities. Typically, although not necessarily, such quantities may take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared or otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to such signals as bits, data, values, elements, symbols, characters, terms, numbers, numerals or the like. It should be understood, however, that all of these and similar terms are to be associated with appropriate physical quantities and are merely convenient labels. Unless specifically stated otherwise, as apparent from the following discussion, it is appreciated that throughout this specification discussions utilizing terms such as “processing,” “computing,” “calculating,” “determining” or the like refer to actions or processes of a computing platform, such as a computer or a similar electronic computing device, that manipulates or transforms data represented as physical electronic or magnetic quantities within memories, registers, or other information storage devices, transmission devices, or display devices of the computing platform.
Reference throughout this. specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of claimed subject matter. Thus, the appearance of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
The term “and/or” as referred to herein may mean “and”, it may mean “or”, it may mean “exclusive-or”, it may mean “one”, it may mean “some, but not all”, it may mean “neither”, and/or it may mean “both”, although the scope of claimed subject matter is not limited in this respect.
While certain exemplary techniques have been described and shown herein using various methods and systems, it should be understood by those skilled in the art that various other modifications may be made, and equivalents may be substituted, without departing from claimed subject matter. Additionally, many modifications may be made to adapt a particular situation to the teachings of claimed subject matter without departing from the central concept described herein. Therefore, it is intended that claimed subject matter not be limited to the particular examples disclosed, but that such claimed subject matter also may include all implementations falling within the scope of the appended claims, and equivalents thereof.