Communication server device, method and communication system for recommending one or more points of interest of transportation-related services to a user

By combining historical data and geographical area data, and recommending transportation-related services based on multiple standard scores, the problem of insufficient recommendation accuracy in the prior art is solved and the user experience is improved.

CN113994173BActive Publication Date: 2025-04-15GRABTAXI HOLDINGS PTE LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN201980097516.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2019-04-29
Publication Date
2025-04-15
Estimated Expiration
2039-04-29

AI Technical Summary

Technical Problem

When recommending points of interest in transportation-related services, the prior art screening is only based on the user's location, and other requirements or attributes are not considered, resulting in poor service quality.

Method used

Points of interest are recommended based on individual scores of multiple criteria, including keywords, regions, popularity, timing, and distance by leveraging historical data and destination category data in geographic regions.

Benefits of technology

It realizes personalized recommendations for users and improves the recommendation accuracy and user experience of transportation services.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113994173B_ABST
    Figure CN113994173B_ABST
Patent Text Reader

Abstract

A communication server device is provided, the communication server device being used to recommend one or more points of interest (POI) for transportation-related services to a user, such as when the user wishes to request or book a transportation-related service. The POIs are recommended at different actions / scenarios or at different stages of the booking based on multiple data / information that may come from multiple data sources. The recommendation may be made using data related to one or more pairs of origin locations and destination locations corresponding to historical transportation-related services, or using historical data and data corresponding to top-ranked points of interest in at least one destination category in a geographic area, or based on final scores of candidate POIs determined based on individual scores of multiple criteria assigned to the candidate POIs, wherein the individual scores of at least some of the criteria are determined based on historical data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention generally relates to the field of communications. One aspect of the present invention relates to a communication server device for recommending one or more points of interest for transportation-related services to a user. Other aspects of the present invention further relate to a communication server device for recommending one or more points of interest for transportation-related services to a user, a method for recommending one or more points of interest for transportation-related services to a user, a communication system for recommending one or more points of interest for transportation-related services to a user, and a communication server device for recommending one or more points of interest for transportation-related services to a user. Other aspects relate to a computer program product, a computer program, and a non-transitory storage medium having instructions for implementing any of the methods described herein.

[0002] One aspect of the present invention is particularly, but not exclusively, applicable to recommending one or more points of interest for transportation-related services to a user. For example, a user may wish to request or book a transportation-related service, such as a ride-hailing transportation service, and the disclosed technology may provide one or more points of interest recommendations as a starting location and / or a destination location corresponding to the transportation-related service for booking for different actions / scenarios or at different stages of booking. The user may make a reservation using a corresponding application or "App", and the recommended points of interest may be provided or presented to the user via the App for consideration and / or selection. Background Art

[0003] In response to a user's query for transportation services, a search for POIs (points of interest) relevant to the query is performed. However, the quality of current POI services is not satisfactory because known transportation service methods only filter POIs based on the user's location without considering other requirements or attributes. Summary of the invention

[0004] Various aspects of the invention are set out in the independent claims. Some optional features are defined in the dependent claims.

[0005] Implementations of the techniques disclosed herein may provide important technical advantages. These techniques may enable recommendations of one or more points of interest (POIs) for transportation-related services to a user based on, for example, multiple pieces of data / information that may come from multiple data sources.

[0006] In at least some embodiments, the techniques disclosed herein may provide recommendations for one or more points of interest (POIs) based on historical data, such as data associated with one or more pairs of origin locations and destination locations corresponding to historical transportation-related services.

[0007] In at least some embodiments, the techniques disclosed herein allow for recommendation of one or more points of interest (POIs) based on historical data and data corresponding to top ranked points of interest in at least one destination category in a geographic area (eg, a city).

[0008] In at least some embodiments, the techniques disclosed herein can provide recommendations for one or more points of interest (POIs) based on a final score of a candidate POI determined based on individual scores of multiple criteria assigned to the candidate POI. These individual scores for at least some of these criteria can be determined based on historical data.

[0009] In at least some embodiments, the techniques disclosed herein may provide recommendations of one or more points of interest (POIs) for different actions / scenarios during booking of transportation-related services, where the actions may occur in an ordered sequence.

[0010] In an exemplary embodiment, the functionality of the techniques disclosed herein may be implemented in software running on a handheld communication device such as a mobile phone. The software implementing the functionality of the techniques disclosed herein may be contained in an "App" - a computer program or computer program product - that a user has downloaded from an online store. When running on, for example, a user's mobile phone, the hardware features of the mobile phone may be used to implement the following functionality, such as using the transceiver component of the mobile phone to establish a secure communication channel for recommending one or more points of interest (POIs) of transportation-related services to the user. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] The present invention will now be described, by way of example only, with reference to the accompanying drawings, in which:

[0012] Figure 1 is a schematic block diagram illustrating an exemplary communication system involving a communication server device.

[0013] Figure 2A A schematic block diagram illustrating a communication server apparatus for recommending one or more points of interest of transportation-related services to a user is shown.

[0014] Figure 2B A flow chart illustrating a method performed in a communication server device for recommending one or more points of interest of transportation-related services to a user is shown.

[0015] Figure 2C A schematic block diagram illustrating a communication server apparatus for recommending one or more points of interest of transportation-related services to a user is shown.

[0016] Figure 2DA flow chart illustrating a method performed in a communication server device for recommending one or more points of interest of transportation-related services to a user is shown.

[0017] Figure 2E A schematic block diagram illustrating a communication server apparatus for recommending one or more points of interest of transportation-related services to a user is shown.

[0018] Figure 2F A schematic block diagram showing data logging is shown.

[0019] Figure 2G A flow chart illustrating a method performed in a communication server device for recommending one or more points of interest of transportation-related services to a user is shown.

[0020] Figure 2H A schematic block diagram showing a communication server device for recommending one or more points of interest of transportation-related services to a user is shown.

[0021] Fig.2I A flow chart illustrating a method performed in a communication server device for recommending one or more points of interest for transportation-related services to a user is shown.

[0022] FIG. 3A to FIG. 3D Four main scenarios of POI (point of interest) services of various embodiments are shown.

[0023] Figure 4 A schematic diagram showing a layer-based web service structure is shown.

[0024] Figure 5 A schematic diagram showing an overview of a system for POI (Point of Interest) services is shown.

[0025] Figure 6 An example of a time distribution graph of POIs (Points of Interest) is shown.

[0026] 7A to 7D The performance of the POI service of each embodiment in the prediction, suggestion, search and ReverseGeo scenarios is shown respectively. DETAILED DESCRIPTION

[0027] The present technology can provide real-time point of interest (POI) recommendations, for example, real-time POI discovery and recommendation based on Golang.

[0028] One aspect of a transportation service (e.g., a taxi transportation service) is to provide the user with the desired POI as a pickup point and / or drop-off point with as little effort as possible based on the user's location, which effort can be measured by the number of clicks on the screen by the user before clicking the booking button. As a geography-based service, POI discovery and recommendation can involve a large amount of geometric calculations and high traffic throughput. It is important to ensure the high availability and stability of POI discovery and recommendation. In this technology, a Golang-based service architecture has been adopted to ensure the stability of the backend system. Elastic search can be used to organize millions of POI data at the database layer. Redis can be used to shorten the response time of each request as a cache. As will be further described below, a Golang-based service architecture can be adopted, and online challenges can be solved by deploying technologies such as elastic search and Redis according to various scenarios. The POI service can help increase the rate of bookings completed with an average of very few screen clicks.

[0029] First reference Figure 1 , shows a communication system 100, which may be applicable to various embodiments. The communication system 100 includes a communication server apparatus 102, a first user (or client) communication device 104, and a second user (or client) communication device 106. These devices 102, 104, 106 are connected in or to a communication network 108 (e.g., the Internet) through corresponding communication links 110, 112, 114 that implement, for example, the Internet communication protocol. These communication devices 104, 106 can communicate through other communication networks such as the public switched telephone network (PSTN network), including mobile cellular communication networks, but for clarity, from Figure 1 It should be understood that there may be one or more other communication devices similar to devices 104, 106.

[0030] The communication server device 102 may be used to recommend one or more points of interest (POIs) of transportation-related services to the user.

[0031] The communication server device 102 may be Figure 1 The single server shown schematically in FIG. 1 may have the functions performed by the communication server device 102 distributed across multiple server components. Figure 1In the example of , the communication server device 102 may include multiple separate components, including, but not limited to: one or more microprocessors (μP) 116, a memory 118 (e.g., a volatile memory such as RAM (random access memory)) for loading executable instructions 120, the executable instructions 120 defining the functions performed by the server device 102 under the control of the processor 116. The communication server device 102 may also include an input / output (I / O) module 122 that allows the server device 102 to communicate via the communication network 108. A user interface (UI) 124 is provided for user control and may include, for example, one or more peripheral computing devices, such as a display monitor, a computer keyboard, and the like. The communication server device 102 may also include a database (DB) 126, the purpose of which will become more apparent from the following discussion.

[0032] The user communication device 104 may include a plurality of separate components, including but not limited to: one or more microprocessors (μP) 128, a memory 130 (e.g., a volatile memory such as RAM) for loading executable instructions 132, the executable instructions 132 defining the functions that the user communication device 104 performs under the control of the processor 128. The user communication device 104 also includes an input / output (I / O) module 134 that allows the user communication device 104 to communicate via a communication network 108. A user interface (UI) 136 is provided for user control. If the user communication device 104 is, for example, a smart phone or a tablet device, the user interface 136 may have a touch panel display that is ubiquitous in many smart phones and other handheld devices. Alternatively, if the user communication device 104 is, for example, a desktop computer or a laptop computer, the user interface may have, for example, one or more peripheral computing devices, such as a display monitor, a computer keyboard, and the like.

[0033] The user communication device 106 may be, for example, a smartphone or tablet device having a hardware architecture that is the same as or similar to that of the user communication device 104 .

[0034] The user communication device 104 and / or the user communication device 106 may be configured to receive information or data regarding one or more points of interest (POIs) of transportation-related services recommended to the user.

[0035] Figure 2AA schematic block diagram of a communication server device 202a displaying one or more points of interest (POIs) for recommending transportation-related services to a user is shown. The communication server device 202a includes a processor 216a and a memory 218a, wherein the communication server device 202a is configured to execute instructions in the memory 218a under the control of the processor 216a, in response to receiving user data (e.g., data indicating a latitude (lat) value and a longitude (lng) value) including a data field indicating a user's location (e.g., a current location or an expected location), and further in response to the communication server device 202a determining that there is no historical data associated with the user and corresponding to the transportation-related services, retrieve data 255a representing a map with the location, and transmit the data 255a representing the map for reception by a user communication device of the user to present the map to the user via the user communication device for determining (e.g., , based on the location of the user (single) point of interest on the map as a recommended starting point location (or boarding location) for transportation-related services, and in response to the communication server device 202a determining that historical data corresponding to transportation-related services exists in one or more data records, the historical data is associated with the user, based on the historical data, a (single) first point of interest is determined as a recommended starting point location (or boarding location) for transportation-related services, based on the historical data, a (single) second point of interest is determined as a recommended destination location (or alighting location) for transportation-related services, the first point of interest and the second point of interest are paired with each other and correspond to historical transportation-related services, and data 256a indicating the first point of interest and data 257a indicating the second point of interest are transmitted for reception by the user communication device.

[0036] The processor 216a and the memory 218a may be coupled to each other (as represented by line 217a), for example, physically connected and / or electrically coupled. The processor 216a may be as described in the processor 116 ( Figure 1 ) and / or the memory 218a may be as described in the context of the memory 118 ( Figure 1 ) in the context of.

[0037] The user data may further include another data field indicating an identifier representing the identity of the user (eg, a user ID).

[0038] In various embodiments, in response to the communication server device 202a determining that the historical data exists, and further in response to receiving user data having a data field indicating a time (point) (e.g., current time (point) or expected time (point) or planned time (point)) (which may be the same user data having a data field indicating the location of the user), in order to determine the second point of interest as a recommended destination location, the communication server device 202a may be further configured to determine, based on the historical data, that the second point of interest is paired with the first point of interest within a predetermined time interval (e.g., a few hours in a day) including the time. The time may be, for example, the time when a reservation is made, or the start time of a transportation-related service.

