[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

US20190005562A1 - Matching a request from a user to a set of different users for responding to the request - Google Patents

Matching a request from a user to a set of different users for responding to the request Download PDF

Info

Publication number
US20190005562A1
US20190005562A1 US15/921,543 US201815921543A US2019005562A1 US 20190005562 A1 US20190005562 A1 US 20190005562A1 US 201815921543 A US201815921543 A US 201815921543A US 2019005562 A1 US2019005562 A1 US 2019005562A1
Authority
US
United States
Prior art keywords
request
users
value
user
service
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
US15/921,543
Inventor
Muxing Chen
Jeffrey Lock
Xin Liu
Benjamin Robert Anderson
Zhenyu Liu
Guqian Du
Chris Pak
Harsh Pankaj Panchal
Nick Jones
Shuai Ding
Xiao Zhang
Yeming Fang
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.)
Thumbtack Inc
Original Assignee
Thumbtack 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 Thumbtack Inc filed Critical Thumbtack Inc
Priority to US15/921,543 priority Critical patent/US20190005562A1/en
Assigned to THUMBTACK, INC. reassignment THUMBTACK, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LIU, XIN, CHEN, MUXING, DING, Shuai, LIU, ZHENYU, ANDERSON, BENJAMIN ROBERT, DU, GUQIAN, FANG, YEMING, JONES, NICK, LOCK, JEFFREY, PAK, CHRIS, PANCHAL, HARSH PANKAJ, ZHANG, XIAO
Assigned to HERCULES CAPITAL, INC., AS ADMINISTRATIVE AND COLLATERAL AGENT reassignment HERCULES CAPITAL, INC., AS ADMINISTRATIVE AND COLLATERAL AGENT INTELLECTUAL PROPERTY SECURITY AGREEMENT Assignors: THUMBTACK, INC.
Publication of US20190005562A1 publication Critical patent/US20190005562A1/en
Assigned to HERCULES CAPITAL, INC., AS COLLATERAL AND ADMINISTRATIVE AGENT reassignment HERCULES CAPITAL, INC., AS COLLATERAL AND ADMINISTRATIVE AGENT INTELLECTUAL PROPERTY SECURITY AGREEMENT Assignors: THUMBTACK, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy
    • G06N99/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Definitions

  • Embodiments of the invention relate to the field of data processing; and more specifically, to matching a request from a user to a set of one or more different users for responding to the request.
  • Responses are commonly generated for responding to requests in data processing. Some responses are fully automatic and apply to all requests. For example, in the context of web servers, a request for a web page is typically responded with a response that contains the requested web page (if such a web page exists). This response is typically not customized to the individual requester.
  • responses are manually generated by the responder.
  • These responses are largely manual and can be time intensive.
  • Websites exist that allow potential service buyers to search for a service professional and/or to be matched with a service professional.
  • the potential service buyer may post a request for a service that includes certain details of the request such as a category and a location, and the online marketplace may transmit the request to all of the service professionals that match the requested category and location.
  • transmitting the request to all of the service professionals does not scale with many requests and many service professionals using the online marketplace. For instance, a particular service professional may become inundated with requests, and/or many service professionals may respond to the potential buyer.
  • a simple limiting system may be used such that if the service professional did not use marketplace over a certain period of time, they would not be sent requests or would be sent a limited number of requests.
  • this type of simple limiting system may have unintended consequences. For instance, if a service professional went on vacation, they may come back and find that the marketplace was not sending them requests. Also, in sending limited requests, service professionals may not be receiving the requests that they were interested in, which may cause them to stop using the online marketplace.
  • a server receives a request for a service from a first user that defines a location for the service and a category of the service.
  • a first stage of matching is performed that includes determining a first plurality of second users that match the location and category.
  • a second stage of matching is performed includes performing the following for each of the first plurality of second users that match the location and category: computing a first value that quantifies an attractiveness of the request to that second user, computing a second value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and computing a third value based at least in part on the computed first value and the computed second value that quantifies a score for choosing that second user for responding to the request.
  • a request for the service is transmitted to at least some of a second plurality of second users of the first plurality of second users whose computed third value exceeds a first threshold value, wherein the second plurality of second users is less than the first plurality of second users.
  • a server automatically generates a response to a request received from a first user.
  • the server receives response configuration information from each of a first plurality of second users, wherein the received response configuration information includes for each of the first plurality of second users, information indicating a type of request in which that second user is willing to fulfill, and information indicating a number of requests that second user can fulfill in a given period of time.
  • the server receives the request from the first user, wherein the request includes a location where the request is to be fulfilled and a request type.
  • the server performs a first stage of matching that includes determining a first plurality of second users that match the location and the request type.
  • the server then performs a second stage of matching that includes, for each of the first plurality of second users that match the location and category, performing the following: computing a value that quantifies a likelihood of the first user selecting that second user to fulfill the request, determining a capacity of the second user to fulfill the request based at least in part on the number of requests that the second user can fulfill in the given period of time.
  • the server selects a second plurality of second users based at least in part on the computed value and the determined capacity of each of the first plurality of second users, wherein the second plurality of second users is less than the first plurality of second users.
  • the server automatically generates a response to the request for each of the selected second plurality of second users.
  • the server transmits each generated response to the first user.
  • FIG. 1 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment
  • FIG. 2 is a block diagram that illustrates an embodiment of the selection limiter of FIG. 1 using a machine-learning model according to an embodiment
  • FIG. 3 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment
  • FIG. 4 is a flow diagram that illustrates exemplary operations for computing the third value of FIG. 3 according to an embodiment
  • FIG. 5 is a flow diagram that illustrates exemplary operations for selecting the second group of responders of FIG. 3 according to an embodiment
  • FIG. 6 is a flow diagram that illustrates exemplary operations for increasing the number of matching responders according to an embodiment
  • FIG. 7 is a flow diagram that illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment
  • FIG. 8 is a flow diagram that illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment
  • FIG. 9 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request, according to an embodiment
  • FIG. 10 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment
  • FIG. 11 is flow diagram that illustrates exemplary operations for selecting a second group of responders according to an embodiment.
  • FIG. 12 is a block diagram illustrating an exemplary data processing system that may be used in some embodiments.
  • references in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether explicitly described.
  • Coupled is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, co-operate or interact with each other.
  • Connected is used to indicate the establishment of communication between two or more elements that are coupled with each other.
  • a method and apparatus for an improved system for matching a request from a user (sometimes referred herein as a “requester”) to a set of one or more different users (sometimes referred herein as “responders”) for responding to the request is described.
  • the request is for a service and data from the request is used to match the request to identified responders that may be suitable for fulfilling the service request.
  • the data in the request includes data that is structured, and may be received by the system through input of a form submitted by the requester.
  • multiple levels of matching are performed where a first level of matching retrieves a set of candidate responders and a second level of matching is performed on the set of candidate responders to select the matching responders.
  • the first level of matching may be performed based on a set of course features based on the first set of data (e.g., based on data directly included in the first set of data and/or derived from the first set of data), and the candidate responders are those that match these features.
  • the second level of matching may include computing a score for each candidate responder based on a scoring function and feature data. Based on the computed score, the matching responders(s) are determined.
  • the request is a service request
  • detailed information about the requested service is received by the system, such as through submission of a request form.
  • a request form may be customized according to the category of service requested.
  • the submission of the request form provides a relatively large set of structured data that is used when matching with responders.
  • the first level of matching may be performed based on a set of course features including one or more of category, location, and progress points.
  • the request provides the category and location.
  • the request is sent to the matching responders and/or a notification is sent to the matching responders alerting those responders that a request is available for response.
  • the matching responders may then respond to the request.
  • a response to the request is automatically generated on behalf of the matching responders.
  • the one or more responders that are selected for the ability to send a response to a requester are typically selected from many more responders.
  • the selected responder(s) are selected based on multiple levels of matching where the first level of matching may be performed based on a set of course features including one or more of category, location, and progress points, and the responder(s) that match these features are referred to as candidate responders.
  • a second level of matching may include computing a score for each candidate responder based on a scoring function and feature data, to determine which responder(s) to select. The selection may be based on machine learning models with heuristics.
  • the decision of selecting which responder(s) are sent the request may be based on one or more of the following: a determined interest level of the responder in the request; a relevance of the responder to the requester; relatively short term supply and demand in the marketplace for the requested service; and relatively long term supply and demand in the marketplace for the requested service.
  • FIG. 1 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request, according to an embodiment.
  • the system 100 illustrated in FIG. 1 includes a requester device 105 that is operated by a requester, responder devices 115 A-N that is each operated by a different responder of the responders 11 A-N, and a server 125 .
  • the requester device 105 and the responder devices 115 A-Z each are types of computing devices that interact with the server 125 and may be a desktop, laptop, smartphone, tablet, wearable device, etc., that executes a client network application.
  • the client network application may be a web browser (e.g., a desktop browser, a mobile optimized browser), a native application, or other application that can access network resources such as web pages, images, videos, or other computer files.
  • the requester device 105 and the responder devices 115 A-Z interact with the server 125 over a network, such as the Internet.
  • the server 125 is a computing device that provides functionality for the improved system for matching requests with responders.
  • the server 125 includes the request processing module 120 , the notification module 162 , the response module 165 , and the data store 160 .
  • the data store 160 stores data related to the responders and the requesters. Although illustrated in FIG. 1 as part of the server 125 , the data store 160 may be in a separate computing device than the server 125 and queried by the server 125 .
  • the data store 160 is used by the server 125 (e.g., the request processing module 120 , the notification module 162 , and/or the response module 165 ) when matching a request with one or more responders that may respond to the request.
  • the data store 160 may store responder profile information of the responder (typically provided by the responder), and statistical information of the responder (typically derived or calculated by the server 125 ).
  • the responder profile information may include, for each responder, one or more of the following: the responder's name, the category (or categories) offered by that responder, the location where the service is offered, whether the responder travels to provide the service, contact information of the responder (e.g., email address, phone number, street address) pictures of the responder and/or service, videos of the responder and/or service, service description, whether the responder has passed a background check, and whether the responder has shown proof of being licensed, etc.
  • the statistical information of the responder may include one or more of the following: the number of times the responder has been selected to fulfill the request, the number of responses sent by, or on behalf, of that responder, the number of requests sent to that responder, the request fulfillment rate of the responder (the number of times the responder has been selected to full requests over the number of responses), the number of requests fulfilled by the responder in all categories, the rate at which the responder responds to a request or message from a requester, review(s) of the responder (typically provided by past requesters), and a rating of the responder based on the review(s).
  • the data store 160 may store profile information of the requester (typically provided by the requester) and/or statistical information of the requester (typically derived or calculated by the server 125 ).
  • the requester profile information may include, for each requester, one or more of the following: the name of the requester, the location of the requester, and contact information of the requester (e.g., email address, phone number, street address).
  • the statistical information of each requester may include one or more of the following: request fulfillment rate of the requester in the requested category (hires over requests), request fulfillment rate of the requester in all categories (hires over requests), and the rate at which the requester responds to a responder, review(s) of the requester (typically provided by past responders).
  • the request processing module 120 is configured to receive and process requests from requesters. Each request defines the parameters of what is being requested. In a specific embodiment where the request is a request for service, the request defines the type of service requested, the location where the service is desired, a category of the desired service, and one or more request preferences.
  • the request processing module 120 may select the responder(s) that are eligible for responding to the request. In an embodiment, the request processing module 120 selects, from multiple responders, a set of one or more responders for responding to the request as a result of a matching process performed by the matching module 150 .
  • the matching module 150 receives a request 130 from a requester at operation 1 , and matches the request with a set of one or more responders at operation 2 .
  • the matching module 150 includes the candidate selector 152 and the selection limiter 154 .
  • the candidate selector 152 performs a first level of matching based on a set of one or more course features including one or more of requested category, requested location, and progress points, to find the responder(s) that match these features. It should be understood that there may be many responders that match based on the first level of matching.
  • the selection limiter 154 of the matching module 150 performs a second level of matching to refine which of the responder(s) that matched the first level of matching will be selected.
  • the selection limiter 154 may perform the second level of matching based on one or more of the following: a determined interest level of the responder in the request; a relevance of the responder to the requester; relatively short term supply and demand in the marketplace for the requested job; and relatively long term supply and demand in the marketplace.
  • the selection limiter 154 may use a machine learning model with heuristics to perform the second level of matching, such as a logistic regression model.
  • FIG. 2 is a block diagram that illustrates an embodiment of the selection limiter 154 using a machine-learning model, according to an embodiment.
  • the model training module 220 takes as input a set of signal data stored in the signal data store 215 and outputs a model (a scoring function) that is used by the scorer 230 .
  • the signal data 215 is created from the requests and/or other interactions with the system such as historical information from the responders.
  • the signal data 215 may be a subset of the data store 160 and/or may be derived from data of the data store 160 .
  • the signals used by the model training module 220 depends on the model that is being trained.
  • the scorer 230 calculates a score based on the feature data 225 .
  • the feature data 225 is a subset of the data store 160 and may include features derived from the request and/or historical behavior of the responders, and depends on the type of model being used.
  • the responder(s) that remain after the second level matching are added to a response submission list and the notification module 162 transmits a message to respond 170 to the request 130 to each of these responder(s), at operation 3 .
  • the message to respond 170 to the request 130 may include the information of the request 130 .
  • the message to respond 170 may be a notification alerting the responder that the request 130 is available on the system for the responder to respond.
  • the selection limiter 154 may include responder(s) that match the first level of matching and have recently registered for the system (e.g., within a predefined period of time such as 30 days) and/or have recently begun offering service for the requested category in the requested location (e.g., within the predefined period of time) in the response submission list regardless of the second level of matching.
  • the responders 180 that operate the responder devices 115 A-L have been determined to match the request. More details regarding the second level of matching will be described in greater detail later herein.
  • the notification module 162 transmits a message to respond 170 to the request 130 to each of the responder devices 115 A-L.
  • the message to respond 170 may include the request 130 or a notification that the request 130 may be viewed.
  • the message to respond 170 may be sent through an email, text message, and/or a notification for a native application installed on the responder devices 115 A-L.
  • the message to respond may also be capable of being displayed to the responder upon logging into the service (e.g., in a dashboard for the responder).
  • the responder uses the response module 165 to generate a response 172 , at operation 4 .
  • the response provides information that allows the requester to determine whether to proceed with selecting that responder to fulfill the request.
  • the response may include information including one or more of the following: the name of the responder, contact information of the responder (e.g., phone number, email address, social network username, etc.), a description of the qualifications of the responder, information about the price the responder estimates the requested service will cost, and other information that the responder wants to provide.
  • the response 174 (which may correspond with the response 172 ) is transmitted from the server 125 to the requester device 105 .
  • the total number of unique responses sent to the requester device 105 is less than or equal to the number of messages to respond that are sent to the matching responders 180 .
  • the requester device 105 may respond to the response in any number of ways, such as asking for more information, hiring a responder, etc.
  • FIG. 3 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment.
  • the operations of FIG. 3 will be described with respect to the exemplary embodiment of FIG. 1 .
  • the operations of FIG. 3 can be performed by different embodiments than those discussed with FIG. 1
  • the exemplary embodiment of FIG. 1 can perform different embodiments than those discussed with respect to FIG. 3 .
  • the request processing module 120 of the server 125 receives a request 130 from a first user.
  • the request may be a request for service and define parameters for the requested service.
  • the request may specify a specify a location where the service is desired and a category of the desired service.
  • the location indicates where the requester is located and/or how far the requester is willing to travel for the requested service.
  • the location may be entered as a city, a street within a city, a zip code, etc.
  • the category of service indicates the type of service that is desired. There may be many different categories that can be selected and/or input by the requester. As an example, French Lessons may be a category. As another example, Interior Design may be a category.
  • the request may also include information about the requested service, dependent upon the category, that may be used by the system to match the requester with the responders. This information is sometimes referred herein as request preferences. For instance, if the category is Interior Design, the request may specify what room(s) (e.g., kitchen, living room, bedroom, dining room, commercial or office space, etc.) are desired to be improved, which can be used to match to responders that specialize in those rooms (some designers may specialize in kitchen remodels, for example). As another example, if the category is French Lessons, the request may specify the age (or age range) of the person that wants to improve or learn French that can be used to match to responders (some providers offering French Lessons may not be adapted to teach young children, for example). Flow then moves to operation 315 .
  • room(s) e.g., kitchen, living room, bedroom, dining room, commercial or office space, etc.
  • the request may specify the age (or age range) of the person that wants to improve or learn French that can be used to match to
  • the matching module 150 of the server 125 After receiving the request, the matching module 150 of the server 125 performs a first level of matching to select a first group of second users for potentially responding to the request.
  • the second users may be referred herein as responders.
  • the first group of responders match at least the requested location and category.
  • the first level of matching may also be based on information provided in the request about the requested service.
  • the candidate selector 152 of the matching module 150 determines a first group of responders as candidates for responding to the request. In the case where the request is a request for service and the request includes a requested location and category, the candidate selector 152 determines the first group of responders to be those that match the requested location and category.
  • the first group of responders are sometimes referred herein as candidate responders.
  • the candidate selector 152 access information about the responders such as the location(s) that they offer service and the category(ies) of service that they offer, from the data store 160 .
  • the candidate selector 152 compares the requested location and category with the information from the data store 160 to select the candidate responders.
  • the first level of matching includes determining the responders that have the same zip code as the requested location and/or within a predefined number of miles/kilometers from the requested location, and offer service in the same category as the request category. Depending on the location and/or category, there may be many candidate responders. Flow moves from operation 315 to operation 320 .
  • the matching module 150 of the server 125 After determining the candidate responders, the matching module 150 of the server 125 performs a second level of matching to refine which responders are selected.
  • the second level of matching is intended to determine which set of responders are best suited for fulfilling the request, and may take the following factors into consideration: the requester's requirements included in the request, the responder's express intent and derived interest in fulfilling the request, the qualification of the responder for fulfilling the request, whether the responder is a good fit for the request (e.g., for request for services involving personal preferences or style, such as interior design jobs), whether the request is a good fit for the responder and is likely to deliver value to the responder's business, and/or the overall long term supply and demand in the marketplace being balanced between requester needs and available responders.
  • the selection limiter 154 of the matching module 150 performs operations 325 - 335 for each responder in the first group of responders (the candidate responders).
  • the selection limiter 154 computes a first value that quantifies an attractiveness of the request to that responder.
  • the attractiveness of the request may be a prediction of whether the responder will respond to the request.
  • the response may include providing more information to the requester that allows the requester to determine whether to select that responder to fulfill the request.
  • the computation of the first value may be based on data representing the historical behavior of the candidate responders and using logistic regression. For instance, one of the ways to measure how likely a responder would be interested in the request is to determine whether, and what extent, the responder has previously engaged to similar requests.
  • Determining a similar request may include matching the request by category (e.g., the same category), location (e.g., the same location and/or location within a predefined area), and request preferences (e.g., text description, requester features, question-answers, etc.).
  • category e.g., the same category
  • location e.g., the same location and/or location within a predefined area
  • request preferences e.g., text description, requester features, question-answers, etc.
  • the logistic regression model used by the selection limiter 154 may use one or more signals derived from data of the system that is stored in the data store 160 .
  • the data store 160 may store engagement data for each responder that maps category and location (e.g., category, zip code) to: the number of requests sent to that responder, the number of requests sent to that responder that were viewed, the number of responses sent by or on behalf of that responder, and/or the number of times in which the responder was selected to fulfill requests.
  • category and location e.g., category, zip code
  • the engagement data stored in the data store 160 for each responder may indicate one or more of the following: the number of viewed requests by the responder in the request category, the concentration of the number of viewed requests by the responder in the request category compared to the number of total number of viewed requests by the responder in all categories, the rate at which the responder views requests in the requested category (the number of viewed requests by the responder in the request category over the number of requests sent to the responder in the request category), the number of responses sent by or on behalf of the responder in the request category, the concentration of the number of responses sent by or on behalf of the responder in the request category compared to the total number of responses sent by or on behalf of the responder in all categories, the rate at which responses are sent by or on behalf of the responder in the request category compared to the number of requests sent to the responder in the request category, the number of times the responder was selected to fulfill the request in the request category, the concentration of the number of times the responder was selected to fulfill the request in the request category compared to the
  • the data store 160 may also store physical distance features including the distance between the requested location (e.g., zip code) and all locations where the service has been responded to before and may also be weighted by the responses concentration in the requested location.
  • Another physical distance feature is the centroid distance, which is calculated as the distance between the request location and the centroid of locations where the category of service has been responded to previously.
  • equation 1 may be used to determine a weighted distance between the requested location and all location where the service has been responded to previously:
  • the engagement data may be weighted based on time. For instance, a response from a year ago may not have the same value of a response a week ago. In an embodiment, the engagement data is weighted more heavily in recent time windows than engagement data occurring in later time windows. The time windows may be based on days (e.g., one day), weeks (e.g., one week), and/or months (e.g., one month). In another embodiment, a decayed value is used to weigh the engagement data based on time. For instance, the decayed value may be defined as a class of an initial value N, timestamp t 0 , and half-life L. N is exponentially decayed. After L, the value of N becomes N/2.
  • N The value of N at any future time t can then be calculated as N*2 ⁇ (t ⁇ t 0 )/L) .
  • Multiple decayed values may be added if they have the same half-life value (e.g., (N 1 , t 1 ), (N 2 , t 2 )).
  • the half-life value L is set as two weeks, and as a result a response will be counted as 0.5 after 2 weeks, 0.25 after 4 weeks, etc.
  • the half-life value may be set differently for different purposes.
  • the selection limiter 154 computes a second value that quantifies a likelihood of the requester selecting that responder to fulfill the request.
  • the computation of the second value may be based on the estimated quality of the responders to the requester and may use a logistic regression model.
  • the logistic regression model may use one or more signals derived from data of the system including reviews of the responders, non-review related profile features, response time of the responders, previous request fulfillment rate of the responders, distance between the requested location and the responder, and/or non-responder-specific features.
  • the number of reviews of a responder is correlated with the request fulfillment rate of the responder.
  • the rating of the reviews is also correlated with the request fulfillment rate of the responder.
  • responders that have a relatively large number of reviews and are rated relatively high tend to be selected to fulfill requests at a higher rate than responders with a relatively low number of reviews and/or low rating.
  • the number of and rating of verified reviews may correlate with the request fulfillment rate of the responder.
  • Non-review related profile features of the responder may be correlated with the request fulfillment rate of the responder, such as the existence of a profile picture, the number of profile pictures, the number of videos, profile completion status, the number of times the responder has been selected to fulfill a request, the length of the service description, whether the responder has passed a background check, and/or whether the responder shows proof of being licensed.
  • responders with profile picture(s) may have a larger request fulfillment rate than those responders that do not have profile picture(s).
  • the number of pictures can have a correlation with request fulfillment rate. For instance, the request fulfillment rate of responders tends to go up until about 5 pictures where the request fulfillment rate levels off.
  • the number of videos of a responder may be correlated with the request fulfillment rate of the responder depending on the category of service provided. Whether a responder has passed a background check may impact request fulfillment rate depending on the service category. For example, responders that have passed a background check may have a larger request fulfillment rate in service categories that concern children (e.g., babysitting, tutoring, music lessons, etc.). Responders that have evidence of being licensed may have a higher request fulfillment rate than other responders in certain categories (e.g., wellness, personal, pets).
  • the response time of a responder is correlated with the request fulfillment rate. For instance, how quickly the responder responds to an invitation to response (and thus respond more quickly to a request), and/or how quickly a responder responds to messages or questions from a requester impacts the request fulfillment rate. That is, responders that respond more quickly have a higher request fulfillment rate than other responders.
  • the response time may be weighed more heavily in recent time windows and/or only viewed in a certain time window. For instance, the average response time in the past year (or other predefined time period) may be used.
  • the previous request fulfillment rate is generally correlated with the current request fulfillment rate. That is, the request fulfillment rate of responders for a request category generally tends to stay roughly linear. The number of previous times a responder has been selected to fulfill a request over a given time period (e.g., over the last year) may be used.
  • request fulfillment rate for a responder generally goes down as distance increases. This value may be dependent on whether the requester travels to the responder for the requested service, whether the responder travels to the requester for the requested service, or whether the requested service is done remotely. In cases where the requester travels to the responder for the requested service, the request fulfillment rate may generally go down as distance increases. In cases where the responder travels to the requester for the requested service, the request fulfillment rate may generally go down as distance increases, but generally not as much as if the requester travelled to the responder. In cases where the requested service may be done remotely, the distance between the requested location and the responder may not impact the request fulfillment rate.
  • Non-responder-specific features such as the historical request fulfillment rate in the category (across all responders) is generally the same as the expected request fulfillment rate in the category.
  • FIG. 4 is a flow diagram that illustrates exemplary operations for computing the third value according to an embodiment.
  • the weights w 1 and w 2 may be determined through training of a machine learning model against historical data on fulfillments.
  • the selection limiter 154 computes a minimum notify probability based on a heuristic value of a ratio of the ideal requests over the estimated requests in the market.
  • the minimum notify probability is computed as the ideal requests per week divided by the estimated requests in the market per week.
  • the selection limiter 154 computes a notify probability as the maximum value of the computed probability of the responder being selected to fulfill the request (as found in operation 410 ) and the minimum notify probability (as found in operation 415 ).
  • the computed notify probability will be a number in the range between 0 and 1.
  • a random number is selected between 0 and 1. Then, flow moves to operation 430 where the selection limiter 154 determines whether the random number (as found in operation 425 ) is less than the computed notify probability (as found in operation 420 ). If the random number is smaller than the notify probability, then flow moves to operation 435 where that responder is selected for responding to the request. If the random number is larger than the notify probability, then flow moves to operation 440 where that responder is not selected for responding to the request.
  • FIG. 5 is a flow diagram that illustrates exemplary operations for selecting the second group of responders according to an embodiment.
  • the selection limiter 154 selects a set of candidate responders from the first group of responders based on the computed value.
  • the selected set of candidate responders are those that are selected through the operations described with respect to FIG. 4 .
  • the selected set of candidate responders are those whose computed third value is above a predefined threshold.
  • the selection limiter 154 determine whether the number of the set of candidates selected is less than a selection threshold. The value of the selection threshold is based on heuristic analysis and may depend on the service category.
  • these additional candidate responders that are selected are based on the computed first values until the selection threshold is reached (those responders that were not initially selected that have a higher computed first value than other responders that were not initially selected). In another embodiment, these additional candidate responders that are selected are based on the computed third values until the selection threshold is reached (those responders that were not initially selected that have a higher computed third value than other responders that were not initially selected). Flow moves from operation 520 to operation 535 where the second group of responders is set as the candidate responders.
  • the selection limiter 154 determines whether the number of the set of candidates selected is greater than a selection threshold.
  • the value of the selection threshold used in operation 515 is less than the value of the selection threshold used in operation 525 . In another embodiment, the value of the selection threshold used in operation 515 is the same as the value of the selection threshold used in operation 525 . If the number of the set of candidates selected is greater than the selection threshold, then flow moves from operation 525 to operation 530 where the number of candidate responders is decreased until the threshold is reached. In an embodiment, the responders that are de-selected is based on the computed first values until the selection threshold is reached.
  • those candidate responders that have the lowest computed first value as compared to other candidate responders are de-selected until the selection threshold is reached.
  • the responders that are de-selected is based on the computed third values until the selection threshold is reached. For example, those candidate responders that have the lowest computed third value as compared to other candidate responders are de-selected until the selection threshold is reached.
  • FIG. 6 is a flow diagram that illustrates exemplary operations for increasing the number of matching responders according to an embodiment.
  • the operations of FIG. 6 may be performed, for example, if the number of matched responders is below a threshold. This may occur, for example, if the requested category is not serviced by many responders. This may also occur if it is determined that there are not many responders that are likely to respond to the request.
  • the selection limiter 154 computes, from the second group of responders, the total number of responders that are likely to respond to the request.
  • the selection limiter 154 computes the total number of expected responses for the request based on each responders likelihood to submit a response for the current request. For instance, based on the computed first value described in operation 325 , the selection limiter 154 determines whether it is likely that the responder will submit a response for the current request. In a specific example, if the computed first value is greater than 0.5, the selection limiter 154 determines that it is likely that the responder will submit a response for the current request.
  • the selection limiter 154 determines whether the total number is below a response threshold.
  • the response threshold is based on a bottom percentile (e.g., bottom 20 th percentile) of requests by the ratio of responses over request. If the total number is below the response threshold, then flow moves to operation 620 . If the total number is not below the response threshold, then flow moves to operation 630 where the operations of FIG. 6 end.
  • the selection limiter 154 determines a set of one or more related categories to the requested category.
  • the selection limiter 154 may select the set of one or more related categories based on a memory-based collaborative filtering algorithm and optionally tuned with manual boosts.
  • the memory-based collaborative filtering algorithm uses historical data to determine the extent to which responders historically submit a response for a set of one or more other categories in addition to the requested category. If, based on the historical data, the number or rate of responders submitting a response for the requested category and another category exceeds a threshold, then that another category is a related category, according to an embodiment. If there are multiple related categories, the related categories that are selected may have the most overlap of requests to the requested category.
  • the memory-based collaborative filtering algorithm may be manually adjusted based on empirical data analysis of what categories should be related. For instance, if the algorithm suggests a “Handyman” category is related to a “Play Equipment Construction” category, it might be excluded or demoted since it may not be reasonably related.
  • the operations starting back at operation 315 are performed using the set of one or more related categories.
  • FIG. 7 illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment.
  • the operations 610 - 615 of FIG. 7 are performed as previously described with respect to FIG. 6 .
  • operation flows to operation 725 where the cost to the responders for responding to the request is decreased to increase the number of responders that are likely to respond to the request.
  • the amount that the cost is adjusted may be determined through price sampling and potentially A/B testing, and may depend on the extent to which the total number is below the threshold. The amount that the cost is adjusted may be different for different service categories.
  • the amount that the cost is adjusted may be determined through pricing sampling and potentially A/B testing, and may depend on the extent to which the total number is above the threshold. The amount that the cost is adjusted may be different for different service categories.
  • the system may influence the number of responders that are likely to respond to the request by discounting the cost for certain responders (e.g., those that have been inactive for a certain period of time).
  • FIG. 8 is a flow diagram that illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment. The operations 610 - 615 of FIG. 8 are performed as previously described with respect to FIG. 6 , and the operation 720 of FIG. 8 is performed as previously described with respect to FIG. 7 . However, if the total number of responders that are likely to respond to the request is below the response threshold, in the embodiment of FIG.
  • the activity status for a responder may include whether the responder is currently actively responding or using the system.
  • the amount that the cost is adjusted may be determined through price sampling and potentially A/B testing, and may depend on the extent to which the total number is below the threshold.
  • the amount that the cost is adjusted may be different for different service categories.
  • the reduced cost for a responder may exist until that responder reaches a condition where they become active again (e.g., sending N responses or getting hired M times).
  • responders that have recently registered for the system e.g., within a predefined period of time such as 30 days
  • responders that have recently begun offering service for the requested category in the requested location e.g., within the predefined period of time
  • the second group of responders are added to a response submission list and the notification module 162 transmits a message to each of the second group of responders that identifies the request.
  • the message may include the information of the request and/or a notification that a request is available on the server for viewing.
  • the message may be sent through an email, text message, and/or a notification for a native application installed on the responder devices.
  • the message to respond may also be capable of being displayed to the responder upon logging into the service (e.g., in a dashboard for the responder). Any of the second group of responders may then respond to the request.
  • a response is automatically generated by the system on behalf of the responder and sent to the requester.
  • the response is sometimes referred herein as an automatic response.
  • the responder provides configuration information such as what requesters they are willing to respond to and the types of jobs that they are willing to accept.
  • the responder may also provide information for automatic generation of the response including their name, type of service they provide, location, travel preferences, profile photo, service description, and other basic information.
  • the responder may provide information about the price they will charge for the service.
  • the responder may provide information regarding the number of requests they can fulfill in a given period of time.
  • the responder(s) that are selected for automatic generation of responses are selected from many more responders.
  • the selected responder(s) are selected based on multiple level matching where the first level of matching may be performed based on a set of course features including one or more of category, location, and progress points, and the responder(s) that match these features are referred to as candidate responders.
  • a second level of matching may include computing a score for each candidate responder based on a scoring function and feature data, to determine which responder(s) to select. The selection may be based on machine learning models with heuristics.
  • the decision of selecting responder(s) may be based on one or more of the following: a relevance of the responder's response to the requester, maximizing fulfillment of requests, and maximizing an overall aggregate measure of relevance across a plurality of requests.
  • FIG. 9 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request, according to an embodiment.
  • the system 900 illustrated in FIG. 9 includes the requester device 105 , the responder devices 115 A-Z, and the server 925 .
  • the requester device 105 and the responder devices 115 A-Z are similar to that described in FIG. 1 .
  • the responder devices 115 A-Z are configured to provide response configuration information to the server 925 , which the server 925 uses to automatically generate response(s) on behalf of the responders 112 A-N.
  • the server 925 is a computing device that provides functionality for the improved system for matching requester requests with responders.
  • the server 925 includes the request processing module 920 , the response configuration module 940 , the response module 965 , and the data store 960 .
  • the data store 960 stores data related to the responders and the requesters, and is used by the server 925 (e.g., the request processing module 920 , the response configuration module 940 , and/or the response module 965 ).
  • the data store 960 may include the same data as the data store 160 , in an embodiment. Although illustrated in FIG. 9 as part of the server 925 , the data store 960 may be in a separate computing device than the server 925 and queried by the server 925 .
  • the response configuration module 940 is adapted to be used by the responders for configuring automatic generation of a response to a request.
  • the response configuration module 940 may provide an interface (e.g., available as a website or part of a native application) that allows responders to configure and manage (e.g., create, view, edit, delete, modify) rules for the automatic generation of responses to requests.
  • the server 925 receives response configuration information 970 from each of the responders 112 A-N, via the response configuration module 940 .
  • the response configuration information of a particular responder indicates the type of requesters they are willing to respond to, and/or the type of requests that they are willing to fulfill.
  • the response configuration information from a responder may also include information for automatic generation of the response including their name, type of service they provide, location, travel preferences, profile photo, service description, scheduling information (availability), and other basic information.
  • the response configuration information may include information about the price the responder will charge for the service.
  • the response configuration information may include information regarding the number of requests the responder can fulfill in a given period of time.
  • the response configuration information may be stored in the data store 960 .
  • the request processing module 920 is configured to receive and process requests from requesters. Each request defines the parameters of what is being requested. In a specific embodiment where the request is a request for service, the request defines the type of service requested, the location where the service is desired, a category of the desired service, and one or more request preferences.
  • the request processing module 920 may select the responder(s) that are eligible for responding to the request. In an embodiment, the request processing module 920 selects, from multiple responders, a set of one or more responders for responding to the request as a result of a matching process performed by the matching module 950 . In the example shown in FIG. 9 , the responders 980 that operate the responder devices 115 A-L have been determined to respond to the request. In the embodiment shown in FIG. 9 , the matching module 950 includes the candidate selector 952 and the selection limiter 954 .
  • the candidate selector 952 performs a first level of matching based on a set of one or more course features including one or more of requested category, requested location, and progress points, to find the responder(s) that match these features. There may be many responders that match based on the first level of matching. In an embodiment, the first level of matching is similar or the same as the first level of matching as described with respect to the embodiment of FIGS. 1 and 3 .
  • the selection limiter 954 of the matching module 950 performs a second level of matching to refine which of the responder(s) that matched the first level of matching will be selected.
  • the selection limiter 954 may perform the second level of matching based on one or more of the following: a relevance of the responder's response (if given) to the requester, maximizing fulfillment of requests, and maximizing an overall aggregate measure of relevance across a plurality of requests.
  • the selection limiter 954 may use a machine learning model with heuristics to perform the second level of matching, such as a logistic regression model. The second level of matching will be described in greater detail with respect to FIGS. 10-11 .
  • the response module 965 is configured to automatically generate a response on behalf of a selected responder, based on the response configuration information received from the responders and the request.
  • the response module 965 is also configured to communicate the generated response to the requesting device. Instead of sending the request from a requester to a matching responder, a response is automatically generated by the system on behalf of the responder and communicated to the requester.
  • the responses 974 are communicated to the requester device 105 .
  • FIG. 10 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment.
  • the operations of FIG. 10 will be described with respect to the exemplary embodiment of FIG. 9 .
  • the operations of FIG. 10 can be performed by different embodiments than those discussed with FIG. 9
  • the exemplary embodiment of FIG. 9 can perform different embodiments than those discussed with respect to FIG. 10 .
  • the response configuration module 940 receives and stores the configuration information 970 for configuring automatic response generation on behalf of a responder.
  • the received configuration information 970 is used by the response configuration module 940 to configure rules for generating responses on behalf of the responder.
  • the configuration information 970 may specify one or more of: the type of requesters they are willing to respond to, and/or the type of requests that they are willing to fulfill.
  • the response configuration information from a responder may also include information for automatic generation of the response including their name, type of service they provide, location, travel preferences, profile photo, service description, scheduling information (availability), and other basic information.
  • the response configuration information may include information about the price the responder will charge for the service.
  • the response configuration information may include information regarding the number of requests the responder can fulfill in a given period of time.
  • the response configuration information may be stored in the data store 960 .
  • the request processing module 920 of the server 925 receives a request 930 from a first user.
  • the request may be a request for service and define parameters for the requested service.
  • the request may be similar to that as described with respect to operation 310 of FIG. 3 .
  • the request 930 specifies that the requester wishes to receive responses that have been automatically generated (as opposed to being manually generated).
  • the requester can receive responses much more quickly because they have been automatically generated. This leads to higher engagement rates of the requester since they can determine whether to act upon the response in a shorter timeframe. This in turn leads to higher chances of a responder being selected to fulfill the request, and a faster process to get the request fulfilled.
  • the matching module 950 of the server 925 performs a first level of matching to determine a first group of responders as candidates for responding to the request. In a case where the request is for service and includes a requested location and category, the matching module 950 determines the first group of responders to be those that match the requested location and category. Thus, at operation 1015 , the candidate selector 952 of the matching module 950 determines a first group of responders as candidates for responding to the request. In the case where the request is for service and defines a requested location and category the candidate selector 952 determines the first group of responders as those responders that match the requested location and category, which are sometimes referred to as candidate responders.
  • the matching module 950 accesses information about the responders such as the location(s) that they offer service and the categor(ies) of service that they offer from the data store 960 .
  • the candidate selector 952 compares the requested location and category with the information from the data store 960 to select the candidate responders. Depending on the location and/or category, there may be many candidate responders. Flow moves from operation 1015 to operation 1020 .
  • the matching module 950 of the server 925 After determining the candidate responders, the matching module 950 of the server 925 performs a second level of matching to refine which responders are selected for automatic response generation.
  • the second level of matching is intended to determine which set of responders are best suited for fulfilling the request, and may take the following factors into consideration: the requester's requirements included in the request, the responder's express intent and derived interest in fulfilling the request, the qualification of the responder for fulfilling the request, whether the responder is a good fit for the request (e.g., for request for services involving personal preferences or style, such as interior design jobs), whether the request is a good fit for the responder and is likely to deliver value to the responder's business, maximizing fulfillment of requests, and/or maximizing an overall aggregate measure of relevance across a plurality of requests.
  • the selection limiter 954 of the matching module 950 performs operations 1025 - 1030 for each responder in the first group of responders (the candidate responders).
  • the selection limiter 954 computes a value that quantifies a likelihood of the requester selecting that responder to fulfill the request, if a response was given from that requester.
  • the computation of this value may be based on the estimated quality of the responders to the requester and may use a logistic regression model.
  • the logistic regression model may use one or more signals derived from data of the system including reviews of the responders, non-review related profile features, response time of the responders, previous request fulfillment rate of the responders, distance between the requested location and the responder, non-responder-specific features, and/or information from the perspective response itself such as the price that would be offered to fulfill the request.
  • the number of reviews of a responder is correlated with the request fulfillment rate of the responder.
  • the rating of the reviews is also correlated with the request fulfillment rate of the responder.
  • responders that have a relatively large number of reviews and are rated relatively high tend to be selected to fulfill requests at a higher rate than responders with a relatively low number of reviews and/or low rating.
  • the number of and rating of verified reviews may correlate with the request fulfillment rate of the responder.
  • Non-review related profile features of the responder may be correlated with the request fulfillment rate of the responder, such as the existence of a profile picture, the number of profile pictures, the number of videos, profile completion status, the number of times the responder has been selected to fulfill a request, the length of the service description, whether the responder has passed a background check, and/or whether the responder shows proof of being licensed.
  • responders with profile picture(s) may have a larger request fulfillment rate than those responders that do not have profile picture(s).
  • the number of pictures can have a correlation with request fulfillment rate. For instance, the request fulfillment rate of responders tends to go up until about 5 pictures where the request fulfillment rate levels off.
  • the number of videos of a responder may be correlated with the request fulfillment rate of the responder depending on the category of service provided. Whether a responder has passed a background check may impact request fulfillment rate depending on the service category. For example, responders that have passed a background check may have a larger request fulfillment rate in service categories that concern children (e.g., babysitting, tutoring, music lessons, etc.). Responders that have evidence of being licensed may have a higher request fulfillment rate than other responders in certain categories (e.g., wellness, personal, pets).
  • the response time of a responder is correlated with the request fulfillment rate. For instance, how quickly the responder responds to messages or questions from a requester impacts the request fulfillment rate. That is, responders that respond more quickly have a higher request fulfillment rate than other responders.
  • the response time may be weighed more heavily in recent time windows and/or only viewed in a certain time window. For instance, the average response time in the past year (or other predefined time period) may be used.
  • the previous request fulfillment rate is generally correlated with the current request fulfillment rate. That is, the request fulfillment rate of responders for a service category generally tends to stay roughly linear. The number of previous times a responder has been selected to fulfill a request over a given time period (e.g., over the last year) may be used.
  • request fulfillment rate for a responder generally goes down as distance increases. This value may be dependent on whether the requester travels to the responder for the requested service, whether the responder travels to the requester for the requested service, or whether the requested service is done remotely. In cases where the requester travels to the responder for the requested service, the request fulfillment rate may generally go down as distance increases. In cases where the responder travels to the requester for the requested service, the request fulfillment rate may generally go down as distance increases, but generally not as much as if the requester travelled to the responder. In cases where the requested service may be done remotely, the distance between the requested location and the responder may not impact the request fulfillment rate.
  • Non-responder-specific features such as the historical request fulfillment rate in the category (across all responders) is generally the same as the expected request fulfillment rate in the category.
  • Information from the perspective response may also impact the request fulfillment rate. For instance, a responder that is offering a price for the service that is much higher or much lower than other responders in the same category may negatively impact the request fulfillment rate.
  • the selection limiter 954 determines a capacity of the responder to fulfill the request.
  • the total capacity may be provided by the responder and monitored by the matching module 950 .
  • the responder may specify how many requests they can fulfill over a period of time (e.g., per day, per week, per month, etc.) and the server may track how many requests the responder has fulfilled and/or agreed to fulfill over that period of time.
  • the responders are charged when an automatic response is placed on their behalf.
  • the responders are charged when a requester makes a contact (e.g., sends a message, places a phone call through the platform, etc.) in response to an automatic response being placed on their behalf.
  • the responder may specify a response budget that indicates how many responses can be generated on their behalf.
  • the response budget may be an overall budget or may be a recurring budget over a period of time (e.g., a response budget per day, per week, per month, etc.).
  • the number of responses generated on behalf of a responder over a given time period may be for more requests than that responder has current capacity to fulfill, if it is determined that the responder on average does not typically get selected for every response that is generated.
  • the server tracks the response budget and determines whether the responder has capacity to perform the job. Flow moves from operation 1030 to operation 1035 .
  • the selection limiter 954 selects a second group of responders based at least in part on the computed value and the capacity of the responders. For instance, the selection limiter 954 may rank the responders that have capacity to fulfil the request by the likelihood of the requester selecting the responder for fulfilling the request, and select the second group of responders according to that ranking. As another example, the selection limiter 954 may distribute the responses across multiple requests and/or expected requests. For instance, the selection limiter 954 may select the members of the second group of responders to maximize the chances to fill all requester requests (existing and expected) over a given period of time (e.g., daily, weekly, monthly).
  • a given period of time e.g., daily, weekly, monthly.
  • a market has two tutoring responders that can each fulfill one request for tutoring per week where the first responder can tutor math only and the second responder can tutor math and chemistry. If the math tutoring request is fulfilled by the second responder during the week, then there is no one in the market that can fulfill the chemistry request during that week. On the other hand, if the math tutoring request is fulfilled by the first responder during the week, then a chemistry request may be fulfilled by the second responder.
  • the selection limiter 954 may select the members of the second group of responders to maximize the relevance of the responders' responses to requesters over a longer period of time by forecasting future requester needs and using the forecast to maximize an overall aggregate measure of relevance across many requests (e.g., all requests in a market over a week).
  • FIG. 11 is flow diagram that illustrates exemplary operations for selecting a second group of responders according to an embodiment. For instance, the operations of FIG. 11 may be performed during the operation 1035 .
  • the selection limiter 954 computes the number of responses for the request. The number of responses for the request may be determined as a function of the number of responders that are eligible and have capacity for the requested service, the aggregate of the number of fulfillments over responses for the requested category (that is, the average of how many responses turn into fulfillments for the requested category), and the expected number of future requests for the requested category.
  • computing the number of responses for the request includes performing operation 1115 - 1130 .
  • the operations 1115 - 1125 are performed for each responder that matched the first level of matching.
  • the selection limiter 954 determines the average number of requests the responder receives or has been determined to match (e.g., after the second level of matching) in the requested category over a predetermined time period (e.g., per day, per week, per month, etc.).
  • the selection limiter 954 determines, based at least on the capacity of the responder, how many responses can be sent on behalf of the responder.
  • the number of responses sent on behalf of the responder over a given time period may be higher than the capacity of the responder over that time period.
  • the selection limiter 954 may determine the average rate at which the responder gets selected to fulfill a request over the number of responses sent over the predetermined time period.
  • the maximum number of responses may be set as the capacity of the responder divided by the average request fulfillment rate of the responder. For instance, if the capacity of the responder for a week is 5 fulfillments and the average request fulfillment rate of the responder is 0.5, the maximum number of responses that can be sent on behalf of the responder may be 10.
  • the selection limiter 954 determines the maximum rate of sending a response over the predetermined time period, with a ceiling of 1.
  • the maximum rate of sending a response may be calculated as the maximum number of responses over the average number of requests the responder receives over the predetermined time period. For instance, if the responder receives 15 requests on average over the predetermined time period and the maximum number of responses over that time period is calculated to be 10, the maximum rate of sending a response over the time period may be 10/15.
  • the selection limiter 954 determines the sum of each maximum rate of sending a response for each responder as found in operation 1125 .
  • the computed number of responses for the request is based on the sum of each maximum rate. For instance, the computed number of responses may be the sum of the maximum rates rounded down to the nearest integer.
  • the number of responses may be set as 3.
  • the sum of each maximum rate of sending a response would be equal to the number of responders that matched the first level of matching.
  • the selection limiter 954 may limit the number of responses to a predefined number (e.g., up to five responses), and/or reserve a number of responses for those responders that have recently registered with the system (e.g., within a predefined period of time such as 30 days) and/or have recently begun offering service for the requested category in the requested location (e.g., within the predefined period of time).
  • a predefined number e.g., up to five responses
  • reserve a number of responses for those responders that have recently registered with the system e.g., within a predefined period of time such as 30 days
  • have recently begun offering service for the requested category in the requested location e.g., within the predefined period of time.
  • the selection limiter 954 selects the responder(s) to fill the number of responses.
  • the selection of the responders may be based on a ranking of the responders and may be randomized. For instance, the ranking of each responder may be the same as described in operation 1025 , and may be weighed based on the maximum rate of sending a response over the predetermined time period found in operation 1125 (e.g., the computed value that quantifies a likelihood of the requesting requester hiring that responder multiplied by the maximum rate of sending a response over the predetermined time period).
  • the resulting values for the responders may be ranked and the responses may be generated for the highest-ranking responders.
  • a weighted random sampling may also be applied to produce randomness, such as according to the A-ES algorithm of Efraimidis and Spirakis.
  • the response module 965 automatically generates a response for each of the selected second group of responders.
  • the responses are generated from the response configuration information received from the respective responders.
  • the generated responses are sent to the requester.
  • the generated responses are provided to the responders for review. For instance, a message may be transmitted to the responder (e.g., email, text message, phone call, message within a native application) that indicates that there is a response pending their review.
  • the responder may then adjust the generated response, cancel the response, or approve the response.
  • the generated responses are automatically sent to the requester on behalf of thee responders without the responders reviewing or otherwise approving the generated responses.
  • FIG. 12 illustrates a block diagram for an exemplary data processing system 1200 that may be used in some embodiments.
  • Data processing system 1200 includes one or more processors 1205 and connected system components (e.g., multiple connected chips).
  • the data processing system 1200 is a system on a chip or Field-Programmable gate array.
  • One or more such data processing systems 1200 may be utilized to implement the embodiments as illustrated in FIGS. 1-12 .
  • the data processing system 1200 is an electronic device which stores and transmits (internally and/or with other electronic devices over a network) code (which is composed of software instructions and which is sometimes referred to as computer program code or a computer program) and/or data using machine-readable media (also called computer-readable media), such as machine-readable storage media 1210 (e.g., magnetic disks, optical disks, read only memory (ROM), flash memory devices, phase change memory) and machine-readable transmission media (also called a carrier) (e.g., electrical, optical, radio, acoustical or other form of propagated signals—such as carrier waves, infrared signals), which is coupled to the processor(s) 1205 .
  • machine-readable storage media 1210 e.g., magnetic disks, optical disks, read only memory (ROM), flash memory devices, phase change memory
  • machine-readable transmission media also called a carrier
  • carrier e.g., electrical, optical, radio, acoustical or other form of propagated signals—such as carrier waves
  • the depicted machine-readable storage media 1210 may store program code 1230 that, when executed by the processor(s) 1205 , causes the data processing system 1200 to enable matching a request from a first user to a set of one or more different users as described herein.
  • the program code 1230 may include code for the matching module 150 , notification module 162 , response module 165 , matching module 950 , and/or response module 965 , which when executed by the processor(s) 1205 , causes the data processing system 1200 to perform the operations of the server 125 and/or server 925 described with reference to FIGS. 1-11 .
  • the data processing system 1200 may also include a display controller and display device 1220 to provide a visual user interface, e.g., GUI elements or windows.
  • the visual user interface may be used to enable a requester to submit a request, a responder to review and/or respond to a request, or other task as described herein.
  • the data processing system 1200 also includes one or more input or output (“I/O”) devices and interfaces 1225 , which are provided to allow a user to provide input to, receive output from, and otherwise transfer data to and from the system.
  • I/O input or output
  • I/O devices 1225 may include a mouse, keypad, keyboard, a touch panel or a multi-touch input panel, camera, frame grabber, optical scanner, an audio input/output subsystem (which may include a microphone and/or a speaker for, for example, playing back music or other audio, receiving voice instructions to be executed by the processor(s) 1205 , playing audio notifications, etc.), other known I/O devices or a combination of such I/O devices.
  • the I/O devices and interfaces 1225 may also include a connector for a dock or a connector for a USB interface, FireWire, Thunderbolt, Ethernet, etc., to connect the system 1200 with another device, external component, or a network.
  • Exemplary I/O devices and interfaces 1225 also include wireless transceivers, such as an IEEE 802.11 transceiver, an infrared transceiver, a Bluetooth transceiver, a wireless cellular telephony transceiver (e.g., 2G, 3G, 4G), or another wireless protocol to connect the data processing system 1200 with another device, external component, or a network and receive stored instructions, data, tokens, etc. It will be appreciated that one or more buses may be used to interconnect the various components shown in FIG. 12 .
  • wireless transceivers such as an IEEE 802.11 transceiver, an infrared transceiver, a Bluetooth transceiver, a wireless cellular telephony transceiver (e.g., 2G, 3G, 4G), or another wireless protocol to connect the data processing system 1200 with another device, external component, or a network and receive stored instructions, data, tokens, etc.
  • wireless transceivers such as an IEEE 802.11 transcei
  • the techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., a requester device, a responder device, and a server).
  • electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using computer-readable media, such as non-transitory computer-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory computer-readable communication media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals).
  • non-transitory computer-readable storage media e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory
  • transitory computer-readable communication media e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals,
  • such electronic devices typically include a set of one or more processors coupled to one or more other components, such as one or more storage devices (non-transitory machine-readable storage media), user input/output devices (e.g., a keyboard, a touchscreen, and/or a display), and network connections.
  • the coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers).
  • bus controllers also termed as bus controllers
  • the storage device of a given electronic device typically stores code and/or data for execution on the set of one or more processors of that electronic device.
  • one or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware, and/or hardware.

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

