Method of and server for presenting points of interest to user on map
A method and server for presenting points of interest (POIs) to a given user in a map application on a client device comprising: receiving a request for displaying a given location on a map view of the map application and retrieving, based on the map view and the given location, a set of POIs. A set of web services associated with the given user is determined, and past user interaction data with the set of web services partially indicative of user preferences of the given user with regard to the set of POIs is retrieved. The set of POIs is ranked based on the respective past user interaction data to obtain a ranked set of POIs. The map view including at least a subset of the ranked set of POIs is transmitted for presentation to the given user on a display interface of the client device.
1. A computer-implemented method for presenting points of interest (POIs) to a given user in a map application executed by a client device associated with the given user, the client device being connected to the server, the server executing a map service, the method being executable by the server, the method comprising:
receiving, by the server from the client device, a request for displaying a given location on a map view of the map application;
retrieving, by the server, based on the map view and the given location, a set of POIs;
determining, by the server, based on the request, a set of web services associated with the given user, the set of web services including at least the map service;
retrieving, by the server, for at least some of the set of web services, respective past user interaction data of the given user with the respective web service, the respective past user interaction data being at least partially indicative of user preferences of the given user with regard to the set of POIs;
ranking, by the server, based on the respective past user interaction data, the set of POIs to obtain a ranked set of POIs;
determining, by the server, for a given zoom level of a plurality of zoom levels on the map application, a respective number of POIs of the ranked set of POI's to be included in a subset of POIs to be displayed on the map view;
transmitting, by the server to the client device, the map view, the map view including at least the subset of POIs for presentation to the given user on a display interface of the client device for the given zoom level, the subset of POIs including at least one POI having no past user interaction data from the given user.
2. The method of claim 1 , wherein the subset of the ranked set of POIs corresponds to the respective number for a current zoom level.
3. The method of claim 1 , wherein the subset of the ranked set of POIs corresponds to the respective number for a requested zoom level.
4. The method of claim 1 , wherein the determining the set of web services associated with the given user includes determining a user profile associated with the given user based on the request.
5. The method of claim 1 , wherein the method further comprises analyzing the user profile to determine at least one parameter used ranking POIs.
6. The method of claim 1 , wherein the set of web services includes at least one of: an email service, a taxi service, a ride sharing service, a navigation service, and a browser service.
7. The method of claim 1 , wherein
each POI of the set of POIs has at least one feature, the at least one feature being at least one of: a name, a description, a category, and a location; and wherein the retrieving the respective past user interaction data is based at least in part on respective past user interactions of the given user with the at least one feature in the respective web service.
8. The method of claim 7 , wherein
the method further comprises, prior to the retrieving the set of POIs:
generating, by a machine learning algorithm (MLA) executed by the server, for each POI of the set of POIs, a respective vector representation of the POI in a multidimensional space, the respective vector representation being based on the at least one feature; wherein
the method further comprises, prior to the ranking the set of POIs:
generating, by the MLA, based on the respective past user interaction data of the given user with the at least one feature in the set of web services, a given user vector in the multidimensional space; and wherein
the ranking is based at least in part on respective distances between the given user vector and each respective vector representation of the POI in the set of POIs.
9. The method of claim 8 , wherein
the method further comprises, prior to the ranking the set of POIs:
retrieving, by the server, a set of user vectors having been previously generated by the MLA, each respective user vector being associated with a respective user of the set of web services, each respective user vector having been generated based on respective past user interactions of the respective user with the at least one feature;
determining, by the MLA, a respective distance between the given user vector and each respective user vector of the set of user vectors; and
selecting, by the MLA, at least one user vector having a minimal distance with the given user vector; and wherein
the ranking is further based at least in part on respective distances between the at least one user vector and each respective vector representation of the POI in the set of POIs.
10. The method of claim 8 , wherein the MLA is a neural network (NN).
11. The method of claim 8 , wherein the MLA is a Deep Structured Semantic Model (DSSM).
12. The method of claim 8 , wherein the past user interaction data includes at least one of:
past number of clicks on the POI of the set of POIs;
past number of visits at the POI of the set of POIs.
13. The method of claim 1 , wherein the retrieving, by the server, for at least some of the set of web services comprises retrieving for each web service of the set of web services.
14. A server for presenting points of interest (POIs) to a given user in a map application executed by a client device associated with the given user, the client device being connected to the server, the server executing a map service, the server comprising:
a processor;
a non-transitory computer-readable medium comprising instructions;
the processor, upon executing the instructions, being configured to:
receive from the client device, a request for displaying a given location on a map view of the map application;
retrieve based on the map view and the given location, a set of POIs;
determine based on the request, a set of web services associated with the given user, the set of web services including at least the map service;
retrieve for at least some of the set of web services, respective past user interaction data of the given user with the respective web service, the respective past user interaction data being at least partially indicative of user preferences of the given user with regard to the set of POIs;
rank based on the respective past user interaction data, the set of POIs to obtain a ranked set of POIs;
determine, by the server, for a given zoom level of a plurality of zoom levels on the map application, a respective number of POIs to be included in a subset of POIs to be displayed on the map view;
transmit to the client device, the map view, the map view including at least the subset of POIs for presentation to the given user on a display interface of the client device for the given zoom level, the subset of POIs including at least one POI having no past user interaction data from the given user.
15. The server of claim 14 , wherein the subset of the ranked set of POIs corresponds to the respective number for a current zoom level.
16. The server of claim 14 , wherein the subset of the ranked set of POIs corresponds to the respective number for a requested zoom level.
17. The server of claim 14 , wherein the determining the set of web services associated with the given user includes determining a user profile associated with the given user based on the request.