[0039] As a non-limiting example, the time may be 3:05 PM, and the second point of interest that was paired with the first point of interest within a time interval in the past (e.g., within the past 24 hours or longer), such as 3:00-3:30 PM or 3:00-4:00 PM, may be determined as a recommended destination location.

[0040] In various embodiments, in response to the communication server device 202a determining that the historical data exists, and further in response to receiving user data including a data field indicating the location of the user, in order to determine the first point of interest, the communication server device 202a can be configured to determine whether the historical data includes data indicating one or more historical starting positions of transportation-related services, and if it is determined that there is data indicating the one or more historical starting positions, then based on the data indicating the one or more historical starting positions, the historical starting position closest to the user's location is defined as the first point of interest, and the data indicating the historical starting position is transmitted for reception by the user communication device, and if it is determined that there is no data indicating the one or more historical starting positions, then data indicating one or more historical destination positions (or one or more first last drop-off points (LDF)) included in the historical data is determined, and based on the data indicating the one or more historical destination positions, the historical destination position closest to the user's location is defined as the first point of interest, and the data indicating the historical destination position is transmitted for reception by the user communication device.

[0041] In various embodiments, to determine data indicative of the one or more historical destination locations, the communication server device 202a may be configured to determine data indicative of the one or more historical destination locations associated with a predetermined historical time period (eg, the past 24 hours).

[0042] Figure 2BA flow chart 250 is shown illustrating a method executed in a communication server device and under control of a processor of the communication server device for recommending one or more points of interest for transportation-related services to a user.

[0043] In response to receiving user data including a data field indicating a location of the user, and further in response to determining that there is no historical data associated with the user and corresponding to a transportation-related service, at 251, data representing a map having the location is retrieved, and at 252, data representing the map is transmitted for receipt by a user communication device of the user to present the map to the user via the user communication device so as to determine a point of interest on the map as a recommended starting location for a transportation-related service.

[0044] In response to determining that historical data corresponding to a transportation-related service exists in one or more data records, the historical data being associated with a user, at 255, a first point of interest is determined as a recommended starting location for the transportation-related service based on the historical data, at 256, a second point of interest is determined as a recommended destination location for the transportation-related service based on the historical data, the first point of interest and the second point of interest are paired with each other and correspond to the historical transportation-related service, and at 257, data indicating the first point of interest and data indicating the second point of interest are transmitted for receipt by a user communication device.

[0045] In response to determining that the historical data exists, and further in response to receiving user data including a data field indicating a time, at 256, the method may include determining, based on the historical data, that the second point of interest is paired with the first point of interest within a predetermined time interval including the time.

[0046] In various embodiments, at 255, in response to determining that the historical data exists, and further in response to receiving user data including a data field indicating the location of the user, the method may include determining whether the historical data includes data indicating one or more historical starting locations of transportation-related services, and if it is determined that the data indicating the one or more historical starting locations exist, defining the historical starting location closest to the user's location as the first point of interest based on the data indicating the one or more historical starting locations, and transmitting the data indicating the historical starting location for reception by the user communication device, and if it is determined that the data indicating the one or more historical starting locations do not exist, determining data indicating one or more historical destination locations included in the historical data, defining the historical destination location closest to the user's location as the first point of interest based on the data indicating the one or more historical destination locations, and transmitting the data indicating the historical destination location for reception by the user communication device.

[0047] In various embodiments, to determine data indicative of the one or more historical destination locations, the method may include determining data indicative of the one or more historical destination locations associated with a predetermined historical time period.

[0048] Various embodiments may further provide a communication system for recommending one or more points of interest of transportation-related services to a user, the communication system having a communication server device (e.g., 202a, Figure 2A ), at least one user communication device, and a communication network device, the communication network device being operable to enable the communication server apparatus and the at least one user communication device to establish communication with each other through the communication network device, wherein the at least one user communication device comprises a first processor and a first memory, the at least one user communication device being configured to execute a first instruction in the first memory under the control of the first processor so as to transmit user data including a data field indicating the location of the user for the communication server apparatus to receive for processing, and wherein the communication server apparatus comprises a second processor and a second memory, the communication server apparatus being configured to execute a second instruction in the second memory under the control of the second processor in response to receiving data indicating the user data transmitted by the at least one user communication device, and further in response to the communication server apparatus determining that there is no connection with the user The communication server device is configured to retrieve historical data associated with a user and corresponding to a transportation-related service, retrieve data representing a map including the location, and transmit the data representing the map for reception by the at least one user communication device to present the map to the user via the user communication device so as to determine a point of interest on the map as a recommended starting point location for a transportation-related service, and in response to the communication server device determining that historical data corresponding to a transportation-related service exists in one or more data records, the historical data is associated with the user, determine a first point of interest as a recommended starting point location for the transportation-related service based on the historical data, determine a second point of interest as a recommended destination location for the transportation-related service based on the historical data, the first point of interest and the second point of interest are paired with each other and correspond to historical transportation-related services, and transmit data indicating the first point of interest and data indicating the second point of interest for reception by the at least one user communication device.

[0049] It should be understood that the description in the context of the communication server apparatus 202a, the method described in the context of the flowchart 250, and the corresponding communication systems described above may be applicable to each other.

[0050] The techniques disclosed above in the context of the communication server device 202a, the methods described in the context of the flowchart 250, and the corresponding communication systems described above may correspond to the action / scenario "prediction" to be further described below. Further, the techniques may be performed in response to the activation or launch of a (software) application (e.g., "App") corresponding to a transportation-related service or the detection (or determination) of the activation or launch of the application, or at the beginning of the process of a user requesting or booking a transportation-related service.

[0051] Figure 2C A schematic block diagram illustrating a communication server apparatus 202c for recommending one or more points of interest (POIs) for transport-related services to a user is shown. The communication server device 202c includes a processor 216c and a memory 218c, wherein the communication server device 202c is configured to execute instructions in the memory 218c under the control of the processor 216c to, in response to receiving user data including a first data field (e.g., data indicating a latitude (lat) value and a longitude (lng) value) indicating a location of the user (e.g., a current location or an expected location) and a second data field indicating a user request corresponding to a destination location (or a drop-off location), access historical data corresponding to transportation-related services in one or more data records, the historical data being associated with the user, access data indicating a plurality of top-ranked points of interest (e.g., the most popular POIs; top 3, top 5, or any other number) in at least one destination category (e.g., shopping destinations, dining establishments, transportation hubs, etc.) in a geographic area (e.g., a city) that includes the location, determine one or more first points of interest as recommended destination locations for transportation-related services based on the historical data and the data indicating the plurality of top-ranked points of interest, and transmit data 255c indicating the one or more first points of interest for reception by the user communication device.

[0052] The processor 216c and the memory 218c may be coupled to each other (as represented by line 217c), for example, physically coupled and / or electrically coupled. The processor 216c may be as described in the processor 116 ( Figure 1 ) and / or the memory 218c may be as described in the context of the memory 118 ( Figure 1 ) in the context of.

[0053] The user data may further include another data field indicating an identifier representing the identity of the user (eg, a user ID).

[0054] The second data field indicating a user request corresponding to a destination location may correspond to a user clicking on an input box or input data field (e.g., an input data field for a destination location) of a (software) application (e.g., “App”) corresponding to a transportation-related service.

[0055] In the context of various embodiments, the historical data may include data indicating a plurality of historical destination locations, and / or data indicating one or more preferences of the user.

[0056] In various embodiments, the historical data may include data indicating multiple historical destination locations that the user most frequently visits (for example, the 3 most frequently visited locations, the 5 most frequently visited locations, or any other number), wherein, in order to access the historical data, the communication server device 202c may be further configured to access the data indicating the multiple historical destination locations that the user most frequently visits, and in order to determine the one or more first points of interest, the communication server device 202c may be further configured to determine the one or more first points of interest based on the data indicating the multiple historical destination locations that the user most frequently visits and the data indicating a plurality of top-ranked points of interest.

[0057] The communication server device 202c can be further configured to, in response to receiving user data (which can be the same user data as described above or another user data) including a data field indicating a user request corresponding to a starting location (or a pickup location), determine one or more second points of interest as recommended destination locations for transportation-related services based on the historical data and the location, and transmit data indicating the one or more second points of interest for receipt by the user communication device.

[0058] The historical data may include data indicating a plurality of historical starting locations, and the one or more second points of interest may be determined based on the plurality of historical starting locations.

[0059] The data field indicating a user request corresponding to an origin location may correspond to a user clicking on an input box or input data field (e.g., an input data field of an origin location) of a (software) application (e.g., “App”) corresponding to a transportation-related service.

[0060] In order to determine the one or more second points of interest, the communication server device 202c may be configured to determine the one or more second points of interest within a predetermined distance relative to the user's location as recommended starting locations.

[0061] The communication server apparatus 202c may be further configured to transmit, for each of the one or more second points of interest, data indicating a distance between the second point of interest and the user's location for receipt by the user communication device.

[0062] Figure 2D A flow chart 260 is shown illustrating a method executed in a communication server device and under control of a processor of the communication server device for recommending one or more points of interest for transportation-related services to a user.

[0063] In response to receiving user data including a first data field indicating a location and a second data field indicating a user request corresponding to a destination location, at 262, historical data corresponding to a transportation-related service in one or more data records is accessed, the historical data is associated with the user, at 264, data indicating a plurality of top-ranked points of interest in at least one destination category in a geographic area having the location is accessed, at 266, one or more first points of interest are determined as recommended destination locations for the transportation-related service based on the historical data and the data indicating the plurality of top-ranked points of interest, and at 268, data indicating the one or more first points of interest are transmitted for receipt by the user communication device.

[0064] In various embodiments, the historical data may include data indicating a plurality of historical destination locations most frequently visited by the user. At 262, data indicating a plurality of historical destination locations most frequently visited by the user is accessed, and at 266, the one or more first points of interest are determined based on the data indicating the plurality of historical destination locations most frequently visited by the user and the data indicating a plurality of top-ranked points of interest.

[0065] In response to receiving user data including a data field indicating a user request corresponding to an origin location, the method further includes determining one or more second points of interest as recommended origin locations for transportation-related services based on the historical data and the location, and transmitting data indicating the one or more second points of interest for receipt by the user communication device.

[0066] In various embodiments, the method may include determining the one or more second points of interest within a predetermined distance relative to the user's location as recommended starting locations.

[0067] In various embodiments, the method may further include transmitting, for each of the one or more second points of interest, data indicating a distance between the second point of interest and the user's location for receipt by the user communication device.

[0068] Various embodiments may further provide a communication system for recommending one or more points of interest of transportation-related services to a user, the communication system having a communication server device (e.g., 202c, Figure 2C), at least one user communication device, and a communication network device, the communication network device being operable to enable the communication server apparatus and the at least one user communication device to establish communication with each other through the communication network device, wherein the at least one user communication device comprises a first processor and a first memory, the at least one user communication device being configured to execute a first instruction in the first memory under the control of the first processor so as to transmit user data comprising a first data field indicating a location and a second data field indicating a user request corresponding to a destination location for reception by the communication server device for processing, and wherein the communication server apparatus comprises a second processor and a second memory, the communication server apparatus being configured to execute a second instruction in the second memory under the control of the second processor so as to, in response to receiving data indicating the user data transmitted by the at least one user communication device, access historical data corresponding to a transportation-related service in one or more data records, the historical data being associated with the user, access data indicating a plurality of top-ranked points of interest in at least one destination category in a geographic area including the location, determine one or more first points of interest as recommended destination locations for transportation-related services based on the historical data and the data indicating the plurality of top-ranked points of interest, and transmit data indicating the one or more first points of interest for reception by the at least one user communication device.

[0069] It should be understood that the description in the context of the communication server device 202c, the method described in the context of the flowchart 260, and the corresponding communication system described above may be applicable to each other.

[0070] The techniques disclosed above in the context of the communication server device 202c, the methods described in the context of the flowchart 260, and the corresponding communication systems described above may correspond to the action / scenario "suggestions" to be described further below. Further, the techniques may be performed in an ordered sequence after a scenario "prediction", for example, in the event that the results obtained from the scenario "prediction" are not as expected or are not satisfactory to the user who requested or booked the transportation-related service.