A server receives a request for a service from a first user that defines a location for the service and a category of the service. A first stage of matching is performed that includes determining second users that match the location and category. A second stage of matching is performed that includes performing for each second user: computing a first value that quantifies an attractiveness of the request to that second user, computing a second value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and computing a third value based at least in part on the computed first and second values. A request for the service is transmitted to at least some of the second users whose computed third value exceeds a first threshold value.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application claims the benefit of U.S. Provisional Application No. 62/527,874, filed Jun. 30, 2017, which is hereby incorporated by reference.
  • TECHNICAL FIELD
  • Embodiments of the invention relate to the field of data processing; and more specifically, to matching a request from a user to a set of one or more different users for responding to the request.
  • BACKGROUND
  • Responses are commonly generated for responding to requests in data processing. Some responses are fully automatic and apply to all requests. For example, in the context of web servers, a request for a web page is typically responded with a response that contains the requested web page (if such a web page exists). This response is typically not customized to the individual requester.
  • Other types of responses are manually generated by the responder. For example, websites exist that allow potential service buyers to submit a request for a service that includes certain details of the request such as a category and a location, and the online marketplace may transmit the request to one or more service professionals that match the requested category and location, and the service professional may compose and generate a response. These responses are largely manual and can be time intensive.
  • Websites exist that allow potential service buyers to search for a service professional and/or to be matched with a service professional. By way of example, the potential service buyer may post a request for a service that includes certain details of the request such as a category and a location, and the online marketplace may transmit the request to all of the service professionals that match the requested category and location. However, transmitting the request to all of the service professionals (or many service professionals) does not scale with many requests and many service professionals using the online marketplace. For instance, a particular service professional may become inundated with requests, and/or many service professionals may respond to the potential buyer. Instead of transmitting the request to all of the service professionals that match the requested category and location, a simple limiting system may be used such that if the service professional did not use marketplace over a certain period of time, they would not be sent requests or would be sent a limited number of requests. However, this type of simple limiting system may have unintended consequences. For instance, if a service professional went on vacation, they may come back and find that the marketplace was not sending them requests. Also, in sending limited requests, service professionals may not be receiving the requests that they were interested in, which may cause them to stop using the online marketplace.
  • SUMMARY
  • In an embodiment, a server receives a request for a service from a first user that defines a location for the service and a category of the service. A first stage of matching is performed that includes determining a first plurality of second users that match the location and category. A second stage of matching is performed includes performing the following for each of the first plurality of second users that match the location and category: computing a first value that quantifies an attractiveness of the request to that second user, computing a second value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and computing a third value based at least in part on the computed first value and the computed second value that quantifies a score for choosing that second user for responding to the request. A request for the service is transmitted to at least some of a second plurality of second users of the first plurality of second users whose computed third value exceeds a first threshold value, wherein the second plurality of second users is less than the first plurality of second users.
  • In an embodiment, a server automatically generates a response to a request received from a first user. The server receives response configuration information from each of a first plurality of second users, wherein the received response configuration information includes for each of the first plurality of second users, information indicating a type of request in which that second user is willing to fulfill, and information indicating a number of requests that second user can fulfill in a given period of time. The server receives the request from the first user, wherein the request includes a location where the request is to be fulfilled and a request type. The server performs a first stage of matching that includes determining a first plurality of second users that match the location and the request type. The server then performs a second stage of matching that includes, for each of the first plurality of second users that match the location and category, performing the following: computing a value that quantifies a likelihood of the first user selecting that second user to fulfill the request, determining a capacity of the second user to fulfill the request based at least in part on the number of requests that the second user can fulfill in the given period of time. The server selects a second plurality of second users based at least in part on the computed value and the determined capacity of each of the first plurality of second users, wherein the second plurality of second users is less than the first plurality of second users. The server automatically generates a response to the request for each of the selected second plurality of second users. The server transmits each generated response to the first user.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:
  • FIG. 1 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment;
  • FIG. 2 is a block diagram that illustrates an embodiment of the selection limiter of FIG. 1 using a machine-learning model according to an embodiment;
  • FIG. 3 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment;
  • FIG. 4 is a flow diagram that illustrates exemplary operations for computing the third value of FIG. 3 according to an embodiment;
  • FIG. 5 is a flow diagram that illustrates exemplary operations for selecting the second group of responders of FIG. 3 according to an embodiment;
  • FIG. 6 is a flow diagram that illustrates exemplary operations for increasing the number of matching responders according to an embodiment;
  • FIG. 7 is a flow diagram that illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment;
  • FIG. 8 is a flow diagram that illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment;
  • FIG. 9 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request, according to an embodiment;
  • FIG. 10 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment;
  • FIG. 11 is flow diagram that illustrates exemplary operations for selecting a second group of responders according to an embodiment; and
  • FIG. 12 is a block diagram illustrating an exemplary data processing system that may be used in some embodiments.
  • DETAILED DESCRIPTION
  • References in the specification to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether explicitly described.
  • In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. “Coupled” is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, co-operate or interact with each other. “Connected” is used to indicate the establishment of communication between two or more elements that are coupled with each other.
  • In an embodiment, a method and apparatus for an improved system for matching a request from a user (sometimes referred herein as a “requester”) to a set of one or more different users (sometimes referred herein as “responders”) for responding to the request is described. In a specific example, the request is for a service and data from the request is used to match the request to identified responders that may be suitable for fulfilling the service request. The data in the request includes data that is structured, and may be received by the system through input of a form submitted by the requester. In an embodiment, multiple levels of matching are performed where a first level of matching retrieves a set of candidate responders and a second level of matching is performed on the set of candidate responders to select the matching responders. The first level of matching may be performed based on a set of course features based on the first set of data (e.g., based on data directly included in the first set of data and/or derived from the first set of data), and the candidate responders are those that match these features. The second level of matching may include computing a score for each candidate responder based on a scoring function and feature data. Based on the computed score, the matching responders(s) are determined.
  • In a specific example where the request is a service request, detailed information about the requested service is received by the system, such as through submission of a request form. Such a request form may be customized according to the category of service requested. The submission of the request form provides a relatively large set of structured data that is used when matching with responders. In such an example, the first level of matching may be performed based on a set of course features including one or more of category, location, and progress points. The request provides the category and location.
  • In an embodiment, the request is sent to the matching responders and/or a notification is sent to the matching responders alerting those responders that a request is available for response. The matching responders may then respond to the request. In another embodiment, a response to the request is automatically generated on behalf of the matching responders.
  • The one or more responders that are selected for the ability to send a response to a requester are typically selected from many more responders. In an embodiment, the selected responder(s) are selected based on multiple levels of matching where the first level of matching may be performed based on a set of course features including one or more of category, location, and progress points, and the responder(s) that match these features are referred to as candidate responders. A second level of matching may include computing a score for each candidate responder based on a scoring function and feature data, to determine which responder(s) to select. The selection may be based on machine learning models with heuristics. For instance, in an embodiment where the request is a service request, the decision of selecting which responder(s) are sent the request may be based on one or more of the following: a determined interest level of the responder in the request; a relevance of the responder to the requester; relatively short term supply and demand in the marketplace for the requested service; and relatively long term supply and demand in the marketplace for the requested service.
  • FIG. 1 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request, according to an embodiment. The system 100 illustrated in FIG. 1 includes a requester device 105 that is operated by a requester, responder devices 115A-N that is each operated by a different responder of the responders 11A-N, and a server 125. The requester device 105 and the responder devices 115A-Z each are types of computing devices that interact with the server 125 and may be a desktop, laptop, smartphone, tablet, wearable device, etc., that executes a client network application. The client network application may be a web browser (e.g., a desktop browser, a mobile optimized browser), a native application, or other application that can access network resources such as web pages, images, videos, or other computer files. The requester device 105 and the responder devices 115A-Z interact with the server 125 over a network, such as the Internet.
  • The server 125 is a computing device that provides functionality for the improved system for matching requests with responders. In the embodiment illustrated in FIG. 1, the server 125 includes the request processing module 120, the notification module 162, the response module 165, and the data store 160.
  • The data store 160 stores data related to the responders and the requesters. Although illustrated in FIG. 1 as part of the server 125, the data store 160 may be in a separate computing device than the server 125 and queried by the server 125. The data store 160 is used by the server 125 (e.g., the request processing module 120, the notification module 162, and/or the response module 165) when matching a request with one or more responders that may respond to the request. For each responder, the data store 160 may store responder profile information of the responder (typically provided by the responder), and statistical information of the responder (typically derived or calculated by the server 125). The responder profile information may include, for each responder, one or more of the following: the responder's name, the category (or categories) offered by that responder, the location where the service is offered, whether the responder travels to provide the service, contact information of the responder (e.g., email address, phone number, street address) pictures of the responder and/or service, videos of the responder and/or service, service description, whether the responder has passed a background check, and whether the responder has shown proof of being licensed, etc. The statistical information of the responder may include one or more of the following: the number of times the responder has been selected to fulfill the request, the number of responses sent by, or on behalf, of that responder, the number of requests sent to that responder, the request fulfillment rate of the responder (the number of times the responder has been selected to full requests over the number of responses), the number of requests fulfilled by the responder in all categories, the rate at which the responder responds to a request or message from a requester, review(s) of the responder (typically provided by past requesters), and a rating of the responder based on the review(s). For each requester, the data store 160 may store profile information of the requester (typically provided by the requester) and/or statistical information of the requester (typically derived or calculated by the server 125). The requester profile information may include, for each requester, one or more of the following: the name of the requester, the location of the requester, and contact information of the requester (e.g., email address, phone number, street address). The statistical information of each requester may include one or more of the following: request fulfillment rate of the requester in the requested category (hires over requests), request fulfillment rate of the requester in all categories (hires over requests), and the rate at which the requester responds to a responder, review(s) of the requester (typically provided by past responders).
  • The request processing module 120 is configured to receive and process requests from requesters. Each request defines the parameters of what is being requested. In a specific embodiment where the request is a request for service, the request defines the type of service requested, the location where the service is desired, a category of the desired service, and one or more request preferences.
  • The request processing module 120 may select the responder(s) that are eligible for responding to the request. In an embodiment, the request processing module 120 selects, from multiple responders, a set of one or more responders for responding to the request as a result of a matching process performed by the matching module 150.
  • The matching module 150 receives a request 130 from a requester at operation 1, and matches the request with a set of one or more responders at operation 2. In the embodiment shown in FIG. 1, the matching module 150 includes the candidate selector 152 and the selection limiter 154. The candidate selector 152 performs a first level of matching based on a set of one or more course features including one or more of requested category, requested location, and progress points, to find the responder(s) that match these features. It should be understood that there may be many responders that match based on the first level of matching.
  • After the first level of matching is performed, the selection limiter 154 of the matching module 150 performs a second level of matching to refine which of the responder(s) that matched the first level of matching will be selected. The selection limiter 154 may perform the second level of matching based on one or more of the following: a determined interest level of the responder in the request; a relevance of the responder to the requester; relatively short term supply and demand in the marketplace for the requested job; and relatively long term supply and demand in the marketplace.
  • The selection limiter 154 may use a machine learning model with heuristics to perform the second level of matching, such as a logistic regression model. FIG. 2 is a block diagram that illustrates an embodiment of the selection limiter 154 using a machine-learning model, according to an embodiment. The model training module 220 takes as input a set of signal data stored in the signal data store 215 and outputs a model (a scoring function) that is used by the scorer 230. The signal data 215 is created from the requests and/or other interactions with the system such as historical information from the responders. The signal data 215 may be a subset of the data store 160 and/or may be derived from data of the data store 160. The signals used by the model training module 220 depends on the model that is being trained. Example signals for different models are described later herein. The scorer 230 calculates a score based on the feature data 225. The feature data 225 is a subset of the data store 160 and may include features derived from the request and/or historical behavior of the responders, and depends on the type of model being used.
  • The responder(s) that remain after the second level matching are added to a response submission list and the notification module 162 transmits a message to respond 170 to the request 130 to each of these responder(s), at operation 3. The message to respond 170 to the request 130 may include the information of the request 130. The message to respond 170 may be a notification alerting the responder that the request 130 is available on the system for the responder to respond. The selection limiter 154 may include responder(s) that match the first level of matching and have recently registered for the system (e.g., within a predefined period of time such as 30 days) and/or have recently begun offering service for the requested category in the requested location (e.g., within the predefined period of time) in the response submission list regardless of the second level of matching. In the example shown in FIG. 1, the responders 180 that operate the responder devices 115A-L have been determined to match the request. More details regarding the second level of matching will be described in greater detail later herein. In the example shown in FIG. 1, the notification module 162 transmits a message to respond 170 to the request 130 to each of the responder devices 115A-L. The message to respond 170 may include the request 130 or a notification that the request 130 may be viewed. The message to respond 170 may be sent through an email, text message, and/or a notification for a native application installed on the responder devices 115A-L. The message to respond may also be capable of being displayed to the responder upon logging into the service (e.g., in a dashboard for the responder).
  • If any of the matching responders 180 decides to respond to the message (and thus to the request 130 such as providing a response), the responder uses the response module 165 to generate a response 172, at operation 4. The response provides information that allows the requester to determine whether to proceed with selecting that responder to fulfill the request. For instance, the response may include information including one or more of the following: the name of the responder, contact information of the responder (e.g., phone number, email address, social network username, etc.), a description of the qualifications of the responder, information about the price the responder estimates the requested service will cost, and other information that the responder wants to provide. At operation 5, the response 174 (which may correspond with the response 172) is transmitted from the server 125 to the requester device 105. The total number of unique responses sent to the requester device 105 is less than or equal to the number of messages to respond that are sent to the matching responders 180. Although not illustrated in FIG. 1, the requester device 105 may respond to the response in any number of ways, such as asking for more information, hiring a responder, etc.
  • FIG. 3 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment. The operations of FIG. 3 will be described with respect to the exemplary embodiment of FIG. 1. However, the operations of FIG. 3 can be performed by different embodiments than those discussed with FIG. 1, and the exemplary embodiment of FIG. 1 can perform different embodiments than those discussed with respect to FIG. 3.
  • At operation 310, the request processing module 120 of the server 125 receives a request 130 from a first user. The request may be a request for service and define parameters for the requested service. For instance, the request may specify a specify a location where the service is desired and a category of the desired service. Typically, the location indicates where the requester is located and/or how far the requester is willing to travel for the requested service. The location may be entered as a city, a street within a city, a zip code, etc. The category of service indicates the type of service that is desired. There may be many different categories that can be selected and/or input by the requester. As an example, French Lessons may be a category. As another example, Interior Design may be a category. The request may also include information about the requested service, dependent upon the category, that may be used by the system to match the requester with the responders. This information is sometimes referred herein as request preferences. For instance, if the category is Interior Design, the request may specify what room(s) (e.g., kitchen, living room, bedroom, dining room, commercial or office space, etc.) are desired to be improved, which can be used to match to responders that specialize in those rooms (some designers may specialize in kitchen remodels, for example). As another example, if the category is French Lessons, the request may specify the age (or age range) of the person that wants to improve or learn French that can be used to match to responders (some providers offering French Lessons may not be adapted to teach young children, for example). Flow then moves to operation 315.
  • After receiving the request, the matching module 150 of the server 125 performs a first level of matching to select a first group of second users for potentially responding to the request. The second users may be referred herein as responders. In an embodiment where the request includes a requested location and indicates a request category, the first group of responders match at least the requested location and category. The first level of matching may also be based on information provided in the request about the requested service. Thus, at operation 315, the candidate selector 152 of the matching module 150 determines a first group of responders as candidates for responding to the request. In the case where the request is a request for service and the request includes a requested location and category, the candidate selector 152 determines the first group of responders to be those that match the requested location and category. The first group of responders are sometimes referred herein as candidate responders. The candidate selector 152 access information about the responders such as the location(s) that they offer service and the category(ies) of service that they offer, from the data store 160. The candidate selector 152 compares the requested location and category with the information from the data store 160 to select the candidate responders. In a specific example, the first level of matching includes determining the responders that have the same zip code as the requested location and/or within a predefined number of miles/kilometers from the requested location, and offer service in the same category as the request category. Depending on the location and/or category, there may be many candidate responders. Flow moves from operation 315 to operation 320.
  • After determining the candidate responders, the matching module 150 of the server 125 performs a second level of matching to refine which responders are selected. In an embodiment, the second level of matching is intended to determine which set of responders are best suited for fulfilling the request, and may take the following factors into consideration: the requester's requirements included in the request, the responder's express intent and derived interest in fulfilling the request, the qualification of the responder for fulfilling the request, whether the responder is a good fit for the request (e.g., for request for services involving personal preferences or style, such as interior design jobs), whether the request is a good fit for the responder and is likely to deliver value to the responder's business, and/or the overall long term supply and demand in the marketplace being balanced between requester needs and available responders. At operation 320, the selection limiter 154 of the matching module 150 performs operations 325-335 for each responder in the first group of responders (the candidate responders).
  • At operation 325, the selection limiter 154 computes a first value that quantifies an attractiveness of the request to that responder. The attractiveness of the request may be a prediction of whether the responder will respond to the request. The response may include providing more information to the requester that allows the requester to determine whether to select that responder to fulfill the request. The computation of the first value may be based on data representing the historical behavior of the candidate responders and using logistic regression. For instance, one of the ways to measure how likely a responder would be interested in the request is to determine whether, and what extent, the responder has previously engaged to similar requests. Determining a similar request may include matching the request by category (e.g., the same category), location (e.g., the same location and/or location within a predefined area), and request preferences (e.g., text description, requester features, question-answers, etc.). By way of example, the logistic regression model used by the selection limiter 154 may use one or more signals derived from data of the system that is stored in the data store 160. For instance, the data store 160 may store engagement data for each responder that maps category and location (e.g., category, zip code) to: the number of requests sent to that responder, the number of requests sent to that responder that were viewed, the number of responses sent by or on behalf of that responder, and/or the number of times in which the responder was selected to fulfill requests. The engagement data stored in the data store 160 for each responder may indicate one or more of the following: the number of viewed requests by the responder in the request category, the concentration of the number of viewed requests by the responder in the request category compared to the number of total number of viewed requests by the responder in all categories, the rate at which the responder views requests in the requested category (the number of viewed requests by the responder in the request category over the number of requests sent to the responder in the request category), the number of responses sent by or on behalf of the responder in the request category, the concentration of the number of responses sent by or on behalf of the responder in the request category compared to the total number of responses sent by or on behalf of the responder in all categories, the rate at which responses are sent by or on behalf of the responder in the request category compared to the number of requests sent to the responder in the request category, the number of times the responder was selected to fulfill the request in the request category, the concentration of the number of times the responder was selected to fulfill the request in the request category compared to the number of overall times the responder was selected to fulfill requests in all categories, and the rate at which the responder was selected to fulfill the request in the request category over requests matched to the responder (the number of times the responder was selected to fulfill the request in the request category over the number of times the responder was sent a request for the requested category.
  • The data store 160 may also store physical distance features including the distance between the requested location (e.g., zip code) and all locations where the service has been responded to before and may also be weighted by the responses concentration in the requested location. Another physical distance feature is the centroid distance, which is calculated as the distance between the request location and the centroid of locations where the category of service has been responded to previously. In a specific example, equation 1 may be used to determine a weighted distance between the requested location and all location where the service has been responded to previously:
  • zip code D ( request zip code , zip code ) * Quotes in the zip code Total Quotes equation ( 1 )
  • The engagement data may be weighted based on time. For instance, a response from a year ago may not have the same value of a response a week ago. In an embodiment, the engagement data is weighted more heavily in recent time windows than engagement data occurring in later time windows. The time windows may be based on days (e.g., one day), weeks (e.g., one week), and/or months (e.g., one month). In another embodiment, a decayed value is used to weigh the engagement data based on time. For instance, the decayed value may be defined as a class of an initial value N, timestamp t0, and half-life L. N is exponentially decayed. After L, the value of N becomes N/2. The value of N at any future time t can then be calculated as N*2−(t−t0)/L). Multiple decayed values may be added if they have the same half-life value (e.g., (N1, t1), (N2, t2)). The new timestamp is t=max(t1, t2) and the new value (assuming that t1>=t2) is N2*2−(t−t0)/L)+N1. In a specific example, the half-life value L is set as two weeks, and as a result a response will be counted as 0.5 after 2 weeks, 0.25 after 4 weeks, etc. The half-life value may be set differently for different purposes.
  • Flow moves from operation 325 to 330, where the selection limiter 154 computes a second value that quantifies a likelihood of the requester selecting that responder to fulfill the request. The computation of the second value may be based on the estimated quality of the responders to the requester and may use a logistic regression model. By way of example, the logistic regression model may use one or more signals derived from data of the system including reviews of the responders, non-review related profile features, response time of the responders, previous request fulfillment rate of the responders, distance between the requested location and the responder, and/or non-responder-specific features.
  • Through an empirical data analysis, the number of reviews of a responder is correlated with the request fulfillment rate of the responder. Similarly, the rating of the reviews is also correlated with the request fulfillment rate of the responder. To say it another way, responders that have a relatively large number of reviews and are rated relatively high tend to be selected to fulfill requests at a higher rate than responders with a relatively low number of reviews and/or low rating. Moreover, the number of and rating of verified reviews (those that have been verified as coming from a requester that selected the responder to fulfill the request) may correlate with the request fulfillment rate of the responder.
  • Non-review related profile features of the responder may be correlated with the request fulfillment rate of the responder, such as the existence of a profile picture, the number of profile pictures, the number of videos, profile completion status, the number of times the responder has been selected to fulfill a request, the length of the service description, whether the responder has passed a background check, and/or whether the responder shows proof of being licensed. For instance, responders with profile picture(s) may have a larger request fulfillment rate than those responders that do not have profile picture(s). Also, the number of pictures can have a correlation with request fulfillment rate. For instance, the request fulfillment rate of responders tends to go up until about 5 pictures where the request fulfillment rate levels off. The number of videos of a responder may be correlated with the request fulfillment rate of the responder depending on the category of service provided. Whether a responder has passed a background check may impact request fulfillment rate depending on the service category. For example, responders that have passed a background check may have a larger request fulfillment rate in service categories that concern children (e.g., babysitting, tutoring, music lessons, etc.). Responders that have evidence of being licensed may have a higher request fulfillment rate than other responders in certain categories (e.g., wellness, personal, pets).
  • The response time of a responder is correlated with the request fulfillment rate. For instance, how quickly the responder responds to an invitation to response (and thus respond more quickly to a request), and/or how quickly a responder responds to messages or questions from a requester impacts the request fulfillment rate. That is, responders that respond more quickly have a higher request fulfillment rate than other responders. The response time may be weighed more heavily in recent time windows and/or only viewed in a certain time window. For instance, the average response time in the past year (or other predefined time period) may be used.
  • The previous request fulfillment rate is generally correlated with the current request fulfillment rate. That is, the request fulfillment rate of responders for a request category generally tends to stay roughly linear. The number of previous times a responder has been selected to fulfill a request over a given time period (e.g., over the last year) may be used.
  • The distance between the requested location and the responder may impact request fulfillment rate. For instance, request fulfillment rate for a responder generally goes down as distance increases. This value may be dependent on whether the requester travels to the responder for the requested service, whether the responder travels to the requester for the requested service, or whether the requested service is done remotely. In cases where the requester travels to the responder for the requested service, the request fulfillment rate may generally go down as distance increases. In cases where the responder travels to the requester for the requested service, the request fulfillment rate may generally go down as distance increases, but generally not as much as if the requester travelled to the responder. In cases where the requested service may be done remotely, the distance between the requested location and the responder may not impact the request fulfillment rate.
  • Non-responder-specific features such as the historical request fulfillment rate in the category (across all responders) is generally the same as the expected request fulfillment rate in the category.
  • Flow moves from operation 330 to 335, where the selection limiter 154 computes a third value based at least in part on the computed first value and the computed second value that quantifies a score for choosing that responder for responding to the request. FIG. 4 is a flow diagram that illustrates exemplary operations for computing the third value according to an embodiment. At operation 410, the selection limiter 154 computes a probability of the responder being selected to fulfill the request as a weighted combination of the first computed value and the second computed value (e.g., probability of being selected to fulfill the request =w1*first computed value+w2*second computed value). The weights w1 and w2 may be determined through training of a machine learning model against historical data on fulfillments.
  • Next, at operation 415, the selection limiter 154 computes a minimum notify probability based on a heuristic value of a ratio of the ideal requests over the estimated requests in the market. In a specific implementation, the minimum notify probability is computed as the ideal requests per week divided by the estimated requests in the market per week.
  • Next, at operation 420, the selection limiter 154 computes a notify probability as the maximum value of the computed probability of the responder being selected to fulfill the request (as found in operation 410) and the minimum notify probability (as found in operation 415). In a specific implementation, the computed notify probability will be a number in the range between 0 and 1.
  • Next, at operation 425, a random number is selected between 0 and 1. Then, flow moves to operation 430 where the selection limiter 154 determines whether the random number (as found in operation 425) is less than the computed notify probability (as found in operation 420). If the random number is smaller than the notify probability, then flow moves to operation 435 where that responder is selected for responding to the request. If the random number is larger than the notify probability, then flow moves to operation 440 where that responder is not selected for responding to the request.
  • Referring to FIG. 3, flow moves from operation 335 to operation 340, where the selection limiter 154 selects a second group of responders based at least in part on the computed third values. In an embodiment, the second group of responders are those that have the highest computed third values until a threshold number of responders are selected. In an embodiment, the selected second group of responders is adjusted for market supply and demand For instance, in markets where there are few responders that are selected to respond to the request, the number of selected responders is increased, and in markets where there are many responders that are eligible for selection, the number of selected responders is decreased. FIG. 5 is a flow diagram that illustrates exemplary operations for selecting the second group of responders according to an embodiment. At operation 510, the selection limiter 154 selects a set of candidate responders from the first group of responders based on the computed value. By way of example, the selected set of candidate responders are those that are selected through the operations described with respect to FIG. 4. In another example, the selected set of candidate responders are those whose computed third value is above a predefined threshold. Next, at operation 515, the selection limiter 154 determine whether the number of the set of candidates selected is less than a selection threshold. The value of the selection threshold is based on heuristic analysis and may depend on the service category.
  • If the number of the set of candidates selected is less than the selection threshold, then flow moves to operation 520 where the number of candidate responders is increased until the selection threshold is reached. In an embodiment, these additional candidate responders that are selected are based on the computed first values until the selection threshold is reached (those responders that were not initially selected that have a higher computed first value than other responders that were not initially selected). In another embodiment, these additional candidate responders that are selected are based on the computed third values until the selection threshold is reached (those responders that were not initially selected that have a higher computed third value than other responders that were not initially selected). Flow moves from operation 520 to operation 535 where the second group of responders is set as the candidate responders.
  • If the number of the set of candidates selected is not less than a selection threshold, then flow moves to operation 525 where the selection limiter 154 determines whether the number of the set of candidates selected is greater than a selection threshold. In an embodiment, the value of the selection threshold used in operation 515 is less than the value of the selection threshold used in operation 525. In another embodiment, the value of the selection threshold used in operation 515 is the same as the value of the selection threshold used in operation 525. If the number of the set of candidates selected is greater than the selection threshold, then flow moves from operation 525 to operation 530 where the number of candidate responders is decreased until the threshold is reached. In an embodiment, the responders that are de-selected is based on the computed first values until the selection threshold is reached. For example, those candidate responders that have the lowest computed first value as compared to other candidate responders are de-selected until the selection threshold is reached. In another embodiment, the responders that are de-selected is based on the computed third values until the selection threshold is reached. For example, those candidate responders that have the lowest computed third value as compared to other candidate responders are de-selected until the selection threshold is reached. Flow moves from operation 530 to operation 535. Referring to operation 525, if the number of the set of candidates selected is not greater than the selection threshold, then flow moves to operation 535.
  • As previously described, at operation 535 the second group of responders is set as the candidate responders. However, prior to this operation, the operations of FIG. 6 may be performed in an embodiment. FIG. 6 is a flow diagram that illustrates exemplary operations for increasing the number of matching responders according to an embodiment. The operations of FIG. 6 may be performed, for example, if the number of matched responders is below a threshold. This may occur, for example, if the requested category is not serviced by many responders. This may also occur if it is determined that there are not many responders that are likely to respond to the request.
  • At operation 610, the selection limiter 154 computes, from the second group of responders, the total number of responders that are likely to respond to the request. By way of a specific example, the selection limiter 154 computes the total number of expected responses for the request based on each responders likelihood to submit a response for the current request. For instance, based on the computed first value described in operation 325, the selection limiter 154 determines whether it is likely that the responder will submit a response for the current request. In a specific example, if the computed first value is greater than 0.5, the selection limiter 154 determines that it is likely that the responder will submit a response for the current request. Next, at operation 615, the selection limiter 154 determines whether the total number is below a response threshold. In an embodiment, the response threshold is based on a bottom percentile (e.g., bottom 20th percentile) of requests by the ratio of responses over request. If the total number is below the response threshold, then flow moves to operation 620. If the total number is not below the response threshold, then flow moves to operation 630 where the operations of FIG. 6 end.
  • At operation 620, the selection limiter 154 determines a set of one or more related categories to the requested category. The selection limiter 154 may select the set of one or more related categories based on a memory-based collaborative filtering algorithm and optionally tuned with manual boosts. In an embodiment, the memory-based collaborative filtering algorithm uses historical data to determine the extent to which responders historically submit a response for a set of one or more other categories in addition to the requested category. If, based on the historical data, the number or rate of responders submitting a response for the requested category and another category exceeds a threshold, then that another category is a related category, according to an embodiment. If there are multiple related categories, the related categories that are selected may have the most overlap of requests to the requested category. For manual boosts, the memory-based collaborative filtering algorithm may be manually adjusted based on empirical data analysis of what categories should be related. For instance, if the algorithm suggests a “Handyman” category is related to a “Play Equipment Construction” category, it might be excluded or demoted since it may not be reasonably related. Next, at operation 625, the operations starting back at operation 315 are performed using the set of one or more related categories.
  • Using related categories to increase the number of responders that are likely to respond to the request is performed in one embodiment. In another embodiment, the system may decrease a cost to the responder for responding to the request to increase the number of responders that are likely to respond to the request. For instance, FIG. 7 illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment. The operations 610-615 of FIG. 7 are performed as previously described with respect to FIG. 6. However, if the total number of responders that are likely to respond to the request is below the response threshold, in the embodiment of FIG. 7, operation flows to operation 725 where the cost to the responders for responding to the request is decreased to increase the number of responders that are likely to respond to the request. The amount that the cost is adjusted may be determined through price sampling and potentially A/B testing, and may depend on the extent to which the total number is below the threshold. The amount that the cost is adjusted may be different for different service categories.
  • If the total number of responders that are likely to respond to the request is above the response threshold, which indicates a high supply, in the embodiment of FIG. 7, operation flows to operation 720 and the cost to the responders for responding to the request is increased. The amount that the cost is adjusted may be determined through pricing sampling and potentially A/B testing, and may depend on the extent to which the total number is above the threshold. The amount that the cost is adjusted may be different for different service categories.
  • In an embodiment, the system may influence the number of responders that are likely to respond to the request by discounting the cost for certain responders (e.g., those that have been inactive for a certain period of time). FIG. 8 is a flow diagram that illustrates exemplary operations for influencing the number of responders that are likely to respond to the request according to an embodiment. The operations 610-615 of FIG. 8 are performed as previously described with respect to FIG. 6, and the operation 720 of FIG. 8 is performed as previously described with respect to FIG. 7. However, if the total number of responders that are likely to respond to the request is below the response threshold, in the embodiment of FIG. 8, operation flows to operation 825 where the selection limiter 154 determines the activity status of each of the second group of responders. The activity status for a responder may include whether the responder is currently actively responding or using the system. Flow then moves to operation 830 where for each responder of the second group of responders that have been determined to not have been active for a predetermined amount of time, a cost to those responders for responding to the request is decreased to increase the number of responders that are likely to respond to the request. The amount that the cost is adjusted may be determined through price sampling and potentially A/B testing, and may depend on the extent to which the total number is below the threshold. The amount that the cost is adjusted may be different for different service categories. The reduced cost for a responder may exist until that responder reaches a condition where they become active again (e.g., sending N responses or getting hired M times).
  • In some embodiments, responders that have recently registered for the system (e.g., within a predefined period of time such as 30 days) and/or have recently begun offering service for the requested category in the requested location (e.g., within the predefined period of time) are added to the response submission list for the service regardless of their total response submission score.
  • Referring to FIG. 3, after selecting the second group of responders in operation 340, control moves to operation 345 where the request for service is communicated to each of the selected second group of responders. By way of example, the second group of responders are added to a response submission list and the notification module 162 transmits a message to each of the second group of responders that identifies the request. The message may include the information of the request and/or a notification that a request is available on the server for viewing. The message may be sent through an email, text message, and/or a notification for a native application installed on the responder devices. The message to respond may also be capable of being displayed to the responder upon logging into the service (e.g., in a dashboard for the responder). Any of the second group of responders may then respond to the request.
  • Automatic Responses
  • In an embodiment, instead of sending or communicating the request from a requester to a matching responder, a response is automatically generated by the system on behalf of the responder and sent to the requester. In this embodiment, the response is sometimes referred herein as an automatic response. In such an embodiment, the responder provides configuration information such as what requesters they are willing to respond to and the types of jobs that they are willing to accept. The responder may also provide information for automatic generation of the response including their name, type of service they provide, location, travel preferences, profile photo, service description, and other basic information. The responder may provide information about the price they will charge for the service. The responder may provide information regarding the number of requests they can fulfill in a given period of time.
  • The responder(s) that are selected for automatic generation of responses are selected from many more responders. In an embodiment, the selected responder(s) are selected based on multiple level matching where the first level of matching may be performed based on a set of course features including one or more of category, location, and progress points, and the responder(s) that match these features are referred to as candidate responders. A second level of matching may include computing a score for each candidate responder based on a scoring function and feature data, to determine which responder(s) to select. The selection may be based on machine learning models with heuristics. For instance, in an embodiment, the decision of selecting responder(s) may be based on one or more of the following: a relevance of the responder's response to the requester, maximizing fulfillment of requests, and maximizing an overall aggregate measure of relevance across a plurality of requests.
  • FIG. 9 is a block diagram that illustrates an exemplary architecture for an improved system for matching a request from a user to a set of one or more different users for responding to the request, according to an embodiment. The system 900 illustrated in FIG. 9 includes the requester device 105, the responder devices 115A-Z, and the server 925. The requester device 105 and the responder devices 115A-Z are similar to that described in FIG. 1. However, the responder devices 115A-Z are configured to provide response configuration information to the server 925, which the server 925 uses to automatically generate response(s) on behalf of the responders 112A-N. The server 925 is a computing device that provides functionality for the improved system for matching requester requests with responders. In the embodiment illustrated in FIG. 9, the server 925 includes the request processing module 920, the response configuration module 940, the response module 965, and the data store 960. The data store 960 stores data related to the responders and the requesters, and is used by the server 925 (e.g., the request processing module 920, the response configuration module 940, and/or the response module 965). The data store 960 may include the same data as the data store 160, in an embodiment. Although illustrated in FIG. 9 as part of the server 925, the data store 960 may be in a separate computing device than the server 925 and queried by the server 925.
  • The response configuration module 940 is adapted to be used by the responders for configuring automatic generation of a response to a request. The response configuration module 940 may provide an interface (e.g., available as a website or part of a native application) that allows responders to configure and manage (e.g., create, view, edit, delete, modify) rules for the automatic generation of responses to requests. The server 925 receives response configuration information 970 from each of the responders 112A-N, via the response configuration module 940. The response configuration information of a particular responder indicates the type of requesters they are willing to respond to, and/or the type of requests that they are willing to fulfill. The response configuration information from a responder may also include information for automatic generation of the response including their name, type of service they provide, location, travel preferences, profile photo, service description, scheduling information (availability), and other basic information. The response configuration information may include information about the price the responder will charge for the service. The response configuration information may include information regarding the number of requests the responder can fulfill in a given period of time. The response configuration information may be stored in the data store 960.
  • The request processing module 920 is configured to receive and process requests from requesters. Each request defines the parameters of what is being requested. In a specific embodiment where the request is a request for service, the request defines the type of service requested, the location where the service is desired, a category of the desired service, and one or more request preferences.
  • The request processing module 920 may select the responder(s) that are eligible for responding to the request. In an embodiment, the request processing module 920 selects, from multiple responders, a set of one or more responders for responding to the request as a result of a matching process performed by the matching module 950. In the example shown in FIG. 9, the responders 980 that operate the responder devices 115A-L have been determined to respond to the request. In the embodiment shown in FIG. 9, the matching module 950 includes the candidate selector 952 and the selection limiter 954. The candidate selector 952 performs a first level of matching based on a set of one or more course features including one or more of requested category, requested location, and progress points, to find the responder(s) that match these features. There may be many responders that match based on the first level of matching. In an embodiment, the first level of matching is similar or the same as the first level of matching as described with respect to the embodiment of FIGS. 1 and 3.
  • After the first level of matching is performed, the selection limiter 954 of the matching module 950 performs a second level of matching to refine which of the responder(s) that matched the first level of matching will be selected. The selection limiter 954 may perform the second level of matching based on one or more of the following: a relevance of the responder's response (if given) to the requester, maximizing fulfillment of requests, and maximizing an overall aggregate measure of relevance across a plurality of requests. Like the selection limiter 154, the selection limiter 954 may use a machine learning model with heuristics to perform the second level of matching, such as a logistic regression model. The second level of matching will be described in greater detail with respect to FIGS. 10-11.
  • The response module 965 is configured to automatically generate a response on behalf of a selected responder, based on the response configuration information received from the responders and the request. The response module 965 is also configured to communicate the generated response to the requesting device. Instead of sending the request from a requester to a matching responder, a response is automatically generated by the system on behalf of the responder and communicated to the requester. The responses 974 are communicated to the requester device 105.
  • FIG. 10 is a flow diagram that illustrates exemplary operations for matching a request from a user to a set of one or more different users for responding to the request according to an embodiment. The operations of FIG. 10 will be described with respect to the exemplary embodiment of FIG. 9. However, the operations of FIG. 10 can be performed by different embodiments than those discussed with FIG. 9, and the exemplary embodiment of FIG. 9 can perform different embodiments than those discussed with respect to FIG. 10.
  • At operation 1005, the response configuration module 940 receives and stores the configuration information 970 for configuring automatic response generation on behalf of a responder. The received configuration information 970 is used by the response configuration module 940 to configure rules for generating responses on behalf of the responder. For instance, in an embodiment where the response is generated in reply to a request for service, the configuration information 970 may specify one or more of: the type of requesters they are willing to respond to, and/or the type of requests that they are willing to fulfill. The response configuration information from a responder may also include information for automatic generation of the response including their name, type of service they provide, location, travel preferences, profile photo, service description, scheduling information (availability), and other basic information. The response configuration information may include information about the price the responder will charge for the service. The response configuration information may include information regarding the number of requests the responder can fulfill in a given period of time. The response configuration information may be stored in the data store 960.
  • At operation 1010, the request processing module 920 of the server 925 receives a request 930 from a first user. The request may be a request for service and define parameters for the requested service. The request may be similar to that as described with respect to operation 310 of FIG. 3. In an embodiment, the request 930 specifies that the requester wishes to receive responses that have been automatically generated (as opposed to being manually generated). Thus, instead of having to wait to receive a response that is largely manually generated, the requester can receive responses much more quickly because they have been automatically generated. This leads to higher engagement rates of the requester since they can determine whether to act upon the response in a shorter timeframe. This in turn leads to higher chances of a responder being selected to fulfill the request, and a faster process to get the request fulfilled.
  • The matching module 950 of the server 925 performs a first level of matching to determine a first group of responders as candidates for responding to the request. In a case where the request is for service and includes a requested location and category, the matching module 950 determines the first group of responders to be those that match the requested location and category. Thus, at operation 1015, the candidate selector 952 of the matching module 950 determines a first group of responders as candidates for responding to the request. In the case where the request is for service and defines a requested location and category the candidate selector 952 determines the first group of responders as those responders that match the requested location and category, which are sometimes referred to as candidate responders. The matching module 950 accesses information about the responders such as the location(s) that they offer service and the categor(ies) of service that they offer from the data store 960. The candidate selector 952 compares the requested location and category with the information from the data store 960 to select the candidate responders. Depending on the location and/or category, there may be many candidate responders. Flow moves from operation 1015 to operation 1020.
  • After determining the candidate responders, the matching module 950 of the server 925 performs a second level of matching to refine which responders are selected for automatic response generation. The second level of matching is intended to determine which set of responders are best suited for fulfilling the request, and may take the following factors into consideration: the requester's requirements included in the request, the responder's express intent and derived interest in fulfilling the request, the qualification of the responder for fulfilling the request, whether the responder is a good fit for the request (e.g., for request for services involving personal preferences or style, such as interior design jobs), whether the request is a good fit for the responder and is likely to deliver value to the responder's business, maximizing fulfillment of requests, and/or maximizing an overall aggregate measure of relevance across a plurality of requests. At operation 1020, the selection limiter 954 of the matching module 950 performs operations 1025-1030 for each responder in the first group of responders (the candidate responders).
  • At operation 1025, the selection limiter 954 computes a value that quantifies a likelihood of the requester selecting that responder to fulfill the request, if a response was given from that requester. The computation of this value may be based on the estimated quality of the responders to the requester and may use a logistic regression model. By way of example, the logistic regression model may use one or more signals derived from data of the system including reviews of the responders, non-review related profile features, response time of the responders, previous request fulfillment rate of the responders, distance between the requested location and the responder, non-responder-specific features, and/or information from the perspective response itself such as the price that would be offered to fulfill the request.
  • Through an empirical data analysis, the number of reviews of a responder is correlated with the request fulfillment rate of the responder. Similarly, the rating of the reviews is also correlated with the request fulfillment rate of the responder. To say it another way, responders that have a relatively large number of reviews and are rated relatively high tend to be selected to fulfill requests at a higher rate than responders with a relatively low number of reviews and/or low rating. Moreover, the number of and rating of verified reviews (those that have been verified as coming from a requester that selected the responder to fulfill the request) may correlate with the request fulfillment rate of the responder.
  • Non-review related profile features of the responder may be correlated with the request fulfillment rate of the responder, such as the existence of a profile picture, the number of profile pictures, the number of videos, profile completion status, the number of times the responder has been selected to fulfill a request, the length of the service description, whether the responder has passed a background check, and/or whether the responder shows proof of being licensed. For instance, responders with profile picture(s) may have a larger request fulfillment rate than those responders that do not have profile picture(s). Also, the number of pictures can have a correlation with request fulfillment rate. For instance, the request fulfillment rate of responders tends to go up until about 5 pictures where the request fulfillment rate levels off. The number of videos of a responder may be correlated with the request fulfillment rate of the responder depending on the category of service provided. Whether a responder has passed a background check may impact request fulfillment rate depending on the service category. For example, responders that have passed a background check may have a larger request fulfillment rate in service categories that concern children (e.g., babysitting, tutoring, music lessons, etc.). Responders that have evidence of being licensed may have a higher request fulfillment rate than other responders in certain categories (e.g., wellness, personal, pets).
  • The response time of a responder is correlated with the request fulfillment rate. For instance, how quickly the responder responds to messages or questions from a requester impacts the request fulfillment rate. That is, responders that respond more quickly have a higher request fulfillment rate than other responders. The response time may be weighed more heavily in recent time windows and/or only viewed in a certain time window. For instance, the average response time in the past year (or other predefined time period) may be used.
  • The previous request fulfillment rate is generally correlated with the current request fulfillment rate. That is, the request fulfillment rate of responders for a service category generally tends to stay roughly linear. The number of previous times a responder has been selected to fulfill a request over a given time period (e.g., over the last year) may be used.
  • The distance between the requested location and the responder may impact request fulfillment rate. For instance, request fulfillment rate for a responder generally goes down as distance increases. This value may be dependent on whether the requester travels to the responder for the requested service, whether the responder travels to the requester for the requested service, or whether the requested service is done remotely. In cases where the requester travels to the responder for the requested service, the request fulfillment rate may generally go down as distance increases. In cases where the responder travels to the requester for the requested service, the request fulfillment rate may generally go down as distance increases, but generally not as much as if the requester travelled to the responder. In cases where the requested service may be done remotely, the distance between the requested location and the responder may not impact the request fulfillment rate.
  • Non-responder-specific features such as the historical request fulfillment rate in the category (across all responders) is generally the same as the expected request fulfillment rate in the category.
  • Information from the perspective response, such as the price that would be offered to perform the requested service, may also impact the request fulfillment rate. For instance, a responder that is offering a price for the service that is much higher or much lower than other responders in the same category may negatively impact the request fulfillment rate.
  • Next, at operation 1030, the selection limiter 954 determines a capacity of the responder to fulfill the request. The total capacity may be provided by the responder and monitored by the matching module 950. For instance, the responder may specify how many requests they can fulfill over a period of time (e.g., per day, per week, per month, etc.) and the server may track how many requests the responder has fulfilled and/or agreed to fulfill over that period of time. In an embodiment, the responders are charged when an automatic response is placed on their behalf. In another embodiment, the responders are charged when a requester makes a contact (e.g., sends a message, places a phone call through the platform, etc.) in response to an automatic response being placed on their behalf. In such embodiments, instead of, or in addition to, specifying how many requests a responder can fulfill over a period of time, the responder may specify a response budget that indicates how many responses can be generated on their behalf. The response budget may be an overall budget or may be a recurring budget over a period of time (e.g., a response budget per day, per week, per month, etc.). In an embodiment, the number of responses generated on behalf of a responder over a given time period may be for more requests than that responder has current capacity to fulfill, if it is determined that the responder on average does not typically get selected for every response that is generated. The server tracks the response budget and determines whether the responder has capacity to perform the job. Flow moves from operation 1030 to operation 1035.
  • At operation 1035, the selection limiter 954 selects a second group of responders based at least in part on the computed value and the capacity of the responders. For instance, the selection limiter 954 may rank the responders that have capacity to fulfil the request by the likelihood of the requester selecting the responder for fulfilling the request, and select the second group of responders according to that ranking. As another example, the selection limiter 954 may distribute the responses across multiple requests and/or expected requests. For instance, the selection limiter 954 may select the members of the second group of responders to maximize the chances to fill all requester requests (existing and expected) over a given period of time (e.g., daily, weekly, monthly). For instance, consider a case where a market has two tutoring responders that can each fulfill one request for tutoring per week where the first responder can tutor math only and the second responder can tutor math and chemistry. If the math tutoring request is fulfilled by the second responder during the week, then there is no one in the market that can fulfill the chemistry request during that week. On the other hand, if the math tutoring request is fulfilled by the first responder during the week, then a chemistry request may be fulfilled by the second responder. As another example, the selection limiter 954 may select the members of the second group of responders to maximize the relevance of the responders' responses to requesters over a longer period of time by forecasting future requester needs and using the forecast to maximize an overall aggregate measure of relevance across many requests (e.g., all requests in a market over a week).
  • FIG. 11 is flow diagram that illustrates exemplary operations for selecting a second group of responders according to an embodiment. For instance, the operations of FIG. 11 may be performed during the operation 1035. At operation 1110, the selection limiter 954 computes the number of responses for the request. The number of responses for the request may be determined as a function of the number of responders that are eligible and have capacity for the requested service, the aggregate of the number of fulfillments over responses for the requested category (that is, the average of how many responses turn into fulfillments for the requested category), and the expected number of future requests for the requested category.
  • In an embodiment, computing the number of responses for the request includes performing operation 1115-1130. The operations 1115-1125 are performed for each responder that matched the first level of matching. At operation 1115, the selection limiter 954 determines the average number of requests the responder receives or has been determined to match (e.g., after the second level of matching) in the requested category over a predetermined time period (e.g., per day, per week, per month, etc.). Next, at operation 1120, the selection limiter 954 determines, based at least on the capacity of the responder, how many responses can be sent on behalf of the responder. As previously described, the number of responses sent on behalf of the responder over a given time period may be higher than the capacity of the responder over that time period. The selection limiter 954 may determine the average rate at which the responder gets selected to fulfill a request over the number of responses sent over the predetermined time period. The maximum number of responses may be set as the capacity of the responder divided by the average request fulfillment rate of the responder. For instance, if the capacity of the responder for a week is 5 fulfillments and the average request fulfillment rate of the responder is 0.5, the maximum number of responses that can be sent on behalf of the responder may be 10. Next, at operation 1125, the selection limiter 954 determines the maximum rate of sending a response over the predetermined time period, with a ceiling of 1. For instance, the maximum rate of sending a response may be calculated as the maximum number of responses over the average number of requests the responder receives over the predetermined time period. For instance, if the responder receives 15 requests on average over the predetermined time period and the maximum number of responses over that time period is calculated to be 10, the maximum rate of sending a response over the time period may be 10/15. Next, at operation 1130, the selection limiter 954 determines the sum of each maximum rate of sending a response for each responder as found in operation 1125. The computed number of responses for the request is based on the sum of each maximum rate. For instance, the computed number of responses may be the sum of the maximum rates rounded down to the nearest integer. As an example, if the sum of the maximum rates is 3.8, the number of responses may be set as 3. As another example, if each responder had a maximum rate of sending a response as 1, the sum of each maximum rate of sending a response would be equal to the number of responders that matched the first level of matching.
  • In an embodiment, the selection limiter 954 may limit the number of responses to a predefined number (e.g., up to five responses), and/or reserve a number of responses for those responders that have recently registered with the system (e.g., within a predefined period of time such as 30 days) and/or have recently begun offering service for the requested category in the requested location (e.g., within the predefined period of time).
  • After computing the number of responses for the request, flow moves to operation 1135 where the selection limiter 954 selects the responder(s) to fill the number of responses. The selection of the responders may be based on a ranking of the responders and may be randomized. For instance, the ranking of each responder may be the same as described in operation 1025, and may be weighed based on the maximum rate of sending a response over the predetermined time period found in operation 1125 (e.g., the computed value that quantifies a likelihood of the requesting requester hiring that responder multiplied by the maximum rate of sending a response over the predetermined time period). The resulting values for the responders may be ranked and the responses may be generated for the highest-ranking responders. A weighted random sampling may also be applied to produce randomness, such as according to the A-ES algorithm of Efraimidis and Spirakis.
  • Referring to FIG. 10, after selecting the second group of responders in operation 1035, flow moves to operation 1040 where the response module 965 automatically generates a response for each of the selected second group of responders. The responses are generated from the response configuration information received from the respective responders. Next, at operation 1045, the generated responses are sent to the requester. In an embodiment, prior to transmitting the generated responses, the generated responses are provided to the responders for review. For instance, a message may be transmitted to the responder (e.g., email, text message, phone call, message within a native application) that indicates that there is a response pending their review. The responder may then adjust the generated response, cancel the response, or approve the response. In another embodiment, the generated responses are automatically sent to the requester on behalf of thee responders without the responders reviewing or otherwise approving the generated responses.
  • FIG. 12 illustrates a block diagram for an exemplary data processing system 1200 that may be used in some embodiments. Data processing system 1200 includes one or more processors 1205 and connected system components (e.g., multiple connected chips). Alternatively, the data processing system 1200 is a system on a chip or Field-Programmable gate array. One or more such data processing systems 1200 may be utilized to implement the embodiments as illustrated in FIGS. 1-12.
  • The data processing system 1200 is an electronic device which stores and transmits (internally and/or with other electronic devices over a network) code (which is composed of software instructions and which is sometimes referred to as computer program code or a computer program) and/or data using machine-readable media (also called computer-readable media), such as machine-readable storage media 1210 (e.g., magnetic disks, optical disks, read only memory (ROM), flash memory devices, phase change memory) and machine-readable transmission media (also called a carrier) (e.g., electrical, optical, radio, acoustical or other form of propagated signals—such as carrier waves, infrared signals), which is coupled to the processor(s) 1205. For example, the depicted machine-readable storage media 1210 may store program code 1230 that, when executed by the processor(s) 1205, causes the data processing system 1200 to enable matching a request from a first user to a set of one or more different users as described herein. For example, the program code 1230 may include code for the matching module 150, notification module 162, response module 165, matching module 950, and/or response module 965, which when executed by the processor(s) 1205, causes the data processing system 1200 to perform the operations of the server 125 and/or server 925 described with reference to FIGS. 1-11.
  • The data processing system 1200 may also include a display controller and display device 1220 to provide a visual user interface, e.g., GUI elements or windows. The visual user interface may be used to enable a requester to submit a request, a responder to review and/or respond to a request, or other task as described herein. The data processing system 1200 also includes one or more input or output (“I/O”) devices and interfaces 1225, which are provided to allow a user to provide input to, receive output from, and otherwise transfer data to and from the system. These I/O devices 1225 may include a mouse, keypad, keyboard, a touch panel or a multi-touch input panel, camera, frame grabber, optical scanner, an audio input/output subsystem (which may include a microphone and/or a speaker for, for example, playing back music or other audio, receiving voice instructions to be executed by the processor(s) 1205, playing audio notifications, etc.), other known I/O devices or a combination of such I/O devices. The I/O devices and interfaces 1225 may also include a connector for a dock or a connector for a USB interface, FireWire, Thunderbolt, Ethernet, etc., to connect the system 1200 with another device, external component, or a network. Exemplary I/O devices and interfaces 1225 also include wireless transceivers, such as an IEEE 802.11 transceiver, an infrared transceiver, a Bluetooth transceiver, a wireless cellular telephony transceiver (e.g., 2G, 3G, 4G), or another wireless protocol to connect the data processing system 1200 with another device, external component, or a network and receive stored instructions, data, tokens, etc. It will be appreciated that one or more buses may be used to interconnect the various components shown in FIG. 12.
  • It will be appreciated that additional components, not shown, may also be part of the system 1200, and, in certain embodiments, fewer components than that shown in FIG. 12 may also be used in a data processing system 1200.
  • The techniques shown in the figures can be implemented using code and data stored and executed on one or more electronic devices (e.g., a requester device, a responder device, and a server). Such electronic devices store and communicate (internally and/or with other electronic devices over a network) code and data using computer-readable media, such as non-transitory computer-readable storage media (e.g., magnetic disks; optical disks; random access memory; read only memory; flash memory devices; phase-change memory) and transitory computer-readable communication media (e.g., electrical, optical, acoustical or other form of propagated signals—such as carrier waves, infrared signals, digital signals). In addition, such electronic devices typically include a set of one or more processors coupled to one or more other components, such as one or more storage devices (non-transitory machine-readable storage media), user input/output devices (e.g., a keyboard, a touchscreen, and/or a display), and network connections. The coupling of the set of processors and other components is typically through one or more busses and bridges (also termed as bus controllers). Thus, the storage device of a given electronic device typically stores code and/or data for execution on the set of one or more processors of that electronic device. Of course, one or more parts of an embodiment of the invention may be implemented using different combinations of software, firmware, and/or hardware.
  • While the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the invention, such order is exemplary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.).
  • While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.

