The present application relates generally to the technical field of algorithms and programming and, in one specific example, the generation of data to be used in optimizing a website.
The creative decisions made during the course of designing a website used to sell good and services may be based upon ascetic consideration, business strategy consideration, or other considerations that may seek to maximize profit. This profit may be maximized not only for the party selling the good or services, but also for the party hosting the website (e.g., the site host). Many times these decisions are based upon the past experiences of the party selling the goods or services, or the party hosting the website.
Some embodiments are illustrated by way of example and not limitation in the figures of the accompanying drawings in which:
In some example embodiments, a system and method is shown that use regression modeling to determine an optimal combination of design choices for web page features (e.g., selected features) to be used in the sale of good and services. This system and method may include developing a statistical model to be used to predict a maximal return on investment (e.g., a maximal bid for an on-line auction site). Further, this system and method may be used to develop an optimization methodology to maximize profit for both a designer of a web site and a site host. Additionally, this system and method may be used to provide guidance to the designer of a website with regard to selected features that will optimize the maximal expected profit.
This system and method may be used in the on-line auction context, where an on-line auction is run by a site host. The content displayed on the individual pages that make up this website may be controlled by one or more sellers of good and services. The specifics of how this content is presented on these web pages, may, in one example embodiment, be suggested by the site host through the use of the regression modeling.
Some example embodiments may include the use of a class of algorithms known as censored regression algorithms to generate a series of coefficient values. These coefficient values may be used to weight various features selected during the creation of a web page used to sell goods and services. Design choices may include, for example, bolding the text on a web page, adding certain functionality to the web page, showing certain arrays of photographs, and a number of other suitable selected features. These coefficients may be determined for certain categories of good for sale on a particular website. An example category of goods may be cameras, jewelry, clothing, or some other suitable category of good and services. These selected features may be used to determine a single or combination of selected features that yield a maximum amount of profit for the seller, and, in some cases, the site host. The notion of a maximum amount of profit, and more generally optimization as used herein, may refer to an amount of profit that is greater than an amount of profit had the system and method illustrated herein not been used.
In some example embodiments, once these coefficient values are determined, a separate class of algorithms is applied to evaluate the features selected by the designer of the web page selling goods and services. This class of algorithm is known as a non-linear mixed integer optimization with non-linear constraints algorithms are applied to evaluate selected features in light of maximizing profit. Through the application of an example of this class of algorithms, known as an optimization algorithm, the site host may make suggestions to the designer of the web site as to which combinations of selected features may help maximize profit for the seller of the goods and services, and for the site host.
In one example embodiment, the designer of a web page (e.g., the seller 101) is provided a number of features that may be used in the designing of a web page. These features may be presented to the designer of the web page via an interactive GUI, whereby using an input device (e.g., a mouse, a keyboard, a light pen, or a touch screen) the designer may make certain design choices. For the purpose of the above referenced optimization algorithm, these features may be considered as independent variables. Example features, and a description thereof, is provided in the below table.
Once these features are selected, the selected features 201 may be generated and transmitted to the feature optimization server 210 for further processing. As will be more fully shown below, this selected feature 201 may be used by a feature optimization engine implementing the optimization algorithm that uses the predetermined coefficient values. The result of the implementation of this algorithm and coefficient values is the previously referenced optimized suggestion data 202.
In addition to column 320, a further column 321 is also shown, wherein this column 321 describes optimized suggestions that may be provided as part of the optimized suggestion data 202. These optimized suggestions may be suggested by, for example, the feature optimization server 210 implementing the above referenced feature optimization engine. For example, a field 308 is shown wherein the field 308 displays an optimized suggested starting price of $100. A field 309 is also shown that displays an optimized shipping fee value of $9. Additionally, a field 310 is also shown that illustrates an optimized suggestion max bid price of $245.95. A field 311 is shown that illustrates an expected seller profit of $218.80 should the seller 101 decide to accept the optimized suggestions provided by the feature optimization server 210.
In some example embodiments, a receiver 408 is illustrated to receive optimized suggestion data that includes a profit value generated by associating a selected feature and a webpage. A selection engine 409 is shown to select a newly selected feature to be included on the webpage. In some example embodiments, the selected features include at least one of the following features: a starting price feature, a reserve price feature, a blemish feature, a new item feature, an auction duration feature, positive feedback feature, a seller experience feature, buy it now feature, a get it fast feature, payment processor item feature, gallery feature, subtitle feature, a listing designer feature, a value pack feature, a bold feature, a border feature, highlight feature, a gallery featured feature, a featured plus feature, a propack feature, a scheduled listing feature, a 10-day duration feature, a gift services feature, a home page featured feature, a two categories listing feature, a picture feature, a extra picture feature, a super size picture feature, a picture pack feature, a number similar auctions feature, a shipping cost feature, a num items seller feature, a insertion fee feature, a reserve fee feature, or a final value fee feature. The selection engine 409 may be used to select a feature to be included on the webpage.
In some example embodiments, various operations 507 through 510 residing on the coefficient computation server 109 are executed. An operation 507 is show, that, when executed, calculates coefficient data using a censored regression algorithm. Additionally, an operation 508 is illustrated that, when executed, calculates the optimized suggestion data using non-linear mixed integer optimization with non-linear constraints algorithm. An operation 509, when executed, retrieves a business constraint, and using the business constraint determines the profit value generated by including the selected feature on the webpage. Operation 510, when executed, retrieves default values to be used in determining the profit value generated by including the selected feature on the webpage.
Some example embodiments may include operations 511 and 512 implemented on a device 102. Shown is an operation 511 that, when executed, receives optimized suggestion data that includes a profit value generated by including a selected feature on a webpage. An operation 512 is shown that, when executed, selects a new selected feature to be included on the webpage. In some example embodiments, the selected feature includes at least one of the following features: a starting price feature, a reserve price feature, a blemish feature, a new item feature, an auction duration feature, positive feedback feature, a seller experience feature, buy it now feature, a get it fast feature, payment processor item feature, gallery feature, subtitle feature, a listing designer feature, a value pack feature, a bold feature, a border feature, highlight feature, a gallery featured feature, a featured plus feature, a propack feature, a scheduled listing feature, a 10-day duration feature, a gift services feature, a home page featured feature, a two categories listing feature, a picture feature, a extra picture feature, a super size picture feature, a picture pack feature, a number similar auctions feature, a shipping cost feature, a num items seller feature, a insertion fee feature, a reserve fee feature, or a final value fee feature. Some example embodiments may include an operation 513 that, when executed, selects feature to be included on the webpage.
Starting with the operation 601, in some example embodiment, an operation 601 is executed that retrieves the historical data 112 from the historical transaction data 111 database. An operation 602 is executed that uses this historical data to calculate coefficients of various seller selected features for a category of goods. As previously referenced, these category goods may include cameras, jewelry, clothing, or some other suitable category of goods or services. An operation 603 may be executed that stores this calculated coefficient data 113 for future use into the coefficient data 114 database. In some example embodiments, once the coefficient data 113 is stored into the coefficient data 114 database, the seller 101 may be free to select features and generated selected features 201 data. An operation 604 may be executed wherein features are selected using an input device. An operation 605 may be executed that generates a set of selected features, such as selected features 201, and transmits this set of selected features 201 across the network 108 to be received through the execution of an operation 606. An operation 607 may be executed that retrieves a constraint set from constraint set data 608 database. An operation 609 may be executed that retrieves coefficients relating to an identified category of good from the coefficient data 114 database. These coefficients may be retrieved as coefficient data 113. An operation 610 may be executed that may compute optimized profit for a particular category of goods utilizing the coefficient data 113. An operation 611 may be executed that transmits the suggestion data as optimized suggestion data 202 back across the network 108 to be received through the execution of operations 612. Operation 613 may be executed that displays the optimized suggestion data in the GUI 107 for the seller 101. In certain example embodiments, a decisional operation 614 may be executed that determines whether or not the seller 101 has decided to select a subset of the optimized suggestion data 202 so as to implement certain selected features on their webpage. In cases where decisional operation 614 evaluates to “true,” the operation 604 is re-executed. In cases where decisional operation 614 evaluates to “false,” a termination condition 615 is executed. Some of these operations will be more fully discussed below.
In some example embodiments, the operation 702 implements a censored regression algorithm in the form of a likelihood function. As a threshold matter, a regression model is constructed by the site host. This site host may, for example, support on-line auctions. Within the on-line auction context, a number of considerations may need to be taken into account. One example consideration is that a given auction might not actually results in a transaction since either the reserved price (e.g., a minimum price set by the seller) may not be met, or the auction had no bids at all. These cases are included in the modeling outlined below since the lack of auction success still contains useful information regarding possible factors which influence the outcome of an auction. A further example consideration is the case of zero bids, wherein the maximal bid price variable is censored at the minimal bid level. Specifically, the latent auction price may not be observed because of a high minimum bid. In such a case, one approach may be to consider the maximal bid as a proxy for final sold price.
Assuming the above considerations, in some example embodiments, a censored regression model is shown wherein a first equation has the form:
Max_bid=Max_bid* if Max_bid>0(the auction is successful)=starting_price.
Next, a second maximal auction bid equation is generated having the linear additive form:
Max_bid*iεS,t=const+αreg,S*starting_priceiεS,t+βreg,S*reserve_priceiεS,t+γreg,S*bemishiεS,t+ηreg,S*positive_feedbackiεS,t+λreg,S*seller_experienceiεS,t+ωreg,S*value_packiεS,t+ψreg,S*boldiεS,t+ . . . +εt
where εt is a stochastic random error term at time t—which is assumed to follow normal distribution with zero mean and constant σ−N(0,σ). These first two equations are evaluated using a maximum likelihood function having the form:
where solving for β and σ, the first term gives the probability that the observation is censored written as:
Pr[Max_bidi<=01Xi]=Pr[Xiβ+εi<01Xi]=Pr[εi<=−Xi||Xi]=Φ(−Xiβ′/σ)
and the second term is the density of non-censored observation which is a standard normal density. “I” may be the indicator variable which allows for switching between censored and non-censored observations, and Φ is the cumulative density function for the normal distribution, and σ is the variance of the error term of the second equation.
In some example embodiments, the expectation of the Max_bidi variable of the second equation is conditional upon the vector of independent variables {right arrow over (X)}i and is given by the following equation:
where
is the normalized probability density function for normal distribution; and
is the cumulative distribution function for normal distribution. The first term may take into account the fact that the censoring occurs at the starting price and the second term is the contribution of a standard Tobit model with zero censoring.
In some example embodiments, the operation 1003 may utilize the coefficients for certain categories of goods to generate optimized suggestion data. For example, the expected profit for an on-line auction site (e.g., site host) in the sale of a good or service (e.g., an item) may be represented as item iεS at a price=Max_bidiεS where:
Profit_SitehostiεS=Λ*Max_bidiεS+α*starting_priceiεS+β*reserve_price+ω*value_packiεS+τ*eBay_keywordsiεS+ψ*boldiεS+ . . .
where Λ is the final value fee, α is the insertion fee, β is the fee for using secret reserved price, ω is the fee charged to the seller who chooses to use the value pack, and τ is the fee for buying the keywords prior to the auction. In some example embodiments, by inserting the previously determined regression equation for the expected max_bid (e.g., the second maximal auction bid equation reference above), the profit equation takes the following form:
where the “reg” underscore is used to distinguish the regression coefficients from a-priori fixed fee factors, β is the vector of regression coefficients, and X is the vector of independent variables.
In some example embodiments, the objective of the site host is to maximize profit such that the function Profit_hostiεS is defined over a set of item-specific decision variables variεS (e.g., starting_price, reserve_price, value_pack etc). Additionally, the equation: va{circumflex over (r)}iεS=arg maxvar
In some example embodiments, the default seller's profit takes into account only the variables originally selected by the seller prior to any recommendations by the host. The coefficients for the remaining variables that are not included in the seller's original choice are set to zero. The last term in the above equation assumes that the seller makes some extra profit if he is able to ship below the average shipping cost for all the items in the category.
In some example embodiments, in order for the host site to make additional recommendations on-top of the default variables selected by the seller, the seller's profit under the hosts optimal scenario must be at least as large as the seller's default profit such that: Profit_selleriεS≧Profit_seller_defaultiεS. The other constraints are that the starting and reserve prices must be non-negative, various marketing features can only take binary values, the expected maximal bid is at least as large as the starting or reserve price etc. That is,
starting_price,reserve_price≧0;value_pack,bold . . . ε{0;1}.
Some embodiments may include the various databases (e.g., 111, 114, and 1008) being relational databases, or in some cases OLAP based databases. In the case of relational databases, various tables of data are created and data is inserted into, and/or selected from, these tables using SQL, or some other database-query language known in the art. In the case of OLAP databases, one or more multi-dimensional cubes or hypercubes containing multidimensional data from which data is selected from or inserted into using MDX may be implemented. In the case of a database using tables and SQL, a database application such as, for example, MYSQL™, SQLSERVER™, Oracle 8I™, 10G™, or some other suitable database application may be used to manage the data. In this, the case of a database using cubes and MDX, a database using Multidimensional On Line Analytic Processing (MOLAP), Relational On Line Analytic Processing (ROLAP), Hybrid Online Analytic Processing (HOLAP), or some other suitable database application may be used to manage the data. These tables or cubes made up of tables, in the case of, for example, ROLAP, are organized into a RDS or Object Relational Data Schema (ORDS), as is known in the art. These schemas may be normalized using certain normalization algorithms so as to avoid abnormalities such as non-additive joins and other problems. Additionally, these normalization algorithms may include Boyce-Codd Normal Form or some other normalization, optimization algorithm known in the art.
In some embodiments, a method is illustrated as implemented in a distributed or non-distributed software application designed under a three-tier architecture paradigm, whereby the various components of computer code that implement this method may be categorized as belonging to one or more of these three tiers. Some embodiments may include a first tier as an interface (e.g., an interface tier) that is relatively free of application processing. Further, a second tier may be a logic tier that performs application processing in the form of logical/mathematical manipulations of data inputted through the interface level, and communicates the results of these logical/mathematical manipulations to the interface tier, and/or to a backend, or storage tier. These logical/mathematical manipulations may relate to certain business rules, or processes that govern the software application as a whole. A third, storage tier, may be a persistent storage medium or, non-persistent storage medium. In some cases, one or more of these tiers may be collapsed into another, resulting in a two-tier architecture, or even a one-tier architecture. For example, the interface and logic tiers may be consolidated, or the logic and storage tiers may be consolidated, as in the case of a software application with an embedded database. This three-tier architecture may be implemented using one technology, or, as will be discussed below, a variety of technologies. This three-tier architecture, and the technologies through which it is implemented, may be executed on two or more computer systems organized in a server-client, peer to peer, or so some other suitable configuration. Further, these three tiers may be distributed between more than one computer system as various software components.
Some example embodiments may include the above illustrated tiers, and processes or operations that make them up, as being written as one or more software components. Common too many of these components is the ability to generate, use, and manipulate data. These components, and the functionality associated with each, may be used by client, server, or peer computer systems. These various components may be implemented by a computer system on an as-needed basis. These components may be written in an object-oriented computer language such that a component oriented, or object-oriented programming technique can be implemented using a Visual Component Library (VCL), Component Library for Cross Platform (CLX), Java Beans (JB), Java Enterprise Beans (EJB), Component Object Model (COM), Distributed Component Object Model (DCOM), or other suitable technique. These components may be linked to other components via various Application Programming interfaces (APIs), and then compiled into one complete server, client, and/or peer software application. Further, these APIs may be able to communicate through various distributed programming protocols as distributed computing components.
Some example embodiments may include remote procedure calls being used to implement one or more of the above illustrated components across a distributed programming environment as distributed computing components. For example, an interface component (e.g., an interface tier) may reside on a first computer system that is remotely located from a second computer system containing a logic component (e.g., a logic tier). These first and second computer systems may be configured in a server-client, peer-to-peer, or some other suitable configuration. These various components may be written using the above illustrated object-oriented programming techniques, and can be written in the same programming language, or a different programming language. Various protocols may be implemented to enable these various components to communicate regardless of the programming language used to write these components. For example, an component written in C++ may be able to communicate with another component written in the Java programming language through utilizing a distributed computing protocol such as a Common Object Request Broker Architecture (CORBA), a Simple Object Access Protocol (SOAP), or some other suitable protocol. Some embodiments may include the use of one or more of these protocols with the various protocols outlined in the Open Systems Interconnection (OSI) model, or Transmission Control Protocol/Internet Protocol (TCP/IP) stack model for defining the protocols used by a network to transmit data.
Some embodiments may utilize the OSI model or TCP/IP protocol stack model for defining the protocols used by a network to transmit data. In applying these models, a system of data transmission between a server and client, or between peer computer systems is illustrated as a series of roughly five layers comprising: an application layer, a transport layer, a network layer, a data link layer, and a physical layer. In the case of software having a three tier architecture, the various tiers (e.g., the interface, logic, and storage tiers) reside on the application layer of the TCP/IP protocol stack. In an example implementation using the TCP/IP protocol stack model, data from an application residing at the application layer is loaded into the data load field of a TCP segment residing at the transport layer. This TCP segment also contains port information for a recipient software application residing remotely. This TCP segment is loaded into the data load field of an IP datagram residing at the network layer. Next, this IP datagram is loaded into a frame residing at the data link layer. This frame is then encoded at the physical layer, and the data transmitted over a network such as an internet, LAN, WAN, or some other suitable network. In some cases, internet refers to a network of networks. These networks may use a variety of protocols for the exchange of data, including the aforementioned TCP/IP, and additionally ATM, SNA, SDI, or some other suitable protocol. These networks may be organized within a variety of topologies (e.g., a star topology), or structures.
The example computer system 1200 includes a processor 1202 (e.g., a Central Processing Unit (CPU), a Graphics Processing Unit (GPU) or both), a main memory 1201, and a static memory 1206, which communicate with each other via a bus 1208. The computer system 1200 may further include a video display unit 1210 (e.g., a Liquid Crystal Display (LCD) or a Cathode Ray Tube (CRT)). The computer system 1200 also includes an alphanumeric input device 1217 (e.g., a keyboard), a GUI cursor controller 1211 (e.g., a mouse), a disk drive unit 1212, a signal generation device 1225 (e.g., a speaker) and a network interface device (e.g., a transmitter) 1220.
The drive unit 1212 includes a machine-readable medium 1222 on which is stored one or more sets of instructions and data structures (e.g., software) embodying or used by any one or more of the methodologies or functions illustrated herein. The software may also reside, completely or at least partially, within the main memory 1201 and/or within the processor 1202 during execution thereof by the computer system 1200, the main memory 1201 and the processor 1202 also constituting machine-readable media.
The instructions 1221 may further be transmitted or received over a network 1212 via the network interface device 1220 using any one of a number of well-known transfer protocols (e.g., HTTP, Session Initiation Protocol (SIP)).
The term “machine-readable medium” should be taken to include a single medium or multiple medium (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing, encoding, or carrying a set of instructions for execution by the machine and that cause the machine to perform any of the one or more of the methodologies illustrated herein. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic medium, and carrier wave signals.
In some example embodiments, a system and method is shown for generating coefficient data and using this coefficient data to facilitate the generation of optimized suggestion data. A seller may select certain features that they want to appear on their website. This website may be used to facilitate the sale of a good or service. In one example embodiment, the suggestions are made to the seller by a site host as to features that the seller may want to choose to optimize the website for the purpose of maximizing profit for the sell and/or for the site host. The seller may be provided with optimized suggestion data that may compare and contrast the features selected by the seller against those suggested by the site host. The seller may then be free to select these features, or decline to accept these features.
The Abstract of the Disclosure is provided to comply with 37 C.F.R. § 1.72(b), requiring an abstract that may allow the reader to quickly ascertain the nature of the technical disclosure. It is submitted with the understanding that it may not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing Detailed Description, it can be seen that various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed embodiments require more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment. Thus the following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separate embodiment.