[0071] Figure 2E 2 shows a schematic block diagram showing a communication server device 202e for recommending one or more points of interest (POI) of transportation-related services to a user, and Figure 2F A schematic block diagram illustrating a data record 240 that may be generated by the communication server device 202e is shown.

[0072] The communication server device 202e includes a processor 216e and a memory 218e, wherein the communication server device 202e is configured to execute instructions in the memory 218e under the control of the processor 216e to generate, in response to receiving user data including a first data field (e.g., data indicating a latitude (lat) value and a longitude (lng) value) indicating a location of a user (e.g., a current location or an expected location) and a second data field having input data indicating information input by the user, the information at least partially describing the location requested by the user as a starting location or a destination location for a transportation-related service, one or more data records 240 having a plurality of candidate data fields 242, 242b, 242c to 242n having data 243a, 243b, 243c to 243n for corresponding plurality of candidate points of interest based on the input data. 3n, in one or more data records 240, for each of a plurality of candidate data fields 242a, 242b, 242c to 242n, corresponding standard data fields for at least two criteria among keyword, area, popularity, timing, and distance are generated (as non-limiting examples, corresponding standard data fields 244a, 246a for candidate data field 242a and corresponding standard data fields 244c, 246c for candidate data field 242c are shown), and in each of the corresponding standard data fields (e.g., 244a, 246a, 244c, 246c), data indicating a separate score associated with the corresponding criterion of the candidate point of interest is generated (as non-limiting examples, data 245a, 247c, 245c, 247c for the standard data fields 244a, 246a, 244c, 246c are shown, respectively).

[0073] For keywords, a separate score is determined based on the similarity between the information and one or more words (e.g., full name, (multiple) partial names, (multiple) acronyms) describing the name of the candidate point of interest. For areas, a separate score is determined based on the proximity between a first geographic area (e.g., a city) that includes the user's location and a second geographic area (e.g., a city) that includes the candidate point of interest. For popularity, based on historical data corresponding to transportation-related services in one or more historical data records, a separate score is determined based on the number of times the candidate point of interest has been historically selected as a requested location for historical transportation-related services (e.g., any one or more users, i.e., not only including users requesting transportation-related services, but also considering (multiple) preferences of other (multiple) users) (e.g., the number of times the candidate point of interest has been selected as a historical starting location (if the requested location is a starting location) or a historical destination location (if the requested location is a destination location)). For timing, a separate score is determined based on the probability of the candidate point of interest being selected as a requested location (origin location or destination location) by the user at a defined time (e.g., the probability of the candidate point of interest being selected in the morning, evening, or during / within a defined hour, etc.) based on historical data corresponding to transportation-related services in one or more historical data records (which may be the same (multiple) historical data records as described above) associated with the user. For distance, a separate score is determined based on the distance between the user's location and the candidate point of interest.

[0074] The communication server device 202e can be configured to generate a final score for each candidate data field 242a, 242b, 242c to 242n based on the individual score (determined for the at least two criteria), process the data indicating these final scores, and transmit the data 255e indicating the multiple candidate points of interest for the user communication device to receive and present the multiple candidate points of interest via the user communication device according to the processing results of the data indicating these final scores. In various embodiments, for the data 255e to be transmitted from the communication server device 202e, the multiple candidate points of interest may have been sorted according to the processing results.

[0075] The processor 216e and the memory 218e may be coupled to each other (as represented by line 217e), for example, physically coupled and / or electrically coupled. The processor 216e may be as described in the processor 116 ( Figure 1 ) and / or the memory 218e may be as described in the context of the memory 118 ( Figure 1 ) in the context of.

[0076] The user data may further include another data field indicating an identifier representing the identity of the user (eg, a user ID).

[0077] The communication server device 202e can receive user data (which can be the same user data having a first data field and a second data field) including a data field indicating a time (point) (for example, the current time (point) or the expected time (point) or the planned time (point)).

[0078] As a non-limiting example, the requested location may be represented or described by a full name having an 8-letter string, and the input information may include a portion of the name (e.g., (only) the first 5 letters of the full 8 letters, the full name (i.e., 8 letters), or an acronym representing the requested location).

[0079] It should be understood that there may be any number y of candidate data fields, where y ≥ 2 (ie, 2 or more).

[0080] To process the data indicating the final scores, the communication server device 202e may be configured to generate ranking data indicating the ordering of the plurality of candidate points of interest according to their final scores in one or more data records 240 (e.g., in descending order of the final scores) based on the data indicating the final scores, and to transmit the data, the communication server device 202e may be configured to transmit data 255e indicating the plurality of candidate points of interest to present the plurality of candidate points of interest via the user communication device in an order according to the ranking data. In various embodiments, for the data 255e to be transmitted from the communication server device 202e, the plurality of candidate points of interest may have been sorted according to the ranking data.

[0081] In order to process the data indicating the final scores, the communication server device 202e can be configured to compare the final scores based on the data indicating these final scores and for each of the multiple candidate points of interest with a threshold indicating the matching relevance of the candidate point of interest to the requested location, and in order to transmit the data, the communication server device 202e can be configured to transmit data 255e indicating the candidate points of interest whose final scores are determined to be equal to or higher than the threshold.

[0082] To generate the final score, the communication server device 202e may be configured to generate the final score by a weighted sum of the individual scores.

[0083] In various embodiments, the at least two criteria may include region, and in response to the individual scores for region being determined to indicate that the first geographic region and the second geographic region are in different countries, the communication server device 202e may be further configured to exclude (or ignore) the candidate point of interest.

[0084] In order to generate corresponding standard data fields (e.g., 244a, 246a, 244c, 246c), the communication server device 202e can be configured to generate corresponding standard data fields for at least three criteria of keywords, areas, popularity, timing and distance for each candidate data field 242a, 242b, 242c to 242n.

[0085] In order to generate corresponding standard data fields (e.g., 244a, 246a, 244c, 246c), the communication server device 202e can be configured to generate corresponding standard data fields for at least four criteria of keywords, areas, popularity, timing and distance for each candidate data field 242a, 242b, 242c to 242n.

[0086] In various embodiments, in response to the information at least partially describing the request location as a starting point location, in order to generate corresponding standard data fields (e.g., 244a, 246a, 244c, 246c), the communication server device 202e can be configured to generate corresponding standard data fields for all criteria in keywords, areas, popularity, schedules, and distances for each candidate data field 242a, 242b, 242c to 242n.

[0087] Figure 2G A flow chart 270 is shown illustrating a method executed in a communication server device and under control of a processor of the communication server device for recommending one or more points of interest for transportation-related services to a user.

[0088] In response to receiving user data including a first data field indicating the location of the user and a second data field having input data indicating information input by the user, the information at least partially describing the location requested by the user as an origin location or a destination location for transportation-related services, one or more data records including a plurality of candidate data fields having data of a corresponding plurality of candidate points of interest are generated based on the input data at 272. At 274, corresponding standard data fields for at least two criteria of keyword, area, popularity, time arrangement, and distance are generated in the one or more data records for each candidate data field in the plurality of candidate data fields. At 276, in each of the corresponding standard data fields, data indicating a separate score associated with the corresponding criteria of the candidate point of interest is generated, wherein for keywords, the separate score is determined based on a similarity between the information and one or more words describing the name of the candidate point of interest, for regions, the separate score is determined based on a proximity between a first geographic region including the location of the user and a second geographic region including the candidate point of interest, for popularity, the separate score is determined based on the number of times the candidate point of interest has been historically selected as a requested location for historical transportation-related services based on historical data corresponding to transportation-related services in one or more historical data records, for scheduling, the separate score is determined based on a probability that the candidate point of interest is selected as the requested location by the user at a defined time based on historical data corresponding to transportation-related services in one or more historical data records, the historical data being associated with the user, and for distance, the separate score is determined based on a distance between the location of the user and the candidate point of interest. At 278, for each candidate data field, a final score for the corresponding candidate point of interest is generated based on the separate score. At 280, the data indicating the final scores are processed. At 282, based on the processing result of the data indicating the final scores, data indicating multiple candidate points of interest are transmitted for reception by the user communication device to present the multiple candidate points of interest via the user communication device. In various embodiments, for the data indicating multiple candidate points of interest to be transmitted, the multiple candidate points of interest may have been sorted based on the processing result.

[0089] In various embodiments, at 280, ranking data indicating an ordering of the plurality of candidate points of interest according to the final scores of the plurality of candidate points of interest may be generated in one or more data records based on the data indicating the final scores, and at 282, data indicating the plurality of candidate points of interest may be transmitted to present the plurality of candidate points of interest in an order according to the ranking data via the user communication device. In various embodiments, for the data indicating the plurality of candidate points of interest to be transmitted, the plurality of candidate points of interest may have been ordered according to the ranking data.

[0090] In various embodiments, at 280, the final score can be compared to a threshold indicating a matching relevance of the candidate point of interest to the requested location based on data indicating the final score and for each candidate point of interest of the plurality of candidate points of interest, and at 282, data indicating the candidate point of interest whose final score is determined to be equal to or above the threshold can be transmitted.

[0091] In various embodiments, at 278 , a final score may be generated by a weighted sum of the individual scores.

[0092] In various embodiments, the at least two criteria may include region, and in response to the individual scores for region being determined to indicate that the first geographic region and the second geographic region are in different countries, the method may further include excluding the candidate point of interest.

[0093] In various embodiments, at 274 , corresponding standard data fields of at least three criteria among keyword, region, popularity, timing, and distance may be generated for each candidate data field.

[0094] In various embodiments, at 274 , corresponding standard data fields of at least four criteria of keyword, region, popularity, timing, and distance may be generated for each candidate data field.

[0095] In various embodiments, responsive to the information describing at least in part the request location as a starting location, at 274, corresponding standard data fields for all criteria in keyword, area, popularity, timing, and distance may be generated for each candidate data field.

[0096] Various embodiments may further provide a communication system for recommending one or more points of interest of transportation-related services to a user, the communication system having a communication server device (e.g., 202e, Figure 2E), at least one user communication device, and a communication network device, the communication network device being operable to enable the communication server apparatus and the at least one user communication device to establish communication with each other through the communication network device, wherein the at least one user communication device comprises a first processor and a first memory, the at least one user communication device being configured to execute a first instruction in the first memory under the control of the first processor, so as to transmit user data including a first data field indicating the location of the user and a second data field having input data indicating information input by the user for reception by the communication server apparatus for processing, the information at least partially describing the location requested by the user as a starting location or a destination location for a transportation-related service, and wherein the communication server apparatus comprises a second processor and a second memory, the communication server apparatus being configured to execute an instruction in the second memory under the control of the second processor, in response to receiving data indicating the user data transmitted by the at least one user communication device, one or more data records comprising a plurality of candidate data fields having data corresponding to a plurality of candidate points of interest, generating, for each of the plurality of candidate data fields in the one or more data records, at least two criteria of keyword, area, popularity, time arrangement and distance corresponding standard data fields, generating data indicating a separate score associated with a corresponding standard of the candidate point of interest in each of the corresponding standard data fields, wherein, for a keyword, the separate score is determined based on a similarity between the information and one or more words describing the name of the candidate point of interest, for an area, the separate score is determined based on a proximity between a first geographic area including the location of the user and a second geographic area including the candidate point of interest, for popularity, the separate score is determined based on a number of times the candidate point of interest has been historically selected as a requested location for historical transportation-related services based on historical data corresponding to transportation-related services in one or more historical data records, and for time scheduling, based on historical data corresponding to transportation-related services in one or more historical data records, the historical data being associated with the user, determining individual scores based on the probability that the candidate point of interest is selected by the user as the requested location at a defined time, for distance, determining individual scores based on the distance between the user's location and the candidate point of interest, for each candidate data field, generating a final score for the corresponding candidate point of interest based on the individual scores, processing data indicating the final score, and based on the results of the processing of the data indicating the final scores, transmitting data indicating the plurality of candidate points of interest for reception by the user communication device to present the plurality of candidate points of interest via the user communication device.

[0097] It should be understood that the description in the context of the communication server device 202e, the method described in the context of the flowchart 270, and the corresponding communication system described above may be applicable to each other.