Claims (24)

1. A method, comprising:
receiving, at a server, a request for a service from a first user, wherein the request includes a location where the service is desired and a category of the desired service;
performing a first stage of matching that includes determining a first plurality of second users that match the location and category;
performing a second stage of matching that includes performing the following for each of the first plurality of second users that match the location and category:
computing a first value that quantifies an attractiveness of the request to that second user,
computing a second value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and
computing a third value based at least in part on the computed first value and the computed second value that quantifies a score for choosing that second user for responding to the request; and
transmitting the request for the service to at least some of a second plurality of second users of the first plurality of second users whose computed third value exceeds a first threshold value, wherein the second plurality of second users is less than the first plurality of second users.
2. The method of claim 1, further comprising:
responsive to determining that the second plurality of second users is less than a second threshold value, transmitting the request for the service to each of the second plurality of second users and transmitting the request for the service to a third plurality of second users of the first plurality of second users to meet the second threshold value based on the computed first values.
3. The method of claim 1, further comprising:
responsive to determining that the second plurality of second users is greater than a second threshold value, transmitting the request for the service to those of the second plurality of second users that have a highest computed first value until the second threshold value is met.
4. The method of claim 1, further comprising:
responsive to determining that a total number of expected responses from the second plurality of second users to the request for the service is less than a second threshold value, performing the following:
selecting a related category that is related to the category of the desired service;
determining a third plurality of second users that match the location and the related category;
for each second user of the third plurality of second users that match the location and the related category, performing the following:
computing a fourth value that quantifies a likelihood of that second user responding to the request,
computing a fifth value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and
computing a sixth value based at least in part on the computed fourth value and the computed fifth value that quantifies a score for selecting that second user; and
transmitting the request for the service to at least some of a fourth plurality of second users of the third plurality of second users whose computed sixth value exceeds the first threshold value, wherein the fourth plurality of second users is less than the third plurality of second users.
5. The method of claim 1, further comprising:
transmitting the request for the service to a third plurality of second users of the first plurality of second users, wherein each of the third plurality of second users have registered within a predetermined time period regardless of a score for choosing that one of the third plurality of second users.
6. The method of claim 1, wherein computing the first value that quantifies an attractiveness of the request to that second user includes determining whether the second user has previously engaged to other requests that are similar to the received request.
7. The method of claim 1, wherein computing the second value that quantifies the likelihood of the first user selecting that second user to fulfill the request is based on a logistic regression model that uses one or more signals including one or more of:
reviews of the second user, non-review related profile features of the second user, response time of the second user, previous request fulfillment rate of the second user, and distance between the location where the service is desired and the second user.
8. The method of claim 1, wherein computing the third value is based on a weighted combination of the first computed value and the second computed value, wherein a first weight applied to the first computed value and a second weight applied to the second computed value is determined through training of a machine learning model.
9. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, causes the processor to perform operations comprising:
receiving, at a server, a request for a service from a first user, wherein the request includes a location where the service is desired and a category of the desired service;
performing a first stage of matching that includes determining a first plurality of second users that match the location and category;
performing a second stage of matching that includes performing the following for each of the first plurality of second users that match the location and category:
computing a first value that quantifies an attractiveness of the request to that second user,
computing a second value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and
computing a third value based at least in part on the computed first value and the computed second value that quantifies a score for choosing that second user for responding to the request; and
transmitting the request for the service to at least some of a second plurality of second users of the first plurality of second users whose computed third value exceeds a first threshold value, wherein the second plurality of second users is less than the first plurality of second users.
10. The non-transitory machine-readable storage medium of claim 9, wherein the operations further comprise:
responsive to determining that the second plurality of second users is less than a second threshold value, transmitting the request for the service to each of the second plurality of second users and transmitting the request for the service to a third plurality of second users of the first plurality of second users to meet the second threshold value based on the computed first values.
11. The non-transitory machine-readable storage medium of claim 9, wherein the operations further comprise:
responsive to determining that the second plurality of second users is greater than a second threshold value, transmitting the request for the service to those of the second plurality of second users that have a highest computed first value until the second threshold value is met.
12. The non-transitory machine-readable storage medium of claim 9, wherein the operations further comprise:
responsive to determining that a total number of expected responses from the second plurality of second users to the request for the service is less than a second threshold value, performing the following:
selecting a related category that is related to the category of the desired service;
determining a third plurality of second users that match the location and the related category;
for each second user of the third plurality of second users that match the location and the related category, performing the following:
computing a fourth value that quantifies a likelihood of that second user responding to the request,
computing a fifth value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and
computing a sixth value based at least in part on the computed fourth value and the computed fifth value that quantifies a score for selecting that second user; and
transmitting the request for the service to at least some of a fourth plurality of second users of the third plurality of second users whose computed sixth value exceeds the first threshold value, wherein the fourth plurality of second users is less than the third plurality of second users.
13. The non-transitory machine-readable storage medium of claim 9, wherein the operations further comprise:
transmitting the request for the service to a third plurality of second users of the first plurality of second users, wherein each of the third plurality of second users have registered within a predetermined time period regardless of a score for choosing that one of the third plurality of second users.
14. The non-transitory machine-readable storage medium of claim 9, wherein computing the first value that quantifies an attractiveness of the request to that second user includes determining whether the second user has previously engaged to other requests that are similar to the received request.
15. The non-transitory machine-readable storage medium of claim 9, wherein computing the second value that quantifies the likelihood of the first user selecting that second user to fulfill the request is based on a logistic regression model that uses one or more signals including one or more of: reviews of the second user, non-review related profile features of the second user, response time of the second user, previous request fulfillment rate of the second user, and distance between the location where the service is desired and the second user.
16. The non-transitory machine-readable storage medium of claim 9, wherein computing the third value is based on a weighted combination of the first computed value and the second computed value, wherein a first weight applied to the first computed value and a second weight applied to the second computed value is determined through training of a machine learning model.
17. A server, comprising:
a processor; and
a non-transitory machine-readable storage medium coupled with the processor and provides instructions that, when executed by the processor, causes the processor to perform operations including:
receive, at the server, a request for a service from a first user, wherein the request includes a location where the service is desired and a category of the desired service;
perform a first stage of matching that includes determining a first plurality of second users that match the location and category;
perform a second stage of matching that includes performing the following for each of the first plurality of second users that match the location and category:
compute a first value that quantifies an attractiveness of the request to that second user,
compute a second value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and
compute a third value based at least in part on the computed first value and the computed second value that quantifies a score for choosing that second user for responding to the request; and
transmit the request for the service to at least some of a second plurality of second users of the first plurality of second users whose computed third value exceeds a first threshold value, wherein the second plurality of second users is less than the first plurality of second users.
18. The server of claim 17, wherein the operations further comprise:
responsive to a determination that the second plurality of second users is less than a second threshold value, transmit the request for the service to each of the second plurality of second users and transmitting the request for the service to a third plurality of second users of the first plurality of second users to meet the second threshold value based on the computed first values.
19. The server of claim 17, wherein the operations further comprise:
responsive to a determination that the second plurality of second users is greater than a second threshold value, transmit the request for the service to those of the second plurality of second users that have a highest computed first value until the second threshold value is met.
20. The server of claim 17, wherein the operations further comprise:
responsive to a determination that a total number of expected responses from the second plurality of second users to the request for the service is less than a second threshold value, perform the following:
select a related category that is related to the category of the desired service;
determine a third plurality of second users that match the location and the related category;
for each second user of the third plurality of second users that match the location and the related category, perform the following:
compute a fourth value that quantifies a likelihood of that second user responding to the request,
compute a fifth value that quantifies a likelihood of the first user selecting that second user to fulfill the request, and
compute a sixth value based at least in part on the computed fourth value and the computed fifth value that quantifies a score for selecting that second user; and
transmit the request for the service to at least some of a fourth plurality of second users of the third plurality of second users whose computed sixth value exceeds the first threshold value, wherein the fourth plurality of second users is less than the third plurality of second users.
21. The server of claim 17, wherein the operations further comprise:
transmit the request for the service to a third plurality of second users of the first plurality of second users, wherein each of the third plurality of second users have registered within a predetermined time period regardless of a score for choosing that one of the third plurality of second users.
22. The server of claim 17, wherein computation of the first value that quantifies an attractiveness of the request to that second user includes a determination of whether the second user has previously engaged to other requests that are similar to the received request.
23. The server of claim 17, wherein computation of the second value that quantifies the likelihood of the first user selecting that second user to fulfill the request is based on a logistic regression model that uses one or more signals including one or more of: reviews of the second user, non-review related profile features of the second user, response time of the second user, previous request fulfillment rate of the second user, and distance between the location where the service is desired and the second user.
24. The server of claim 179, wherein computation of the third value is based on a weighted combination of the first computed value and the second computed value, wherein a first weight applied to the first computed value and a second weight applied to the second computed value is determined through training of a machine learning model.
US15/921,543 2017-06-30 2018-03-14 Matching a request from a user to a set of different users for responding to the request Abandoned US20190005562A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/921,543 US20190005562A1 (en) 2017-06-30 2018-03-14 Matching a request from a user to a set of different users for responding to the request

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762527874P 2017-06-30 2017-06-30
US15/921,543 US20190005562A1 (en) 2017-06-30 2018-03-14 Matching a request from a user to a set of different users for responding to the request

