MATCHING A REQUEST FROM A USER TO A SET OF DIFFERENT USERS FOR RESPONDING TO THE REQUEST
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.
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.