[0098] The techniques disclosed above in the context of the communication server device 202e, the methods described in the context of the flowchart 270, and the corresponding communication systems described above may correspond to the action / scenario "searching" to be described further below. Further, the techniques may be performed in an ordered sequence after the scenario "suggestions", for example, in the case where the results obtained from the scenario "suggestions" are not as expected or are not satisfactory to the user who requested or booked the transportation-related service.

[0099] Figure 2H A schematic block diagram showing a communication server device 202h for recommending one or more points of interest of transportation-related services to a user is shown, the communication server device 202h being configured as a communication server apparatus 202a and further configured as at least one of a communication server apparatus 202c or a communication server apparatus 202e.

[0100] The communication server device 202h may be configured as the communication server apparatus 202a, and thereafter (sequentially) further configured as the communication server apparatus 202c. The communication server device 202h may thereafter (sequentially) further configured as the communication server apparatus 202e. The communication server device 202h may thereafter (sequentially) further configured to retrieve data representing a map including the location of the user, and transmit the data representing the map for receipt by a user communication device of the user, so as to present the map to the user via the user communication device, so as to determine (e.g., based on the location of the user) a (single) point of interest on the map as a recommended starting location (or pickup location) for a transport-related service.

[0101] Fig.2I A flowchart 290 is shown showing a method executed in a communication server device and under control of a processor of the communication server device for recommending one or more points of interest for transportation-related services to a user. At 292, a method as described herein in the context of flowchart 250 is performed. At 294, at least one of a method as described herein in the context of flowchart 260 or a method as described herein in the context of flowchart 270 is performed.

[0102] In various embodiments, a method as described herein in the context of flowchart 250 may be performed, and thereafter, a method as described herein in the context of flowchart 260 may be performed. Thereafter, a method as described herein in the context of flowchart 270 may be performed. Thereafter, data representing a map including the location of the user may be retrieved, and data representing the map may be transmitted for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine a point of interest on the map as a recommended starting location for a transportation-related service.

[0103] Various embodiments may further provide a communication system for recommending one or more points of interest of transportation-related services to a user, the communication system having a communication server device (e.g., 202h, Figure 2H ), at least one user communication device including a processor and a memory, and a communication network device, the communication network device being operable to enable the communication server device and the at least one user communication device to establish communication with each other through the communication network device, wherein the communication server device is configured as a communication server apparatus 202a, and wherein the at least one user communication device is configured to execute instructions in the memory under the control of the processor so as to transmit user data including a data field indicating the location of the user for reception by the communication server device for processing, and wherein the communication server device is further configured as at least one of the following: a communication server apparatus 202c, wherein the at least one user communication device further The step is configured to execute instructions in the memory under the control of the processor so as to transmit user data including a first data field indicating a location and a second data field indicating a user request corresponding to a destination location for reception by the communication server device for processing; or the communication server device 202e, wherein the at least one user communication device is further configured to execute instructions in the memory under the control of the processor so as to transmit user data including a first data field indicating the location of the user and a second data field having input data indicating information entered by the user for reception by the communication server device for processing, the information at least partially describing the location requested by the user as a starting location or a destination location for transportation-related services.

[0104] A computer program product having instructions for implementing at least one of the methods as described herein in the context of flowcharts 250 , 260 , 270 , 290 may also be provided.

[0105] A computer program having instructions for implementing at least one of the methods as described herein in the context of flow diagrams 250 , 260 , 270 , 290 may also be provided.

[0106] A non-transitory storage medium storing instructions may further be provided, which instructions, when executed by a processor, cause the processor to perform at least one of the methods as described herein in the context of flowcharts 250 , 260 , 270 , 290 .

[0107] In the context of various embodiments, historical data may be stored in one or more (historical) data records.

[0108] In the context of various embodiments, historical data may be stored in one or more databases.

[0109] In the context of various embodiments, the historical data may be (stored) historical data within a predetermined period of time, for example, historical data for the past 30 days.

[0110] In the context of various embodiments, a user communication device may include, but is not limited to, a smart phone, a tablet computer, a handheld / portable communication device, a desktop or laptop computer, a terminal computer, and the like.

[0111] In the context of various embodiments, the transport-related service may include or may be a ride-hailing transport service. This may include, for example, a car-hailing service and a (motorcycle) bicycle-hailing service.

[0112] In the context of various embodiments, transportation-related services may involve one or more autonomous vehicles.

[0113] In the context of various embodiments, an "App" or "application" may be installed on a user communication device and may include processor-executable instructions for execution on the device. As a non-limiting example, booking of transportation-related services may be performed via the App.

[0114] Now, various embodiments or technologies will be described in further detail. Various embodiments may involve a client as an App end (front end) and a server end (back end).

[0115] The transportation service of the technology disclosed in this article may require the user's pick-up and drop-off points to match drivers, plan routes, and calculate fares. The POI service is responsible for recommending pick-up and drop-off points based on the user's location. One measure of the quality of the POI service is how much effort it can save the client (user) to find the appropriate POI for the pick-up and drop-off points.

[0116] The POI service of each embodiment may include four main actions or scenarios in the booking process, such as FIG. 3A to FIG. 3D The scenarios include Predict, Suggest, Search, and ReverseGeo.

[0117] Refer to the "Forecast" scenario Figure 3A , when the user or passenger (PAX) opens the corresponding App, the App calls the POI prediction endpoint to obtain the predicted boarding point POI and the predicted alighting point POI based on the Pax historical data and current location. Figure 3A In the example, the predicted pickup point POI 270 is shown as "Setiabudi Residence" as a non-limiting example.

[0118] In various embodiments, the predicted action is executed when the App is opened. The "predicted" action will always be executed and is always the first action executed after opening the App or when booking an order.

[0119] Refer to the "Suggested" scenario Figure 3B , for example, when the predicted result is not as expected, Pax can click the input box 271, and the App calls the POI suggestion endpoint to obtain a suggested POI list 272 based on Pax historical data, current location, and popular POIs in the city.

[0120] Refer to the "Search" scenario Figure 3C For example, when the suggested results are not as expected, Pax may input information, for example, by typing one or more keywords 273 , and the App calls the POI search endpoint to obtain a matching POI list 274 based on the keyword(s).

[0121] Reference related to the "ReverseGeo" scene Figure 3D , for example, when the suggested / search results are not as expected, Pax can go to the map 275 to move the PIN 276 to call the POI ReverseGeo endpoint to find the POI.

[0122] The corresponding POI prediction, suggestion, search and ReverseGeo endpoints can be located on the server side (e.g., at a communication server device), or, in other words, the processing related to the prediction, suggestion, search and ReverseGeo scene can be performed on the server side, and then the results are returned to the user on the App side. The App side can provide one or more information including Pax ID, latitude, longitude, etc. for processing.

[0123] In summary, the above actions or scenarios can be provided or shown to the user in sequence to discover the POI of their desired pickup point and / or drop-off point. The fewer times the user needs to click on the screen, the easier it is for them to obtain the POI to generate a booking order. As part of generating booking orders for the entire transportation service, the POI service requires high availability and stability, which may bring many challenges to the system. First, one challenge is how to handle concurrent requests that burst during daily peak hours while keeping the entire service stable in terms of response time. On the one hand, this requires automatic scaling of machines to configure an appropriate number of servers (e.g., cloud servers) for different time periods every day. On the other hand, the resources of each concurrent request must be managed in an independent thread with appropriately allocated resources so that certain failures do not affect the entire service, thereby ensuring high availability. Secondly, another challenge is how to use a large amount of historical data to provide better recommendation performance that can more accurately meet the needs of customers, because the goal of the POI service is to save the effort required for users to obtain their desired pickup points and / or drop-off points.

[0124] To address these challenges and maintain high availability and stability of POI services, some technologies can be deployed, as described below.

[0125] Elasticsearch has been used to store POI data and perform POI queries. Various indexes have been proposed to manage large amounts of geometric data such as R-trees, kd-trees, or specific to mobile objects to implement various queries. Another widely used indexing method is geohash, which encodes the geographic location into a short string of letters and numbers and ensures that nearby places share similar prefixes. In various embodiments, the internal provider uses elasticsearch to store POI data. When a request for a user location (e.g., described as latitude and longitude) arrives, elasticsearch uses geohash to return the top POIs close to the given location for further processing. It can allow horizontal scaling from one machine to hundreds of servers with petabytes of data. In order to keep the response time stable for billions of POI data, the time cost of the main search expressions can be analyzed, and the bottleneck can be identified for specific optimization.

[0126] Redis is a fast, open source in-memory data store used as a database, cache, message broker, and queue. Redis can be located on the server side, for example, at a communication server device. In various embodiments, Amazon Elasticache can be adapted for Redis to cache POI data and generate cache keys in different ways according to different scenarios / application requirements. This can help control the value of queries per second (QPS) within the range that the subsequent database can handle. It should be understood that Redis is generally located before related databases, such as mySQL, dynamoDB, and elastic search. Typically, the logic on the server side (backend) can write the request result to Redis when a reply is obtained from the related database. When the same request occurs next time, a reply can be obtained directly from Redis.

[0127] The entire backend architecture is implemented in Golang. Since its parallel processing is based on goroutine and channels, each http request can be assigned to an independent goroutine for processing. Even if some of them are damaged, the entire process will not be affected. Goroutine is very lightweight and easy to start and stop, which makes Golang superior to other languages ​​in terms of stability as the backend language of various embodiments.

[0128] After analyzing a large amount of historical data, a ranking model has been derived that can provide reasonable POI scores in different scenarios / applications. The "cold start" challenge has also been solved by fallback to provide or guarantee customer experience for new users.

[0129] The following is a detailed description of the Golang-based POI service of the technology disclosed in this article, including the architecture that supports online POI recommendation and discovery, POI recommendations in different scenarios, and some results of the service.

[0130] As a language released in 2009, when multi-core processors were already available, "Go" was built for concurrency. Unlike threads that consume about 1MB of memory from the heap in java, Go has goroutines that consume about 2KB of memory, so millions of goroutines can be spun. In addition, goroutines come with channels to communicate safely between them and avoid the use of mutexes. Go is a compiled language similar to C / C++. It also uses garbage collection to allocate and remove objects like java. This guarantees running speed on hardware because it avoids the bytecode interpretation of the java VM step and avoids the annoyance of freeing and allocating variables in languages ​​like C / C++. Go has a good and fairly stable syntax. This makes code written in Go easy to maintain. There are neither classes nor inheritance in Go. Developers can easily understand the code, and different code parts do not deeply affect each other. Further, developers can work together on the same code base.

[0131] Microservices is a software development technique that builds applications as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and protocols are lightweight. In various embodiments, the POI service is a microservice in the entire system. If you zoom out, microservices like POI utilize a multi-layer service structure, such as Figure 4 As shown, a layer-based web service structure 470 is shown, for example, with an http server layer 472, a logic layer 474, and a database layer 476. The http server of layer 472 is responsible for sending http requests from the user end to the logic layer 474 in a load-balanced manner. The logic layer 474 plays the role of executing processing logic according to the http request. All data related to the logical processing can be stored in the database layer 476. When the logic layer 474 runs out of computing resources, as a non-limiting example, horizontal scaling such as Amazon's ASG (automatic scaling group) can be widely used. Since the logic layer 474 and the data layer (i.e., the database layer 476) are absolutely separated, the failure of a certain logic layer instance is unlikely to cause damage or loss of user data. The POI service of each embodiment follows this service architecture.

[0132] For distributed systems, since CAP (consistency, availability, and partition tolerance) may not be met at the same time, web services must be able to prevent cascading failures and achieve resilience in complex distributed systems where failures are inevitable. For POI services, as a non-limiting example, Hystrix can be used to achieve or guarantee the response time of services that reply by setting circuit breakers.

[0133] Since the logic layer often requires user data from the data layer, cache can be widely used to protect the database behind from downtime due to sudden workloads and shorten the response time of each request. There can be two methods that can be used: one is to set up a cache layer before the database layer, and the other is to set up a separate cache in the memory of each logical instance. For the POI service of each embodiment, Redis is adapted as a cache before the database layer, and the cache key and expiration time are set according to different scenarios / application requirements. Compared with building a cache module from scratch, Amazon Elastic Cache using, for example, Redis can provide elastic scaling and almost no or minimal downtime service, which can help in terms of service stability.