Publications (1)

Publication Number Publication Date
US20190005562A1 true US20190005562A1 (en) 2019-01-03

Family

ID=64734439

Family Applications (3)

Application Number Title Priority Date Filing Date
US15/921,543 Abandoned US20190005562A1 (en) 2017-06-30 2018-03-14 Matching a request from a user to a set of different users for responding to the request
US15/921,554 Active US10699316B2 (en) 2017-06-30 2018-03-14 Matching a request from a user to a set of different users for responding to the request
US16/915,379 Active US11526920B2 (en) 2017-06-30 2020-06-29 Matching a request from a user to a set of different users for responding to the request

Family Applications After (2)

Application Number Title Priority Date Filing Date
US15/921,554 Active US10699316B2 (en) 2017-06-30 2018-03-14 Matching a request from a user to a set of different users for responding to the request
US16/915,379 Active US11526920B2 (en) 2017-06-30 2020-06-29 Matching a request from a user to a set of different users for responding to the request

Country Status (1)

Country Link
US (3) US20190005562A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021105642A1 (en) 2019-11-25 2021-06-03 Toolsoup Limited System for requirement based intelligent resource allocation

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11049063B2 (en) 2015-06-04 2021-06-29 Centriq Technology, Inc. Asset communication hub
US11263661B2 (en) * 2018-12-26 2022-03-01 Microsoft Technology Licensing, Llc Optimal view correction for content
US11255683B1 (en) 2019-02-06 2022-02-22 State Farm Mutual Automobile Insurance Company First mile and last mile ride sharing method and system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131595A1 (en) * 2009-12-02 2011-06-02 General Electric Company Methods and systems for online recommendation
US20150317582A1 (en) * 2014-05-01 2015-11-05 Microsoft Corporation Optimizing task recommendations in context-aware mobile crowdsourcing
US20170011324A1 (en) * 2015-07-07 2017-01-12 Uber Technologies, Inc. Dispatch system for matching drivers and users
US20170039890A1 (en) * 2015-08-05 2017-02-09 Uber Technologies, Inc. Augmenting transport services using driver profiling
US20180260787A1 (en) * 2017-03-13 2018-09-13 GM Global Technology Operations LLC Systems, methods and devices for driver-rider matching adaptable to multiple rideshare models

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2589401A (en) 1999-12-21 2001-07-03 Net Horsepower, Inc. Method and apparatus for internet connectivity for agriculture buyers, sellers and transporters
US7584208B2 (en) 2002-11-20 2009-09-01 Radar Networks, Inc. Methods and systems for managing offers and requests in a network
US20040254821A1 (en) 2003-06-11 2004-12-16 Glaser James B. Apparatus and method for analyzing real estate information
US20050010484A1 (en) 2003-07-11 2005-01-13 Scott Bohannon Apparatus for and method of facilitating fulfillment of buyer's/seller's desire
US8160929B1 (en) 2006-09-28 2012-04-17 Amazon Technologies, Inc. Local item availability information
US20090112652A1 (en) 2007-10-31 2009-04-30 Mark Kelsey Project publishing system and method
US20090287596A1 (en) * 2008-05-15 2009-11-19 Alex Henriquez Torrenegra Method, System, and Apparatus for Facilitating Transactions Between Sellers and Buyers for Travel Related Services
WO2010018451A1 (en) * 2008-08-14 2010-02-18 Life Events Media Pty Ltd. Computer implemented methods and systems of determining location-based matches between searchers and providers
US9177056B2 (en) 2009-01-06 2015-11-03 Thumbtack, Inc. Method and apparatus for a trusted localized peer-to-peer services marketplace
US20130138475A1 (en) * 2011-11-30 2013-05-30 G. Austin Allison Systems and methods for transaction-based sales lead generation
US10083411B2 (en) 2012-11-15 2018-09-25 Impel It! Inc. Methods and systems for the sale of consumer services
US20160034995A1 (en) 2013-11-19 2016-02-04 Service Labs, Inc. Method and system for automated indentification and engagement of service providers
US10019743B1 (en) * 2014-09-19 2018-07-10 Altisource S.á r.l. Methods and systems for auto expanding vendor selection
US9990609B2 (en) 2014-11-10 2018-06-05 0934781 B.C. Ltd Evaluating service providers using a social network
US20170024657A1 (en) 2015-07-21 2017-01-26 Yp Llc Fuzzy autosuggestion for query processing services
US11049059B2 (en) * 2016-02-03 2021-06-29 Operr Technologies, Inc Method and system for on-demand customized services
US10425490B2 (en) * 2016-09-26 2019-09-24 Uber Technologies, Inc. Service information and configuration user interface
US20180365597A1 (en) * 2017-06-14 2018-12-20 Microsoft Technology Licensing, Llc Service provider appointment booking system
US10552773B1 (en) 2018-09-07 2020-02-04 Lyft, Inc. Efficiency of a transportation matching system using geocoded provider models

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110131595A1 (en) * 2009-12-02 2011-06-02 General Electric Company Methods and systems for online recommendation
US20150317582A1 (en) * 2014-05-01 2015-11-05 Microsoft Corporation Optimizing task recommendations in context-aware mobile crowdsourcing
US20170011324A1 (en) * 2015-07-07 2017-01-12 Uber Technologies, Inc. Dispatch system for matching drivers and users
US20170039890A1 (en) * 2015-08-05 2017-02-09 Uber Technologies, Inc. Augmenting transport services using driver profiling
US20180260787A1 (en) * 2017-03-13 2018-09-13 GM Global Technology Operations LLC Systems, methods and devices for driver-rider matching adaptable to multiple rideshare models

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021105642A1 (en) 2019-11-25 2021-06-03 Toolsoup Limited System for requirement based intelligent resource allocation

