WO2022126354A1 - Systems and methods for obtaining estimated time of arrival in online to offline services - Google Patents
Systems and methods for obtaining estimated time of arrival in online to offline services Download PDFInfo
- Publication number
- WO2022126354A1 WO2022126354A1 PCT/CN2020/136374 CN2020136374W WO2022126354A1 WO 2022126354 A1 WO2022126354 A1 WO 2022126354A1 CN 2020136374 W CN2020136374 W CN 2020136374W WO 2022126354 A1 WO2022126354 A1 WO 2022126354A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- segment
- vector
- global
- service request
- model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/34—Route searching; Route guidance
- G01C21/3407—Route searching; Route guidance specially adapted for specific applications
- G01C21/3438—Rendezvous; Ride sharing
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/20—Monitoring the location of vehicles belonging to a group, e.g. fleet of vehicles, countable or determined number of vehicles
- G08G1/202—Dispatching vehicles on the basis of a location, e.g. taxi dispatching
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/04—Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
Definitions
- the present disclosure generally relates to systems and methods for online to offline services, and in particular, to systems and methods for obtaining estimated time of arrival (ETA) for a service request.
- ETA estimated time of arrival
- O2O services e.g. online to offline transportation services
- a user that requests such transportation service may indicate a starting location and a destination of the O2O service to determine one or more suitable routes.
- it is important to accurately predict the arrival time at the destination which can help estimate service fee and/or provide information for the user to know the estimated time of arrival (ETA) at the destination. Therefore, it is desirable to provide systems and methods for accurately predicting the arrival time at the destination of a route.
- a system for obtaining estimated time of arrival (ETA) for a service request from a service requester may include one or more storage devices and one or more processors configured to communicate with the one or more storage devices.
- the one or more storage devices may include a set of instructions.
- the one or more processors may be directed to perform one or more of the following operations.
- the one or more processors may receive the service request from a terminal of the service requester.
- the service request may comprise a starting location and a destination.
- the one or more processors may obtain a route linking the starting location and the destination.
- the route may comprise a plurality of road segments each having a corresponding link representing features of the road segment.
- the one or more processors may obtain one or more global features associated with the service request.
- the one or more processors may use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) .
- the one or more processors may use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments.
- the one or more processors may determine a segment weight of V for each road segment based on V and its corresponding local segment vector.
- the one or more processors may obtain a global segment vector for each road segment based on its corresponding segment weight and V.
- the one or more processors may obtain a segment vector for each road segment by combining its corresponding local and global segment vectors.
- the one or more processors may obtain the ETA for the service request based on the segment vectors.
- the one or more processors may combine all segment vectors to form an overall combined vector.
- the one or more processors may obtain the ETA for the service request based on the overall combined vector.
- the one or more processors may calculate ETA for each road segment based on its corresponding segment vector.
- the one or more processors may combine the ETAs of the road segments to obtain the ETA of the service request.
- the segment weight of the global vector may be determined by a degree of similarity between the local segment vector and the global vector.
- the segment weight of the global vector may be determined using an attention mechanism.
- the one or more processors may determine a segment weight for the local segment vector for each road segment.
- the one or more processors may determine the segment vector for each road segment based on the segment weight of the local segment vector, the segment weight of the global vector, and corresponding local and global segment vectors.
- the first model may be a Gradient Boosting Decision Tree (GBDT) model.
- GBDT Gradient Boosting Decision Tree
- the GBDT model may be a tree-structure model including one or more trees.
- Each of the one or more trees include a root node and one or more split-nodes.
- Each node except for a final layer of split-nodes include a rule used to determine a path for the one or more global features to follow from the root node to one of the split-nodes in the final layer.
- An output of each tree may provide one or more vectors indicating which final split-node of the tree the one or more global features fall on such that at least one of the one or more global features is represented by the one or more vectors.
- the V may be a combination vector including the output of each tree of the GBDT model.
- the GBDT model may be obtained by training a first preliminary model using first training data set including global features of a plurality of first historical service requests to obtain at least one of the one or more trees, the nodes, the branches, and the rules of the GBDT model.
- the second model may comprise a Recurrent Neural Network (RNN) model.
- RNN Recurrent Neural Network
- the RNN model may be obtained by training a second preliminary model using a second training data set including features for each road segment of routes from a plurality of second historical service requests, global vectors of global features from the plurality of second historical service requests, and actual arrival times of the routes from the plurality of second historical service requests to obtain the rules of the RNN model.
- the one or more processors may transmit the estimated arrival time to the terminal of the service requester and directing the terminal to display the estimated arrival time.
- each of the road segment may be selected from at least one of length of the road segment, width of the road segment, direction of travel, traffic lights distribution, and lane condition.
- the global features of the service request may be selected from at least one of weather condition, temperature condition, GPS data, timing data, and traffic condition.
- the global features may further comprise data of a driver related to the service request, comprising at least one of the driver’s driving habit, mileage information, and demographic information of the driver including at least one of age, gender, and health conditions.
- the global features may further comprise data of a vehicle executing the service request, the data of the vehicle comprising at least one of make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, and maintenance record of the vehicle.
- a method for obtaining estimated time of arrival (ETA) for a service request from a service requester may include one or more of the following operations.
- One or more processors may receive the service request from a terminal of the service requester.
- the service request may comprise a starting location and a destination.
- the one or more processors may obtain a route linking the starting location and the destination.
- the route may comprise a plurality of road segments each having a corresponding link representing features of the road segment.
- the one or more processors may obtain one or more global features associated with the service request.
- the one or more processors may use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) .
- the one or more processors may use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments.
- the one or more processors may determine a segment weight of V for each road segment based on V and its corresponding local segment vector.
- the one or more processors may obtain a global segment vector for each road segment based on its corresponding segment weight and V.
- the one or more processors may obtain a segment vector for each road segment by combining its corresponding local and global segment vectors.
- the one or more processors may obtain the ETA for the service request based on the segment vectors.
- a system for obtaining estimated time of arrival (ETA) for a service request from a service requester may include an obtaining module configured to receive the service request from a terminal of the service requester.
- the service request may comprise a starting location and a destination.
- the obtaining module may also be configured to obtain a route linking the starting location and the destination.
- the route may comprise a plurality of road segments each having a corresponding link representing features of the road segment.
- the obtaining module may also be configured to obtain one or more global features associated with the service request.
- the system may also include a first analyzing module configured to use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) .
- the system may also include a second analyzing module configured to use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments.
- the second analyzing module may also be configured to determine a segment weight of V for each road segment based on V and its corresponding local segment vector.
- the second analyzing module may also be configured to obtain a global segment vector for each road segment based on its corresponding segment weight and V.
- the second analyzing module may also be configured to obtain a segment vector for each road segment by combining its corresponding local and global segment vectors.
- the second analyzing module may also be configured to obtain the ETA for the service request based on the segment vectors.
- a non-transitory computer readable medium may comprise at least one set of instructions.
- the at least one set of instructions may be executed by one or more processors of a computing device.
- the one or more processors may receive the service request from a terminal of the service requester.
- the service request may comprise a starting location and a destination.
- the one or more processors may obtain a route linking the starting location and the destination.
- the route may comprise a plurality of road segments each having a corresponding link representing features of the road segment.
- the one or more processors may obtain one or more global features associated with the service request.
- the one or more processors may use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) .
- the one or more processors may use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments.
- the one or more processors may determine a segment weight of V for each road segment based on V and its corresponding local segment vector.
- the one or more processors may obtain a global segment vector for each road segment based on its corresponding segment weight and V.
- the one or more processors may obtain a segment vector for each road segment by combining its corresponding local and global segment vectors.
- the one or more processors may obtain the ETA for the service request based on the segment vectors.
- FIG. 1 is a schematic diagram illustrating an example online to offline service system according to some embodiments of the present disclosure
- FIG. 2 is a schematic diagram illustrating components of an example computing device according to some embodiments of the present disclosure
- FIG. 3 is a schematic diagram illustrating components of an example mobile device according to some embodiments of the present disclosure.
- FIG. 4 is a block diagram illustrating an example processor according to some embodiments of the present disclosure.
- FIG. 5 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a service request according to some embodiments of the present disclosure
- FIG. 6 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a service request using Gradient Boosting Decision Tree (GBDT) , Recurrent Neural Network (RNN) , and attention mechanism according to some embodiments of the present disclosure;
- ETA estimated time of arrival
- GBDT Gradient Boosting Decision Tree
- RNN Recurrent Neural Network
- FIG. 7 is a diagram illustrating an example Gradient Boosting Decision Tree (GBDT) model according to some embodiments of the present disclosure
- FIG. 8 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a road segment using a Recurrent Neural Network (RNN) model according to some embodiments of the present disclosure.
- ETA estimated time of arrival
- RNN Recurrent Neural Network
- FIG. 9 is a diagram illustrating a portion of an example RNN model according to some embodiments of the present disclosure.
- the flowcharts used in the present disclosure illustrate operations that systems implemented according to some embodiments of the present disclosure. It is to be expressly understood, that the operations of the flowchart may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
- systems and methods disclosed in the present disclosure are described primarily regarding online to offline transportation service, it should also be understood that this is only one example embodiment.
- the systems and methods of the present disclosure may be applied to any other kind of on demand service which requires obtaining of ETA.
- the systems and methods of the present disclosure may be applied to transportation systems of different environments including land (e.g. roads or off-road) , water (e.g. river, lake, or ocean) , air, aerospace, or the like, or any combination thereof.
- the vehicle of the transportation systems may include a taxi, a private car, a hitch, a bus, a train, a bullet train, a high-speed rail, a subway, a boat, a vessel, an aircraft, a spaceship, a hot-air balloon, a driverless vehicle, or the like, or any combination thereof.
- the transportation systems may also include any transportation system for management and/or distribution, for example, a system for sending and/or receiving an express.
- the application of the systems and methods of the present disclosure may include a mobile device (e.g. smart phone or pad) application, a webpage, a plug-in of a browser, a client terminal, a custom system, an internal analysis system, an artificial intelligence robot, or the like, or any combination thereof.
- passenger, ” “requester, ” “requestor, ” “service requester, ” “service requestor, ” and “customer” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may request or order a service.
- driver, ” “provider, ” “service provider, ” and “supplier” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may provide a service or facilitate the providing of the service.
- user in the present disclosure is used to refer to an individual, an entity or a tool that may request a service, order a service, provide a service, or facilitate the providing of the service.
- terms “requester” and “requester terminal” may be used interchangeably
- terms “provider” and “provider terminal” may be used interchangeably.
- the terms “request, ” “service, ” “service request, ” and “order” in the present disclosure are used interchangeably to refer to a request that may be initiated by a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, a supplier, or the like, or any combination thereof.
- the service request may be accepted by any one of a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, or a supplier.
- the service request is accepted by a driver, a provider, a service provider, or a supplier.
- the service request may be chargeable or free.
- the positioning technology used in the present disclosure may be based on a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a Galileo positioning system, a quasi-zenith satellite system (QZSS) , a wireless fidelity (WiFi) positioning technology, or the like, or any combination thereof.
- GPS global positioning system
- GLONASS global navigation satellite system
- COMPASS compass navigation system
- Galileo positioning system Galileo positioning system
- QZSS quasi-zenith satellite system
- WiFi wireless fidelity positioning technology
- the present disclosure relates to systems and methods for obtaining estimated time of arrival (ETA) for a service request based on associated global features in combination with road segment features to provide more accurate ETA.
- ETA estimated time of arrival
- the systems and the methods in the present disclosure may receive a service request.
- the service request may include a starting location and a destination.
- the systems and the methods may obtain a route linking the starting location and the destination.
- the route may include a plurality of road segments each having a corresponding link representing features of the road segment.
- the systems and the methods may additionally obtain one or more global feature associated with the service request.
- the systems and the methods may use a Gradient Boosting Decision Tree (GBDT) model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) .
- the V may be input into a Recurrent Neural Network (RNN) model.
- RNN Recurrent Neural Network
- a global segment vector for each of the road segments may be obtained by processing the V using an attention mechanism.
- the systems and the methods may use the RNN model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments.
- the systems and the methods may use the RNN model to obtain the ETA of the route based on the global vector and the local segment vector for each of the road segments.
- the RNN model obtains the ETA for the route by analyzing the features for each of the road segments of the route, such as the length of the road segment, width of the road segment, direction of travel, traffic lights distribution, and lane condition, etc. Because global features such as weather condition, temperature condition, GPS data, timing data, traffic condition, etc. are not directly input into the RNN model, the traditional process for obtaining the ETA for the route using the RNN model failed to take the global features into consideration and therefore leads to less accurate ETA. Compared to the traditional process, the systems and the methods in the present disclosure process the global features using the GBDT model to obtain the global vector V for the service request.
- the systems and the methods also use the attention mechanism to extract, from the V, the global segment vector for each of the road segments, which is effective to determine the ETA for each road segment.
- the input of the RNN model is richer and the global features may be considered, which improves the accuracy of the determined ETA.
- FIG. 1 is a schematic diagram illustrating an example online to offline service system according to some embodiments of the present disclosure.
- the online to offline service system may be a system for online to offline services.
- the online to offline service system 100 may be an online transportation service platform for transportation services such as taxi hailing, chauffeur services, delivery vehicles, express car, carpool, bus service, driver hiring, shuttle services, take-out services, navigation services, vehicle sharing services, etc.
- the online to offline service system 100 may include a server 110, a network 120, a user terminal 130, a storage device 150, and a positioning system 160.
- the server 110 may include a processing device 112.
- the server 110 may be a single server or a server group.
- the server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) .
- the server 110 may be local or remote.
- the server 110 may access information and/or data stored in the user terminal 130 and/or the storage device 150 via the network 120.
- the server 110 may be directly connected to the user terminal 130 and/or the storage device 150 to access stored information and/or data.
- the server 110 may be implemented on a cloud platform.
- the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
- the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
- the server 110 may include a processing device 112.
- the processing device 112 may process information and/or data relating to the online to offline service system 100. For example, the processing device 112 may determine an ETA of a route of a service request.
- the processing device 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) .
- the processing device 112 may include one or more hardware processors, such as a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field-programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
- CPU central processing unit
- ASIC application-specific integrated circuit
- ASIP application-specific instruction-set processor
- GPU graphics processing unit
- PPU physics processing unit
- DSP digital signal processor
- FPGA field-programmable gate array
- PLD
- the network 120 may facilitate the exchange of information and/or data.
- one or more components in the online to offline service system 100 e.g., the server 110, the user terminal 130, the storage device 150, or the positioning system 160
- the server 110 may receive a service request from the user terminal 130 via the network 120.
- the server 110 may transmit an ETA of a route of the service request to the user terminal 130 via the network 120.
- the network 120 may be any type of wired or wireless network, or a combination thereof.
- the network 120 may include a cable network, a wireline network, an optical fiber network, a telecommunications network, an intranet, the Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth TM network, a ZigBee TM network, a near field communication (NFC) network, or the like, or any combination thereof.
- the network 120 may include one or more network access points.
- the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, ..., through which one or more components of the online to offline service system 100 may be connected to the network 120 to exchange data and/or information.
- the user terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a built-in device in a motor vehicle 130-4, or the like, or any combination thereof.
- the mobile device 130-1 may include a smart home device, a wearable device, a mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
- the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof.
- the wearable device may include a bracelet, footgear, glasses, a helmet, a watch, clothing, a backpack, a smart accessory, or the like, or any combination thereof.
- the mobile device may include a mobile phone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, a laptop, a desktop, or the like, or any combination thereof.
- the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, augmented reality glasses, an augmented reality patch, or the like, or any combination thereof.
- the virtual reality device and/or the augmented reality device may include a Google Glass TM , a RiftCon TM , a Fragments TM , a Gear VR TM , etc.
- the built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc.
- the user terminal 130 may be a device with positioning technology for locating the position of a user of the user terminal 130 (e.g., a service requester or a service provider) and/or the user terminal 130.
- the user terminal 130 may communicate with one or more other positioning devices to determine the position of the user terminal 130.
- the user terminal 130 may send positioning information to the server 110.
- the user terminal 130 may receive/transmit information related to the online to offline service system 100 from/to one or more components (e.g., the server 110, the storage device 150, the positioning system 160) of the online to offline service system 100.
- a user of the user terminal 130 may input a departure location and a destination through the user terminal 130.
- the user terminal 130 may transmit the user’s input to the server 110 (e.g., request a navigation service) .
- the user terminal 130 may receive, from the server 110, signals including a route from the departure location to the destination and/or an ETA of the route and display the route and/or the ETA.
- the user terminal 130 may include a requester terminal and a provider terminal.
- a requester may be a user of the requester terminal.
- the terms “passenger, ” “requester, ” “service requester, ” and “customer” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may request or order a service.
- a provider may be a user of the provider terminal.
- driver, ” “provider, ” “service provider, ” and “supplier” in the present disclosure are used interchangeably to refer to an individual, an entity, or a tool that may provide a service or facilitate the providing of the service.
- the term “user” in the present disclosure may refer to an individual, an entity, or a tool that may request a service, order a service, provide a service, or facilitate the providing of the service.
- the user may be a passenger, a driver, an operator, or the like, or any combination thereof.
- passenger and bypassenger terminal may be used interchangeably, and terms “driver” and “driver terminal” may be used interchangeably.
- the term “request, ” “service request, ” “order, ” in the present disclosure refers to a request that initiated by a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, a supplier, or the like, or any combination thereof.
- the service request may be accepted by any one of a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, or a supplier.
- the service request may be chargeable, or free.
- the user of the user terminal 130 may be someone other than the requester.
- a user A of the requester terminal may use the requester terminal to send a service request for a user B, or receive service and/or information or instructions from the server 110.
- the user of the provider terminal may be someone other than the provider.
- a user C of the provider terminal may use the provider terminal to receive a service request for a user D, and/or information or instructions from the server 110.
- “service requester, ” “requester, ” and “requester terminal” may be used interchangeably, and “service provider, ” “provider, ” and “provider terminal” may be used interchangeably.
- the storage device 150 may store data and/or instructions. In some embodiments, the storage device 150 may store data obtained from the user terminal 130. For example, the storage device 150 may store service requests obtained from the user terminal 130. In some embodiments, the storage device 150 may store data and/or instructions that the server 110 may execute or use to perform example methods described in the present disclosure. For example, the storage device 150 may store data and/or instructions that the server 110 may execute or use to determine an ETA of a route of a service request described in the present disclosure. In some embodiments, the storage device 150 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof.
- ROM read-only memory
- Example mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc.
- Example removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc.
- Example volatile read-and-write memory may include a random access memory (RAM) .
- Example RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyrisor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc.
- DRAM dynamic RAM
- DDR SDRAM double date rate synchronous dynamic RAM
- SRAM static RAM
- T-RAM thyrisor RAM
- Z-RAM zero-capacitor RAM
- Example ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically-erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc.
- the storage device 150 may be implemented on a cloud platform.
- the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
- the storage device 150 may be connected to the network 120 to communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the user terminal 130, etc. ) .
- One or more components in the online to offline service system 100 may access the data or instructions stored in the storage device 150 via the network 120.
- the storage device 150 may be directly connected to or communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the user terminal 130, etc. ) .
- one or more components in the online to offline service system 100 e.g., the server 110, the user terminal 130, etc.
- the storage device 150 may be part of the server 110.
- the positioning system 160 may determine information associated with an object, for example, the user terminal 130, etc. For example, the positioning system 160 may determine a current location of the user terminal 130.
- the positioning system 160 may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a BeiDou navigation satellite system, a Galileo positioning system, a quasi-zenith satellite system (QZSS) , etc.
- the information may include a location, an elevation, a velocity, or an acceleration of the object, or a current time.
- the location may be in the form of coordinates, such as, latitude coordinate and longitude coordinate, etc.
- the positioning system 160 may include one or more satellites, for example, a satellite 160-1, a satellite 160-2, and a satellite 160-3.
- the satellites 160-1 through 160-3 may determine the information mentioned above independently or jointly.
- the satellite positioning system 160 may send the information mentioned above to the network 120 or the user terminal 130, via wireless connections.
- information exchanging of one or more components in the online to offline service system 100 may be achieved by way of requesting a service.
- the object of the service request may be any product.
- the product may be a tangible product or an immaterial product.
- the tangible product may include food, medicine, commodity, chemical product, electrical appliance, clothing, car, housing, luxury, or the like, or any combination thereof.
- the immaterial product may include a servicing product, a financial product, a knowledge product, an internet product, or the like, or any combination thereof.
- the internet product may include an individual host product, a web product, a mobile internet product, a commercial host product, an embedded product, or the like, or any combination thereof.
- the mobile internet product may be used in a software of a mobile terminal, a program, a system, or the like, or any combination thereof.
- the mobile terminal may include a tablet computer, a laptop computer, a mobile phone, a personal digital assistance (PDA) , a smart watch, a point of sale (POS) device, an onboard computer, an onboard television, a wearable device, or the like, or any combination thereof.
- PDA personal digital assistance
- POS point of sale
- the product may be any software and/or application used in the computer or mobile phone.
- the software and/or application may relate to socializing, shopping, transporting, entertainment, learning, investment, or the like, or any combination thereof.
- the software and/or application relating to transporting may include a traveling software and/or application, a vehicle scheduling software and/or application, a mapping software and/or application, etc.
- the vehicle may include a horse, a carriage, a rickshaw (e.g., a wheelbarrow, a bike, a tricycle, etc. ) , a car (e.g., a taxi, a bus, a private car, etc. ) , a train, a subway, a vessel, an aircraft (e.g., an airplane, a helicopter, a space shuttle, a rocket, a hot-air balloon, etc. ) , or the like, or any combination thereof.
- a traveling software and/or application the vehicle may include a horse, a carriage, a rickshaw (e.g., a wheelbarrow, a bike, a tricycle, etc. ) , a car (e.g., a taxi, a bus, a private car, etc.
- FIG. 2 is a schematic diagram illustrating example hardware and/or software components of a computing device on which the processing device 112 may be implemented according to some embodiments of the present disclosure.
- the processing device 112 may be computing device 200, which may include a processor 210, a storage 220, an input/output (I/O) 230, and a communication port 240.
- the processor 210 may execute computer instructions (e.g., program code) and perform functions of the processing device 112 in accordance with techniques described herein.
- the processor 210 may include interface circuits 210-a and processing circuits 210-b therein.
- the interface circuits may be configured to receive electronic signals from a bus (not shown in FIG. 2) , wherein the electronic signals encode structured data and/or instructions for the processing circuits to process.
- the processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. Then the interface circuits may send out the electronic signals from the processing circuits via the bus.
- the computer instructions may include, for example, routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions described herein.
- the processor 210 may determine an ETA of a route of a service request.
- the processor 210 may include one or more hardware processors, such as a microcontroller, a microprocessor, a reduced instruction set computer (RISC) , an application specific integrated circuits (ASICs) , an application-specific instruction-set processor (ASIP) , a central processing unit (CPU) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a microcontroller unit, a digital signal processor (DSP) , a field programmable gate array (FPGA) , an advanced RISC machine (ARM) , a programmable logic device (PLD) , any circuit or processor capable of executing one or more functions, or the like, or any combinations thereof.
- RISC reduced instruction set computer
- ASICs application specific integrated
- processors of the computing device 200 may also include multiple processors, thus operations and/or method steps that are performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors.
- the processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two or more different processors jointly or separately in the computing device 200 (e.g., a first processor executes step A and a second processor executes step B, or the first and second processors jointly execute steps A and B) .
- the storage 220 may store data/information obtained from the user terminal 130, the storage device 150, and/or any other component of the online to offline service system 100.
- the storage 220 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof.
- the mass storage may include a magnetic disk, an optical disk, a solid-state drives, etc.
- the removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc.
- the volatile read-and-write memory may include a random access memory (RAM) .
- the RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc.
- the ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc.
- the storage 220 may store one or more programs and/or instructions to perform example methods described in the present disclosure.
- the storage 220 may store a program for the processing device 112 for determining an ETA of a route of a service request.
- the I/O 230 may input and/or output signals, data, information, etc. In some embodiments, the I/O 230 may enable a user interaction with the processing device 112. In some embodiments, the I/O 230 may include an input device and an output device. Examples of the input device may include a keyboard, a mouse, a touch screen, a microphone, or the like, or a combination thereof. Examples of the output device may include a display device, a loudspeaker, a printer, a projector, or the like, or a combination thereof.
- Examples of the display device may include a liquid crystal display (LCD) , a light-emitting diode (LED) -based display, a flat panel display, a curved screen, a television device, a cathode ray tube (CRT) , a touch screen, or the like, or a combination thereof.
- LCD liquid crystal display
- LED light-emitting diode
- CRT cathode ray tube
- the communication port 240 may be connected to a network (e.g., the network 120) to facilitate data communications.
- the communication port 240 may establish connections between the processing device 112 and the user terminal 130, the positioning system 160, or the storage device 150.
- the connection may be a wired connection, a wireless connection, any other communication connection that can enable data transmission and/or reception, and/or any combination of these connections.
- the wired connection may include, for example, an electrical cable, an optical cable, a telephone wire, or the like, or any combination thereof.
- the wireless connection may include, for example, a Bluetooth TM link, a Wi-Fi TM link, a WiMax TM link, a WLAN link, a ZigBee TM link, a mobile network link (e.g., 3G, 4G, 5G, etc. ) , or the like, or a combination thereof.
- the communication port 240 may be and/or include a standardized communication port, such as RS232, RS485, etc.
- FIG. 3 a schematic diagram illustrating example hardware and/or software components of a mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
- the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390.
- any other suitable component including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300.
- a mobile operating system (OS) 370 e.g., iOS TM , Android TM , Windows Phone TM , etc.
- the applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to an online to offline carpooling service or other information from the processing device 112, and sending information relating to an online to offline carpooling service or other information to the processing device 112.
- User interactions with the information stream may be achieved via the I/O 350 and provided to the processing device 112 and/or other components of the online to offline service system 100 via the network 120.
- an element of the online to offline service system 100 may perform through electrical signals and/or electromagnetic signals.
- the processing device 112 may operate logic circuits in its processor to process such task.
- the processing device 112 sends out data (e.g., an ETA of a route) to the user terminal 130, a processor of the processing device 112 may generate electrical signals encoding the data.
- the processor of the processing device 112 may then send the electrical signals to an information exchange port (e.g., an output port) of the processing device 112.
- the information exchange port of the processing device 112 may be physically connected to a cable, which may further transmit the electrical signals to an information exchange port (e.g., an input port) of the user terminal 130.
- the information exchange port of the processing device 112 may be one or more antennas, which may convert the electrical signals to electromagnetic signals.
- an electronic device such as the user terminal 130 or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals.
- the processor when the processor retrieves or saves data from a storage medium (e.g., the storage device 150, the storage 220) , it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium.
- the structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device.
- an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
- FIG. 4 is a block diagram illustrating an example processor 210 according to some embodiments of the present disclosure.
- the processor 210 may include an obtaining module 410, a first analyzing module 420, a second analyzing module 430, and a transmission module 440.
- the obtaining module 410 may obtain a service request received from a terminal 130 related to a user via the network 120.
- the service request may include a starting location and a destination. In some embodiments, the service request may further include a departure time from the starting location.
- the obtaining module 410 may also obtain a route linking the starting location and the destination.
- the route may include a plurality of road segments each having a corresponding link representing features of the road segment.
- the features of each of the road segments may include the length of the road segment, the width of the road segment, the direction of travel, the traffic lights distribution, the lane condition (e.g., the number of lanes in the road segment, the classification of the lanes, etc. ) , the road condition of the road segment (e.g., the shape, surface roughness determination, slippery condition of road surface, etc. ) , the identification of the road segment, the speed limit of the road segment, the toll gate information of the road segment, the classification of the road segment, the traffic light duration of the road segment, or the like, or any combination thereof.
- the lane condition e.g., the number of lanes in the road segment, the classification of the lanes, etc.
- the road condition of the road segment e.g., the shape, surface roughness determination, slippery condition of road surface, etc.
- the identification of the road segment e.g., the speed limit of the road segment, the toll gate information of the road segment, the classification of the road segment, the traffic light
- the obtaining module 410 may also obtain one or more global features associated with the service request.
- the global features of the service request may include environmental data of the service request, such as weather condition, temperature condition, GPS data of the route, timing data such as the departure time from the starting location and whether the departure time is within rush hour, etc., traffic condition such as the real-time traffic speed of each road segment, or the like, or any combination thereof.
- the global features may further include data of the driver or the service provider who is the recipient of the service request.
- a user may send the starting location and the destination to the server 110 using the user terminal 130 to request a navigation route (e.g., a driving route with a vehicle or a walking route) and an ETA of the route.
- the user may be a driver for the travel from the staring location to the destination of the service request.
- a user may send the starting location and the destination to the server 110 using the requester terminal to request a service provider that can carry the user from the starting location to the destination using a vehicle.
- the user may be a passenger and the service provider may be a driver.
- the data of the driver may include the driver’s driving habit, the driver’s mileage information, basic information of the driver, or the like, or any combination thereof.
- the basic information may include age, gender, occupation, health conditions, or the like, or any combination thereof.
- the global features may further include data of a vehicle executing the service request, such as make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, maintenance record of the vehicle, or the like, or any combination thereof.
- the first analyzing module 420 may produce a global vector for the service request (V) using a first model to analyze the one or more global features associated with the service request e.g., as shown in FIG. 6.
- the first model may be a Gradient Boosting Decision Tree (GBDT) model.
- the GBDT model may be configured to represent the one or more global features using a vector.
- the GBDT model may be a tree-structure model including one or more trees.
- Each of the one or more trees may include a root node and one or more split-nodes or leaf nodes.
- Each split-node may have branches to other split-nodes until a final layer of split-nodes.
- Each node except for the final layer of split-nodes may include a rule used to select a branch through which the one or more global features is passed down.
- the one or more global features may be input into the root node of each tree in the GBDT model.
- the one or more global features may fall on a final split-node of each tree in the GBDT model from the root node through a path determined by the rules of the nodes in the tree.
- the one or more global features may be labeled a classification, e.g., rainy weather.
- the output of each tree may provide one or more vectors indicating which final split-node of the tree the one or more global features fall on, which labels a classification for at least one of the one or more global features.
- the V produced by the GBDT model may be a combination vector including one or more vectors each of which represents one of the one or more global features.
- the second analyzing module 430 may input the features of each of the road segments into the second model to obtain a local segment vector e.g., as shown in FIG. 6.
- the second model may be a Recurrent Neural Network (RNN) model.
- RNN Recurrent Neural Network
- the second analyzing module 430 may input the V into a second model to obtain a global segment vector for each road segment e.g., as shown in FIG. 6.
- the second analyzing module 430 may use an attention mechanism to extract, from the V, the global segment vector for each of the road segments, which is effective to determine the ETA for each road segment.
- the second analyzing module 430 may determine a segment weight of the global vector (V) for each road segment based on V and its corresponding local segment vector.
- the second analyzing module 430 may obtain a global segment vector for each road segment based on its corresponding segment weight and V. Details regarding the determination of the global segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 820 in FIG. 8.
- the second analyzing module 430 may also determine a segment vector for each road segment by combining its corresponding local and global segment vectors. Details regarding the determination of the segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 840 in FIG. 8.
- the second analyzing module 430 may also obtain an ETA for the service request based on the segment vectors using the second model as shown in FIG. 6.
- the modules in the processor 210 may be connected to or communicated with each other via a wired connection or a wireless connection.
- the wired connection may include a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof.
- the wireless connection may include a Local Area Network (LAN) , a Wide Area Network (WAN) , a Bluetooth, a ZigBee, a Near Field Communication (NFC) , or the like, or any combination thereof.
- LAN Local Area Network
- WAN Wide Area Network
- NFC Near Field Communication
- Two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units.
- the processor 210 may include a storage module (not shown) used to store information and/or data (e.g., service requests) .
- FIG. 5 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a service request according to some embodiments of the present disclosure.
- the process 500 may be implemented in the online to offline service system 100 illustrated in FIG. 1.
- the process 500 may be stored in a storage medium such as the storage device 150, or the storage 220 of the computing device 200 as a form of instructions, and can be invoked and/or executed by the server 110 such as by the processing device 112, the processor 210 of the processing device 112, or one or more modules in the processor 210 illustrated in FIG. 4.
- the operations of the illustrated process 500 presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 500 as illustrated in FIG. 5 and described below is not intended to be limiting.
- a component of the processor 210 such as the obtaining module 410 or the interface circuits 210-a of the processor 210 may obtain a service request received from a terminal 130 related to a user via the network 120.
- the service request may include a starting location and a destination. In some embodiments, the service request may further include a departure time from the starting location.
- a component of the processor 210 such as, the obtaining module 410 or the interface circuits 210-a of the processor 210) may obtain a route linking the starting location and the destination.
- the route may include a plurality of road segments each having a corresponding link representing features of the road segment.
- the features of each of the road segments may include the length of the road segment, the width of the road segment, the direction of travel, the traffic lights distribution, the lane condition (e.g., the number of lanes in the road segment, the classification of the lanes, etc. ) , the road condition of the road segment (e.g., the shape, surface roughness determination, slippery condition of road surface, etc. ) , the identification of the road segment, the speed limit of the road segment, the toll gate information of the road segment, the classification of the road segment, the traffic light duration of the road segment, or the like, or any combination thereof.
- the lane condition e.g., the number of lanes in the road segment, the classification of the lanes, etc.
- the road condition of the road segment e.g., the shape, surface roughness determination, slippery condition of road surface, etc.
- the identification of the road segment e.g., the speed limit of the road segment, the toll gate information of the road segment, the classification of the road segment, the traffic light
- a component of the processor 210 such as the obtaining module 410 or the interface circuits 210-a of the processor 210 may obtain one or more global features associated with the service request.
- the global features of the service request may include environmental data of the service request, such as weather condition, temperature condition, GPS data of the route, timing data such as the departure time from the starting location and whether the departure time is within rush hour, etc., traffic condition such as the real-time traffic speed of each road segment, or the like, or any combination thereof.
- the global features may further include data of the driver or the service provider who is the recipient of the service request.
- a user may send the starting location and the destination to the server 110 using the user terminal 130 to request a navigation route (e.g., a driving route with a vehicle or a walking route) and an ETA of the route.
- the user may be a driver for the travel from the staring location to the destination of the service request.
- a user may send the starting location and the destination to the server 110 using the requester terminal to request a service provider that can carry the user from the starting location to the destination using a vehicle.
- the user may be a passenger and the service provider may be a driver.
- the data of the driver may include the driver’s driving habit, the driver’s mileage information, basic information of the driver, or the like, or any combination thereof.
- the basic information may include age, gender, occupation, health conditions, or the like, or any combination thereof.
- the global features may further include data of a vehicle executing the service request, such as make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, maintenance record of the vehicle, or the like, or any combination thereof.
- a component of processor 210 such as the first analyzing module 420 or the processing circuits 210-b of the processor 210 may produce a global vector for the service request (V) using a first model to analyze the one or more global features associated with the service request e.g., as shown in FIG. 6.
- the first model may be a Gradient Boosting Decision Tree (GBDT) model.
- the GBDT model may be configured to represent the one or more global features using a vector.
- the GBDT model may be a tree-structure model including one or more trees.
- Each of the one or more trees may include a root node and one or more split-nodes or leaf nodes.
- Each split-node may have branches to other split-nodes until a final layer of split-nodes.
- Each node except for the final layer of split-nodes may include a rule used to select a branch through which the one or more global features is passed down.
- the one or more global features may be input into the root node of each tree in the GBDT model.
- the one or more global features may fall on a final split-node of each tree in the GBDT model from the root node through a path determined by the rules of the nodes in the tree.
- the one or more global features may be labeled a classification, e.g., rainy weather.
- the output of each tree may provide one or more vectors indicating which final split-node of the tree the one or more global features fall on, which labels a classification for at least one of the one or more global features.
- the V produced by the GBDT model may be a combination vector including one or more vectors each of which represents one of the one or more global features.
- FIG. 7 is a diagram illustrating an example GBDT model according to some embodiments of the present disclosure.
- the GBDT model 700 may include two trees 710 and 720.
- the tree 710 includes a root node 712, a split-node 714, and a split-node 716.
- the root node 712 may have a first rule “Rainy weather? ” and branches yes (Y) and no (N) .
- the split-node 714 may label a classification of rainy weather.
- the split-node 716 may label a classification of fine weather.
- the one or more global features may fall on the split-node 714 through the Y branch from the root node 712. If the one or more global features includes a feature of fine weather, the one or more global features may fall on the split-node 716 through the N branch from the root node 712.
- the root node 722 may have a second rule “Departure time within a range of 7: 00-10: 00 or 17: 00-20: 00? ” and branches yes (Y) and no (N) .
- the split-node 724 may label a classification of rush hour.
- the split-node 726 may label a classification of other hours.
- the one or more global features may fall on the split-node 724 through the Y branch from the root node 722. If the one or more global features includes a feather of the departure time of 12: 00, the one or more global features may fall on the split-node 726 through the N branch from the root node 712.
- the one or more global features of the service request including a feature of rainy weather and a feature of the departure time of 12: 00 may be input into the GBDT model 700.
- the GBDT model 700 may output the V represented as “1001. ” In the V, a non-zero figure indicates which final split-node the one or more global features fall on.
- “1001” represents that the one or more global features fall on the split-node 714 of the tree 712 and the split-node 726 of the tree 722, which indicates that the one or more global features include a feature of rainy weather and a feature of the departure time that is not within rush hour.
- the structure of the GBDT model such as the trees, the nodes, the branches, the rule for each node, etc. may be provided by training a preliminary GBDT model using first training data.
- the first training data may include the global features of a plurality of first historical service requests.
- the historical service request may refer to a service request that has been canceled or completed.
- the GBDT model may be provided by the server 110 of the online to offline service system 100.
- the GBDT model may be provided by an external device communicated with the online to offline service system 100.
- the server 110 may obtain the GBDT model from the external device.
- the GBDT model may be generated in advance.
- a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may input the features of each of the road segments into the second model to obtain a local segment vector e.g., as shown in FIG. 6.
- the second model may be a Recurrent Neural Network (RNN) model.
- RNN Recurrent Neural Network
- the features of each of the road segments may be input into the second model after, before, or simultaneously with operation 530 and/or operation 540.
- a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may input the V into a second model to obtain a global segment vector for each road segment e.g., as shown in FIG. 6.
- the processor 210 may use an attention mechanism to extract, from the V, the global segment vector for each of the road segments, which is effective to determine the ETA for each road segment.
- the processor 210 may determine a segment weight of the global vector (V) for each road segment based on V and its corresponding local segment vector.
- the processor 210 may obtain a global segment vector for each road segment based on its corresponding segment weight and V. Details regarding the determination of the global segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 820 in FIG. 8.
- a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may determine a segment vector for each road segment by combining its corresponding local and global segment vectors. Details regarding the determination of the segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 840 in FIG. 8.
- a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may obtain an ETA for the service request based on the segment vectors using the second model as shown in FIG. 6.
- the processor 210 may determine an ETA for each road segment based on the segment vector for the corresponding road segment using the second model. The processor 210 may combine the ETAs for the road segments to obtain the ETA for the route of the service request. In some embodiments, the processor 210 may directly determine the ETA for the route of the service request based on the segment vectors for the road segments. For example, the processor 210 may combine all segment vectors to form an overall combined vector. The processor 210 may obtain the ETA for the service request based on the overall combined vector. Details regarding the determination of the ETA for the service request may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 840 in FIG. 8.
- the determined ETA for the route of the service request may be configured for further processing.
- the ETA for the service request determined in the process 500 may be used to determine a service fee from the starting location to the destination.
- a component of the processor 210 such as the transmission module 440 may transmit the determined ETA for the service request to the requester terminal of the passenger and/or the provider terminal of the driver of the service request, directing the requester terminal and/or the provider terminal to display the ETA on, for example, an electronic map.
- a component of the processor 210 such as the transmission module 440 may transmit the determined ETA for the service request to the terminal of the user that sends the service request to request a navigation service, directing the terminal to display the ETA on, for example, an electronic map.
- the processor 210 may store information and/or data (e.g., the service request and/or the ETA for the service request) in a storage device (e.g., the storage device 150) disclosed elsewhere in the present disclosure.
- FIG. 8 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a road segment using an RNN model according to some embodiments of the present disclosure.
- the process 800 may be implemented in the online to offline service system 100 illustrated in FIG. 1.
- the process 800 may be stored in a storage medium such as the storage device 150, or the storage 220 of the processing device 112 as a form of instructions, and can be invoked and/or executed by the server 110 for example by the processing device 112, the processor 210 of the processing engine 112, or one or more modules in the processor 210 illustrated in FIG. 4.
- the operations of the illustrated process 800 presented below are intended to be illustrative.
- the process 800 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 800 as illustrated in FIG. 8 and described below is not intended to be limiting. In some embodiments, the operations 550-580 of the process 500 in FIG. 5 may be performed based on the process 800.
- the RNN model may include a plurality of cells each of which may make use of sequential information (e.g., the global vector and the local segment vector for each road segment) to obtain the ETA for each of the road segments.
- RNNs are called recurrent because they perform the same task for every element (e.g., each road segment) of a sequence, with the output being depended on the previous computations.
- Each cell of the RNN model may include an input layer, a hidden layer, and an output layer.
- the hidden layer may have one or more feedback loops. These feedback loops may provide RNNs with a type of “memory, ” in which past outputs from the hidden layer of a cell may inform future outputs from the hidden layer of another cell. Specifically, each feedback loop may provide an output from the hidden layer in a previous cell back to the hidden layer of the current cell as input for the current cell to inform the output of the current cell. This can enable RNNs to recurrently process sequence data (e.g., data that exists in an ordered sequence, like a route having a sequence of road segments) over a sequence of steps.
- sequence data e.g., data that exists in an ordered sequence, like a route having a sequence of road segments
- FIG. 9 is a diagram illustrating a portion of an example RNN model such as cell i-1, cell i, and cell i+1, according to some embodiments of the present disclosure.
- cell i-1 of the RNN model 900 corresponds to road segment i-1 of the route of the service request
- cell i of the RNN model 900 corresponds to road segment i of the route of the service request
- cell i+1 of the RNN model 900 corresponds to road segment i+1 of the route of the service request.
- Each cell may receive an input such as the features of the corresponding road segment and the V and an output such as the local segment vector for a previous road segment, the global segment vector for the previous road segment, and/or a segment vector for the previous road segment from the hidden layer of a previous cell.
- the ETA for at least one of the road segments for example, the road segment i in FIG. 9, may be determined using the cell i in FIG. 9 to run the RNN model, based on the process 800.
- the input layer i may obtain the features of the road segment i.
- the hidden layer i may determine the H i by analyzing the features of the road segment i.
- a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may obtain a global segment vector for the road segment i based on the V using an attention mechanism in the hidden layer i.
- the global segment vector for the road segment i may include one or more vectors representing the global features that are effective for determining the ETA of the road segment i.
- the global segment vector for the road segment i may be extracted from the global vector V using the attention mechanism.
- the global features may include GPS data of the starting location.
- the attention mechanism may extract the vector representing the feature of GPS data of the starting location from the global vector V because the road segment i is close to the starting location and the GPS data of the staring location may be effective for determining the ETA of the first road segment. If the road segment i is the last road segment of the route, the attention mechanism may not extract the vector representing the feature of GPS data of the starting location from the global vector V because the last road segment is far away from the starting location and the GPS data of the staring location may be ineffective for determining the ETA of the last road segment.
- the processor 210 may determine a similarity between the H i and the V.
- the processor 210 may determine a first weight (W i ) of the V based on the similarity.
- the first weight may include a plurality of feature weights each of which corresponds to one of the one or more global features. The greater the feature weight is, the more important the corresponding global feature is to the determination of the ETA of the road segment i. For example, if the feature weight of weather condition in the first weight is greater than a threshold (e.g., 0.5) , it is indicated that the weather condition is important and/or effective to determine the ETA of the road segment i.
- the processor 210 may obtain a global segment vector (V i ) for the road segment i based on the V and the first weight. For example, the global segment vector for the road segment i may be determined based on Equation (1) below:
- V i W i *V (1)
- a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may obtain a previous vector from a hidden layer such as the hidden layer i-1 in FIG. 9 corresponding to a previous road segment such as the road segment i-1 in FIG. 9.
- the previous vector from the hidden layer i-1 may include a local segment vector (H i-1 ) of the road segment i-1, the global segment vector (V i-1 ) of the road segment i-1, and/or a segment vector of the road segment i-1.
- the segment vector of the road segment i-1 may be determined by combining H i-1 , V i-1 , and the previous vector from the hidden layer i-2.
- operation 830 may be omitted.
- operations 820-830 may be performed in any order.
- operation 820 may be performed before, after, or simultaneously with operation 830.
- a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210) may combine the previous vector (O i-1 ) from the hidden layer i-1, the local segment vector (H i ) of the road segment i, and the road segment i’s global segment vector (V i ) in the hidden layer i to obtain an ETA for the road segment i.
- the processor 210 may determine a segment vector (C i ) of O i-1 , H i , and V i in the hidden layer i.
- the segment vector may be determined based on Equation (2) below:
- the processor 210 may determine a second weight for each of O i-1 , H i , and V i , respectively, and determine the segment vector based on H i- 1 , H i , V i , and their own corresponding second weight in the hidden layer i.
- the segment vector may be determined based on Equation (3) below:
- k 1i , k 2i , and k 3i refer to the second weights of V i , H i , and O i-1 , respectively.
- the processor may determine the ETA for the road segment i based on the segment vector of O i-1 , H i , and V i .
- the cell i may determine the ETA for the road segment i based on the segment vector of O i-1 , H i , and V i and output the ETA for the road segment i.
- the RNN model may combine the ETAs for the road segments of the route to obtain the ETA for the route of the service request.
- the cell i may directly output the segment vector of O i- 1 , H i , and V i , without determining the ETA for the road segment i.
- the RNN model may determine the ETA for the route of the service request based on the segment vector for each road segment. For example, the processor may combine all segment vectors to form an overall combined vector. The processor may obtain the ETA for the service request based on the overall combined vector.
- the RNN model may be provided by training a preliminary RNN model using a second training data set including the features for each road segment of routes for a plurality of second historical service requests, global vectors of global features for the plurality of second historical service requests, and actual arrival times of the routes for the plurality of second historical service requests.
- the RNN model may be provided by the server 110 of the online to offline service system 100.
- the RNN model may be provided by an external device communicated with the online to offline service system 100.
- the server 110 may obtain the RNN model from the external device.
- the RNN model may be generated in advance.
- aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
- a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electro-magnetic, optical, or the like, or any suitable combination thereof.
- a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
- Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
- Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages.
- the program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
- the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
- LAN local area network
- WAN wide area network
- SaaS Software as a Service
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Traffic Control Systems (AREA)
- Navigation (AREA)
Abstract
A method may include receiving a service request; obtaining a route linking the starting location and the destination; obtaining one or more global features associated with the service request; using a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request; using a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments; determining a segment weight of the global vector for each road segment based on the global vector and its corresponding local segment vector; obtaining a global segment vector for each road segment based on its corresponding segment weight and the global vector; obtaining a segment vector for each road segment by combining its corresponding local and global segment vectors; obtaining the ETA for the service request based on the segment vectors.
Description
The present disclosure generally relates to systems and methods for online to offline services, and in particular, to systems and methods for obtaining estimated time of arrival (ETA) for a service request.
Online to offline (O2O) services (e.g. online to offline transportation services) utilizing Internet technology have become increasingly popular. A user that requests such transportation service may indicate a starting location and a destination of the O2O service to determine one or more suitable routes. In some cases, such as online taxi-hailing services and/or navigation services, it is important to accurately predict the arrival time at the destination, which can help estimate service fee and/or provide information for the user to know the estimated time of arrival (ETA) at the destination. Therefore, it is desirable to provide systems and methods for accurately predicting the arrival time at the destination of a route.
SUMMARY
According to a first aspect of the present disclosure, a system for obtaining estimated time of arrival (ETA) for a service request from a service requester may include one or more storage devices and one or more processors configured to communicate with the one or more storage devices. The one or more storage devices may include a set of instructions. When the one or more processors executing the set of instructions, the one or more processors may be directed to perform one or more of the following operations. The one or more processors may receive the service request from a terminal of the service requester. The service request may comprise a starting location and a destination. The one or more processors may obtain a route linking the starting location and the destination. The route may comprise a plurality of road segments each having a corresponding link representing features of the road segment. The one or more processors may obtain one or more global features associated with the service request. The one or more processors may use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) . The one or more processors may use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments. The one or more processors may determine a segment weight of V for each road segment based on V and its corresponding local segment vector. The one or more processors may obtain a global segment vector for each road segment based on its corresponding segment weight and V. The one or more processors may obtain a segment vector for each road segment by combining its corresponding local and global segment vectors. The one or more processors may obtain the ETA for the service request based on the segment vectors.
In some embodiments, to obtain the ETA for the service request based on the segment vectors, the one or more processors may combine all segment vectors to form an overall combined vector. The one or more processors may obtain the ETA for the service request based on the overall combined vector.
In some embodiments, to obtain the ETA for the service request based on the segment vector, the one or more processors may calculate ETA for each road segment based on its corresponding segment vector. The one or more processors may combine the ETAs of the road segments to obtain the ETA of the service request.
In some embodiments, the segment weight of the global vector may be determined by a degree of similarity between the local segment vector and the global vector.
In some embodiments, the segment weight of the global vector may be determined using an attention mechanism.
In some embodiments, to obtain the segment vector for each road segment by combining its corresponding local and global segment vectors, the one or more processors may determine a segment weight for the local segment vector for each road segment. The one or more processors may determine the segment vector for each road segment based on the segment weight of the local segment vector, the segment weight of the global vector, and corresponding local and global segment vectors.
In some embodiments, the first model may be a Gradient Boosting Decision Tree (GBDT) model.
In some embodiments, the GBDT model may be a tree-structure model including one or more trees. Each of the one or more trees include a root node and one or more split-nodes. Each node except for a final layer of split-nodes include a rule used to determine a path for the one or more global features to follow from the root node to one of the split-nodes in the final layer. An output of each tree may provide one or more vectors indicating which final split-node of the tree the one or more global features fall on such that at least one of the one or more global features is represented by the one or more vectors. The V may be a combination vector including the output of each tree of the GBDT model. The GBDT model may be obtained by training a first preliminary model using first training data set including global features of a plurality of first historical service requests to obtain at least one of the one or more trees, the nodes, the branches, and the rules of the GBDT model.
In some embodiments, the second model may comprise a Recurrent Neural Network (RNN) model.
In some embodiments, the RNN model may be obtained by training a second preliminary model using a second training data set including features for each road segment of routes from a plurality of second historical service requests, global vectors of global features from the plurality of second historical service requests, and actual arrival times of the routes from the plurality of second historical service requests to obtain the rules of the RNN model.
In some embodiments, the one or more processors may transmit the estimated arrival time to the terminal of the service requester and directing the terminal to display the estimated arrival time.
In some embodiments, the features of each of the road segment may be selected from at least one of length of the road segment, width of the road segment, direction of travel, traffic lights distribution, and lane condition.
In some embodiments, the global features of the service request may be selected from at least one of weather condition, temperature condition, GPS data, timing data, and traffic condition.
In some embodiments, the global features may further comprise data of a driver related to the service request, comprising at least one of the driver’s driving habit, mileage information, and demographic information of the driver including at least one of age, gender, and health conditions.
In some embodiments, the global features may further comprise data of a vehicle executing the service request, the data of the vehicle comprising at least one of make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, and maintenance record of the vehicle.
According to another aspect of the present disclosure, a method for obtaining estimated time of arrival (ETA) for a service request from a service requester may include one or more of the following operations. One or more processors may receive the service request from a terminal of the service requester. The service request may comprise a starting location and a destination. The one or more processors may obtain a route linking the starting location and the destination. The route may comprise a plurality of road segments each having a corresponding link representing features of the road segment. The one or more processors may obtain one or more global features associated with the service request. The one or more processors may use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) . The one or more processors may use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments. The one or more processors may determine a segment weight of V for each road segment based on V and its corresponding local segment vector. The one or more processors may obtain a global segment vector for each road segment based on its corresponding segment weight and V. The one or more processors may obtain a segment vector for each road segment by combining its corresponding local and global segment vectors. The one or more processors may obtain the ETA for the service request based on the segment vectors.
According to yet another aspect of the present disclosure, a system for obtaining estimated time of arrival (ETA) for a service request from a service requester may include an obtaining module configured to receive the service request from a terminal of the service requester. The service request may comprise a starting location and a destination. The obtaining module may also be configured to obtain a route linking the starting location and the destination. The route may comprise a plurality of road segments each having a corresponding link representing features of the road segment. The obtaining module may also be configured to obtain one or more global features associated with the service request. The system may also include a first analyzing module configured to use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) . The system may also include a second analyzing module configured to use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments. The second analyzing module may also be configured to determine a segment weight of V for each road segment based on V and its corresponding local segment vector. The second analyzing module may also be configured to obtain a global segment vector for each road segment based on its corresponding segment weight and V. The second analyzing module may also be configured to obtain a segment vector for each road segment by combining its corresponding local and global segment vectors. The second analyzing module may also be configured to obtain the ETA for the service request based on the segment vectors.
According to yet another aspect of the present disclosure, a non-transitory computer readable medium may comprise at least one set of instructions. The at least one set of instructions may be executed by one or more processors of a computing device. The one or more processors may receive the service request from a terminal of the service requester. The service request may comprise a starting location and a destination. The one or more processors may obtain a route linking the starting location and the destination. The route may comprise a plurality of road segments each having a corresponding link representing features of the road segment. The one or more processors may obtain one or more global features associated with the service request. The one or more processors may use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) . The one or more processors may use a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments. The one or more processors may determine a segment weight of V for each road segment based on V and its corresponding local segment vector. The one or more processors may obtain a global segment vector for each road segment based on its corresponding segment weight and V. The one or more processors may obtain a segment vector for each road segment by combining its corresponding local and global segment vectors. The one or more processors may obtain the ETA for the service request based on the segment vectors.
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities, and combinations set forth in the detailed examples discussed below.
The present disclosure is further described in terms of example embodiments. These example embodiments are described in detail with reference to the drawings. These embodiments are non-limiting example embodiments, in which like reference numerals represent similar structures throughout the several views of the drawings, and wherein:
FIG. 1 is a schematic diagram illustrating an example online to offline service system according to some embodiments of the present disclosure;
FIG. 2 is a schematic diagram illustrating components of an example computing device according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating components of an example mobile device according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an example processor according to some embodiments of the present disclosure;
FIG. 5 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a service request according to some embodiments of the present disclosure;
FIG. 6 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a service request using Gradient Boosting Decision Tree (GBDT) , Recurrent Neural Network (RNN) , and attention mechanism according to some embodiments of the present disclosure;
FIG. 7 is a diagram illustrating an example Gradient Boosting Decision Tree (GBDT) model according to some embodiments of the present disclosure;
FIG. 8 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a road segment using a Recurrent Neural Network (RNN) model according to some embodiments of the present disclosure; and
FIG. 9 is a diagram illustrating a portion of an example RNN model according to some embodiments of the present disclosure.
The following description is presented to enable any person skilled in the art to make and use the present disclosure and is provided in the context of a particular application and its requirements. Various modifications to the disclosed embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments and applications without departing from the spirit and scope of the present disclosure. Thus, the present disclosure is not limited to the embodiments shown but is to be accorded the widest scope consistent with the claims.
The terminology used herein is for the purpose of describing particular example embodiments only and is not intended to be limiting. As used herein, the singular forms “a, ” “an, ” and “the” may be intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise, ” “comprises, ” and/or “comprising, ” “include, ” “includes, ” and/or “including, ” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
These and other features, and characteristics of the present disclosure, as well as the methods of operation, various components of the stated system, functions of the related elements of structure, and the combination of parts and economies of manufacture, may become more apparent upon consideration of the following description with reference to the accompanying drawings, all of which form part of this disclosure. It is to be expressly understood, however, that the drawings are for the purpose of illustration and description only and are not intended to limit the scope of the present disclosure. It is understood that the drawings are not to scale.
The flowcharts used in the present disclosure illustrate operations that systems implemented according to some embodiments of the present disclosure. It is to be expressly understood, that the operations of the flowchart may be implemented not in order. Conversely, the operations may be implemented in inverted order, or simultaneously. Moreover, one or more other operations may be added to the flowcharts. One or more operations may be removed from the flowcharts.
Moreover, while the systems and methods disclosed in the present disclosure are described primarily regarding online to offline transportation service, it should also be understood that this is only one example embodiment. The systems and methods of the present disclosure may be applied to any other kind of on demand service which requires obtaining of ETA. For example, the systems and methods of the present disclosure may be applied to transportation systems of different environments including land (e.g. roads or off-road) , water (e.g. river, lake, or ocean) , air, aerospace, or the like, or any combination thereof. The vehicle of the transportation systems may include a taxi, a private car, a hitch, a bus, a train, a bullet train, a high-speed rail, a subway, a boat, a vessel, an aircraft, a spaceship, a hot-air balloon, a driverless vehicle, or the like, or any combination thereof. The transportation systems may also include any transportation system for management and/or distribution, for example, a system for sending and/or receiving an express. The application of the systems and methods of the present disclosure may include a mobile device (e.g. smart phone or pad) application, a webpage, a plug-in of a browser, a client terminal, a custom system, an internal analysis system, an artificial intelligence robot, or the like, or any combination thereof.
The terms “passenger, ” “requester, ” “requestor, ” “service requester, ” “service requestor, ” and “customer” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may request or order a service. Also, the terms “driver, ” “provider, ” “service provider, ” and “supplier” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may provide a service or facilitate the providing of the service. The term “user” in the present disclosure is used to refer to an individual, an entity or a tool that may request a service, order a service, provide a service, or facilitate the providing of the service. In the present disclosure, terms “requester” and “requester terminal” may be used interchangeably, and terms “provider” and “provider terminal” may be used interchangeably.
The terms “request, ” “service, ” “service request, ” and “order” in the present disclosure are used interchangeably to refer to a request that may be initiated by a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, a supplier, or the like, or any combination thereof. Depending on context, the service request may be accepted by any one of a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, or a supplier. In some embodiments, the service request is accepted by a driver, a provider, a service provider, or a supplier. The service request may be chargeable or free.
The positioning technology used in the present disclosure may be based on a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a Galileo positioning system, a quasi-zenith satellite system (QZSS) , a wireless fidelity (WiFi) positioning technology, or the like, or any combination thereof. One or more of the above positioning systems may be used interchangeably in the present disclosure.
The present disclosure relates to systems and methods for obtaining estimated time of arrival (ETA) for a service request based on associated global features in combination with road segment features to provide more accurate ETA.
The systems and the methods in the present disclosure may receive a service request. The service request may include a starting location and a destination. The systems and the methods may obtain a route linking the starting location and the destination. The route may include a plurality of road segments each having a corresponding link representing features of the road segment. The systems and the methods may additionally obtain one or more global feature associated with the service request. The systems and the methods may use a Gradient Boosting Decision Tree (GBDT) model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) . The V may be input into a Recurrent Neural Network (RNN) model. In the RNN model, a global segment vector for each of the road segments may be obtained by processing the V using an attention mechanism. The systems and the methods may use the RNN model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments. The systems and the methods may use the RNN model to obtain the ETA of the route based on the global vector and the local segment vector for each of the road segments.
In the traditional process for obtaining an ETA for a route using the RNN model, the RNN model obtains the ETA for the route by analyzing the features for each of the road segments of the route, such as the length of the road segment, width of the road segment, direction of travel, traffic lights distribution, and lane condition, etc. Because global features such as weather condition, temperature condition, GPS data, timing data, traffic condition, etc. are not directly input into the RNN model, the traditional process for obtaining the ETA for the route using the RNN model failed to take the global features into consideration and therefore leads to less accurate ETA. Compared to the traditional process, the systems and the methods in the present disclosure process the global features using the GBDT model to obtain the global vector V for the service request. The systems and the methods also use the attention mechanism to extract, from the V, the global segment vector for each of the road segments, which is effective to determine the ETA for each road segment. In this way, during the process for obtaining the ETA, the input of the RNN model is richer and the global features may be considered, which improves the accuracy of the determined ETA.
FIG. 1 is a schematic diagram illustrating an example online to offline service system according to some embodiments of the present disclosure. In some embodiments, the online to offline service system may be a system for online to offline services. For example, the online to offline service system 100 may be an online transportation service platform for transportation services such as taxi hailing, chauffeur services, delivery vehicles, express car, carpool, bus service, driver hiring, shuttle services, take-out services, navigation services, vehicle sharing services, etc. The online to offline service system 100 may include a server 110, a network 120, a user terminal 130, a storage device 150, and a positioning system 160. The server 110 may include a processing device 112.
In some embodiments, the server 110 may be a single server or a server group. The server group may be centralized, or distributed (e.g., the server 110 may be a distributed system) . In some embodiments, the server 110 may be local or remote. For example, the server 110 may access information and/or data stored in the user terminal 130 and/or the storage device 150 via the network 120. As another example, the server 110 may be directly connected to the user terminal 130 and/or the storage device 150 to access stored information and/or data. In some embodiments, the server 110 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof. In some embodiments, the server 110 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2 in the present disclosure.
In some embodiments, the server 110 may include a processing device 112. The processing device 112 may process information and/or data relating to the online to offline service system 100. For example, the processing device 112 may determine an ETA of a route of a service request.
In some embodiments, the processing device 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) . Merely by way of example, the processing device 112 may include one or more hardware processors, such as a central processing unit (CPU) , an application-specific integrated circuit (ASIC) , an application-specific instruction-set processor (ASIP) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a digital signal processor (DSP) , a field-programmable gate array (FPGA) , a programmable logic device (PLD) , a controller, a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any combination thereof.
The network 120 may facilitate the exchange of information and/or data. In some embodiments, one or more components in the online to offline service system 100 (e.g., the server 110, the user terminal 130, the storage device 150, or the positioning system 160) may send information and/or data to other component (s) in the online to offline service system 100 via the network 120. For example, the server 110 may receive a service request from the user terminal 130 via the network 120. As another example, the server 110 may transmit an ETA of a route of the service request to the user terminal 130 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or a combination thereof. Merely by way of example, the network 120 may include a cable network, a wireline network, an optical fiber network, a telecommunications network, an intranet, the Internet, a local area network (LAN) , a wide area network (WAN) , a wireless local area network (WLAN) , a metropolitan area network (MAN) , a wide area network (WAN) , a public telephone switched network (PSTN) , a Bluetooth
TM network, a ZigBee
TM network, a near field communication (NFC) network, or the like, or any combination thereof. In some embodiments, the network 120 may include one or more network access points. For example, the network 120 may include wired or wireless network access points such as base stations and/or internet exchange points 120-1, 120-2, …, through which one or more components of the online to offline service system 100 may be connected to the network 120 to exchange data and/or information.
In some embodiments, the user terminal 130 may include a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a built-in device in a motor vehicle 130-4, or the like, or any combination thereof. In some embodiments, the mobile device 130-1 may include a smart home device, a wearable device, a mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof. In some embodiments, the smart home device may include a smart lighting device, a control device of an intelligent electrical apparatus, a smart monitoring device, a smart television, a smart video camera, an interphone, or the like, or any combination thereof. In some embodiments, the wearable device may include a bracelet, footgear, glasses, a helmet, a watch, clothing, a backpack, a smart accessory, or the like, or any combination thereof. In some embodiments, the mobile device may include a mobile phone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, a laptop, a desktop, or the like, or any combination thereof. In some embodiments, the virtual reality device and/or the augmented reality device may include a virtual reality helmet, a virtual reality glass, a virtual reality patch, an augmented reality helmet, augmented reality glasses, an augmented reality patch, or the like, or any combination thereof. For example, the virtual reality device and/or the augmented reality device may include a Google Glass
TM, a RiftCon
TM, a Fragments
TM, a Gear VR
TM, etc. In some embodiments, the built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc. In some embodiments, the user terminal 130 may be a device with positioning technology for locating the position of a user of the user terminal 130 (e.g., a service requester or a service provider) and/or the user terminal 130. In some embodiments, the user terminal 130 may communicate with one or more other positioning devices to determine the position of the user terminal 130. In some embodiments, the user terminal 130 may send positioning information to the server 110.
In some embodiments, the user terminal 130 may receive/transmit information related to the online to offline service system 100 from/to one or more components (e.g., the server 110, the storage device 150, the positioning system 160) of the online to offline service system 100. For example, for a navigation service, a user of the user terminal 130 may input a departure location and a destination through the user terminal 130. The user terminal 130 may transmit the user’s input to the server 110 (e.g., request a navigation service) . The user terminal 130 may receive, from the server 110, signals including a route from the departure location to the destination and/or an ETA of the route and display the route and/or the ETA.
In some embodiments, the user terminal 130 may include a requester terminal and a provider terminal. In some embodiments, a requester may be a user of the requester terminal. The terms “passenger, ” “requester, ” “service requester, ” and “customer” in the present disclosure are used interchangeably to refer to an individual, an entity or a tool that may request or order a service. In some embodiments, a provider may be a user of the provider terminal. The terms “driver, ” “provider, ” “service provider, ” and “supplier” in the present disclosure are used interchangeably to refer to an individual, an entity, or a tool that may provide a service or facilitate the providing of the service. The term “user” in the present disclosure may refer to an individual, an entity, or a tool that may request a service, order a service, provide a service, or facilitate the providing of the service. For example, the user may be a passenger, a driver, an operator, or the like, or any combination thereof. In the present disclosure, terms “passenger” and “passenger terminal” may be used interchangeably, and terms “driver” and “driver terminal” may be used interchangeably.
The term “request, ” “service request, ” “order, ” in the present disclosure refers to a request that initiated by a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, a supplier, or the like, or any combination thereof. The service request may be accepted by any one of a passenger, a requester, a service requester, a customer, a driver, a provider, a service provider, or a supplier. The service request may be chargeable, or free.
In some embodiments, the user of the user terminal 130 may be someone other than the requester. For example, a user A of the requester terminal may use the requester terminal to send a service request for a user B, or receive service and/or information or instructions from the server 110. In some embodiments, the user of the provider terminal may be someone other than the provider. For example, a user C of the provider terminal may use the provider terminal to receive a service request for a user D, and/or information or instructions from the server 110. In some embodiments, “service requester, ” “requester, ” and “requester terminal” may be used interchangeably, and “service provider, ” “provider, ” and “provider terminal” may be used interchangeably.
The storage device 150 may store data and/or instructions. In some embodiments, the storage device 150 may store data obtained from the user terminal 130. For example, the storage device 150 may store service requests obtained from the user terminal 130. In some embodiments, the storage device 150 may store data and/or instructions that the server 110 may execute or use to perform example methods described in the present disclosure. For example, the storage device 150 may store data and/or instructions that the server 110 may execute or use to determine an ETA of a route of a service request described in the present disclosure. In some embodiments, the storage device 150 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. Example mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Example removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. Example volatile read-and-write memory may include a random access memory (RAM) . Example RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyrisor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc. Example ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically-erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the storage device 150 may be implemented on a cloud platform. Merely by way of example, the cloud platform may include a private cloud, a public cloud, a hybrid cloud, a community cloud, a distributed cloud, an inter-cloud, a multi-cloud, or the like, or any combination thereof.
In some embodiments, the storage device 150 may be connected to the network 120 to communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the user terminal 130, etc. ) . One or more components in the online to offline service system 100 may access the data or instructions stored in the storage device 150 via the network 120. In some embodiments, the storage device 150 may be directly connected to or communicate with one or more components in the online to offline service system 100 (e.g., the server 110, the user terminal 130, etc. ) . In some embodiments, one or more components in the online to offline service system 100 (e.g., the server 110, the user terminal 130, etc. ) may have permission to access the storage device 150. In some embodiments, the storage device 150 may be part of the server 110.
The positioning system 160 may determine information associated with an object, for example, the user terminal 130, etc. For example, the positioning system 160 may determine a current location of the user terminal 130. In some embodiments, the positioning system 160 may be a global positioning system (GPS) , a global navigation satellite system (GLONASS) , a compass navigation system (COMPASS) , a BeiDou navigation satellite system, a Galileo positioning system, a quasi-zenith satellite system (QZSS) , etc. The information may include a location, an elevation, a velocity, or an acceleration of the object, or a current time. The location may be in the form of coordinates, such as, latitude coordinate and longitude coordinate, etc. The positioning system 160 may include one or more satellites, for example, a satellite 160-1, a satellite 160-2, and a satellite 160-3. The satellites 160-1 through 160-3 may determine the information mentioned above independently or jointly. The satellite positioning system 160 may send the information mentioned above to the network 120 or the user terminal 130, via wireless connections.
In some embodiments, information exchanging of one or more components in the online to offline service system 100 may be achieved by way of requesting a service. The object of the service request may be any product. In some embodiments, the product may be a tangible product or an immaterial product. The tangible product may include food, medicine, commodity, chemical product, electrical appliance, clothing, car, housing, luxury, or the like, or any combination thereof. The immaterial product may include a servicing product, a financial product, a knowledge product, an internet product, or the like, or any combination thereof. The internet product may include an individual host product, a web product, a mobile internet product, a commercial host product, an embedded product, or the like, or any combination thereof. The mobile internet product may be used in a software of a mobile terminal, a program, a system, or the like, or any combination thereof. The mobile terminal may include a tablet computer, a laptop computer, a mobile phone, a personal digital assistance (PDA) , a smart watch, a point of sale (POS) device, an onboard computer, an onboard television, a wearable device, or the like, or any combination thereof. For example, the product may be any software and/or application used in the computer or mobile phone. The software and/or application may relate to socializing, shopping, transporting, entertainment, learning, investment, or the like, or any combination thereof. In some embodiments, the software and/or application relating to transporting may include a traveling software and/or application, a vehicle scheduling software and/or application, a mapping software and/or application, etc. In the vehicle scheduling software and/or application, the vehicle may include a horse, a carriage, a rickshaw (e.g., a wheelbarrow, a bike, a tricycle, etc. ) , a car (e.g., a taxi, a bus, a private car, etc. ) , a train, a subway, a vessel, an aircraft (e.g., an airplane, a helicopter, a space shuttle, a rocket, a hot-air balloon, etc. ) , or the like, or any combination thereof.
FIG. 2 is a schematic diagram illustrating example hardware and/or software components of a computing device on which the processing device 112 may be implemented according to some embodiments of the present disclosure. As illustrated in FIG. 2, the processing device 112 may be computing device 200, which may include a processor 210, a storage 220, an input/output (I/O) 230, and a communication port 240.
The processor 210 (e.g., logic circuits) may execute computer instructions (e.g., program code) and perform functions of the processing device 112 in accordance with techniques described herein. For example, the processor 210 may include interface circuits 210-a and processing circuits 210-b therein. The interface circuits may be configured to receive electronic signals from a bus (not shown in FIG. 2) , wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. Then the interface circuits may send out the electronic signals from the processing circuits via the bus.
The computer instructions may include, for example, routines, programs, objects, components, data structures, procedures, modules, and functions, which perform particular functions described herein. For example, the processor 210 may determine an ETA of a route of a service request. In some embodiments, the processor 210 may include one or more hardware processors, such as a microcontroller, a microprocessor, a reduced instruction set computer (RISC) , an application specific integrated circuits (ASICs) , an application-specific instruction-set processor (ASIP) , a central processing unit (CPU) , a graphics processing unit (GPU) , a physics processing unit (PPU) , a microcontroller unit, a digital signal processor (DSP) , a field programmable gate array (FPGA) , an advanced RISC machine (ARM) , a programmable logic device (PLD) , any circuit or processor capable of executing one or more functions, or the like, or any combinations thereof.
Merely for illustration, only one processor is described in the computing device 200. However, it should be noted that the computing device 200 in the present disclosure may also include multiple processors, thus operations and/or method steps that are performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors. For example, if in the present disclosure the processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two or more different processors jointly or separately in the computing device 200 (e.g., a first processor executes step A and a second processor executes step B, or the first and second processors jointly execute steps A and B) .
The storage 220 may store data/information obtained from the user terminal 130, the storage device 150, and/or any other component of the online to offline service system 100. In some embodiments, the storage 220 may include a mass storage, a removable storage, a volatile read-and-write memory, a read-only memory (ROM) , or the like, or any combination thereof. For example, the mass storage may include a magnetic disk, an optical disk, a solid-state drives, etc. The removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. The volatile read-and-write memory may include a random access memory (RAM) . The RAM may include a dynamic RAM (DRAM) , a double date rate synchronous dynamic RAM (DDR SDRAM) , a static RAM (SRAM) , a thyristor RAM (T-RAM) , and a zero-capacitor RAM (Z-RAM) , etc. The ROM may include a mask ROM (MROM) , a programmable ROM (PROM) , an erasable programmable ROM (EPROM) , an electrically erasable programmable ROM (EEPROM) , a compact disk ROM (CD-ROM) , and a digital versatile disk ROM, etc. In some embodiments, the storage 220 may store one or more programs and/or instructions to perform example methods described in the present disclosure. For example, the storage 220 may store a program for the processing device 112 for determining an ETA of a route of a service request.
The I/O 230 may input and/or output signals, data, information, etc. In some embodiments, the I/O 230 may enable a user interaction with the processing device 112. In some embodiments, the I/O 230 may include an input device and an output device. Examples of the input device may include a keyboard, a mouse, a touch screen, a microphone, or the like, or a combination thereof. Examples of the output device may include a display device, a loudspeaker, a printer, a projector, or the like, or a combination thereof. Examples of the display device may include a liquid crystal display (LCD) , a light-emitting diode (LED) -based display, a flat panel display, a curved screen, a television device, a cathode ray tube (CRT) , a touch screen, or the like, or a combination thereof.
The communication port 240 may be connected to a network (e.g., the network 120) to facilitate data communications. The communication port 240 may establish connections between the processing device 112 and the user terminal 130, the positioning system 160, or the storage device 150. The connection may be a wired connection, a wireless connection, any other communication connection that can enable data transmission and/or reception, and/or any combination of these connections. The wired connection may include, for example, an electrical cable, an optical cable, a telephone wire, or the like, or any combination thereof. The wireless connection may include, for example, a Bluetooth
TM link, a Wi-Fi
TM link, a WiMax
TM link, a WLAN link, a ZigBee
TM link, a mobile network link (e.g., 3G, 4G, 5G, etc. ) , or the like, or a combination thereof. In some embodiments, the communication port 240 may be and/or include a standardized communication port, such as RS232, RS485, etc.
FIG. 3 a schematic diagram illustrating example hardware and/or software components of a mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure. As illustrated in FIG. 3, the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390. In some embodiments, any other suitable component, including but not limited to a system bus or a controller (not shown) , may also be included in the mobile device 300. In some embodiments, a mobile operating system (OS) 370 (e.g., iOS
TM, Android
TM, Windows Phone
TM, etc. ) and one or more applications 380 may be loaded into the memory 360 from the storage 390 in order to be executed by the CPU 340. The applications 380 may include a browser or any other suitable mobile apps for receiving and rendering information relating to an online to offline carpooling service or other information from the processing device 112, and sending information relating to an online to offline carpooling service or other information to the processing device 112. User interactions with the information stream may be achieved via the I/O 350 and provided to the processing device 112 and/or other components of the online to offline service system 100 via the network 120.
One of ordinary skill in the art would understand that when an element of the online to offline service system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when the processing device 112 processes a task, such as making a determination, or transmitting information, the processing device 112 may operate logic circuits in its processor to process such task. When the processing device 112 sends out data (e.g., an ETA of a route) to the user terminal 130, a processor of the processing device 112 may generate electrical signals encoding the data. The processor of the processing device 112 may then send the electrical signals to an information exchange port (e.g., an output port) of the processing device 112. If the user terminal 130 communicates with the processing device 112 via a wired network, the information exchange port of the processing device 112 may be physically connected to a cable, which may further transmit the electrical signals to an information exchange port (e.g., an input port) of the user terminal 130. If the user terminal 130 communicates with the processing device 112 via a wireless network, the information exchange port of the processing device 112 may be one or more antennas, which may convert the electrical signals to electromagnetic signals. Within an electronic device, such as the user terminal 130 or the server 110, when a processor thereof processes an instruction, sends out an instruction, and/or performs an action, the instruction and/or action is conducted via electrical signals. For example, when the processor retrieves or saves data from a storage medium (e.g., the storage device 150, the storage 220) , it may send out electrical signals to a read/write device of the storage medium, which may read or write structured data in the storage medium. The structured data may be transmitted to the processor in the form of electrical signals via a bus of the electronic device. Here, an electrical signal may refer to one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
FIG. 4 is a block diagram illustrating an example processor 210 according to some embodiments of the present disclosure. The processor 210 may include an obtaining module 410, a first analyzing module 420, a second analyzing module 430, and a transmission module 440.
The obtaining module 410 may obtain a service request received from a terminal 130 related to a user via the network 120. The service request may include a starting location and a destination. In some embodiments, the service request may further include a departure time from the starting location.
The obtaining module 410 may also obtain a route linking the starting location and the destination. The route may include a plurality of road segments each having a corresponding link representing features of the road segment.
In some embodiments, the features of each of the road segments may include the length of the road segment, the width of the road segment, the direction of travel, the traffic lights distribution, the lane condition (e.g., the number of lanes in the road segment, the classification of the lanes, etc. ) , the road condition of the road segment (e.g., the shape, surface roughness determination, slippery condition of road surface, etc. ) , the identification of the road segment, the speed limit of the road segment, the toll gate information of the road segment, the classification of the road segment, the traffic light duration of the road segment, or the like, or any combination thereof.
The obtaining module 410 may also obtain one or more global features associated with the service request.
In some embodiments, the global features of the service request may include environmental data of the service request, such as weather condition, temperature condition, GPS data of the route, timing data such as the departure time from the starting location and whether the departure time is within rush hour, etc., traffic condition such as the real-time traffic speed of each road segment, or the like, or any combination thereof.
Optionally, as represented using a dashed box in FIG. 6, the global features may further include data of the driver or the service provider who is the recipient of the service request. In some embodiments, for a navigation service, a user may send the starting location and the destination to the server 110 using the user terminal 130 to request a navigation route (e.g., a driving route with a vehicle or a walking route) and an ETA of the route. In this case, the user may be a driver for the travel from the staring location to the destination of the service request. In some embodiments, for an online taxi-hailing service, a user may send the starting location and the destination to the server 110 using the requester terminal to request a service provider that can carry the user from the starting location to the destination using a vehicle. In this case, during the travel from the staring location to the destination of the service request, the user may be a passenger and the service provider may be a driver. In some embodiments, the data of the driver may include the driver’s driving habit, the driver’s mileage information, basic information of the driver, or the like, or any combination thereof. The basic information may include age, gender, occupation, health conditions, or the like, or any combination thereof.
Optionally, as represented using a dashed box in FIG. 6, the global features may further include data of a vehicle executing the service request, such as make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, maintenance record of the vehicle, or the like, or any combination thereof.
The first analyzing module 420 may produce a global vector for the service request (V) using a first model to analyze the one or more global features associated with the service request e.g., as shown in FIG. 6.
In some embodiments, the first model may be a Gradient Boosting Decision Tree (GBDT) model. In some embodiments, the GBDT model may be configured to represent the one or more global features using a vector.
The GBDT model may be a tree-structure model including one or more trees. Each of the one or more trees may include a root node and one or more split-nodes or leaf nodes. Each split-node may have branches to other split-nodes until a final layer of split-nodes. Each node except for the final layer of split-nodes may include a rule used to select a branch through which the one or more global features is passed down. The one or more global features may be input into the root node of each tree in the GBDT model. The one or more global features may fall on a final split-node of each tree in the GBDT model from the root node through a path determined by the rules of the nodes in the tree. In each split-node, the one or more global features may be labeled a classification, e.g., rainy weather. The output of each tree may provide one or more vectors indicating which final split-node of the tree the one or more global features fall on, which labels a classification for at least one of the one or more global features. As a result, the V produced by the GBDT model may be a combination vector including one or more vectors each of which represents one of the one or more global features.
The second analyzing module 430 may input the features of each of the road segments into the second model to obtain a local segment vector e.g., as shown in FIG. 6. In some embodiments, the second model may be a Recurrent Neural Network (RNN) model.
The second analyzing module 430 may input the V into a second model to obtain a global segment vector for each road segment e.g., as shown in FIG. 6.
In some embodiments, the second analyzing module 430 may use an attention mechanism to extract, from the V, the global segment vector for each of the road segments, which is effective to determine the ETA for each road segment. In some embodiments, the second analyzing module 430 may determine a segment weight of the global vector (V) for each road segment based on V and its corresponding local segment vector. The second analyzing module 430 may obtain a global segment vector for each road segment based on its corresponding segment weight and V. Details regarding the determination of the global segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 820 in FIG. 8.
The second analyzing module 430 may also determine a segment vector for each road segment by combining its corresponding local and global segment vectors. Details regarding the determination of the segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 840 in FIG. 8.
The second analyzing module 430 may also obtain an ETA for the service request based on the segment vectors using the second model as shown in FIG. 6.
The modules in the processor 210 may be connected to or communicated with each other via a wired connection or a wireless connection. The wired connection may include a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof. The wireless connection may include a Local Area Network (LAN) , a Wide Area Network (WAN) , a Bluetooth, a ZigBee, a Near Field Communication (NFC) , or the like, or any combination thereof. Two or more of the modules may be combined into a single module, and any one of the modules may be divided into two or more units. For example, the processor 210 may include a storage module (not shown) used to store information and/or data (e.g., service requests) .
FIG. 5 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a service request according to some embodiments of the present disclosure. In some embodiments, the process 500 may be implemented in the online to offline service system 100 illustrated in FIG. 1. For example, the process 500 may be stored in a storage medium such as the storage device 150, or the storage 220 of the computing device 200 as a form of instructions, and can be invoked and/or executed by the server 110 such as by the processing device 112, the processor 210 of the processing device 112, or one or more modules in the processor 210 illustrated in FIG. 4. The operations of the illustrated process 500 presented below are intended to be illustrative. In some embodiments, the process 500 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 500 as illustrated in FIG. 5 and described below is not intended to be limiting.
In 510, a component of the processor 210such as the obtaining module 410 or the interface circuits 210-a of the processor 210 may obtain a service request received from a terminal 130 related to a user via the network 120. The service request may include a starting location and a destination. In some embodiments, the service request may further include a departure time from the starting location.
In 520, a component of the processor 210 such as, the obtaining module 410 or the interface circuits 210-a of the processor 210) may obtain a route linking the starting location and the destination. The route may include a plurality of road segments each having a corresponding link representing features of the road segment.
In some embodiments, the features of each of the road segments may include the length of the road segment, the width of the road segment, the direction of travel, the traffic lights distribution, the lane condition (e.g., the number of lanes in the road segment, the classification of the lanes, etc. ) , the road condition of the road segment (e.g., the shape, surface roughness determination, slippery condition of road surface, etc. ) , the identification of the road segment, the speed limit of the road segment, the toll gate information of the road segment, the classification of the road segment, the traffic light duration of the road segment, or the like, or any combination thereof.
In 530, a component of the processor 210 such as the obtaining module 410 or the interface circuits 210-a of the processor 210 may obtain one or more global features associated with the service request.
In some embodiments, the global features of the service request may include environmental data of the service request, such as weather condition, temperature condition, GPS data of the route, timing data such as the departure time from the starting location and whether the departure time is within rush hour, etc., traffic condition such as the real-time traffic speed of each road segment, or the like, or any combination thereof.
Optionally, as represented using a dashed box in FIG. 6, the global features may further include data of the driver or the service provider who is the recipient of the service request. In some embodiments, for a navigation service, a user may send the starting location and the destination to the server 110 using the user terminal 130 to request a navigation route (e.g., a driving route with a vehicle or a walking route) and an ETA of the route. In this case, the user may be a driver for the travel from the staring location to the destination of the service request. In some embodiments, for an online taxi-hailing service, a user may send the starting location and the destination to the server 110 using the requester terminal to request a service provider that can carry the user from the starting location to the destination using a vehicle. In this case, during the travel from the staring location to the destination of the service request, the user may be a passenger and the service provider may be a driver. In some embodiments, the data of the driver may include the driver’s driving habit, the driver’s mileage information, basic information of the driver, or the like, or any combination thereof. The basic information may include age, gender, occupation, health conditions, or the like, or any combination thereof.
Optionally, as represented using a dashed box in FIG. 6, the global features may further include data of a vehicle executing the service request, such as make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, maintenance record of the vehicle, or the like, or any combination thereof.
In 540, a component of processor 210 such as the first analyzing module 420 or the processing circuits 210-b of the processor 210 may produce a global vector for the service request (V) using a first model to analyze the one or more global features associated with the service request e.g., as shown in FIG. 6.
In some embodiments, the first model may be a Gradient Boosting Decision Tree (GBDT) model. In some embodiments, the GBDT model may be configured to represent the one or more global features using a vector.
The GBDT model may be a tree-structure model including one or more trees. Each of the one or more trees may include a root node and one or more split-nodes or leaf nodes. Each split-node may have branches to other split-nodes until a final layer of split-nodes. Each node except for the final layer of split-nodes may include a rule used to select a branch through which the one or more global features is passed down. The one or more global features may be input into the root node of each tree in the GBDT model. The one or more global features may fall on a final split-node of each tree in the GBDT model from the root node through a path determined by the rules of the nodes in the tree. In each split-node, the one or more global features may be labeled a classification, e.g., rainy weather. The output of each tree may provide one or more vectors indicating which final split-node of the tree the one or more global features fall on, which labels a classification for at least one of the one or more global features. As a result, the V produced by the GBDT model may be a combination vector including one or more vectors each of which represents one of the one or more global features.
Merely by way of example, FIG. 7 is a diagram illustrating an example GBDT model according to some embodiments of the present disclosure. As shown in FIG. 7, the GBDT model 700 may include two trees 710 and 720. The tree 710 includes a root node 712, a split-node 714, and a split-node 716. The root node 712 may have a first rule “Rainy weather? ” and branches yes (Y) and no (N) . The split-node 714 may label a classification of rainy weather. The split-node 716 may label a classification of fine weather. If the one or more global features includes a feature of rainy weather, the one or more global features may fall on the split-node 714 through the Y branch from the root node 712. If the one or more global features includes a feature of fine weather, the one or more global features may fall on the split-node 716 through the N branch from the root node 712. The root node 722 may have a second rule “Departure time within a range of 7: 00-10: 00 or 17: 00-20: 00? ” and branches yes (Y) and no (N) . The split-node 724 may label a classification of rush hour. The split-node 726 may label a classification of other hours. If the one or more global features includes a feature of the departure time of 9: 00, the one or more global features may fall on the split-node 724 through the Y branch from the root node 722. If the one or more global features includes a feather of the departure time of 12: 00, the one or more global features may fall on the split-node 726 through the N branch from the root node 712. For example, the one or more global features of the service request including a feature of rainy weather and a feature of the departure time of 12: 00 may be input into the GBDT model 700. The GBDT model 700 may output the V represented as “1001. ” In the V, a non-zero figure indicates which final split-node the one or more global features fall on. For example, “1001” represents that the one or more global features fall on the split-node 714 of the tree 712 and the split-node 726 of the tree 722, which indicates that the one or more global features include a feature of rainy weather and a feature of the departure time that is not within rush hour.
In some embodiments, the structure of the GBDT model such as the trees, the nodes, the branches, the rule for each node, etc. may be provided by training a preliminary GBDT model using first training data. The first training data may include the global features of a plurality of first historical service requests. The historical service request may refer to a service request that has been canceled or completed. In some embodiments, the GBDT model may be provided by the server 110 of the online to offline service system 100. In some embodiments, the GBDT model may be provided by an external device communicated with the online to offline service system 100. The server 110 may obtain the GBDT model from the external device. In some embodiments, the GBDT model may be generated in advance.
In 550, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may input the features of each of the road segments into the second model to obtain a local segment vector e.g., as shown in FIG. 6. In some embodiments, the second model may be a Recurrent Neural Network (RNN) model.
In some embodiments, the features of each of the road segments may be input into the second model after, before, or simultaneously with operation 530 and/or operation 540.
In 560, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may input the V into a second model to obtain a global segment vector for each road segment e.g., as shown in FIG. 6.
In some embodiments, the processor 210 may use an attention mechanism to extract, from the V, the global segment vector for each of the road segments, which is effective to determine the ETA for each road segment. In some embodiments, the processor 210 may determine a segment weight of the global vector (V) for each road segment based on V and its corresponding local segment vector. The processor 210 may obtain a global segment vector for each road segment based on its corresponding segment weight and V. Details regarding the determination of the global segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 820 in FIG. 8.
In 570, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may determine a segment vector for each road segment by combining its corresponding local and global segment vectors. Details regarding the determination of the segment vector may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 840 in FIG. 8.
In 580, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may obtain an ETA for the service request based on the segment vectors using the second model as shown in FIG. 6.
In some embodiments, the processor 210 may determine an ETA for each road segment based on the segment vector for the corresponding road segment using the second model. The processor 210 may combine the ETAs for the road segments to obtain the ETA for the route of the service request. In some embodiments, the processor 210 may directly determine the ETA for the route of the service request based on the segment vectors for the road segments. For example, the processor 210 may combine all segment vectors to form an overall combined vector. The processor 210 may obtain the ETA for the service request based on the overall combined vector. Details regarding the determination of the ETA for the service request may be found elsewhere in the present disclosure, for example in the description in connection with FIG. 9 and operation 840 in FIG. 8.
In some embodiments, the determined ETA for the route of the service request may be configured for further processing. For example, for online taxi-hailing services, the ETA for the service request determined in the process 500 may be used to determine a service fee from the starting location to the destination. Alternatively or additionally, a component of the processor 210 such as the transmission module 440 may transmit the determined ETA for the service request to the requester terminal of the passenger and/or the provider terminal of the driver of the service request, directing the requester terminal and/or the provider terminal to display the ETA on, for example, an electronic map. As another example, for navigation services, a component of the processor 210 such as the transmission module 440 may transmit the determined ETA for the service request to the terminal of the user that sends the service request to request a navigation service, directing the terminal to display the ETA on, for example, an electronic map.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations or modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the process 500. In the storing operation, the processor 210 may store information and/or data (e.g., the service request and/or the ETA for the service request) in a storage device (e.g., the storage device 150) disclosed elsewhere in the present disclosure.
FIG. 8 is a flowchart illustrating an example process for obtaining an estimated time of arrival (ETA) for a road segment using an RNN model according to some embodiments of the present disclosure. In some embodiments, the process 800 may be implemented in the online to offline service system 100 illustrated in FIG. 1. For example, the process 800 may be stored in a storage medium such as the storage device 150, or the storage 220 of the processing device 112 as a form of instructions, and can be invoked and/or executed by the server 110 for example by the processing device 112, the processor 210 of the processing engine 112, or one or more modules in the processor 210 illustrated in FIG. 4. The operations of the illustrated process 800 presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described, and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process 800 as illustrated in FIG. 8 and described below is not intended to be limiting. In some embodiments, the operations 550-580 of the process 500 in FIG. 5 may be performed based on the process 800.
Since the route of the service request may be divided into a plurality of road segments, and as the travel of the service request is presumably from the staring location to the destination via the road segments, the road segments may be sequential with respect to each other. The RNN model may include a plurality of cells each of which may make use of sequential information (e.g., the global vector and the local segment vector for each road segment) to obtain the ETA for each of the road segments. RNNs are called recurrent because they perform the same task for every element (e.g., each road segment) of a sequence, with the output being depended on the previous computations.
Each cell of the RNN model may include an input layer, a hidden layer, and an output layer. The hidden layer may have one or more feedback loops. These feedback loops may provide RNNs with a type of “memory, ” in which past outputs from the hidden layer of a cell may inform future outputs from the hidden layer of another cell. Specifically, each feedback loop may provide an output from the hidden layer in a previous cell back to the hidden layer of the current cell as input for the current cell to inform the output of the current cell. This can enable RNNs to recurrently process sequence data (e.g., data that exists in an ordered sequence, like a route having a sequence of road segments) over a sequence of steps.
Merely by way of example, FIG. 9 is a diagram illustrating a portion of an example RNN model such as cell i-1, cell i, and cell i+1, according to some embodiments of the present disclosure. As shown in FIG. 9, cell i-1 of the RNN model 900 corresponds to road segment i-1 of the route of the service request, cell i of the RNN model 900 corresponds to road segment i of the route of the service request, and cell i+1 of the RNN model 900 corresponds to road segment i+1 of the route of the service request. Each cell (except for the first cell) may receive an input such as the features of the corresponding road segment and the V and an output such as the local segment vector for a previous road segment, the global segment vector for the previous road segment, and/or a segment vector for the previous road segment from the hidden layer of a previous cell.
In some embodiments, the ETA for at least one of the road segments for example, the road segment i in FIG. 9, may be determined using the cell i in FIG. 9 to run the RNN model, based on the process 800.
In 810, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may obtain a local current segment vector (H
i) (i=1, 2, 3…) for a current road segment such as the road segment i of the route for the service request. In some embodiments, the input layer i may obtain the features of the road segment i. The hidden layer i may determine the H
i by analyzing the features of the road segment i.
In 820, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may obtain a global segment vector for the road segment i based on the V using an attention mechanism in the hidden layer i. In some embodiments, the global segment vector for the road segment i may include one or more vectors representing the global features that are effective for determining the ETA of the road segment i. The global segment vector for the road segment i may be extracted from the global vector V using the attention mechanism. For example, the global features may include GPS data of the starting location. If the road segment i is the first road segment of the route, the attention mechanism may extract the vector representing the feature of GPS data of the starting location from the global vector V because the road segment i is close to the starting location and the GPS data of the staring location may be effective for determining the ETA of the first road segment. If the road segment i is the last road segment of the route, the attention mechanism may not extract the vector representing the feature of GPS data of the starting location from the global vector V because the last road segment is far away from the starting location and the GPS data of the staring location may be ineffective for determining the ETA of the last road segment.
In some embodiments, the processor 210 may determine a similarity between the H
i and the V. The processor 210 may determine a first weight (W
i) of the V based on the similarity. The first weight may include a plurality of feature weights each of which corresponds to one of the one or more global features. The greater the feature weight is, the more important the corresponding global feature is to the determination of the ETA of the road segment i. For example, if the feature weight of weather condition in the first weight is greater than a threshold (e.g., 0.5) , it is indicated that the weather condition is important and/or effective to determine the ETA of the road segment i. The processor 210 may obtain a global segment vector (V
i) for the road segment i based on the V and the first weight. For example, the global segment vector for the road segment i may be determined based on Equation (1) below:
V
i=W
i*V (1)
In 830, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210 may obtain a previous vector from a hidden layer such as the hidden layer i-1 in FIG. 9 corresponding to a previous road segment such as the road segment i-1 in FIG. 9. In some embodiments, the previous vector from the hidden layer i-1 may include a local segment vector (H
i-1) of the road segment i-1, the global segment vector (V
i-1) of the road segment i-1, and/or a segment vector of the road segment i-1. The segment vector of the road segment i-1 may be determined by combining H
i-1, V
i-1, and the previous vector from the hidden layer i-2. In some embodiments, if the road segment i is the first road segment of the route (e.g., i=1) , operation 830 may be omitted.
In some embodiments, operations 820-830 may be performed in any order. For example, operation 820 may be performed before, after, or simultaneously with operation 830.
In 840, a component of the processor 210 such as the second analyzing module 430 or the processing circuits 210-b of the processor 210) may combine the previous vector (O
i-1) from the hidden layer i-1, the local segment vector (H
i) of the road segment i, and the road segment i’s global segment vector (V
i) in the hidden layer i to obtain an ETA for the road segment i. In some embodiments, the processor 210 may determine a segment vector (C
i) of O
i-1, H
i, and V
i in the hidden layer i. For example, the segment vector may be determined based on Equation (2) below:
C
i=V
i+H
i+O
i-1 (2)
As another example, the processor 210 may determine a second weight for each of O
i-1, H
i, and V
i, respectively, and determine the segment vector based on H
i-
1, H
i, V
i, and their own corresponding second weight in the hidden layer i. For instance, the segment vector may be determined based on Equation (3) below:
C
i=k
1i*V
i+ k
2i*H
i+ k
3i*O
i-1 (3)
where k
1i, k
2i, and k
3i refer to the second weights of V
i, H
i, and O
i-1, respectively.
In some embodiments, the processor may determine the ETA for the road segment i based on the segment vector of O
i-1, H
i, and V
i. For example, the cell i may determine the ETA for the road segment i based on the segment vector of O
i-1, H
i, and V
i and output the ETA for the road segment i. The RNN model may combine the ETAs for the road segments of the route to obtain the ETA for the route of the service request.
In some embodiments, the cell i may directly output the segment vector of O
i-
1, H
i, and V
i, without determining the ETA for the road segment i. The RNN model may determine the ETA for the route of the service request based on the segment vector for each road segment. For example, the processor may combine all segment vectors to form an overall combined vector. The processor may obtain the ETA for the service request based on the overall combined vector.
In some embodiments, the RNN model may be provided by training a preliminary RNN model using a second training data set including the features for each road segment of routes for a plurality of second historical service requests, global vectors of global features for the plurality of second historical service requests, and actual arrival times of the routes for the plurality of second historical service requests. In some embodiments, the RNN model may be provided by the server 110 of the online to offline service system 100. In some embodiments, the RNN model may be provided by an external device communicated with the online to offline service system 100. The server 110 may obtain the RNN model from the external device. In some embodiments, the RNN model may be generated in advance.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations or modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure.
Having thus described the basic concepts, it may be rather apparent to those skilled in the art after reading this detailed disclosure that the foregoing detailed disclosure is intended to be presented by way of example only and is not limiting. Various alterations, improvements, and modifications may occur and are intended to those skilled in the art, though not expressly stated herein. These alterations, improvements, and modifications are intended to be suggested by this disclosure, and are within the spirit and scope of the example embodiments of this disclosure.
Moreover, certain terminology has been used to describe embodiments of the present disclosure. For example, the terms “one embodiment, ” “an embodiment, ” and/or “some embodiments” mean that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present disclosure. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the present disclosure.
Further, it will be appreciated by one skilled in the art, aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a “unit, ” “module, ” or “system. ” Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electro-magnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the "C" programming language, Visual Basic, Fortran 2003, Perl, COBOL 2002, PHP, ABAP, dynamic programming languages such as Python, Ruby and Groovy, or other programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN) , or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider) or in a cloud computing environment or offered as a service such as a Software as a Service (SaaS) .
Furthermore, the recited order of processing elements or sequences, or the use of numbers, letters, or other designations therefore, is not intended to limit the claimed processes and methods to any order except as may be specified in the claims. Although the above disclosure discusses through various examples what is currently considered to be a variety of useful embodiments of the disclosure, it is to be understood that such detail is solely for that purpose, and that the appended claims are not limited to the disclosed embodiments, but, on the contrary, are intended to cover modifications and equivalent arrangements that are within the spirit and scope of the disclosed embodiments. For example, although the implementation of various components described above may be embodied in a hardware device, it may also be implemented as a software only solution, e.g., an installation on an existing server or mobile device.
Similarly, it should be appreciated that in the foregoing description of embodiments of the present disclosure, various features are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various embodiments. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, claimed subject matter may lie in less than all features of a single foregoing disclosed embodiment.
Claims (46)
- A method for obtaining estimated time of arrival (ETA) for a service request from a service requester, implemented on a machine having one or more storage devices storing a set of instructions and one or more processors configured to executing the set of instructions to implement the method, the method comprising:receiving the service request from a terminal of the service requester, the service request comprising a starting location and a destination;obtaining a route linking the starting location and the destination, the route comprising a plurality of road segments each having a corresponding link representing features of the road segment;obtaining one or more global features associated with the service request;using a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) ;using a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments;determining a segment weight of V for each road segment based on V and its corresponding local segment vector;obtaining a global segment vector for each road segment based on its corresponding segment weight and V;obtaining a segment vector for each road segment by combining its corresponding local and global segment vectors;obtaining the ETA for the service request based on the segment vectors.
- The method of claim 1, wherein the obtaining the ETA for the service request based on the segment vectors includes:combining all segment vectors to form an overall combined vector; andobtaining the ETA for the service request based on the overall combined vector.
- The method of claim 1, wherein the obtaining the ETA for the service request based on the segment vector includes:calculating ETA for each road segment based on its corresponding segment vector; andcombining the ETAs of the road segments to obtain the ETA of the service request.
- The method of any one of claims 1-3, wherein the segment weight of the global vector is determined by a degree of similarity between the local segment vector and the global vector.
- The method of any one of claims 1-4, wherein the segment weight of the global vector is determined using an attention mechanism.
- The method of any one of claims 1-5, wherein the obtaining the segment vector for each road segment by combining its corresponding local and global segment vectors further comprising:determining a segment weight for the local segment vector for each road segment; anddetermining the segment vector for each road segment based on the segment weight of the local segment vector, the segment weight of the global vector, and corresponding local and global segment vectors.
- The method of any one of claims 1-6, wherein the first model is a Gradient Boosting Decision Tree (GBDT) model.
- The method of claim 7, wherein the GBDT model is a tree-structure model including one or more trees, each of the one or more trees including a root node and one or more split-nodes, each node except for a final layer of split-nodes including a rule used to determine a path for the one or more global features to follow from the root node to one of the split-nodes in the final layer;wherein an output of each tree provides one or more vectors indicating which final split-node of the tree the one or more global features fall on such that at least one of the one or more global features is represented by the one or more vectors;wherein the V is a combination vector including the output of each tree of the GBDT model, andwherein the GBDT model is obtained by training a first preliminary model using first training data set including global features of a plurality of first historical service requests to obtain at least one of the one or more trees, the nodes, the branches, and the rules of the GBDT model.
- The method of any one of claims 1-8, wherein the second model comprises a Recurrent Neural Network (RNN) model.
- The method of any one of claims 1-9, wherein the RNN model is obtained by training a second preliminary model using a second training data set including features for each road segment of routes from a plurality of second historical service requests, global vectors of global features from the plurality of second historical service requests, and actual arrival times of the routes from the plurality of second historical service requests to obtain the rules of the RNN model.
- The method of any one of claims 1-10, further comprising:transmitting the estimated arrival time to the terminal of the service requester and directing the terminal to display the estimated arrival time.
- The method of any one of claims 1-11, wherein the features of each of the road segment are selected from at least one of length of the road segment, width of the road segment, direction of travel, traffic lights distribution, and lane condition.
- The method of any one of claims 1-12, wherein the global features of the service request are selected from at least one of weather condition, temperature condition, GPS data, timing data, and traffic condition.
- The method of any one of claims 1-13, wherein the global features further comprising data of a driver related to the service request, comprising at least one of the driver’s driving habit, mileage information, and demographic information of the driver including at least one of age, gender, and health conditions.
- The method of any one of claims 1-14, wherein the global features further comprising data of a vehicle executing the service request, the data of the vehicle comprising at least one of make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, and maintenance record of the vehicle.
- A system for obtaining estimated time of arrival (ETA) for a service request from a service requester, comprising:at least one storage device including a set of instructions; andat least one processor configured to communicate with the at least one storage device, wherein when executing the set of instructions, the at least one processor is configured to direct the system to perform operations including:receiving the service request from a terminal of the service requester, the service request comprising a starting location and a destination;obtaining a route linking the starting location and the destination, the route comprising a plurality of road segments each having a corresponding link representing features of the road segment;obtaining one or more global features associated with the service request;using a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) ;using a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments;determining a segment weight of V for each road segment based on V and its corresponding local segment vector;obtaining a global segment vector for each road segment based on its corresponding segment weight and V;obtaining a segment vector for each road segment by combining its corresponding local and global segment vectors;obtaining the ETA for the service request based on the segment vectors.
- The system of claim 16, wherein the obtaining the ETA for the service request based on the segment vectors includes:combining all segment vectors to form an overall combined vector; andobtaining the ETA for the service request based on the overall combined vector.
- The system of claim 16, wherein the obtaining the ETA for the service request based on the segment vector includes:calculating ETA for each road segment based on its corresponding segment vector; andcombining the ETAs of the road segments to obtain the ETA of the service request.
- The system of any one of claims 16-18, wherein the segment weight of the global vector is determined by a degree of similarity between the local segment vector and the global vector.
- The system of any one of claims 16-19, wherein the segment weight of the global vector is determined using an attention mechanism.
- The system of any one of claims 16-20, wherein the obtaining the segment vector for each road segment by combining its corresponding local and global segment vectors further comprising:determining a segment weight for the local segment vector for each road segment; anddetermining the segment vector for each road segment based on the segment weight of the local segment vector, the segment weight of the global vector, and corresponding local and global segment vectors.
- The system of any one of claims 16-21, wherein the first model is a Gradient Boosting Decision Tree (GBDT) model.
- The system of claim 22, wherein the GBDT model is a tree-structure model including one or more trees, each of the one or more trees including a root node and one or more split-nodes, each node except for a final layer of split-nodes including a rule used to determine a path for the one or more global features to follow from the root node to one of the split-nodes in the final layer;wherein an output of each tree provides one or more vectors indicating which final split-node of the tree the one or more global features fall on such that at least one of the one or more global features is represented by the one or more vectors;wherein the V is a combination vector including the output of each tree of the GBDT model, andwherein the GBDT model is obtained by training a first preliminary model using first training data set including global features of a plurality of first historical service requests to obtain at least one of the one or more trees, the nodes, the branches, and the rules of the GBDT model.
- The system of any one of claims 16-23, wherein the second model comprises a Recurrent Neural Network (RNN) model.
- The system of any one of claims 16-24, wherein the RNN model is obtained by training a second preliminary model using a second training data set including features for each road segment of routes from a plurality of second historical service requests, global vectors of global features from the plurality of second historical service requests, and actual arrival times of the routes from the plurality of second historical service requests to obtain the rules of the RNN model.
- The system of any one of claims 16-25, wherein the at least one processor is configured to direct the system to perform the operations including:transmitting the estimated arrival time to the terminal of the service requester and directing the terminal to display the estimated arrival time.
- The system of any one of claims 16-26, wherein the features of each of the road segment are selected from at least one of length of the road segment, width of the road segment, direction of travel, traffic lights distribution, and lane condition.
- The system of any one of claims 16-27, wherein the global features of the service request are selected from at least one of weather condition, temperature condition, GPS data, timing data, and traffic condition.
- The system of any one of claims 16-28, wherein the global features further comprising data of a driver related to the service request, comprising at least one of the driver’s driving habit, mileage information, and demographic information of the driver including at least one of age, gender, and health conditions.
- The system of any one of claims 16-29, wherein the global features further comprising data of a vehicle executing the service request, the data of the vehicle comprising at least one of make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, and maintenance record of the vehicle.
- A system for obtaining estimated time of arrival (ETA) for a service request from a service requester, comprising:an obtaining module configured toreceive the service request from a terminal of the service requester, the service request comprising a starting location and a destination;obtain a route linking the starting location and the destination, the route comprising a plurality of road segments each having a corresponding link representing features of the road segment; andobtain one or more global features associated with the service request;a first analyzing module configured to use a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) ; anda second analyzing module configured touse a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments;determine a segment weight of V for each road segment based on V and its corresponding local segment vector;obtain a global segment vector for each road segment based on its corresponding segment weight and V;obtain a segment vector for each road segment by combining its corresponding local and global segment vectors; andobtain the ETA for the service request based on the segment vectors.
- The system of claim 31, wherein the obtaining the ETA for the service request based on the segment vectors includes:combining all segment vectors to form an overall combined vector; andobtaining the ETA for the service request based on the overall combined vector.
- The system of claim 31, wherein the obtaining the ETA for the service request based on the segment vector includes:calculating ETA for each road segment based on its corresponding segment vector; andcombining the ETAs of the road segments to obtain the ETA of the service request.
- The system of any one of claims 31-33, wherein the segment weight of the global vector is determined by a degree of similarity between the local segment vector and the global vector.
- The system of any one of claims 31-34, wherein the segment weight of the global vector is determined using an attention mechanism.
- The system of any one of claims 31-35, wherein the obtaining the segment vector for each road segment by combining its corresponding local and global segment vectors further comprising:determining a segment weight for the local segment vector for each road segment; anddetermining the segment vector for each road segment based on the segment weight of the local segment vector, the segment weight of the global vector, and corresponding local and global segment vectors.
- The system of any one of claims 31-36, wherein the first model is a Gradient Boosting Decision Tree (GBDT) model.
- The system of claim 37, wherein the GBDT model is a tree-structure model including one or more trees, each of the one or more trees including a root node and one or more split-nodes, each node except for a final layer of split-nodes including a rule used to determine a path for the one or more global features to follow from the root node to one of the split-nodes in the final layer;wherein an output of each tree provides one or more vectors indicating which final split-node of the tree the one or more global features fall on such that at least one of the one or more global features is represented by the one or more vectors;wherein the V is a combination vector including the output of each tree of the GBDT model, andwherein the GBDT model is obtained by training a first preliminary model using first training data set including global features of a plurality of first historical service requests to obtain at least one of the one or more trees, the nodes, the branches, and the rules of the GBDT model.
- The system of any one of claims 31-38, wherein the second model comprises a Recurrent Neural Network (RNN) model.
- The system of any one of claims 31-39, wherein the RNN model is obtained by training a second preliminary model using a second training data set including features for each road segment of routes from a plurality of second historical service requests, global vectors of global features from the plurality of second historical service requests, and actual arrival times of the routes from the plurality of second historical service requests to obtain the rules of the RNN model.
- The system of any one of claims 31-40, further comprising:a transmission module configured to transmit the estimated arrival time to the terminal of the service requester and directing the terminal to display the estimated arrival time.
- The system of any one of claims 31-41, wherein the features of each of the road segment are selected from at least one of length of the road segment, width of the road segment, direction of travel, traffic lights distribution, and lane condition.
- The system of any one of claims 31-42, wherein the global features of the service request are selected from at least one of weather condition, temperature condition, GPS data, timing data, and traffic condition.
- The system of any one of claims 31-43, wherein the global features further comprising data of a driver related to the service request, comprising at least one of the driver’s driving habit, mileage information, and demographic information of the driver including at least one of age, gender, and health conditions.
- The system of any one of claims 31-44, wherein the global features further comprising data of a vehicle executing the service request, the data of the vehicle comprising at least one of make and model of the vehicle, age of the vehicle, condition of the vehicle, gas mileage of the vehicle, and maintenance record of the vehicle.
- A non-transitory computer readable medium, comprising at least one set of instructions for identifying a road feature, wherein when executed by one or more processors of a computing device, the at least one set of instructions causes the computing device to perform a method, the method comprising:receiving the service request from a terminal of the service requester, the service request comprising a starting location and a destination;obtaining a route linking the starting location and the destination, the route comprising a plurality of road segments each having a corresponding link representing features of the road segment;obtaining one or more global features associated with the service request;using a first model to analyze the one or more global features associated with the service request to produce a global vector for the service request (V) ;using a second model to analyze the features of each of the road segment to produce a local segment vector for each of the road segments;determining a segment weight of V for each road segment based on V and its corresponding local segment vector;obtaining a global segment vector for each road segment based on its corresponding segment weight and V;obtaining a segment vector for each road segment by combining its corresponding local and global segment vectors;obtaining the ETA for the service request based on the segment vectors.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2020/136374 WO2022126354A1 (en) | 2020-12-15 | 2020-12-15 | Systems and methods for obtaining estimated time of arrival in online to offline services |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2020/136374 WO2022126354A1 (en) | 2020-12-15 | 2020-12-15 | Systems and methods for obtaining estimated time of arrival in online to offline services |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2022126354A1 true WO2022126354A1 (en) | 2022-06-23 |
Family
ID=82059819
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2020/136374 Ceased WO2022126354A1 (en) | 2020-12-15 | 2020-12-15 | Systems and methods for obtaining estimated time of arrival in online to offline services |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2022126354A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220236071A1 (en) * | 2021-01-26 | 2022-07-28 | Ubtech North America Research And Development Center Corp | Estimated time of arrival calculating method and system and mobile machine using the same |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7512487B1 (en) * | 2006-11-02 | 2009-03-31 | Google Inc. | Adaptive and personalized navigation system |
| US20180374032A1 (en) * | 2017-06-27 | 2018-12-27 | Uber Technologies, Inc. | Match-based route navigation system |
| US20190178679A1 (en) * | 2017-12-08 | 2019-06-13 | Uber Technologies, Inc. | Cadence-based personalized bicycle route guidance |
| US10429200B1 (en) * | 2017-05-15 | 2019-10-01 | Uber Technologies, Inc. | Determining adjusted trip duration using route features |
| US20200058226A1 (en) * | 2017-08-14 | 2020-02-20 | Honeywell International Inc. | Speed-constrained flight management methods and systems |
| US20200365015A1 (en) * | 2016-12-19 | 2020-11-19 | ThruGreen, LLC | Connected and adaptive vehicle traffic management system with digital prioritization |
-
2020
- 2020-12-15 WO PCT/CN2020/136374 patent/WO2022126354A1/en not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7512487B1 (en) * | 2006-11-02 | 2009-03-31 | Google Inc. | Adaptive and personalized navigation system |
| US20200365015A1 (en) * | 2016-12-19 | 2020-11-19 | ThruGreen, LLC | Connected and adaptive vehicle traffic management system with digital prioritization |
| US10429200B1 (en) * | 2017-05-15 | 2019-10-01 | Uber Technologies, Inc. | Determining adjusted trip duration using route features |
| US20180374032A1 (en) * | 2017-06-27 | 2018-12-27 | Uber Technologies, Inc. | Match-based route navigation system |
| US20200058226A1 (en) * | 2017-08-14 | 2020-02-20 | Honeywell International Inc. | Speed-constrained flight management methods and systems |
| US20190178679A1 (en) * | 2017-12-08 | 2019-06-13 | Uber Technologies, Inc. | Cadence-based personalized bicycle route guidance |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20220236071A1 (en) * | 2021-01-26 | 2022-07-28 | Ubtech North America Research And Development Center Corp | Estimated time of arrival calculating method and system and mobile machine using the same |
| US11933615B2 (en) * | 2021-01-26 | 2024-03-19 | Ubkang (Qingdao) Technology Co., Ltd. | Estimated time of arrival calculating method and system and mobile machine using the same |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11003677B2 (en) | Systems and methods for location recommendation | |
| US10876847B2 (en) | Systems and methods for route planning | |
| WO2021012342A1 (en) | Systems and methods for traffic prediction | |
| US20210140774A1 (en) | Systems and methods for recommending pick-up locations | |
| US11017662B2 (en) | Systems and methods for determining a path of a moving device | |
| US20200042885A1 (en) | Systems and methods for determining an estimated time of arrival | |
| WO2017202112A1 (en) | Systems and methods for distributing request for service | |
| WO2019109604A1 (en) | Systems and methods for determining an estimated time of arrival for online to offline services | |
| US11468374B2 (en) | Methods and systems for carpool services | |
| US20190139070A1 (en) | Systems and methods for cheat examination | |
| WO2020243963A1 (en) | Systems and methods for determining recommended information of service request | |
| US20200158522A1 (en) | Systems and methods for determining a new route in a map | |
| WO2021087663A1 (en) | Systems and methods for determining name for boarding point | |
| US20200167812A1 (en) | Systems and methods for determining a fee of a service request | |
| WO2021051221A1 (en) | Systems and methods for evaluating driving path | |
| WO2020107440A1 (en) | Systems and methods for analyzing traffic congestion | |
| WO2022126354A1 (en) | Systems and methods for obtaining estimated time of arrival in online to offline services | |
| WO2021022487A1 (en) | Systems and methods for determining an estimated time of arrival | |
| WO2022087767A1 (en) | Systems and methods for recommending pick-up locations | |
| WO2021051329A1 (en) | Systems and methods for determining estimated time of arrival in online to offline services | |
| CN110832811B (en) | System and method for transmitting spatial data |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20965372 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205N DATED 08/08/2023) |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 20965372 Country of ref document: EP Kind code of ref document: A1 |