[0134] The POI service architecture of various embodiments and the use of cache in online POI recommendation will now be described by the following non-limiting examples.

[0135] Figure 5 A schematic diagram showing an overview of a system 570 for POI services is shown. The POI system 570 can be divided into four components: First, the API 571a is a layer that supports four POI user scenarios (e.g., prediction, suggestion, search, and ReverseGeo), and its results come from the middleware layer 571b. Second, the scheduler 571c dispatches http requests to the provider 571d. Third, the provider 571d is a layer that obtains POIs from POI providers (e.g., internal providers 572a and / or external providers 572b) and returns them to the middleware layer 571b. Fourth, the middleware 571b is a layer that processes the POIs returned from the provider layer 571d. The API layer 571a, the middleware layer 571b, the scheduler 571c, and the provider layer 571d can be located on the server side (e.g., at a communication server device). The API layer 571a, the middleware layer 571b, and the provider layer 571d will be further described below.

[0136] API 571a: There are four endpoints: Prediction, Suggestion, Search, and ReverseGeo. Prediction and suggestion are based on Pax historical data, which can be stored in a MySQL DB named Predictor DB based on Pax 30 days of historical data. When a user or passenger opens the corresponding App, the App calls the POI prediction endpoint to get the predicted pickup POI and / or predicted drop-off POI based on Pax (user) historical data and the user's current location. When the prediction result is not as expected, Pax clicks the input box in the App, and the App calls the POI suggestion endpoint to get a list of suggested POIs based on historical data, user current location, and city popular POIs (i.e., popular POIs in the city corresponding to the pickup POI and / or drop-off POI). When the suggestion result is not as expected, Pax types in a keyword, and the App calls the POI search endpoint to get a list of matching POIs based on the keyword. When the suggestion result is not as expected, Pax can go to the map to move the PIN to call the POI ReverseGeo endpoint to find the POI. In the context of various embodiments, the term "endpoint" may mean or refer to a module that can be called in code. Such a module may include a set of instructions.

[0137] Middleware 571b: There are several middlewares with functions such as normalizing the place IDs (identifiers or identifications) in the POIs received from different providers 571d into a unique place ID in a unified format, blacklisting bad POIs in the input POIs, removing duplicate POIs in the input POIs, and ranking the input POIs based on some fields and getting the results in the response of the suggestion and search endpoints (Prediction and ReverseGeo only return one POI, so no ranking is required).

[0138] Providers 571d: Based on the Pax location, data related to the corresponding city can be obtained and its associated city configuration can be used. Different cities can have different configurations for determining which providers should be used. Typically, there can be two or three groups of providers, and in the same group, search requests can be sent to these providers in parallel. If all providers in the same group (e.g., the first group) fail or do not respond, the request is sent to the second (or subsequent) group of providers. As a non-limiting example, and depending on the configuration, the internal provider 572a and Google (external provider 572b) can be set to the first group, Foursquare (external provider 572b) can be set to the second group, and the remaining (multiple) providers can be set to the third group.

[0139] Regarding the cache in online POI recommendation, you can also Figure 5As seen in FIG. 5 , the cache can be deployed in three layers, namely, the API layer 571a, the middleware layer 571b, and the provider layer 571d. The cache setup will be further described below.

[0140] In short, the API layer 571a sends a request, and the dispatcher layer 571c dispatches the request to the provider 571d. The provider 571d sends back the result. The middleware 571b processes the result to obtain the desired or wanted result. Finally, the result is returned to the user. The cache and database can be used to store past requests and results for POI recommendation.