Also Published As

Publication number Publication date
US10699316B2 (en) 2020-06-30
US20200327595A1 (en) 2020-10-15
US11526920B2 (en) 2022-12-13
US20190005563A1 (en) 2019-01-03

Similar Documents

Publication Publication Date Title
US11526920B2 (en) Matching a request from a user to a set of different users for responding to the request
US10719883B2 (en) Web property generator
Cabrerizo et al. A decision support system to develop a quality management in academic digital libraries
US11575623B2 (en) Automatically generating a response on behalf of a first user to a request received from a second user
US10509837B2 (en) Modeling actions for entity-centric search
US10891592B2 (en) Electronic job posting marketplace
US10949787B2 (en) Automated participation evaluator
US20180225711A1 (en) Determining ad ranking and placement based on bayesian statistical inference
US11309082B2 (en) System and method for monitoring engagement
US11334820B2 (en) Question prioritization in community-driven question-and-answer systems
US20170140323A1 (en) Facilitating communication sessions between consumers and service providers
US20170365014A1 (en) Systems, methods and non-transitory computer readable storage media for tracking and evaluating predictions regarding relationships
US9727883B2 (en) Methods and systems for conducting surveys and processing survey data to generate a collective outcome
US8843428B2 (en) Survey prioritization engine
US20160292723A1 (en) Visualization of online advertising revenue trends
US20180285825A1 (en) Method of evaluation processing, information processing apparatus and non-transitory computer-readable storage medium
US20200258025A1 (en) Matching a request from a user to a set of different users for responding to the request
US9786014B2 (en) Earnings alerts
US20140032665A1 (en) Activity-based content selection
CN109472454B (en) Activity evaluation method, activity evaluation device, electronic equipment and storage medium
US20180336281A1 (en) Creator Aware and Diverse Recommendations of Digital Content
US20160292721A1 (en) Forecasting of online advertising revenue
US20160086233A1 (en) Distribution apparatus, distribution method, and non-transitory computer readable storage medium
US20150254690A1 (en) Analyzing a trust metric of responses through trust analytics
Dennis et al. Preliminary experimentation about interactive spiral knowledge mining based on conjoint analysis