[0141] API layer 571a: When an http request (e.g., from server 573) enters API layer 571a, the first cache layer is http cache 574 with the entire url as the cache key, and the cache life time (TTL) can be set to, for example, 30 seconds. For search scenarios, this cache setting can be used for repeated trials of nearby users at the same location (see Figure 3C and corresponding descriptions). Suggestions (please refer to Figure 3B Both the search and the search utilize the distance cache 577 to store the response results from the previous request. It is recommended to use the PaxID (or user ID) and (multiple) places (or (multiple) locations) (for example, in the format of latitude (lat), longitude (lng)) as keys. The search utilizes the typed (multiple) keywords and (multiple) places (lat / lng) as keys. The time to live (TTL) of the cache 577 can be set to, for example, one day. This can allow users in the same area to share their responses. The term "time-to-live" can mean the valid time of the data in the cache. Invalid data cannot be used again.

[0142] There is another cache named predictor cache 576 that can store the pickup or drop-off points for each request to predictor DB (i.e., database storage) 578. Historical data for the past 30 days can be stored in predictor DB 578 for predictions and recommendations, as will be discussed further below. If a request to predictor DB 578 can be answered by predictor cache 576, then there is no need to query the subsequent database (i.e., predictor DB 578).

[0143] Between the http cache 574, the predictor cache 576 and the distance cache 577, there may be a set of servers (eg, two servers are represented as 575a, 575b).

[0144] Predictor DB 578 may be located in the database layer of the microservice (e.g., Figure 4Typically, logic layer 474 first browses predictor cache layer 576. When a miss occurs, predictor DB 578 is browsed or accessed.

[0145] Predictor DB 578 and predictor cache 576 are located on the server side, for example, at a communication server device.

[0146] Provider layer 571d: When a request enters the provider layer 571d, the request first attempts to hit each provider's cache for a response (e.g., internal provider cache 581, Google cache 583a, Foursquare cache 583c, and "other" (or "etc") cache 583b (where "other" may refer to one or more other specific providers)). The TTL for any one or all of the external providers (e.g., Google 583a, Foursquare 583c, and etc. 583b) may be many days. The TTL for the internal provider cache 581 storing data from the internal provider 572a may be 10 minutes. This may be because the POI data in the internal provider 572a (e.g., additions and / or updates regarding discovered POIs) may be updated more frequently, and new POI data may become effective more quickly with a shorter TTL. It should be understood that the TTL schedule may be variable, depending on the frequency of updates. Figure 5 Also shown is a database storage 582 corresponding to the internal provider 572a, and corresponding cloud servers 584a, 584b, 584c for the external providers Google, "Other", and Foursquare.

[0147] Middlewares layer 571b: When the response from provider 571d goes to middleware 571b to process the returned POI, there are also various caches to help process the middleware functions. For example, general caches (e.g., detailed cache 579c) are stored in elastic search, and when POI detailed cache 579c contains POI detailed description (e.g., POI name, category, location, etc.), the TTL can be one day. There can be a meta cache 579a, which can set the TTL to one day to store the POI status as to whether the POI is blacklisted. Further, there can be corresponding caches for ranking 579d and entrance 579b to store the requested ranking and entrance information. For example, "entrance" marks the location where large public facilities are available for pick-up or drop-off, such as the gates of large shopping malls and airports. Entrance information about the accurate pick-up and drop-off points of these locations can greatly improve the customer experience of both.

[0148] Figure 5Also shown are database storage devices 580a, 580b, 580c corresponding to the meta cache 579a, entry cache 579b, and detail cache 579c, respectively.

[0149] In general, a server can handle request(s). A cache can store result(s) to avoid too many requests going to the database. A database storage can store user data. A provider's cloud servers can answer requests sent to them.

[0150] The online POI recommendation of various embodiments will now be further described by way of the following non-limiting examples.

[0151] In various embodiments, reverseGeo returns a POI based on the moved PIN.

[0152] In various embodiments, POI recommendations in scenarios such as prediction, search, and suggestion can be performed based on historical data. Prediction, search, and suggestion can be performed separately by utilizing a large amount of historical data to provide better recommendation performance that can more accurately meet the needs of users or customers, because the goal of the POI service is to save the effort required for users to obtain the desired pickup point and / or drop-off point. For suggestions and predictions, historical data can be stored in a database, such as a predictor DB, and the data can be provided and managed in different tables, and candidate POIs can be obtained by querying. For search, there can be many aspects or considerations, such as name keywords, areas, popularity, time arrangements, and distances, to calculate weighted sums as a combined score for POI ranking. These aspects can better describe POI characteristics and help users find target POIs more easily. Compared with only considering the location similarity in the known technology, this comprehensive score of various embodiments can give users a better customer experience when searching for target POIs as pickup points and / or drop-off points. Recommendations of the most likely points (including, for example, pickup points) will be described below.

[0153] search

[0154] In a search scenario, the user types one or more words in an input box or a search box, and the user expects the service to provide target POIs as a return. In order to make POIs sortable, a score can be assigned to each POI, which can be determined by one or more of the following factors or criteria:

[0155] Keywords:

[0156] It measures the score between the search keyword and the POI name or the acronym of the POI name. Each POI can have multiple acronyms. As a non-limiting example, the keyword matching score S KeywordIt can be calculated as shown in Equation 1.

[0157] S Keyword =max(s J ,s A ) Equation (1),

[0158] Among them, s J is the Jaccard similarity of the POI name and the search keyword, and if the search keyword exactly matches the POI name or acronym, then s A Returns 1 if yes, otherwise returns 0.

[0159] ·area:

[0160] S Region The score is measured based on the proximity between the POI area and the Pax (or user) area. If the POI area and the Pax area are the same, then S Region The score of is equal to 1, otherwise it is equal to 0, as shown in Equation 2.

[0161]

[0162] Where getRegion(.) is a function that takes any location (lat / lng) as input and returns the corresponding city where the location is located. If the POI and Pax are in different countries, the POI will be excluded from the result list. Therefore, it is guaranteed that the POI and Pax are in the same country.

[0163] Popularity:

[0164] S Popularity(*) The popularity of a POI is scored based on the number of times it has been selected as a pickup / drop-off point. It can be defined as follows:

[0165]

[0166]

[0167] Among them, Count Pickup is the number of times the POI is selected as a boarding point, Count Dropoff is the number of times the POI is selected as the drop-off point, and Count Max is the maximum number of times a POI in the result set is selected as a pick-up point or alighting point.

[0168] Time schedule:

[0169] The score of a POI is defined based on the probability that a Pax or user will pick up and drop off at the POI at a given time. For example, in the morning, POIs in residential areas are more likely to be pick-up points, but have a low probability of being drop-off points. The pick-up and drop-off time distribution of POIs can be pre-calculated offline, and therefore, the probability of a POI being a pick-up or drop-off point can be naturally derived. The detailed score can be defined as follows:

[0170] S Timing(Pickup) =Distri Pickup (t Q ) Equation (5),

[0171] S Timing(Dropoff) =Distri Dropoff (t Q ) Equation (6),

[0172] Among them, Distri * (.) is the time distribution of POI, and t Q is the query time of Pax. As a non-limiting example, in various embodiments, the time distribution of POIs can be obtained by a map (see Figure 6 ), where the key is the time (hour from 0:00 to 23:00, corresponding to the 24 hours of the day; see Figure 6 X-axis) and value (which refers to Figure 6 The “frequency” in ) is the ratio at which the POI has been selected as a pickup point or alighting point in history, and is therefore related to the number of times the POI has been selected as a pickup point or alighting point at a given or defined time.

[0173] ·distance:

[0174] It measures the score based on the distance between the POI and the location of the Pax. This factor is only applicable to pickup point searches. This can be defined as follows:

[0175] S Distance(Pickup) =1 / (1+e (2*(dist-2)) ) Equation (7),

[0176] Here, the distance dist may be measurable, for example, in km (kilometers).

[0177] The final score can then be calculated by a weighted sum as follows:

[0178]

[0179] Among them, the weighting factor α ιis determined by a machine learning algorithm, and F is a set of factors identified above, i.e., keywords, region, popularity, timing, distance. Then, for example, POIs can be ranked in descending order according to their corresponding scores. Only recommended POIs are listed on the App screen for presentation to the user or Pax.

[0180] suggestion

[0181] In the suggestion scenario, Pax (user) can get a list of suggested POIs for pick-up and drop-off points by clicking the corresponding App input box. Since the pick-up point can usually be a POI near Pax's location, and the drop-off point can usually be a popular place that Pax needs to go to, the pick-up point and drop-off point can be considered separately.

[0182] Pick-up point:

[0183] Two sources can be used for the pick-up point.

[0184] First, a database (e.g., a predictor DB) can be used, where the database can store 30 days of historical data by managing a table about POI preferences. The database stores past Pax IDs and corresponding boarding points. This allows querying past historical boarding points by Pax ID.

[0185] Second, the POI service can have an internal module named "Nearby". This internal module takes the Pax location (lat / lng) as input and responds by calling different providers depending on the configuration (see e.g., Figure 5 Provider layer 571d) to return nearby POIs based on distance. In various embodiments, the configuration defines the priorities of different providers for services to make requests. For example, refer to Figure 5 , internal provider 572a and Google (as part of external providers 572b) can be set as the first set of providers to be queried, and if no satisfactory results are found, a second set, such as foursquare (as part of external providers 572b), can be queried.

[0186] By considering these two sources, both Pax's personal preference and the distance between Pax's location and the POI may be taken into account, which may improve the accuracy of the suggested pickup point(s).

[0187] Drop-off point:

[0188] Two sources can be used for the drop-off point.

[0189] First, another table storing the most frequently used drop-off points (MFU drop-off points) by Pax ID in a database (e.g., predictor DB) can be used. This allows querying the most frequently used drop-off points by Pax ID.

[0190] Secondly, you can use the top categories in Redis, which stores the top popular POIs in each city (e.g., food, shopping malls, airports, etc.), and can be queried by city ID.

[0191] By considering these two sources, both Pax's personal preferences and others' shared preferences can be suggested, which can improve the accuracy of the suggested pickup point(s).

[0192] predict

[0193] In the prediction scenario, the predicted pick-up point and / or predicted drop-off point can be provided to fill the booking order. Similarly, the pick-up point and drop-off point can be considered separately.

[0194] Cold start:

[0195] For new Pax (users) without any old booking history, prediction can use the location (lat / lng) to call reverseGeo as a fallback to solve or overcome the cold start problem. ReverseGeo uses the Pax location as a PIN on a map to find the nearest POI for Pax.

[0196] Pick-up point:

[0197] For Pax with some booking history, there may be two sources of pickup point predictions, e.g., the first last drop-off point (LDF) and a table in a database (e.g., predictor DB). The user's previous pickup point POIs stored in the database may be used. This may be done by querying the Pax ID and the wifi SSID (service set identifier) ​​to obtain the previous pickup point POIs. That is, places where Pax has frequently been in the past may be recommended as predicted pickup points. If no record is found in the database (e.g., predictor DB), the LDF may be used. The LDF is the last drop-off point of Pax during the past 24 hours. For both predictor DB and LDF, the POI closest to the user's location is returned. If all POIs are outside a certain (or threshold) distance, reverseGeo may be relied upon.

[0198] The LDF may come from another (micro)service that accesses a database different from the predictor DB (e.g., a booking DB) to obtain the last drop-off point of Pax. The booking DB may be located or stored in MySQL. The booking DB may be located on the server side, for example, at a communication server device. The booking DB may store booking information, for example, one or more of a booking code, a timestamp, a passenger ID, a pickup point, a drop-off point, etc.

[0199] Drop-off point:

[0200] For the drop-off point prediction, a table in a database (e.g., predictor DB) can be used that pairs the drop-off point with the pickup point for each passenger (or user) by hour of the day. Given any Pax ID and time period, the pickup point and drop-off point pair can be easily obtained by querying. Past drop-off points paired with the same pickup point can be used as the drop-off point prediction for Pax. That is, in the drop-off point prediction, it can be assumed that people are likely to follow their daily schedule. The same drop-off point selected by Pax in past (multiple) bookings during the same time period of the day can be recommended.

[0201] The performance of the POI service in a production environment will now be described. The production environment setup and metrics for measuring performance will first be described, and then performance results according to the metrics for the POI service will be described.

[0202] Production environment setup and measuring metrics

[0203] The configuration of the POI service is an Amazon c5.4xlarge EC2 instance. For the c5.4xlarge instance, Amazon provides 16 virtual CPU cores and 32G memory. The storage device is EBS only, and the dedicated EBS bandwidth is 3,500Mbps. In addition, up to 10Gbps bandwidth is provided for network performance. The cache uses Amazon's elastic cache to implement online POI recommendations.

[0204] To measure the stability of the POI service in different scenarios / applications, the round-trip time (RTT) is shown, which is equal to the duration from sending a request to returning a response. To better describe the RTT, it is measured according to the 95th and 99th percentiles. The smaller the RTT variation between peak and off-peak hours, the more stable the system is.

[0205] In the case of using cache in the system, and referring to Figure 5, the effectiveness of the cache is measured based on the cache hit rate in the API 571a, middleware 571b, and provider 571d layers. For the API layer 571a, the predictor cache 576 used in the prediction scenario is used as a non-limiting example. For the middleware layer 571b, the meta cache 579a used for blacklist checking is used as a non-limiting example. For the provider layer 571f, the caches 581, 583a of the internal provider and Google are shown, representing the internal provider 572a and the external provider 572b, respectively.

[0206] Performance Results

[0207] The performance of the POI service will be shown and described from three aspects based on the above measurement metrics. First, the overall performance during a day is provided. Then, the performance of the round-trip time (RTT) for scenarios such as prediction, suggestion, search, and ReverseGeo is shown. Finally, the use of cache in the POI service is shown.

[0208] Overall performance of POI service:

[0209] Based on statistics, the query rate per second (QPS) of the POI service varies during the day. The periods from 7:00 to 9:00 in the morning and from 17:00 to 20:00 in the afternoon are defined as peak hours. The QPS peak generally occurs around 6:00 in the afternoon. The QPS becomes very low at midnight. The average QPS is about 200 per instance. As expected, CPU usage varies due to QPS. The highest CPU usage is controlled below 60% every day. In terms of goroutines, more QPS generates more goroutines and leads to increased CPU usage. The average value of the number of goroutines is about 1.2k per instance. During the whole day, the value of memory usage is stable at about 25G per instance.

[0210] Performance of POI services in various scenarios / applications:

[0211] 7A to 7D The RTT of the prediction, suggestion, search, and ReverseGeo scenarios are shown respectively. 7A to 7D The Y-axis in the graph represents the round trip time (RTT) in “ms”. 7A to 7D The label "Wed 16" on the x-axis in the graph refers to the beginning of a new day in the month, the label is the 16th day and that day is Wednesday.

[0212] exist 7A to 7D , the corresponding dashed lines denoted as “Warning” and “CB Open” refer to the time threshold at which the service is safe and the time threshold at which the service cannot reply to the request within the required time and can be considered as unresponsive, respectively.

[0213] As can be observed, for 7A to 7D Each of shows two solid lines. The upper solid line represents "P99", i.e., 99 percent of the statistical data, and the lower solid line represents "P95", i.e., 95 percent of the statistical data.

[0214] If targeted Figure 7C As can be observed from the search in , the RTTs for the 95th and 99th percentiles are 500ms and 730ms respectively. Regardless of how the QPS changes over time within a day, the RTT is stable. Furthermore, Fig. 7A The predictions in Figure 7B The suggestions and Fig.7D The results for ReverseGeo in show similar stability in terms of RTT. The 95th / 99th percentiles of RTT vary in each scenario, as shown in Table 1 below. The logic of Search and ReverseGeo involves querying external providers (e.g., Google or Foursquare) or ElasticSearch, which results in longer RTT than Prediction and Suggest.

[0215] Table 1: RTT of different scenarios.

[0216]

[0217] Performance of cache in POI service:

[0218] Table 2 shows the average cache hit rate of the predictor DB cache 576 (for the API layer 571a), the meta cache 579a (for the middleware layer 571b), the internal provider cache 581 (as the internal provider 572a), and the Google cache 583a (as the external provider 572b) within one day. As can be observed, the high cache hit rate in the predictor DB cache 576 and the meta cache 579a shows the effectiveness of the cache usage in minimizing or avoiding repeated requests to the database. For the provider layer 571d, the cache hit rate of the internal provider cache 581 is much lower than the cache hit rate of the external provider Google cache 583a. This is because the internal provider is frequently updated and the TTL of its cache 581 is much shorter than the TTL of the external provider 572b.

[0219] Table 2: Cache hit ratios of caches in different tiers

[0220]

[0221] As described above, a technology for real-time point of interest (POI) recommendation can be provided. For transportation services (such as taxi services), for example, when a booking order is generated or generated (e.g., through an App), a user can find the POI of the desired pickup point and / or drop-off point through one or more actions. These (multiple) actions may include (i) "Prediction", in which a predicted pickup point POI and / or predicted drop-off point POI are generated based on at least one of the user's historical data or current location; (ii) "Suggestion", in which the user clicks on an input field to obtain a list of suggested POIs based on at least one of the user's historical data, current location, or popular POIs of a related city; (iii) "Search", in which the user types information, such as a keyword, thereby providing a list of matching POIs based on the keyword; and (iv) "ReverseGeo", in which the user can go to a map to move a PIN to find a POI. These actions can be independent of each other. These actions may occur in any order, or may occur in a sequential order, e.g., "Prediction" may be performed first, followed by "Suggestions" when the predicted results are not as expected, "Search" when the suggested results are not as expected, and "Reverse-Geo" when the suggested / search results are not as expected. A booking flow may be defined in the order of using Prediction / Suggestions / Search / ReverseGeo to find a POI as a pickup or drop-off point. The order may be based on the degree to which the user's effort can be saved or minimized (measured by the number of clicks on the screen / App).

[0222] However, it should be understood that it may not be necessary for all four actions to occur for any one booking order. In other words, any one, two, three, or all of the prediction, suggestion, search, and ReverseGeo actions may be performed during the user's process of booking an order for a transportation-related service. As a non-limiting example, the user may choose to skip any action or step in order to freely use any of these actions, e.g., after prediction, the user may jump directly to ReverseGeo without going through suggestion and / or search.

[0223] In various embodiments, prediction, suggestion, and search actions may be performed separately by utilizing historical data to provide better recommendation performance for desired pickup and drop-off points. For suggestion and prediction, historical data may be stored in a database in different tables, e.g., a predictor database. For search, one or more aspects / criteria may be considered: name keywords, region, popularity, time schedule, and distance to calculate a final score (e.g., as a weighted sum of combined scores) for POI ranking.

[0224] For searching, the scores of the following criteria for each POI may be used to calculate a final score of a weighted sum, and then the POIs are ranked in descending order according to their scores, and subsequently a list of recommended POIs is provided to the user:

[0225] (i) Keywords: Provides a score based on the search keyword and the POI name or the acronym of the POI name, with a higher score when they are close or match;

[0226] (ii) Region: A score is provided based on the relevance or proximity between the user's region (e.g., country) and the POI region, with a score of "1" when the two regions are the same and "0" otherwise (where the corresponding POI is then excluded from the search list);

[0227] (iii) Popularity: A score is provided based on the number of times a POI is selected as a pickup point (for pickup point search) or a drop-off point (for drop-off point search). The higher the number of times a POI is selected, the higher the score;

[0228] (iv) Timing: The score is defined based on the probability that a user will be picked up or dropped off at a specific POI at a given time. The score is higher when the probability that a POI is a pickup point (for pickup point search) or a drop-off point (for drop-off point search) is higher at a specific time when the transportation service is needed.

[0229] (v) Distance (applicable only to boarding point search): Provides a score based on the distance between the POI and the user's location, with a higher score being given a smaller distance.

[0230] For suggestions, by clicking on the relevant input field (e.g., in the App), a list of suggested POIs for pick-up and drop-off points is provided. Because pick-up points are usually POIs close to the user's location, and drop-off points are usually popular places that the user needs to go to, pick-up points and drop-off points are considered separately. In terms of pick-up points, two sources can be considered, namely: (i) a database (e.g., a predictor database) that stores 30 days of historical data on POI preferences, which is located in a table that stores user IDs and corresponding pick-up points in the past. This allows querying past historical pick-up points by user ID; (ii) the user's location (latitude / longitude) is used as input, and then nearby POIs are provided based on distance. Therefore, both the user's personal preferences and the distance between the user's Pax location and the POI can be considered, thereby improving the accuracy of the suggested pick-up points. In terms of drop-off points, two sources can be considered, namely: (i) a database (e.g., a predictor database) that stores data related to the most frequently used drop-off points (MFU drop-off points) in a separate table by user ID. This allows the most frequently used drop-off points to be queried by user ID; (ii) POIs classified by popularity in each city (e.g., food, shopping malls, airports, etc.) can be queried by city ID. Therefore, both the user's personal preferences and general common preferences can be suggested, thereby improving the accuracy of the suggested drop-off points.

[0231] For prediction, the pickup point can be predicted and / or the drop-off point can be predicted to fill the booking order. Similar to the suggestion, the pickup point and the drop-off point can be considered separately. In terms of the pickup point for which the user has historical booking data, two sources can be considered for the pickup point prediction, namely the first last drop-off point (LDF) and a table with data in a database (e.g., a predictor database). The LDF is the last drop-off point of the user during a 24-hour period. If Pax does not have an LDF, the user's previous pickup point POI stored in the database (predictor DB) can be used. This can be done by querying the user Pax ID and wifi SSID to obtain the previous pickup point POI. That is, in the prediction, the places where the user often appeared in the past can be recommended as the pickup point. In terms of the drop-off point for which the user has historical booking data, a table in a database (e.g., a predictor database) can be used, which pairs each user's drop-off point with the pickup point by the hour of the day. Given a user ID and a time period, a pickup point and drop-off point pair can be obtained by querying. Past drop-off points paired with the same pickup point can be used as the user's drop-off point prediction. That is, in the drop-off point prediction, it can be assumed that people are likely to follow their daily schedule. The same drop-off point selected by the user in past bookings during the same time period of the day can be recommended. In the case of a new user "cold start" without any historical booking data, the user's location (latitude / longitude) can be used as a PIN on a map to find the user's nearest POI (similar to "ReverseGeo" above).

[0232] Also as described above, the POI (point of interest) service of each embodiment can be built with a Golang-based microservice architecture. Online challenges can be solved by deploying technology according to appropriate or unique scenarios or applications. The POI service can help increase the rate of completed bookings while saving passengers the energy of finding suitable pick-up and / or drop-off points. It should be understood that any of the predictions, suggestions, or searches can be customized according to the habits or preferences of the user (or passenger). Further, the time cost of the internal modules of the system can be optimized.

[0233] It should be understood that the present invention has been described by way of example only. Various modifications may be made to the techniques described herein without departing from the spirit and scope of the appended claims. The disclosed techniques include techniques that may be provided in an independent manner or in combination with one another. Therefore, features described with respect to one technique may also be presented in combination with another technique.

Claims

1. A communication server device for recommending one or more points of interest of transportation-related services to a user, the communication server device comprising a processor and a memory, the communication server device being configured to execute instructions in the memory under the control of the processor so as to: In response to receiving the user data including a data field indicating a location of the user, and further in response to the communication server device determining that there is no historical data associated with the user and corresponding to a transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicating the first point of interest and data indicating the second point of interest for reception by the user communication device, and When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, a list of suggested points of interest is determined based on the historical data, the location of the user, and popular points of interest in the city.

2. The communication server device according to claim 1, wherein: In response to the communication server device determining that the historical data exists, and further in response to receiving user data including a data field indicating a time, To determine the second point of interest as the recommended destination location, the communication server device is further configured to determine, based on the historical data, that the second point of interest is paired with the first point of interest within a predetermined time interval including the time.

3. The communication server device according to claim 1 or 2, wherein: In response to the communication server device determining that the historical data exists, and further in response to receiving the user data including a data field indicating the location of the user, In order to determine the first point of interest, the communication server device is configured to: determining whether the historical data includes data indicating one or more historical origin locations of the transportation-related service; If it is determined that data indicating the one or more historical starting point locations exists, then defining the historical starting point location closest to the user's location as the first point of interest based on the data indicating the one or more historical starting point locations; and transmitting data indicating the historical starting point location for receipt by the user communication device; and If it is determined that there is no data indicating the one or more historical starting point locations, then determining data indicative of one or more historical destination locations included in the historical data; defining a historical destination location closest to the user's location as the first point of interest based on the data indicating the one or more historical destination locations; and Data indicative of the historical destination location is transmitted for receipt by the user communication device.

4. The communication server device according to claim 3, in, In order to determine the data indicative of the one or more historical destination locations, the communications server apparatus is configured to determine data indicative of the one or more historical destination locations associated with a predetermined historical time period.

5. A method executed in a communication server device for recommending one or more points of interest of transportation-related services to a user, the method comprising performing the following operations under the control of a processor of the communication server device: In response to receiving user data including a data field indicating a location of the user, and further in response to determining that there is no historical data associated with the user and corresponding to a transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to determining that historical data corresponding to the transportation-related service exists in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicating the first point of interest and data indicating the second point of interest for reception by the user communication device, and When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, a list of suggested points of interest is determined based on the historical data, the location of the user, and popular points of interest in the city.

6. The method of claim 5, wherein: In response to determining that the historical data exists, and further in response to receiving user data including a data field indicating a time, Determining the second point of interest includes determining, based on the historical data, that the second point of interest is paired with the first point of interest within a predetermined time interval that includes the time.

7. The method according to claim 5 or 6, In response to determining that the historical data exists, and further in response to receiving the user data including a data field indicating a location of the user, in, Determining the first point of interest includes: determining whether the historical data includes data indicating one or more historical origin locations of the transportation-related service; If it is determined that data indicating the one or more historical starting point locations exists, then defining the historical starting point location closest to the user's location as the first point of interest based on the data indicating the one or more historical starting point locations; and transmitting data indicating the historical starting point location for receipt by the user communication device; and If it is determined that there is no data indicating the one or more historical starting point locations, then determining data indicative of one or more historical destination locations included in the historical data; defining a historical destination location closest to the user's location as the first point of interest based on the data indicating the one or more historical destination locations; and Data indicative of the historical destination location is transmitted for receipt by the user communication device.

8. The method according to claim 7, in, Determining data indicative of the one or more historical destination locations includes determining data indicative of the one or more historical destination locations associated with a predetermined historical time period.

9. A computer program or a computer program product comprising instructions for implementing the method as claimed in any one of claims 5 to 8.

10. A non-transitory storage medium storing instructions which, when executed by a processor, cause the processor to perform the method of any one of claims 5 to 8.

11. A communication system for recommending one or more points of interest of transportation-related services to a user, the communication system comprising a communication server apparatus, at least one user communication device, and a communication network device, the communication network device being operable to enable the communication server apparatus and the at least one user communication device to establish communication with each other through the communication network device, in, The at least one user communication device comprises a first processor and a first memory, the at least one user communication device being configured to execute first instructions in the first memory under the control of the first processor so as to transmit user data including a data field indicating the location of the user for receipt by the communication server apparatus for processing; and The communication server device includes a second processor and a second memory, and the communication server device is configured to execute a second instruction in the second memory under the control of the second processor so as to: In response to receiving data indicative of the user data transmitted by the at least one user communication device, and further in response to the communication server apparatus determining that there is no historical data associated with the user and corresponding to the transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by the at least one user communication device to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicative of the first point of interest and data indicative of the second point of interest for reception by the at least one user communication device, and When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, a list of suggested points of interest is determined based on the historical data, the location of the user, and popular points of interest in the city.

12. A communication server device for recommending one or more points of interest of transportation-related services to a user, the communication server device comprising a processor and a memory, the communication server device being configured to execute instructions in the memory under the control of the processor to: In response to receiving the user data including a data field indicating a location of the user, and further in response to the communication server device determining that there is no historical data associated with the user and corresponding to a transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicating the first point of interest and data indicating the second point of interest for receipt by the user communication device; When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, a list of suggested points of interest is determined based on the historical data, the location of the user, and popular points of interest in the city, which includes: accessing data indicating a plurality of top-ranked points of interest in at least one destination category in a geographic area that includes the location of the user; determining one or more additional first points of interest as recommended destination locations for the transportation-related service based on the historical data and the data indicative of the plurality of top-ranked points of interest; and Data indicative of the one or more additional first points of interest are transmitted for receipt by the user communication device.

13. The communication server device according to claim 12, in, The historical data includes data indicating a plurality of historical destination locations most frequently visited by the user, wherein, in order to access the historical data, the communication server device is further configured to access data indicating the plurality of historical destination locations most frequently visited by the user, and In order to determine the one or more additional first points of interest, the communication server device is further configured to determine the one or more additional first points of interest based on data indicating the multiple historical destination locations most frequently visited by the user and data indicating the multiple top-ranked points of interest.

14. The communication server device according to claim 12 or 13, wherein: The communication server device is further configured to: In response to receiving user data including a data field indicating a user request corresponding to a starting point location, determining one or more second points of interest as recommended starting locations for the transportation-related service based on the historical data and the location; and Data indicative of the one or more second points of interest is transmitted for receipt by the user communication device.

15. The communication server device according to claim 14, wherein: In order to determine the one or more second points of interest, the communication server device is configured to determine the one or more second points of interest within a predetermined distance relative to the user's location as recommended starting locations.

16. The communication server device according to claim 14 or 15, wherein: The communication server apparatus is further configured to transmit, for each of the one or more second points of interest, data indicating a distance between the second point of interest and the user's location for receipt by the user communication device.

17. A method executed in a communication server device for recommending one or more points of interest of transportation-related services to a user, the method comprising performing the following operations under the control of a processor of the communication server device: In response to receiving the user data including a data field indicating a location of the user, and further in response to the communication server device determining that there is no historical data associated with the user and corresponding to a transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicating the first point of interest and data indicating the second point of interest for receipt by the user communication device; When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, a list of suggested points of interest is determined based on the historical data, the location of the user, and popular points of interest in the city, which includes: accessing data indicating a plurality of top-ranked points of interest in at least one destination category in a geographic area that includes the location of the user; determining one or more additional first points of interest as recommended destination locations for the transportation-related service based on the historical data and the data indicative of the plurality of top-ranked points of interest; and Data indicative of the one or more additional first points of interest are transmitted for receipt by the user communication device.

18. The method of claim 17, in, The historical data includes data indicating a plurality of historical destination locations most frequently visited by the user, wherein accessing the historical data comprises accessing data indicating the plurality of historical destination locations most frequently visited by the user, and Wherein, determining the one or more additional first points of interest comprises determining the one or more additional first points of interest based on data indicating the plurality of historical destination locations most frequently visited by the user and data indicating the plurality of top-ranked points of interest.

19. The method according to claim 17 or 18, wherein: In response to receiving user data including a data field indicating a user request corresponding to a starting point location, the method further comprises: determining one or more second points of interest as recommended starting locations for the transportation-related service based on the historical data and the location; and Data indicative of the one or more second points of interest is transmitted for receipt by the user communication device.

20. The method of claim 19, wherein: Determining the one or more second points of interest includes determining the one or more second points of interest within a predetermined distance relative to the user's location as recommended starting locations.

21. The method of claim 19 or 20, further comprising transmitting, for each of the one or more second points of interest, data indicating a distance between the second point of interest and the user's location for receipt by the user communication device.

22. A computer program or a computer program product comprising instructions for implementing the method as claimed in any one of claims 17 to 21.

23. A non-transitory storage medium storing instructions which, when executed by a processor, cause the processor to perform the method of any one of claims 17 to 21.

24. A communication system for recommending one or more points of interest of transportation-related services to a user, the communication system comprising a communication server apparatus, at least one user communication device, and a communication network device, the communication network device being operable to enable the communication server apparatus and the at least one user communication device to establish communication with each other via the communication network device, in, The at least one user communication device comprises a first processor and a first memory, the at least one user communication device being configured to execute first instructions in the first memory under control of the first processor to transmit user data comprising a first data field indicating a location and a second data field indicating a user request corresponding to a destination location for receipt by the communication server apparatus for processing; and The communication server device includes a second processor and a second memory, and the communication server device is configured to execute a second instruction in the second memory under the control of the second processor so as to: In response to receiving the user data including the first data field indicating the location of the user, and further in response to the communication server device determining that there is no historical data associated with the user and corresponding to the transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; and transmitting data indicating the first point of interest and data indicating the second point of interest for receipt by the user communication device; When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, a list of suggested points of interest is determined based on the historical data, the location of the user, and popular points of interest in the city, which includes: accessing data indicating a plurality of top-ranked points of interest in at least one destination category in a geographic area that includes the location of the user; determining one or more additional first points of interest as recommended destination locations for the transportation-related service based on the historical data and the data indicative of the plurality of top-ranked points of interest; and Data indicative of the one or more additional first points of interest are transmitted for receipt by the at least one user communication device.

25. A communication server device for recommending one or more points of interest of transportation-related services to a user, the communication server device comprising a processor and a memory, the communication server device being configured to execute instructions in the memory under the control of the processor to: In response to receiving the user data including a data field indicating a location of the user, and further in response to the communication server device determining that there is no historical data associated with the user and corresponding to a transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicating the first point of interest and data indicating the second point of interest for receipt by the user communication device; When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, determining a list of suggested points of interest based on the historical data, the location of the user, and popular points of interest in the city; receiving input data from the user communication device indicative of user-entered information describing, at least in part, a location requested by the user as an origin location or a destination location for the transportation-related service; generating one or more data records including a plurality of candidate data fields based on the input data, the plurality of candidate data fields having data of a corresponding plurality of candidate points of interest; Generate a corresponding standard data field for each candidate data field in the plurality of candidate data fields in the one or more data records according to at least two of the following standards: Keywords; area; Popularity; Time arrangement; as well as distance; In each of the respective criteria data fields, data is generated indicating a separate score associated with the corresponding criteria of the candidate interest point, wherein For the keyword, determining the individual score based on a similarity between the information and one or more words describing the name of the candidate point of interest; determining, for the region, the individual score based on proximity between a first geographic region including the location of the user and a second geographic region including the candidate point of interest; For the popularity, determining the individual score based on a number of times the candidate point of interest was historically selected as a requested location for historical transportation-related services based on historical data in one or more historical data records corresponding to transportation-related services; For the time arrangement, determining the individual score based on a probability that the candidate point of interest is selected by the user as the requested location at a defined time based on historical data corresponding to transportation-related services in one or more historical data records, the historical data being associated with the user; For the distance, determining the individual score based on the distance between the user's location and the candidate point of interest; For each candidate data field, generating a final score corresponding to the candidate interest point based on the individual scores; processing data indicative of those final scores; and Based on the results of processing the data indicative of the final scores, data indicative of the plurality of candidate points of interest are transmitted for receipt by the user communication device for presentation of the plurality of candidate points of interest via the user communication device.

26. The communication server device according to claim 25, in, To process the data indicative of the final scores, the communication server apparatus is configured to generate, in the one or more data records, ranking data indicating an ordering of the plurality of candidate points of interest according to the final scores of the plurality of candidate points of interest based on the data indicative of the final scores; and Wherein, in order to transmit the data, the communication server apparatus is configured to transmit data indicating the plurality of candidate points of interest so as to present the plurality of candidate points of interest in an order according to the ranking data via the user communication device.

27. The communication server device according to claim 25 or 26, in, To process the data indicative of the final scores, the communication server device is configured to compare the final score with a threshold value indicating a matching relevance of the candidate point of interest to the request location based on the data indicative of the final scores and for each candidate point of interest in the plurality of candidate points of interest; and Wherein, in order to transmit the data, the communication server device is configured to transmit data indicating the candidate points of interest whose final scores are determined to be equal to or higher than the threshold.

28. The communication server device according to any one of claims 25 to 27, wherein: To generate the final score, the communication server apparatus is configured to generate the final score by a weighted sum of the individual scores.

29. The communication server device according to any one of claims 25 to 28, wherein: The at least two criteria include the region, and in response to the individual score for the region being determined to indicate that the first geographic region and the second geographic region are in different countries, the communication server apparatus is further configured to exclude the candidate point of interest.

30. The communication server device according to any one of claims 25 to 29, wherein: In order to generate the corresponding standard data field, the communication server device is configured to generate, for each candidate data field, the corresponding standard data field of at least three criteria among the keyword, the area, the popularity, the time schedule and the distance.

31. The communication server device according to any one of claims 25 to 30, wherein: In order to generate the corresponding standard data field, the communication server device is configured to generate, for each candidate data field, corresponding standard data fields of at least four criteria among the keyword, the area, the popularity, the time schedule and the distance.

32. The communication server device according to any one of claims 25 to 31, wherein: responsive to the information, describing at least in part the request location as the origin location, In order to generate the corresponding standard data fields, the communication server device is configured to generate corresponding standard data fields for all the standards among the keyword, the area, the popularity, the time schedule and the distance for each candidate data field.

33. A method executed in a communication server device for recommending one or more points of interest of transportation-related services to a user, the method comprising performing the following operations under the control of a processor of the communication server device: In response to receiving the user data including a data field indicating a location of the user, and further in response to the communication server device determining that there is no historical data associated with the user and corresponding to a transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicating the first point of interest and data indicating the second point of interest for receipt by the user communication device; When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, determining a list of suggested points of interest based on the historical data, the location of the user, and popular points of interest in the city; receiving input data from the user communication device indicative of user-entered information describing, at least in part, a location requested by the user as an origin location or a destination location for the transportation-related service; generating one or more data records including a plurality of candidate data fields based on the input data, the plurality of candidate data fields having data of a corresponding plurality of candidate points of interest; Generate a corresponding standard data field for each candidate data field in the plurality of candidate data fields in the one or more data records according to at least two of the following standards: Keywords; area; Popularity; Time arrangement; as well as distance; In each of the respective criteria data fields, data is generated indicating a separate score associated with the corresponding criteria of the candidate interest point, wherein For the keyword, determining the individual score based on a similarity between the information and one or more words describing the name of the candidate point of interest; determining, for the region, the individual score based on proximity between a first geographic region including the location of the user and a second geographic region including the candidate point of interest; For the popularity, determining the individual score based on a number of times the candidate point of interest was historically selected as a requested location for historical transportation-related services based on historical data in one or more historical data records corresponding to transportation-related services; For the time arrangement, determining the individual score based on a probability that the candidate point of interest is selected by the user as the requested location at a defined time based on historical data corresponding to transportation-related services in one or more historical data records, the historical data being associated with the user; For the distance, determining the individual score based on the distance between the user's location and the candidate point of interest; For each candidate data field, generating a final score corresponding to the candidate interest point based on the individual scores; processing data indicative of those final scores; and Based on the results of processing the data indicative of the final scores, data indicative of the plurality of candidate points of interest are transmitted for receipt by the user communication device for presentation of the plurality of candidate points of interest via the user communication device.

34. The method of claim 33, in, Processing the data indicative of the final scores includes generating, in the one or more data records, ranking data indicating an ordering of the plurality of candidate points of interest according to the final scores of the plurality of candidate points of interest based on the data indicative of the final scores; and Wherein transmitting the data comprises transmitting data indicating the plurality of candidate points of interest for presenting the plurality of candidate points of interest via the user communication device in an order according to the ranking data.

35. The method of claim 33 or 34, in, Processing the data indicative of the final scores includes comparing the final score to a threshold value indicative of a matching relevance of the candidate point of interest to the request location based on the data indicative of the final scores and for each candidate point of interest of the plurality of candidate points of interest; and Wherein transmitting the data includes transmitting data indicating candidate interest points whose final scores are determined to be equal to or higher than the threshold.

36. The method of any one of claims 33 to 35, wherein: Generating the final score includes generating the final score by a weighted sum of the individual scores.

37. The method of any one of claims 33 to 36, wherein: The at least two criteria include the region, and in response to the individual score for the region being determined to indicate that the first geographic region and the second geographic region are in different countries, the method further includes excluding the candidate point of interest.

38. The method of any one of claims 33 to 37, wherein: Generating corresponding standard data fields includes generating corresponding standard data fields for at least three criteria among the keyword, the area, the popularity, the time arrangement, and the distance for each candidate data field.

39. The method of any one of claims 33 to 38, wherein: Generating corresponding standard data fields includes generating corresponding standard data fields for at least four criteria among the keyword, the area, the popularity, the time arrangement, and the distance for each candidate data field.

40. The method of any one of claims 33 to 39, wherein: responsive to the information, describing at least in part the request location as the origin location, Generating corresponding standard data fields includes generating corresponding standard data fields for all standards in the keyword, the area, the popularity, the time arrangement, and the distance for each candidate data field.

41. A computer program or computer program product comprising instructions for implementing the method of any one of claims 33 to 40.

42. A non-transitory storage medium storing instructions which, when executed by a processor, cause the processor to perform the method of any one of claims 33 to 40.

43. A communication system for recommending one or more points of interest of transportation-related services to a user, the communication system comprising a communication server apparatus, at least one user communication device, and a communication network device, the communication network device being operable to enable the communication server apparatus and the at least one user communication device to establish communication with each other via the communication network device, in, The at least one user communication device comprises a first processor and a first memory, the at least one user communication device being configured to execute, under control of the first processor, first instructions in the first memory so as to transmit user data comprising a first data field indicating a location of the user and a second data field having input data indicating information input by the user for reception by the communication server apparatus for processing, the information at least partially describing a location requested by the user as a starting location or a destination location for the transportation-related service; and The communication server device includes a second processor and a second memory, and the communication server device is configured to execute a second instruction in the second memory under the control of the second processor so as to: In response to receiving the user data including the first data field indicating the location of the user, and further in response to the communication server device determining that there is no historical data associated with the user and corresponding to the transportation-related service, retrieving data representing a map including the location; and transmitting data representing the map for receipt by a user communication device of the user to present the map to the user via the user communication device in order to determine points of interest on the map as recommended starting locations for the transportation-related service; and In response to the communication server device determining that historical data corresponding to a transportation-related service is present in the one or more data records, the historical data being associated with the user, determining a first point of interest as a recommended starting location for the transportation-related service based on the historical data and the location of the user; determining a second point of interest as a recommended destination location for the transportation-related service based on the historical data and the location of the user, the first point of interest and the second point of interest being paired with each other and corresponding to a historical transportation-related service; transmitting data indicating the first point of interest and data indicating the second point of interest for receipt by the user communication device; When the prediction results of the first point of interest and the second point of interest are not as expected, in response to the user clicking the input box, determining a list of suggested points of interest based on the historical data, the location of the user, and popular points of interest in the city; receiving input data from the user communication device indicative of user-entered information describing, at least in part, a location requested by the user as an origin location or a destination location for the transportation-related service; generating one or more data records including a plurality of candidate data fields based on the input data, the plurality of candidate data fields having data of a corresponding plurality of candidate points of interest; Generate a corresponding standard data field for each candidate data field in the plurality of candidate data fields in the one or more data records according to at least two of the following standards: Keywords; area; Popularity; Timing; and distance; In each of the respective criteria data fields, data is generated indicating a separate score associated with the corresponding criteria of the candidate interest point, wherein For the keyword, determining the individual score based on a similarity between the information and one or more words describing the name of the candidate point of interest; determining, for the region, the individual score based on proximity between a first geographic region including the location of the user and a second geographic region including the candidate point of interest; For the popularity, determining the individual score based on a number of times the candidate point of interest was historically selected as a requested location for historical transportation-related services based on historical data in one or more historical data records corresponding to transportation-related services; For the time arrangement, determining the individual score based on a probability that the candidate point of interest is selected by the user as the requested location at a defined time based on historical data corresponding to transportation-related services in one or more historical data records, the historical data being associated with the user; For the distance, determining the individual score based on the distance between the user's location and the candidate point of interest; For each candidate data field, generating a final score corresponding to the candidate interest point based on the individual scores; processing data indicative of those final scores; and Based on the results of processing the data indicative of the final scores, data indicative of the plurality of candidate points of interest are transmitted for receipt by the user communication device for presentation of the plurality of candidate points of interest via the user communication device.

Citation Information

Patent Citations

  • Systems and Methods for Personalized Multi-Destination Trip Planning

    US20150330800A1

  • Determining a Location Related to On-Demand Services Through Use of Portable Computing Devices

    US20170316359A1

  • On-demand coordinated comestible item delivery system

    US20190122164A1