Legal Events

Date Code Title Description
AS Assignment

Owner name: THUMBTACK, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHEN, MUXING;LOCK, JEFFREY;LIU, XIN;AND OTHERS;SIGNING DATES FROM 20180315 TO 20180406;REEL/FRAME:045853/0392

AS Assignment

Owner name: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AND COLLATERAL AGENT, CALIFORNIA

Free format text: INTELLECTUAL PROPERTY SECURITY AGREEMENT;ASSIGNOR:THUMBTACK, INC.;REEL/FRAME:046058/0343

Effective date: 20180501

Owner name: HERCULES CAPITAL, INC., AS ADMINISTRATIVE AND COLL

Free format text: INTELLECTUAL PROPERTY SECURITY AGREEMENT;ASSIGNOR:THUMBTACK, INC.;REEL/FRAME:046058/0343

Effective date: 20180501

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

Free format text: FINAL REJECTION MAILED

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

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

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STCV Information on status: appeal procedure

Free format text: NOTICE OF APPEAL FILED

STCV Information on status: appeal procedure

Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER

STCV Information on status: appeal procedure

Free format text: EXAMINER'S ANSWER TO APPEAL BRIEF MAILED

STCV Information on status: appeal procedure

Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS

STCV Information on status: appeal procedure

Free format text: BOARD OF APPEALS DECISION RENDERED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION

AS Assignment

Owner name: HERCULES CAPITAL, INC., AS COLLATERAL AND ADMINISTRATIVE AGENT, CALIFORNIA

Free format text: INTELLECTUAL PROPERTY SECURITY AGREEMENT;ASSIGNOR:THUMBTACK, INC.;REEL/FRAME:059567/0480

Effective date: 20220329