WO2020155135A1 - Systems and methods for identifying similar trajectories - Google Patents
Systems and methods for identifying similar trajectories Download PDFInfo
- Publication number
- WO2020155135A1 WO2020155135A1 PCT/CN2019/074524 CN2019074524W WO2020155135A1 WO 2020155135 A1 WO2020155135 A1 WO 2020155135A1 CN 2019074524 W CN2019074524 W CN 2019074524W WO 2020155135 A1 WO2020155135 A1 WO 2020155135A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- trajectories
- hash
- bit strings
- pair
- bits
- 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
- 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
- G06Q30/00—Commerce
- G06Q30/018—Certifying business or products
- G06Q30/0185—Product, service or business identity fraud
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- 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/02—Reservations, e.g. for tickets, services or events
-
- 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
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0633—Managing shopping lists, e.g. compiling or processing purchase lists
- G06Q30/0635—Managing shopping lists, e.g. compiling or processing purchase lists replenishment orders; recurring orders
-
- 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
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/40—Business processes related to the transportation industry
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2218/00—Aspects of pattern recognition specially adapted for signal processing
- G06F2218/12—Classification; Matching
Definitions
- the present disclosure generally relates to systems and methods for online-offline services, and in particular, to systems and methods for identifying fraudulent activities in online-offline transportation services.
- a system providing online-offline services may obtain service orders from requestors (e.g., passengers) , and send the service orders to terminals of service providers (e.g., drivers) . After the service providers finishing the service orders, information associated with the orders may be sent to the system providing online-offline services (e.g., a server in the system) and may further be employed by the system to identify fraudulent activities.
- Current systems may use a LCSS (Longest Comon Subsequence) method to identify fraudulent activities, in which the similarity between every two orders are calculated based on the geographic coordinates of the two orders, to determine whether the two orders have been involved in fraudulent activities.
- LCSS Longest Comon Subsequence
- a system for identifying similar trajectories may be provided.
- the system may include at least one storage medium including a set of instructions, and at least one processor in communication with the at least one storage medium.
- the at least one processor may be directed to obtain, from one or more user terminals, a plurality of trajectories.
- Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals.
- the at least one processor may be also directed to obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions.
- the plurality of hash bit strings may be text-based bit strings including at least one letter.
- the at least one processor may be further directed to identify at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- the at least one processor may be directed to transform the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
- the at least one processor may be directed to for each of the plurality of hash bit string, select a plurality of target hash bits from the hash bit string, and transform the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm.
- the plurality of binary bits may constitute one binary bit string.
- the at least one processor may be directed to measure a hamming distance between any two of the plurality of binary bit strings, and identify at least one pair of trajectories having the hamming distance less than a threshold as the at least one pair of similar trajectories, among the plurality of trajectories.
- the at least one processor may be further directed to determine a relationship between one or more vehicles associated with the at least one pair of similar trajectories.
- the at least one processor may be directed to upon identifying the at least one pair of similar trajectories, determine that the one or more vehicles associated with the at least one pair of similar trajectories are the same.
- each of the plurality of representations of the position may be a pair of geographic coordinates or a physical address.
- the Locality Sensitive Hashing may be a simhashing algorithm or a minhashing algorithm.
- a method for identifying similar trajectories may be provided.
- the method may include obtaining, from one or more user terminals, a plurality of trajectories. Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals.
- the method may also include obtaining a plurality of hash bit strings respectively based on the plurality of representations of the positions.
- the plurality of hash bit strings may be text-based bit strings including at least one letter.
- the method may further include identifying at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- a system for identifying similar trajectories may be provided.
- the system may include an obtaining module configured to obtain, from one or more user terminals, a plurality of trajectories, each of which having a plurality of representations of positions of the one or more user terminals.
- the system may also include one or more hashers configured to obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality of hash bit strings are text-based bit strings including at least one letter.
- the system may further include a determination module configured to identify at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- a non-transitory computer readable medium may include a set of instructions for identifying similar trajectories. When executed by at least one processor, the set of instructions may direct the at least one processor to effectuate a method.
- the method may include obtaining, from one or more user terminals, a plurality of trajectories. Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals.
- the method may also include obtaining a plurality of hash bit strings respectively based on the plurality of representations of the positions.
- the plurality of hash bit strings may be text-based bit strings including at least one letter.
- the method may further include identifying at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- FIG. 1 is a schematic diagram illustrating an exemplary online-offline service system according to some embodiments of the present disclosure
- FIG. 2 is a schematic diagram illustrating an exemplary computing device in the online-offline service system according to some embodiments of the present disclosure
- FIG. 3 is a schematic diagram illustrating an exemplary mobile device in the online-offline service system according to some embodiments of the present disclosure
- FIG. 4A is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure.
- FIG. 4B is a block diagram illustrating an exemplary second hasher according to some embodiments of the present disclosure.
- FIG. 5A is a flowchart illustrating an exemplary process for identifying a pair of similar trajectories according to some embodiments of the present disclosure
- FIG. 5B is a flowchart illustrating an exemplary process for determining a relationship between one or more vehicles associated with a pair of similar trajectories according to some embodiments of the present disclosure
- FIG. 5C is a flowchart illustrating an exemplary process for obtaining a binary bit string according to some embodiments of the present disclosure.
- FIG. 6 is a flowchart illustrating an exemplary process for identifying similar trajectories according to some embodiments of the present disclosure.
- the flowcharts used in the present disclosure illustrate operations that systems implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts 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.
- the systems and methods disclosed in the present disclosure are described primarily regarding an online-offline transportation service, it should also be understood that this is only one exemplary embodiment.
- the system or method of the present disclosure may be applied to any other kind of online-offline services.
- the system or method of the present disclosure may be applied to different transportation systems including land, ocean, 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 vessel, an aircraft, a spaceship, a hot-air balloon, a driverless vehicle, or the like, or any combination thereof.
- the transportation system may also include any transportation system that applies management and/or distribution, for example, a system for transmitting and/or receiving an express.
- the application scenarios of the system or method of the present disclosure may include a web page, 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 ” “requestor, ” “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.
- 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 passenger terminal may be used interchangeably, and terms “driver” and “driver terminal” may be used interchangeably.
- hashing algorithm may be used interchangeably.
- service request in the present disclosure refers to a request that initiated by a passenger, a requestor, a service requestor, 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 requestor, a service requestor, a customer, a driver, a provider, a service provider, or a supplier.
- the service request may be chargeable, or free.
- “requests” may also be referred to as “orders”
- service requests” may also be referred to as “service orders” .
- the positioning technology used in the present disclosure may include 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
- An aspect of the present disclosure provides online systems and methods for determining similar trajectories to determine fraudulent activities.
- the system may hash trajectories (e.g., a first trajectory and a second trajectory) into text-based bit strings, hash the text-based bits into binary bit strings, and determine the hamming distance between the determined binary bit strings.
- the system may determine the trajectories (e.g., a first trajectory and a second trajectory) as similar trajectories, and determine the activities (e.g., the service providing activity of the driver) associated with the trajectories to be fraudulent activities.
- online online-offline transportation services such as online taxi hailing
- online taxi hailing is a new form of service rooted only in post-Internet era. It provides technical solutions to users and service providers that could raise only in post-Internet era.
- pre-Internet era when a user calls for a taxi on street, the taxi request and acceptance occur only between the passenger and one taxi driver that sees the passenger. If the passenger calls a taxi through telephone call, the service request and acceptance may occur only between the passenger and one service provider (e.g., one taxi company or agent) .
- service provider e.g., one taxi company or agent
- Online taxi hailing allows a user of the service to real-time and automatic distribute a service request to a vast number of individual service providers (e.g., taxi) distance away from the user.
- FIG. 1 is a schematic diagram of an exemplary online-offline service system 100 according to some embodiments of the present disclosure.
- the online-offline service system 100 may be an online transportation service platform for transportation services such as taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, and shuttle services.
- the online-offline service system 100 may be an online platform including a server 110, a network 120, a requestor terminal 130, a provider terminal 140, and a storage device 150.
- the server 110 may include a processing engine 112.
- the server 110 may be a single server, or a server group.
- the server group may be centralized, or distributed (e.g., 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 requestor terminal 130, the provider terminal 140, and/or the storage device 150 via the network 120.
- the server 110 may connect the requestor terminal 130, the provider terminal 140, 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 engine 112.
- the processing engine 112 may process information and/or data relating to the service request to perform one or more functions described in the present disclosure. For example, the processing engine 112 may perform determine recommended information (e.g., a recommended driving route, an estimated time of arrival) associated with a service request for an online-offline service based on a plurality of trained sub-end-point regions.
- the processing engine 112 may include one or more processing engines (e.g., single-core processing engine (s) or multi-core processor (s) ) .
- the processing engine 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 programmable logic device
- controller a microcontroller unit, a reduced instruction-set computer (RISC) , a microprocessor, or the like, or any
- the network 120 may facilitate exchange of information and/or data.
- one or more components of the online-offline service system 100 e.g., the server 110, the requestor terminal 130, the provider terminal 140, and the storage device 150
- the server 110 may receive a service request from the requestor terminal 130 via the network 120.
- the network 120 may be any type of wired or wireless network, or combination thereof.
- the network 130 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an 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 network, a ZigBee 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-offline service system 100 may be connected to the network 120 to exchange data and/or information between them.
- 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-offline service system 100 may be connected to the network 120 to exchange data and/or information between them.
- a requestor may be a user of the requestor terminal 130. In some embodiments, the user of the requestor terminal 130 may be someone other than the requestor. For example, a user A of the requestor terminal 130 may use the requestor terminal 130 to transmit a service request for a user B, or receive service and/or information or instructions from the server 110.
- a provider may be a user of the provider terminal 140. In some embodiments, the user of the provider terminal 140 may be someone other than the provider. For example, a user C of the provider terminal 140 may user the provider terminal 140 to receive a service request for a user D, and/or information or instructions from the server 110.
- “requestor” and “requestor terminal” may be used interchangeably, and “provider” and “provider terminal” may be used interchangeably.
- the requestor 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 smart 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 smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof.
- the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, 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, an augmented reality glass, 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.
- built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc.
- the requestor terminal 130 may be a device with positioning technology for locating the position of the requestor and/or the requestor terminal 130.
- the provider terminal 140 may be similar to, or the same device as the requestor terminal 130. In some embodiments, the provider terminal 140 may be a device with positioning technology for locating the position of the provider and/or the provider terminal 140. In some embodiments, the requestor terminal 130 and/or the provider terminal 140 may communicate with another positioning device to determine the position of the requestor, the requestor terminal 130, the provider, and/or the provider terminal 140. In some embodiments, the requestor terminal 130 and/or the provider terminal 140 may transmit positioning information to the server 110.
- the storage device 150 may store data and/or instructions. In some embodiments, the storage device 150 may store data obtained from the requestor terminal 130 and/or the provider terminal 140. For example, the storage device 150 may store a plurality of trajectories obtained from the provider terminal 140.
- a trajectory (or referred to as a motion path) of an object (e.g., a vehicle) may be defined a sequence of positions of the object that is obtained over a time range.
- Exemplary motion paths may include a motion path (VMP) .
- the position may be indicated as a geographic coordinate, which may include a latitude coordinate and a longitude coordinate.
- the time range may be the time interval between the start time point corresponding to the start location of the trajectory and the arrival time point corresponding to the arrival location of the trajectory.
- the positions of the object may be obtained by the location sensing services embedded in the provider terminal 140 over the time range, and sent to the storage device 150.
- the storage device 150 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods described in the present disclosure.
- 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.
- Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc.
- Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc.
- Exemplary volatile read-and- write memory may include a random access memory (RAM) .
- Exemplary 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.
- Exemplary 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 of the online-offline service system 100 (e.g., the server 110, the requestor terminal 130, the provider terminal 140) .
- One or more components in the online-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-offline service system 100 (e.g., the server 110, the requestor terminal 130, the provider terminal 140) .
- the storage device 150 may be part of the server 110.
- one or more components of the online-offline service system 100 may access the storage device 150.
- one or more components of the online-offline service system 100 may read and/or modify information relating to the requester, provider, and/or the public when one or more conditions are met.
- the server 110 may read and/or modify one or more users’information after a service.
- the provider terminal 140 may access information relating to the requestor when receiving a service request from the requestor terminal 130, but the provider terminal 140 may not modify the relevant information of the requestor.
- information exchanging of one or more components of the online-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 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 on 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) , a car (e.g., a taxi, a bus, a private car) , a train, a subway, a vessel, an aircraft (e.g., an airplane, a helicopter, a space shuttle, a rocket, a hot-air balloon) , 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) , a car (e.g., a taxi, a bus, a private car) , a train, a subway, a vessel, an aircraft (e.
- the online-offline system 100 may be used as a navigation system.
- the navigation system may include a user terminal (e.g., the requestor terminal 130 or the provider terminal 140) and a server (e.g., the server 110) .
- a user may input a target location (e.g., a start location, a destination) and/or a start time via the user terminal.
- the navigation system may accordingly determine recommended information (e.g., a recommended driving route, an ETA) based on the target location and/or the start time according to the process and/or method described in this disclosure.
- FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, the requestor terminal 130, and/or the provider terminal 140 may be implemented according to some embodiments of the present disclosure.
- the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
- the computing device 200 may be a general-purpose computer or a special purpose computer; both may be used to implement an online-offline system for the present disclosure.
- the computing device 200 may be used to implement any component of the online-offline service as described herein.
- the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof.
- only one such computer is shown, for convenience, the computer functions relating to the online-offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
- the computing device 200 may include COM ports 250 connected to and from a network connected thereto to facilitate data communications.
- the computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors, for executing program instructions.
- the exemplary computing device may include an internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device.
- the exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220.
- the methods and/or processes of the present disclosure may be implemented as the program instructions.
- the computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components.
- the computing device 200 may also receive programming and data via network communications.
- FI. G 2 Merely for illustration, only one CPU and/or processor is illustrated in FI. G 2. Multiple CPUs and/or processors are also contemplated; thus operations and/or method steps performed by one CPU and/or processor as described in the present disclosure may also be jointly or separately performed by the multiple CPUs and/or processors.
- the CPU and/or 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 different CPUs and/or processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
- FIG. 3 illustrates an exemplary mobile device on which the online-offline service can 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 370 e.g., iOS TM , Android TM , Windows Phone TM , etc.
- 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 associated with a service request (e.g., a start location, a destination) from the processing engine 112 and/or the storage device 150.
- a service request e.g., a start location, a destination
- User interactions with the information stream may be achieved via the I/O 350 and provided to the processing engine 112 and/or other components of the online-offline service system 100 via the network 120.
- an element of the online-offline service system 100 may perform through electrical signals and/or electromagnetic signals.
- the requestor terminal 130 may operate logic circuits in its processor to process such task.
- a processor of the service requestor terminal 130 may generate electrical signals encoding the service request.
- the processor of the requestor terminal 130 may then send the electrical signals to an output port. If the requestor terminal 130 communicates with the server 110 via a wired network, the output port may be physically connected to a cable, which may further transmit the electrical signals to an input port of the server 110.
- the output port of the requestor terminal 130 may be one or more antennas, which may convert the electrical signals to electromagnetic signals.
- a provider terminal 140 may process a task through operation of logic circuits in its processor, and receive an instruction and/or service request from the server 110 via electrical signals or electromagnet signals.
- an electronic device such as the requestor terminal 130, the provider terminal 140, and/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) , 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. 4A is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure.
- the processing engine 112 may include an obtaining module 410, a first hasher 420, a second hasher 430, and a determination module 440.
- the obtaining module 410 may obtain a plurality of trajectories.
- the obtaining module 410 may obtain the plurality of trajectories from one or more other components in the online-offline service system 100.
- the obtaining module 410 may obtain the trajectories from the storage device 150 through the network 120.
- the obtaining module 410 may obtain the trajectories from one or more user terminals (e.g., one or more provider terminals 140) .
- the plurality of trajectories may correspond to a plurality of objects (e.g., vehicles) and may be reported by one or more drivers using one or more registered accounts (e.g., drivers) of the online-offline service system 100.
- the plurality of trajectories may include a first trajectory and a second trajectory.
- the first trajectory be reported by a first user using a first registered account.
- the second trajectory may be reported by a second user using a second registered account.
- the first registered account and the second registered account may be registered by a same user or by different users (e.g., drivers) .
- the time ranges of the trajectories may at least partially overlap.
- the trajectories may correspond to a same time time range. That is, the time ranges of the trajectories fully overlap.
- the first trajectory and the second trajectory may both correspond to a time range between 10: 00: 00 p. m, September 27, 2018, and 11: 00: 00 p. m, September 27, 2018.
- the trajectories may correspond to different time time ranges, and the shorter ones among the time time ranges may at least partially overlap with the longer ones among the time time ranges.
- Each of the plurality of trajectories may include a plurality of representations of positions (e.g., geographic coordinates or physical addresses) .
- each of the plurality of trajectories may include a sequence of geographic coordinates.
- a trajectory may be expressed as below:
- Tm (1 st geographic coordinate, 2 nd geographic coordinate, 3 rd geographic coordinate, ...i th geographic coordinate...n th geographic coordinate)
- Tm represents the mth trajectory in the plurality of trajectories.
- m is an integer no smaller than 1.
- Tm may include and be defined by the n geographic coordinates of the 1 st geographic coordinate, 2 nd geographic coordinate, 3 rd geographic coordinate, and the n th geographic coordinate.
- i th represent the i th geographic coordinate in the n geographic coordinates defining the trajectory Tm.
- the geographic coordinates defining a trajectory may be arranged in order of time.
- the 1 st geographic coordinate may correspond to the time point corresponding to the start location of the trajectory Tm.
- the i th geographic coordinate may correspond to the i th time point when the provider terminal 140 pick up the geographic location (or referred to as geographic coordinates) of the vehicle.
- the n th geographic coordinate may correspond to the the time point when the provider terminal 140 finished serving the service request, for example, when the provider terminal 140 or the corresponding vehicle arrives at the destination set by the requestor.
- the geographic coordinates of the trajectory Tm may be arranged in a random manner.
- the obtaining module 410 may send the obtained trajectories to the first hasher 420.
- the first hasher 420 may obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality hash bit strings are text-based bit strings including at least one letter.
- the first hasher 420 may hash the obtained geographic coordinates of the trajectories into first-hash bits by using a first hash function (or referred to as a first hashing calculation, or a first hashing technolory) .
- the first-hash bit may be a text-based bit which includes one or more letters and values.
- the first-hash bit may include at least one letter.
- the first-hash bit may consists of letters only and may not include any digits.
- the first hash function may any function which transform geographic coordinates into text-based bits.
- the first hash function may be a geohash function employing a geohash coordinate system.
- a geographic coordinate system refers to a system that hierarchically divides space into grid-shaped buckets. For example, a space may be divided into a plurality of buckets including a first bucket and a second bucket. Each bucket may be further subdivided into multiple sub-buckets, and so on, creating a hierarchy of buckets. For example, the first bucket is divided into sub-buckets including a sub-bucket 1-1 and a bucket sub-1-2.
- a property of geohash is that two locations with a long common geohash prefix are close to each other. Similarly, nearby locations usually share a similar prefix. However, it is not always guaranteed that two close locations share a long common prefix (when they are located near the border of two bounding boxes) .
- the first-hash bit may denote a bounding box (e.g., bucket or a sub-bucket) on the earth. It provides a spatial hierarchy with arbitrary precision: the precision can be reduced (i.e., representing a larger area) by removing characters from the end of the string; that is, the longer the geohash bit, the smaller the bounding box represented by the bit.
- a point of interest located in the sub-bucket 1-1 can be represented by either the sub-bucket 1-1 or the first bucket, depending on the required level of precision (i.e., tolerated error) , with sub-bucket 1-1 providing the highest level of precision and first bucket providing the lowest level of precision of the available buckets.
- the first hasher 420 may perform a first hash function on each of the geographic coordinates of the trajectory to obtain a first-hash bit of the geographic coordinate.
- the obtained first-hash bits of the geographic coordinates may constitute a first-hash bit string of the trajectory.
- the first hasher 420 may perform the first hash function on the geographic coordinates of the first trajectory to obtain a first-hash bit string of the first trajectory.
- the first hasher 420 may perform the first-hash operation on geographic coordinates of the second trajectory to obtain a first-hash bit string of the second trajectory.
- a first-hash bit string of a trajectory may be expressed as below
- Fm (1 st first-hash bit, 2 nd first-hash bit, 3 rd first-hash bit, ..., i th first-hash bit..., n th first-hash bit)
- Fm may represent the first-hash bit string of the trajectory Tm.
- i th first-hash bit may represent the first-hash bit of the i th geographic coordinate of the trajectory Tm.
- m, I, m may represent integers no smaller than 1.
- n may be 8
- the first-hash bit string of the trajectory Tm may consists of 8 letters and/or values.
- the first hasher 420 may send the first-hash bit string, for example, the first-hash bit string of the first trajectory and the first-hash bit string of the second trajectory to the second hasher 430.
- the second hasher 430 may transform the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
- the second hasher 430 may pre-process the first-hash bits and transform the pre-processed first-hash bits into second hash bits. In some embodiments, for each trajectory, the second hasher 430 may select some first-hash bits from the first-hash bit string of the trajectory. The selected first-hash bits may be referred to as target first-hash bits.
- the second hasher 430 may select the target first-hash bits by eliminating at least some of duplicate first-hash bits in the first-hash bit string of the trajectory. For example, for a certain trajectory, the 1 st first-hash bit, 2 nd first-hash bit, 3 rd first-hash bit may be same, the second hasher 430 may eliminate the three first-hash bits, or any two of the three hash bits, or any one of the three hash bits.
- the second hasher 430 may hash each of the target first-hash bits into a second-hash bit.
- the second-hash bit may be a binary bit which includes two values (e.g., “1” and “0” ) .
- the second hash function (or referred to as second hashing calculation) may be any function which transform text-based bits into binary bits.
- the second hash function may be a simhash function which may quickly estimate how similar two sets are.
- the second hash function may be a minhash function.
- the second hasher 430 may assign each letter or value in the target first-hash bit with a second-hash bit.
- the second-hash bit of the target first-hash bit may consists of the second-hash bits assigned to the letters and/or values in the target first-hash bit.
- the target first-hash bit may be “xyx” , including three letters-two “x” and one “y” .
- the second hasher 430 may assign the letter “x” with a second hash bit “10” , and the letter “y” with a second hash bit “01” .
- the second hash bit of the target first-hash bit “xyx” may be “10 01 10” .
- the second-hash bits of the target first-hash bits in a certain trajectory may consists the second-hash bit string of the trajectory.
- a second-hash bit string of a trajectory may be expressed as below:
- Sm (1 st second-hash bit, 2 nd second-hash bit, 3 rd second-hash bit, ..., i th second-hash bit, (i+a) th second-hash bit..., n th second-hash bit) .
- Sm may represent the second hash-bit string of the trajectory Tm, which may be hashed from the first-hash bit string Fm of the trajectory Tm.
- m, i, n may be integers no smaller than 1.
- a may be an integer larger than 1.
- the second hash-bit string of the trajectory Tm may include (n-a) second-bits, including the 1 st second-hash bit, 2 nd second-hash bit, 3 rd second-hash bit, i th second-hash bit, (i+a) th second-hash bit, ..., and the n th second-hash bit.
- i th second-hash bit may be second-hash bit of the i th target first-hash bits.
- the (i+1) th and the (i+a-1) th first-hash bits may be eliminated, resulting in the Sm not having the second-hash bits corresponding thereto.
- the second-hash bit strings output by the second hasher 430 may have the same length.
- the length of the string Sm may be 64 bits or 128 bits.
- the second hasher 430 may send the second-hash bit strings, for example, the second-hash bit string of the first trajectory and the second-hash bit string of the second trajectory to the determination module 440.
- the determination module 440 may identify a pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing. In some embodiments, the determination module 440 may measure a hamming distance between any two of the plurality of binary bit strings, and identify a pair of trajectories having the hamming distance less than a threshold, as the pair of similar trajectories, among the plurality of trajectories.
- the determination module 440 may determine trajectory similarities among at least some of the trajectories sent from the second hasher 430.
- the determination module 440 may determine the Hamming distance among the trajectories.
- the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different.
- the determination module 440 may select every two trajectories from the trajectories sent from the second hasher 430, and determine the similarities between the two trajectories by calculating the Hamming distance between the two trajectories. In some embodiments, the determination module may select a target trajectory from the trajectories sent from the second hasher 430, and determine the similarity between the target trajectory and each of the remaining trajectories by determine the Hamming distance between the target trajectory and the trajectory.
- the determination module 440 may further compare the determined Hamming distance of two trajectories with a threshold.
- the threshold may be a preset value stored in one or more components of the online-offline service system 100.
- the determination module 440 may determine the two trajectories to be normal trajectories in which no fraudulent activities have been involved.
- the determination module 440 may determine the two trajectories to be be abnormal trajectories in which some fraudulent activities have been involved.
- Exemplary fraudulent activities may include, for example, a driver using multiple registered accounts of the online-offline service system 100 to respond to service requests, multiple drivers sharing a same vehicle to respond to service requests, or the like.
- the determination module 440 may determine the registered accounts associated with the abnormal trajectories, and execute certain punishment actions thereon. For example, the determination module 440 may deactivate at least one of the registered accounts associated with the abnormal trajectories. In some embodiments, the determination module 440 may deactivate at least one of the registered accounts associated with the abnormal trajectories for a certain time period, for example, a week, a month, a year, or the like. In some embodiments, the determination module 440 may deactivate at least one of the registered accounts associated with the abnormal trajectories permanently.
- the determination module 440 may also send signals indicating the deactivation of the registered account to any other device. For example, determination module 440 may also send signals indicating the deactivation of the registered account to the provider terminal 140 through the network 120. As another example, the determination module 440 may also send signals indicating the deactivation of the registered account to the server 110, which may further send the signal to the provider terminal 140. In some embodiments, the determination module 440 may send said signals to any device via a suitable communication protocol (e.g., the Hypertext Transfer Protocol (HTTP) , Address Resolution Protocol (ARP) , Dynamic Host Configuration Protocol (DHCP) , File Transfer Protocol (FTP) , etc. ) .
- HTTP Hypertext Transfer Protocol
- ARP Address Resolution Protocol
- DHCP Dynamic Host Configuration Protocol
- FTP File Transfer Protocol
- the modules in the processing engine 112 may be connected to or communicate 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
- Bluetooth a ZigBee
- NFC Near Field Communication
- the first hasher 420 and the second hasher 430 may be combined as a single module which may both obtain the trajectories from the obtaining module 410, hash the trajectories into first-hash bits, and hash the first-hash bits into second-hash bits.
- the processing engine 112 may include a storage module (not shown) used to store the trajectories, the first-hash bits, and the second-hash bits.
- the modules in the processing engine 112 may include a storage unit (not shown) respectively.
- FIG. 4B is a block diagram illustrating an exemplary second hasher 430 according to some embodiments of the present disclosure.
- the second hasher 430 may include a selecting unit 431 and a hashing unit 432.
- the second hasher 430 may select a plurality of target hash bits from the hash bit string.
- the selecting unit 431 may select target first-hash bits from the first-hash bit string.
- the selecting unit 431 may select the target first-hash bits by eliminating at least some of duplicate first-hash bits in the first-hash bit string of the trajectory. For example, for a certain trajectory, the 1 st first-hash bit, 2 nd first-hash bit, 3 rd first-hash bit may be same, the second hasher 430 may eliminate the three first-hash bits, or any two of the three hash bits, or any one of the three hash bits.
- the selecting unit 431 may eliminate the 2 nd first-hash bit, and the 3 rd first-hash bit in the trajectory, maintaining the 1 st first-hash bit in the trajectory.
- the selecting unit 431 may determine all the bits in the first-hash bit string to be target first-hash bit of the first-hash bit string of the second trajectory.
- the selecting unit 431 may further eliminate one or more of the first-hash bits of the trajectories to ensure that the second-hash bit strings corresponding to the trajectories obtained by the obtaining module 410 have same length, which is required by the determination module 440 to determine the Hamming distance among the second-hash bit strings.
- the obtaining module 410 may obtain a first-hash bit string of the first trajectory and a first-hash bit string of the second trajectory.
- the selecting unit 431 may further eliminate two first-hash bits in the first-hash bit string of the second trajectory.
- the selecting unit 431 may eliminate the 2 nd first-hash bit, 3 rd first-hash bit in the first-hash bit string of the second trajectory.
- the selecting unit 431 may first eliminate a first number of first-hash bits in the first-hash bit string of the first trajectory, and a second number of first-hash bits in the first-hash bit string of the third trajectory.
- the selecting unit 431 may further eliminate a third number of first-hash bits in the first-hash bit string of the first trajectory, a fourth number of first-hash bits in the first-hash bit string of the second trajectory, and a fifth number of first-hash bits in the first-hash bit string of the third trajectory based on the first number of first-hash bits in the first-hash bit string of the first trajectory, and the second number of first-hash bits in the first-hash bit string of the second trajectory.
- the first number, the second number, the third number, the fourth number, and the fifth number may be the same or different.
- the selecting unit 431 may first eliminate the 1 st first-hash bit in the first-hash bit string of the first trajectory, eliminate the 2 nd first-hash bit in the first-hash bit string of the second trajectory. Then, the selecting unit 431 may eliminate the 2 nd first-hash bit in the first-hash bit string of the first trajectory, the 1 st first-hash bit in the first-hash bit string of the second trajectory, the 1 st first-hash bit in the first-hash bit string of the third trajectory, and the 2 nd first-hash bit in the first-hash bit string of the third trajectory.
- the first-hash bit string of the first trajectory, the first-hash bit string of the second trajectory, and the first-hash bit string of the third trajectory may have the same length.
- the selecting unit 431 may first eliminate the 1 st first-hash bit and the 2 nd first-hash bit in the first-hash bit string of the first trajectory, eliminate the 2 nd first-hash bit in the first-hash bit string of the second trajectory. Then, the selecting unit 431 may eliminate the 1 st first-hash bit in the first-hash bit string of the second trajectory, the 1 st first-hash bit in the first-hash bit string of the third trajectory, and the 2 nd first-hash bit in the first-hash bit string of the third trajectory.
- the first-hash bit string of the first trajectory, the first-hash bit string of the second trajectory, and the first-hash bit string of the third trajectory may have the same length.
- the selecting unit 431 may send the target first-hash bits corresponding to the trajectories to the hashing unit 432.
- the hashing unit 432 may transform the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm, the plurality of binary bits constituting one binary bit string
- the hashing unit 432 may hash each of the target first-hash bit into a second-hash bit.
- the second-hash bit may be a binary bit which includes two values (e.g., “1” and “0” ) .
- the second hash function may be any function which transforms text-based bits into binary bits.
- the second hash function may be a simhash function which may quickly estimate how similar two sets of binary bits are.
- the second hash function may be a minhash function.
- the hashing unit 432 may assign each letter or value in the target first-hash bit with a second-hash bit.
- the second-hash bits of the letters or values which make up the target first-hash bit may make up the second-hash bit of the target first-hash bit.
- a target first-hash bit may be “OK” .
- the hashing unit 432 may assign the letter “O” with a binary value of “11” , the letter “K” with a binary value “10” , then, the second-hash bit of the first hash bit “OK” may be “1110” .
- the selecting unit 431 may eliminate the first-hash bits in the first-hash bit strings in a random manner, so as to the first-hash bit strings having the same length.
- FIG. 5A is a flowchart illustrating an exemplary process for identifying a pair of similar trajectories according to some embodiments of the present disclosure.
- the relationship between two registered accounts may suggest whether the two registered accounts correspond to a same vehicle.
- process 500 may be implemented in the online-offline service system 100 as illustrated in FIG. 1.
- one or more operations in process 500 may be executed by the processing engine 112.
- one or more operations in process 500 may be implemented on the mobile device as illustrated in FIG. 3.
- one or more operations in process 500 may be stored in storage device 150 and/or another storage device in the form of instructions, and invoked and/or executed by, e.g., the processing engine 112, which, as illustrated above in FIG. 1, may be implemented on the server 110 in the online-offline service system 100.
- the operations of the illustrated process presented below are intended to be illustrative.
- 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 as illustrated in FIG. 5A and described below is not intended to be limiting.
- the obtaining module 410 may obtain a plurality of trajectories from one or more user terminals.
- Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals.
- Each representation of position of one user terminal may be implemented as a geographic coordinate or a physical address.
- the plurality of trajectories may include a first trajectory of a first registered account and a second trajectory of a second registered account.
- the first registered account and the second registered account may be registered by a same driver or two different drivers.
- the first registered account and the second registered account may be logged on two terminals by one driver driving a vehicle, and the first registered account and the second registered account may correspond to the vehicle.
- the first registered account and the second registered account may be logged on two terminals by two drivers driving two different vehicles, for example, a first vehicle and a second vehicle, respectively, and the first registered account and the second registered account may respectively correspond to the first vehicle and the second vehicle.
- Either of the first trajectory and the second trajectory may include a plurality of geographic coordinates, for example, latitude coordinates and longitude coordinates.
- the first hasher 420 may obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality hash bit strings are text-based bit strings including at least one letter.
- the first hasher 420 may obtain a first-hash bit string of the first trajectory and a first-hash bit string of the second trajectory based on the first trajectory of the first registered account, the second trajectory of the second registered account, and a first hash function.
- the first hash function may any function which transform geographic coordinates into text-based bits.
- the first hash function may be a geohash function.
- the first-hash bit string of the first trajectory may be a geohash bit string of the first trajectory.
- the first-hash bit string of the second trajectory may be a geohash bit string of the second trajectory.
- the first hasher 420 may perform a geohash function on each of the geographic coordinates of the first trajectory to obtain the geohash bit of the geographic coordinate.
- the geohash bits of the geographic coordinates of the first trajectory may constitutes the geohash bit string of the first trajectory.
- the first hasher 420 may perform a geohash function on each of the geographic coordinates of the second trajectory to obtain the geohash bit of the geographic coordinate.
- the geohash bits of the geographic coordinates may constitute the geohash bit string of the second trajectory.
- the geohash bit string of the first trajectory and/or the geohash bit string of the second trajectory may include at least one letter.
- the geohash bit string of the first trajectory and/or the geohash bit string of the second trajectory may include letters only and may not include any digits.
- the determination module 440 may identify a pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- Locality Sensitive Hashing may include a simhash calculation or a minhash calculation. Detailed description of the identifying of the pair of similar trajectories may be found elsewhere, e.g., FIG. 5B and the description thereof, and may not be repeated herein.
- process 500 may further include an operation for generating a signal indicating the determination of the first registered account and the second registered account corresponding to the same vehicle, and an operation for deactivate at least one of the first registered account and the second registered account.
- FIG. 5B is a flowchart illustrating an exemplary process for determining a relationship between one or more vehicles associated with a pair of similar trajectories according to some embodiments of the present disclosure.
- process 504 may be implemented in the online-offline service system 100 as illustrated in FIG. 1.
- one or more operations in process 504 may be executed by the second hasher 430, which may be executed by the processing engine 112.
- one or more operations in process 504 may be implemented on the mobile device as illustrated in FIG. 3.
- one or more operations in process 504 may be stored in storage device 150 and/or another storage device in the form of instructions, and invoked and/or executed by, e.g., the processing engine 112, which, as illustrated above in FIG. 5B, may be implemented on the server 110 in the online-offline service system 100.
- the processing engine 112 which, as illustrated above in FIG. 5B, may be implemented on the server 110 in the online-offline service system 100.
- the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 504 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 as illustrated in FIG. 5B and described below is not intended to be limiting.
- the second hasher 430 may transform the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
- the second hasher 430 may transform the first-hash bit string of the first trajectory into a second-hash bit string of the first trajectory, and transform the first-hash bit string of the second trajectory into a second-hash bit string of the second trajectory, , using a second hash function (or referred to as a second hash algorithm) .
- the second hash function may be any function which transform text-based bits into binary bits.
- the second hash function may be a simhash function.
- the second-hash bit string of the first trajectory may be a simhash bit string of the first trajectory.
- the second-hash bit string of the second trajectory may be a simhash bit string of the second trajectory.
- Detailed description of the obtaining of the simhash bit string of the first trajectory and the simhash bit string of the second trajectory may be found in FIG. 5C and the description thereof, and may not be repeated herein.
- the determination module 440 may measure a hamming distance between any two of the plurality of binary bit strings. The determination module 440 may determine the hamming distance between the simhash bit string of the first trajectory and the simhash bit string of the second trajectory.
- the determination module 440 may identify a pair of trajectories having the hamming distance less than a threshold, as the pair of similar trajectories, among the plurality of trajectories.
- the determination module 440 may compare the hamming distance determined in operation 550 with a threshold. Upon a determination that the Hamming distance between the simhash bit string of the first trajectory and the simhash bit string of the second trajectory is smaller than the threshold, the determination module 440 may determine the similarity between the first trajectory and the second trajectory to be relatively high, and identify the first trajectory and the second trajectory to be a pair of similar trajectories.
- the determination module 440 may determine the similarity between the first trajectory and the second trajectory to be relatively low.
- the determination module 440 may determine a relationship between one or more vehicles associated with the pair of similar trajectories. In some embodiments, the determination module 440 may directly determine the relationship between one or more vehicles associated with the pair of similar trajectories. For example, the determination module 440 may, upon identifying the pair of similar trajectories, determine that the one or more vehicles associated with the pair of similar trajectories are the same. In some embodiments, the determination module 440 may first determine the relationship between the registered accounts associated with the similar trajectories, based on which the determination module 440 may determine the relationship between the one or more vehicles associated with the pair of similar trajectories.
- the determination module 440 may determine a relationship between the first registered account and the second registered account based on the determined similarity between the first trajectory and the second trajectory. For example, the determination module 440 may determine whether the first registered account and the second registered account correspond to a same vehicle. When the similarity between the first trajectory and the second trajectory is relatively high, the determination module 440 may determine the first registered account and the second registered account to correspond to a same vehicle. Otherwise, the determination module 440 may determine the first registered account and the second registered account to correspond to different vehicles.
- FIG. 5C is a flowchart illustrating an exemplary process for obtaining a binary bit string according to some embodiments of the present disclosure.
- process 505 may be implemented in the online-offline service system 100 as illustrated in FIG. 1.
- one or more operations in process 505 may be executed by the second hasher 430, which may be executed by the processing engine 112.
- one or more operations in process 505 may implemented on the mobile device as illustrated in FIG. 3.
- one or more operations in process 505 may be stored in storage device 150 and/or another storage device in the form of instructions, and invoked and/or executed by, e.g., the processing engine 112, which, as illustrated above in FIG.
- the selecting unit 431 may select a plurality of target hash bits from the hash bit string.
- the selecting unit 431 may select one or more target first-hash bits from the first-hash bit string of a trajectory.
- the selecting unit 431 may select one or more target first-hash bits from the first-hash bit string of the first trajectory.
- the selecting unit 431 may select one or more target first-hash bits from the first-hash bit string of the second trajectory.
- the selecting unit 431 may select the target first-hash bits from the first-hash bit string of a trajectory by eliminating at least some of duplicate first-hash bits in the first-hash bit string of the trajectory.
- the 1 st first-hash bit, 2 nd first-hash bit, 3 rd first-hash bit may be same
- the second hasher 430 may eliminate the three first-hash bits, or any two of the three hash bits, or any one of the three hash bits.
- the selecting unit 431 may eliminate the 2 nd first-hash bit, 3 rd first-hash bit may be same in the trajectory, maintaining the 1 st first-hash bit in the trajectory.
- the selecting unit 431 may determine all the bits in the first-hash bit string to be target first-hash bit of the first-hash bit string of the second trajectory.
- the hashing unit 432 may transform the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm, the plurality of binary bits constituting one binary bit string.
- the hashing unit 432 may, for each target first-hash bit, perform a second hash function on the target first-hash bit to obtain the second-hash bit of the target first-hash bit.
- the second hasher 430 may assign each letter or value in the target first-hash bit with a second-hash bit.
- the second-hash bits of the letters or values which make up the target first-hash bit may make up the second-hash bit of the target first-hash bit.
- a target first-hash bit may be “OK” .
- the hashing unit 432 may assign the letter “O” with a binary value of “11” , the letter “K” with a binary value “10” , then, the second-hash bit of the first hash bit “OK” may be “1110” .
- process 505 may further include an operation for storing the selected target first-hash bits.
- FIG. 6 is a flowchart illustrating an exemplary process for identifying similar trajectories according to some embodiments of the present disclosure.
- the process 600 may be executed by the online-offline service system 100.
- the process 600 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240.
- the processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 600.
- the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 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 as illustrated in FIG. 6 and described below is not intended to be limiting.
- the obtaining module 410 may obtain a plurality of motion paths reported from a plurality of drivers having at least a first motion path (VMP) reported from a first driver, and a second VMP reported from a second driver.
- the obtaining module 410 may obtain the plurality of motion paths from one or more components (e.g., the storage 150) of the online-offline service system 100.
- the first motion path may include first set of values indicating longitude and latitude of the first VMP.
- the second motion path may include a second set of values indicating longitude and latitude of the second VMP.
- each of the first set of values and each of the second set of values may have the same length.
- the first hasher 420 may transform the first set of values of the first VMP to a first geohash bit string and transform the second set of values of the second VMP to a second geohash bit string, using geohashing technology.
- the first hasher 420 may transform each value of the first set of values of the first VMP to a geohash bit.
- the geohash bits of the first set of values of the first VMP may constitute the first geohash bit string of the first VMP.
- the first hasher 420 may transform each value of the second set of values of the second VMP to a geohash bit.
- the geohash bits of the second set of values of the second VMP may constitute the second geohash bit string of the second VMP.
- each of the geohash bits in the first geohash bit string of the first VMP and each of the geohash bits in the second geohash bit string of the second VMP have a same length.
- each of the geohash bits in the first geohash bit string of the first VMP and each of the geohash bits in the second geohash bit string of the second VMP may include 8 values.
- the second hasher 430 may eliminate one or more geohash bits in the first geohash bit string of the first VMP, and/or eliminate one or more geohash bits in the second geohash bit string of the second VMP.
- one or more geohash bits in the geohash bit string may be duplicate.
- the second hasher 430 may eliminate at least some of the duplicate bits.
- the second hasher 430 may eliminate duplicate bits in the first geohash bit string of the first VMP and/or the second geohash bit string of the second VMP such that no duplicate bits are involved in the first geohash bit string of the first VMP and that no duplicate bits are involved in the the second geohash bit string of the second VMP.
- the second hasher 430 may eliminate duplicate bits in the first geohash bit string of the first VMP and/or the second geohash bit string of the second VMP such that the number of remaining bits in the first geohash bit string of the first VMP and that in the second geohash bit string of the second VMP may be same. That is, after the elimination operation, the modified first geohash bit string of the first VMP and the second geohash bit string of the second VMP have the same length.
- the second hasher 430 may convert the modified first geohash string to a first 64/128 bit binary string and covert the modified second geohash string to a second 64/128 bit binary string, using Simhashing calculation.
- the second hasher 430 may convert the geohash bit into a simhash bit.
- the simhash bits of the geohash bits in the first geohash bit string may be a binary string, which may has a length of 64/128 bit.
- the second hasher 430 may convert the geohash bit into a simhash bit.
- the simhash bits of the geohash bits in the second geohash bit string may make up a binary string, which may has a length of 64/128 bit.
- the determination module 440 may use locality-sensitive hashing (LSH) calculation to identify whether the first VMP and the second VMP have Hamming distance (s) less than a preset Hamming distance threshold X.
- LSH locality-sensitive hashing
- the preset Hamming distance threshold X may be set by a user through one or more components in the online-offline service system 100.
- 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-bit, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” 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 bit embodied thereon.
- a computer readable signal medium may include a propagated data signal with computer readable program bit 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 1703, Perl, COBOL 1702, 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
- an Internet Service Provider for example, AT&T, MCI, Sprint, EarthLink, MSN, etc.
- SaaS software as a service
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- Development Economics (AREA)
- Mathematical Physics (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Primary Health Care (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Algebra (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Traffic Control Systems (AREA)
Abstract
The present disclosure relates to systems and methods for identifying similar trajectories. A method may include obtaining, from one or more user terminals, a plurality of trajectories. Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals. The method may also include obtaining a plurality of hash bit strings respectively based on the plurality of representations of the positions. The plurality of hash bit strings may be text-based bit strings including at least one letter. The method may further include identifying at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority to Chinese Patent Application No. 201910092756.6, filed on January 30, 2019, the entire contents of which are hereby incorporated by references.
The present disclosure generally relates to systems and methods for online-offline services, and in particular, to systems and methods for identifying fraudulent activities in online-offline transportation services.
Online-offline transportation services utilizing Internet technology, such as online taxi services, have become increasingly popular because of their convenience. A system providing online-offline services may obtain service orders from requestors (e.g., passengers) , and send the service orders to terminals of service providers (e.g., drivers) . After the service providers finishing the service orders, information associated with the orders may be sent to the system providing online-offline services (e.g., a server in the system) and may further be employed by the system to identify fraudulent activities. Current systems may use a LCSS (Longest Comon Subsequence) method to identify fraudulent activities, in which the similarity between every two orders are calculated based on the geographic coordinates of the two orders, to determine whether the two orders have been involved in fraudulent activities. However, such method is time-consuming and not suitable for large data volume for identifying similar trajectories due to huge amount of computation involved in its computing process, and. In addition, this method is oversensitive to the geographic coordinates. Thus, there is need to develop a new method and system for determine fraudulent activities to overcome these problems.
SUMMARY
According to an aspect of the present disclosure, a system for identifying similar trajectories may be provided. The system may include at least one storage medium including a set of instructions, and at least one processor in communication with the at least one storage medium. When executing the set of instructions, the at least one processor may be directed to obtain, from one or more user terminals, a plurality of trajectories. Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals. The at least one processor may be also directed to obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions. The plurality of hash bit strings may be text-based bit strings including at least one letter. The at least one processor may be further directed to identify at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
In some embodiments, to identify the pair of similar trajectories from the plurality of trajectories by the Locality Sensitive Hashing, the at least one processor may be directed to transform the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
In some embodiments, to obtain the plurality of binary bit strings, the at least one processor may be directed to for each of the plurality of hash bit string, select a plurality of target hash bits from the hash bit string, and transform the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm. The plurality of binary bits may constitute one binary bit string.
In some embodiments, to identify the at least one pair of similar trajectories from the plurality of trajectories by the Locality Sensitive Hashing, the at least one processor may be directed to measure a hamming distance between any two of the plurality of binary bit strings, and identify at least one pair of trajectories having the hamming distance less than a threshold as the at least one pair of similar trajectories, among the plurality of trajectories.
In some embodiments, the at least one processor may be further directed to determine a relationship between one or more vehicles associated with the at least one pair of similar trajectories.
In some embodiments, the at least one processor may be directed to upon identifying the at least one pair of similar trajectories, determine that the one or more vehicles associated with the at least one pair of similar trajectories are the same.
In some embodiments, each of the plurality of representations of the position may be a pair of geographic coordinates or a physical address.
In some embodiments, the Locality Sensitive Hashing may be a simhashing algorithm or a minhashing algorithm.
According to another aspect of the present disclosure, a method for identifying similar trajectories may be provided. The method may include obtaining, from one or more user terminals, a plurality of trajectories. Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals. The method may also include obtaining a plurality of hash bit strings respectively based on the plurality of representations of the positions. The plurality of hash bit strings may be text-based bit strings including at least one letter. The method may further include identifying at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
According to another aspect of the present disclosure, a system for identifying similar trajectories may be provided. The system may include an obtaining module configured to obtain, from one or more user terminals, a plurality of trajectories, each of which having a plurality of representations of positions of the one or more user terminals. The system may also include one or more hashers configured to obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality of hash bit strings are text-based bit strings including at least one letter. The system may further include a determination module configured to identify at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
According to another aspect of the present disclosure, a non-transitory computer readable medium may be provided. The non-transitory computer readable medium may include a set of instructions for identifying similar trajectories. When executed by at least one processor, the set of instructions may direct the at least one processor to effectuate a method. The method may include obtaining, from one or more user terminals, a plurality of trajectories. Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals. The method may also include obtaining a plurality of hash bit strings respectively based on the plurality of representations of the positions. The plurality of hash bit strings may be text-based bit strings including at least one letter. The method may further include identifying at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
The present disclosure is further described in terms of exemplary embodiments. These exemplary embodiments are described in detail with reference to the drawings. These embodiments are non-limiting exemplary 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 exemplary online-offline service system according to some embodiments of the present disclosure;
FIG. 2 is a schematic diagram illustrating an exemplary computing device in the online-offline service system according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating an exemplary mobile device in the online-offline service system according to some embodiments of the present disclosure;
FIG. 4A is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure;
FIG. 4B is a block diagram illustrating an exemplary second hasher according to some embodiments of the present disclosure;
FIG. 5A is a flowchart illustrating an exemplary process for identifying a pair of similar trajectories according to some embodiments of the present disclosure;
FIG. 5B is a flowchart illustrating an exemplary process for determining a relationship between one or more vehicles associated with a pair of similar trajectories according to some embodiments of the present disclosure;
FIG. 5C is a flowchart illustrating an exemplary process for obtaining a binary bit string according to some embodiments of the present disclosure; and
FIG. 6 is a flowchart illustrating an exemplary process for identifying similar trajectories 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 “comprises, ” “comprising, ” “includes, ” and/or “including” when used in this disclosure, 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 operations and 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 drawing (s) , all of which form part of this specification. It is to be expressly understood, however, that the drawing (s) 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 implement according to some embodiments of the present disclosure. It is to be expressly understood, the operations of the flowcharts 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 an online-offline transportation service, it should also be understood that this is only one exemplary embodiment. The system or method of the present disclosure may be applied to any other kind of online-offline services. For example, the system or method of the present disclosure may be applied to different transportation systems including land, ocean, 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 vessel, an aircraft, a spaceship, a hot-air balloon, a driverless vehicle, or the like, or any combination thereof. The transportation system may also include any transportation system that applies management and/or distribution, for example, a system for transmitting and/or receiving an express. The application scenarios of the system or method of the present disclosure may include a web page, 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, ” “requestor, ” “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 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 “hash function” , “hashing algorithm” may be used interchangeably.
The term “service request” in the present disclosure refers to a request that initiated by a passenger, a requestor, a service requestor, 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 requestor, a service requestor, a customer, a driver, a provider, a service provider, or a supplier. The service request may be chargeable, or free. As used herein, “requests” may also be referred to as “orders” , and the “service requests” may also be referred to as “service orders” .
The positioning technology used in the present disclosure may include 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 technologies may be used interchangeably in the present disclosure.
An aspect of the present disclosure provides online systems and methods for determining similar trajectories to determine fraudulent activities. The system may hash trajectories (e.g., a first trajectory and a second trajectory) into text-based bit strings, hash the text-based bits into binary bit strings, and determine the hamming distance between the determined binary bit strings. Upon a determination that the hamming distance is no larger than a preset threshold, the system may determine the trajectories (e.g., a first trajectory and a second trajectory) as similar trajectories, and determine the activities (e.g., the service providing activity of the driver) associated with the trajectories to be fraudulent activities.
It should be noted that online online-offline transportation services, such as online taxi hailing, is a new form of service rooted only in post-Internet era. It provides technical solutions to users and service providers that could raise only in post-Internet era. In pre-Internet era, when a user calls for a taxi on street, the taxi request and acceptance occur only between the passenger and one taxi driver that sees the passenger. If the passenger calls a taxi through telephone call, the service request and acceptance may occur only between the passenger and one service provider (e.g., one taxi company or agent) . Online taxi hailing, however, allows a user of the service to real-time and automatic distribute a service request to a vast number of individual service providers (e.g., taxi) distance away from the user. It also allows a plurality of service providers to respond to the service request simultaneously and in real-time. Meanwhile, in modern societies, taxi service has become an industry of huge scale. Millions of passengers take taxis every day via online taxi hailing platforms. Only through the help of Internet can studying behaviors of the passengers’taxiing behavior becomes possible. Accordingly, prediction of taxi hailing through a passenger’s online taxi hailing activity, is also a new form of service rooted only in post Internet era.
FIG. 1 is a schematic diagram of an exemplary online-offline service system 100 according to some embodiments of the present disclosure. For example, the online-offline service system 100 may be an online transportation service platform for transportation services such as taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, and shuttle services. The online-offline service system 100 may be an online platform including a server 110, a network 120, a requestor terminal 130, a provider terminal 140, and a storage device 150. The server 110 may include a processing engine 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., 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 requestor terminal 130, the provider terminal 140, and/or the storage device 150 via the network 120. As another example, the server 110 may connect the requestor terminal 130, the provider terminal 140, 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 engine 112. The processing engine 112 may process information and/or data relating to the service request to perform one or more functions described in the present disclosure. For example, the processing engine 112 may perform determine recommended information (e.g., a recommended driving route, an estimated time of arrival) associated with a service request for an online-offline service based on a plurality of trained sub-end-point regions. In some embodiments, the processing engine 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 engine 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 exchange of information and/or data. In some embodiments, one or more components of the online-offline service system 100 (e.g., the server 110, the requestor terminal 130, the provider terminal 140, and the storage device 150) may transmit information and/or data to other component (s) in the online-offline service system 100 via the network 120. For example, the server 110 may receive a service request from the requestor terminal 130 via the network 120. In some embodiments, the network 120 may be any type of wired or wireless network, or combination thereof. Merely by way of example, the network 130 may include a cable network, a wireline network, an optical fiber network, a tele communications network, an intranet, an 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 network, a ZigBee 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-offline service system 100 may be connected to the network 120 to exchange data and/or information between them.
In some embodiments, a requestor may be a user of the requestor terminal 130. In some embodiments, the user of the requestor terminal 130 may be someone other than the requestor. For example, a user A of the requestor terminal 130 may use the requestor terminal 130 to transmit a service request for a user B, or receive service and/or information or instructions from the server 110. In some embodiments, a provider may be a user of the provider terminal 140. In some embodiments, the user of the provider terminal 140 may be someone other than the provider. For example, a user C of the provider terminal 140 may user the provider terminal 140 to receive a service request for a user D, and/or information or instructions from the server 110. In some embodiments, “requestor” and “requestor terminal” may be used interchangeably, and “provider” and “provider terminal” may be used interchangeably.
In some embodiments, the requestor 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 smart 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 smart bracelet, a smart footgear, a smart glass, a smart helmet, a smart watch, a smart clothing, a smart backpack, a smart accessory, or the like, or any combination thereof. In some embodiments, the smart mobile device may include a smartphone, a personal digital assistance (PDA) , a gaming device, a navigation device, a point of sale (POS) device, 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, an augmented reality glass, 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, built-in device in the motor vehicle 130-4 may include an onboard computer, an onboard television, etc. In some embodiments, the requestor terminal 130 may be a device with positioning technology for locating the position of the requestor and/or the requestor terminal 130.
In some embodiments, the provider terminal 140 may be similar to, or the same device as the requestor terminal 130. In some embodiments, the provider terminal 140 may be a device with positioning technology for locating the position of the provider and/or the provider terminal 140. In some embodiments, the requestor terminal 130 and/or the provider terminal 140 may communicate with another positioning device to determine the position of the requestor, the requestor terminal 130, the provider, and/or the provider terminal 140. In some embodiments, the requestor terminal 130 and/or the provider terminal 140 may transmit positioning information to the server 110.
The storage device 150 may store data and/or instructions. In some embodiments, the storage device 150 may store data obtained from the requestor terminal 130 and/or the provider terminal 140. For example, the storage device 150 may store a plurality of trajectories obtained from the provider terminal 140. As used herein, a trajectory (or referred to as a motion path) of an object (e.g., a vehicle) may be defined a sequence of positions of the object that is obtained over a time range. Exemplary motion paths may include a motion path (VMP) . The position may be indicated as a geographic coordinate, which may include a latitude coordinate and a longitude coordinate. The time range may be the time interval between the start time point corresponding to the start location of the trajectory and the arrival time point corresponding to the arrival location of the trajectory. The positions of the object may be obtained by the location sensing services embedded in the provider terminal 140 over the time range, and sent to the storage device 150.
In some embodiments, the storage device 150 may store data and/or instructions that the server 110 may execute or use to perform exemplary methods 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. Exemplary mass storage may include a magnetic disk, an optical disk, a solid-state drive, etc. Exemplary removable storage may include a flash drive, a floppy disk, an optical disk, a memory card, a zip disk, a magnetic tape, etc. Exemplary volatile read-and- write memory may include a random access memory (RAM) . Exemplary 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. Exemplary 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 of the online-offline service system 100 (e.g., the server 110, the requestor terminal 130, the provider terminal 140) . One or more components in the online-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-offline service system 100 (e.g., the server 110, the requestor terminal 130, the provider terminal 140) . In some embodiments, the storage device 150 may be part of the server 110.
In some embodiments, one or more components of the online-offline service system 100 (e.g., the server 110, the requestor terminal 130, the provider terminal 140) may access the storage device 150. In some embodiments, one or more components of the online-offline service system 100 may read and/or modify information relating to the requester, provider, and/or the public when one or more conditions are met. For example, the server 110 may read and/or modify one or more users’information after a service. As another example, the provider terminal 140 may access information relating to the requestor when receiving a service request from the requestor terminal 130, but the provider terminal 140 may not modify the relevant information of the requestor.
In some embodiments, information exchanging of one or more components of the online-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 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 on 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) , a car (e.g., a taxi, a bus, a private car) , a train, a subway, a vessel, an aircraft (e.g., an airplane, a helicopter, a space shuttle, a rocket, a hot-air balloon) , or the like, or any combination thereof.
It should be noted that the application scenario illustrated in FIG. 1 is only provided for illustration purposes, and not intended to limit the scope of the present disclosure. For example, the online-offline system 100 may be used as a navigation system. The navigation system may include a user terminal (e.g., the requestor terminal 130 or the provider terminal 140) and a server (e.g., the server 110) . A user may input a target location (e.g., a start location, a destination) and/or a start time via the user terminal. The navigation system may accordingly determine recommended information (e.g., a recommended driving route, an ETA) based on the target location and/or the start time according to the process and/or method described in this disclosure.
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, the requestor terminal 130, and/or the provider terminal 140 may be implemented according to some embodiments of the present disclosure. For example, the processing engine 112 may be implemented on the computing device 200 and configured to perform functions of the processing engine 112 disclosed in this disclosure.
The computing device 200 may be a general-purpose computer or a special purpose computer; both may be used to implement an online-offline system for the present disclosure. The computing device 200 may be used to implement any component of the online-offline service as described herein. For example, the processing engine 112 may be implemented on the computing device 200, via its hardware, software program, firmware, or a combination thereof. Although only one such computer is shown, for convenience, the computer functions relating to the online-offline service as described herein may be implemented in a distributed fashion on a number of similar platforms, to distribute the processing load.
The computing device 200, for example, may include COM ports 250 connected to and from a network connected thereto to facilitate data communications. The computing device 200 may also include a processor (e.g., the processor 220) , in the form of one or more processors, for executing program instructions. The exemplary computing device may include an internal communication bus 210, program storage and data storage of different forms including, for example, a disk 270, and a read only memory (ROM) 230, or a random access memory (RAM) 240, for various data files to be processed and/or transmitted by the computing device. The exemplary computing device may also include program instructions stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220. The methods and/or processes of the present disclosure may be implemented as the program instructions. The computing device 200 also includes an I/O component 260, supporting input/output between the computer and other components. The computing device 200 may also receive programming and data via network communications.
Merely for illustration, only one CPU and/or processor is illustrated in FI. G 2. Multiple CPUs and/or processors are also contemplated; thus operations and/or method steps performed by one CPU and/or processor as described in the present disclosure may also be jointly or separately performed by the multiple CPUs and/or processors. For example, if in the present disclosure the CPU and/or 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 different CPUs and/or processors jointly or separately in the computing device 200 (e.g., the first processor executes step A and the second processor executes step B, or the first and second processors jointly execute steps A and B) .
FIG. 3 illustrates an exemplary mobile device on which the online-offline service can 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 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 associated with a service request (e.g., a start location, a destination) from the processing engine 112 and/or the storage device 150. User interactions with the information stream may be achieved via the I/O 350 and provided to the processing engine 112 and/or other components of the online-offline service system 100 via the network 120.
One of ordinary skill in the art would understand that when an element of the online-offline service system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when a requestor terminal 130 processes a task, such as making a determination, identifying or selecting an object, the requestor terminal 130 may operate logic circuits in its processor to process such task. When the requestor terminal 130 sends out a service request to the server 110, a processor of the service requestor terminal 130 may generate electrical signals encoding the service request. The processor of the requestor terminal 130 may then send the electrical signals to an output port. If the requestor terminal 130 communicates with the server 110 via a wired network, the output port may be physically connected to a cable, which may further transmit the electrical signals to an input port of the server 110. If the requestor terminal 130 communicates with the server 110 via a wireless network, the output port of the requestor terminal 130 may be one or more antennas, which may convert the electrical signals to electromagnetic signals. Similarly, a provider terminal 140 may process a task through operation of logic circuits in its processor, and receive an instruction and/or service request from the server 110 via electrical signals or electromagnet signals. Within an electronic device, such as the requestor terminal 130, the provider terminal 140, and/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) , 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. 4A is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure. The processing engine 112 may include an obtaining module 410, a first hasher 420, a second hasher 430, and a determination module 440.
The obtaining module 410 may obtain a plurality of trajectories. The obtaining module 410 may obtain the plurality of trajectories from one or more other components in the online-offline service system 100. For example, the obtaining module 410 may obtain the trajectories from the storage device 150 through the network 120. As another example, the obtaining module 410 may obtain the trajectories from one or more user terminals (e.g., one or more provider terminals 140) .
The plurality of trajectories may correspond to a plurality of objects (e.g., vehicles) and may be reported by one or more drivers using one or more registered accounts (e.g., drivers) of the online-offline service system 100. For example, the plurality of trajectories may include a first trajectory and a second trajectory. The first trajectory be reported by a first user using a first registered account. The second trajectory may be reported by a second user using a second registered account. It should be noted herein that the first registered account and the second registered account may be registered by a same user or by different users (e.g., drivers) .
The time ranges of the trajectories may at least partially overlap. In some embodiments, the trajectories may correspond to a same time time range. That is, the time ranges of the trajectories fully overlap. For example, the first trajectory and the second trajectory may both correspond to a time range between 10: 00: 00 p. m, September 27, 2018, and 11: 00: 00 p. m, September 27, 2018. In some embodiments, the trajectories may correspond to different time time ranges, and the shorter ones among the time time ranges may at least partially overlap with the longer ones among the time time ranges.
Each of the plurality of trajectories may include a plurality of representations of positions (e.g., geographic coordinates or physical addresses) . For example, each of the plurality of trajectories may include a sequence of geographic coordinates. For example, a trajectory may be expressed as below:
Tm= (1
st geographic coordinate, 2
nd geographic coordinate, 3
rd geographic coordinate, …i
th geographic coordinate…n
th geographic coordinate)
Tm represents the mth trajectory in the plurality of trajectories. m is an integer no smaller than 1. Tm may include and be defined by the n geographic coordinates of the 1
st geographic coordinate, 2
nd geographic coordinate, 3
rd geographic coordinate, and the n
th geographic coordinate. i
th represent the i
th geographic coordinate in the n geographic coordinates defining the trajectory Tm. In some embodiments, the geographic coordinates defining a trajectory may be arranged in order of time. In this case, the 1
st geographic coordinate may correspond to the time point corresponding to the start location of the trajectory Tm. The i
th geographic coordinate may correspond to the i
th time point when the provider terminal 140 pick up the geographic location (or referred to as geographic coordinates) of the vehicle. The n
th geographic coordinate may correspond to the the time point when the provider terminal 140 finished serving the service request, for example, when the provider terminal 140 or the corresponding vehicle arrives at the destination set by the requestor. In some embodiments, the geographic coordinates of the trajectory Tm may be arranged in a random manner.
In some embodiments, the obtaining module 410 may send the obtained trajectories to the first hasher 420.
The first hasher 420 may obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality hash bit strings are text-based bit strings including at least one letter. The first hasher 420 may hash the obtained geographic coordinates of the trajectories into first-hash bits by using a first hash function (or referred to as a first hashing calculation, or a first hashing technolory) . The first-hash bit may be a text-based bit which includes one or more letters and values. In some embodiments, the first-hash bit may include at least one letter. In some embodiments, the first-hash bit may consists of letters only and may not include any digits. The first hash function may any function which transform geographic coordinates into text-based bits. Merely by way of example, the first hash function may be a geohash function employing a geohash coordinate system. As used herein, a geographic coordinate system refers to a system that hierarchically divides space into grid-shaped buckets. For example, a space may be divided into a plurality of buckets including a first bucket and a second bucket. Each bucket may be further subdivided into multiple sub-buckets, and so on, creating a hierarchy of buckets. For example, the first bucket is divided into sub-buckets including a sub-bucket 1-1 and a bucket sub-1-2. In some embodiments, a property of geohash is that two locations with a long common geohash prefix are close to each other. Similarly, nearby locations usually share a similar prefix. However, it is not always guaranteed that two close locations share a long common prefix (when they are located near the border of two bounding boxes) .
The first-hash bit may denote a bounding box (e.g., bucket or a sub-bucket) on the earth. It provides a spatial hierarchy with arbitrary precision: the precision can be reduced (i.e., representing a larger area) by removing characters from the end of the string; that is, the longer the geohash bit, the smaller the bounding box represented by the bit. For example, a point of interest located in the sub-bucket 1-1 can be represented by either the sub-bucket 1-1 or the first bucket, depending on the required level of precision (i.e., tolerated error) , with sub-bucket 1-1 providing the highest level of precision and first bucket providing the lowest level of precision of the available buckets.
In some embodiments, for each trajectory, the first hasher 420 may perform a first hash function on each of the geographic coordinates of the trajectory to obtain a first-hash bit of the geographic coordinate. The obtained first-hash bits of the geographic coordinates may constitute a first-hash bit string of the trajectory. For example, the first hasher 420 may perform the first hash function on the geographic coordinates of the first trajectory to obtain a first-hash bit string of the first trajectory. Likewise, the first hasher 420 may perform the first-hash operation on geographic coordinates of the second trajectory to obtain a first-hash bit string of the second trajectory. A first-hash bit string of a trajectory may be expressed as below
Fm= (1
st first-hash bit, 2
nd first-hash bit, 3
rd first-hash bit, …, i
th first-hash bit…, n
th first-hash bit)
Fm may represent the first-hash bit string of the trajectory Tm. i
th first-hash bit may represent the first-hash bit of the i
th geographic coordinate of the trajectory Tm. m, I, m, may represent integers no smaller than 1. Merely by way of example, n may be 8, and the first-hash bit string of the trajectory Tm may consists of 8 letters and/or values.
In some embodiments, the first hasher 420 may send the first-hash bit string, for example, the first-hash bit string of the first trajectory and the first-hash bit string of the second trajectory to the second hasher 430.
The second hasher 430 may transform the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
In some embodiments, the second hasher 430 may pre-process the first-hash bits and transform the pre-processed first-hash bits into second hash bits. In some embodiments, for each trajectory, the second hasher 430 may select some first-hash bits from the first-hash bit string of the trajectory. The selected first-hash bits may be referred to as target first-hash bits.
In some embodiments, for each trajectory, the second hasher 430 may select the target first-hash bits by eliminating at least some of duplicate first-hash bits in the first-hash bit string of the trajectory. For example, for a certain trajectory, the 1
st first-hash bit, 2
nd first-hash bit, 3
rd first-hash bit may be same, the second hasher 430 may eliminate the three first-hash bits, or any two of the three hash bits, or any one of the three hash bits.
For each trajectory, after selecting the target first-hash bits, the second hasher 430 may hash each of the target first-hash bits into a second-hash bit. The second-hash bit may be a binary bit which includes two values (e.g., “1” and “0” ) . The second hash function (or referred to as second hashing calculation) may be any function which transform text-based bits into binary bits. Merely by way of example, the second hash function may be a simhash function which may quickly estimate how similar two sets are. As another example, the second hash function may be a minhash function.
In some embodiments, to hash each target first-hash bit into a second-hash bit, the second hasher 430 may assign each letter or value in the target first-hash bit with a second-hash bit. The second-hash bit of the target first-hash bit may consists of the second-hash bits assigned to the letters and/or values in the target first-hash bit. For example, the target first-hash bit may be “xyx” , including three letters-two “x” and one “y” . The second hasher 430 may assign the letter “x” with a second hash bit “10” , and the letter “y” with a second hash bit “01” . Thus, the second hash bit of the target first-hash bit “xyx” may be “10 01 10” .
In some embodiments, the second-hash bits of the target first-hash bits in a certain trajectory may consists the second-hash bit string of the trajectory. A second-hash bit string of a trajectory may be expressed as below:
Sm= (1
st second-hash bit, 2
nd second-hash bit, 3
rd second-hash bit, …, i
th second-hash bit, (i+a)
th second-hash bit…, n
th second-hash bit) .
Sm may represent the second hash-bit string of the trajectory Tm, which may be hashed from the first-hash bit string Fm of the trajectory Tm. m, i, n may be integers no smaller than 1. a may be an integer larger than 1. As illustrated, the second hash-bit string of the trajectory Tm may include (n-a) second-bits, including the 1
st second-hash bit, 2
nd second-hash bit, 3
rd second-hash bit, i
th second-hash bit, (i+a)
th second-hash bit, …, and the n
th second-hash bit. i
th second-hash bit may be second-hash bit of the i
th target first-hash bits. The (i+1)
th and the (i+a-1)
th first-hash bits may be eliminated, resulting in the Sm not having the second-hash bits corresponding thereto. In some embodiments, the second-hash bit strings output by the second hasher 430 may have the same length. In some embodiments, the length of the string Sm may be 64 bits or 128 bits.
In some embodiments, the second hasher 430 may send the second-hash bit strings, for example, the second-hash bit string of the first trajectory and the second-hash bit string of the second trajectory to the determination module 440.
The determination module 440 may identify a pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing. In some embodiments, the determination module 440 may measure a hamming distance between any two of the plurality of binary bit strings, and identify a pair of trajectories having the hamming distance less than a threshold, as the pair of similar trajectories, among the plurality of trajectories.
In some embodiments, the determination module 440 may determine trajectory similarities among at least some of the trajectories sent from the second hasher 430.
To determine the similarity between trajectories, the determination module 440 may determine the Hamming distance among the trajectories. As used herein, the the Hamming distance between two strings of equal length is the number of positions at which the corresponding symbols are different.
In some embodiments, the determination module 440 may select every two trajectories from the trajectories sent from the second hasher 430, and determine the similarities between the two trajectories by calculating the Hamming distance between the two trajectories. In some embodiments, the determination module may select a target trajectory from the trajectories sent from the second hasher 430, and determine the similarity between the target trajectory and each of the remaining trajectories by determine the Hamming distance between the target trajectory and the trajectory.
In some embodiments, the determination module 440 may further compare the determined Hamming distance of two trajectories with a threshold. The threshold may be a preset value stored in one or more components of the online-offline service system 100. Upon a determination that the determined Hamming distance of two trajectories is no smaller than the threshold, the determination module 440 may determine the two trajectories to be normal trajectories in which no fraudulent activities have been involved. Upon a determination that the determined Hamming distance of the two trajectories is smaller than the threshold, the determination module 440 may determine the two trajectories to be be abnormal trajectories in which some fraudulent activities have been involved. Exemplary fraudulent activities may include, for example, a driver using multiple registered accounts of the online-offline service system 100 to respond to service requests, multiple drivers sharing a same vehicle to respond to service requests, or the like.
In some embodiments, the determination module 440 may determine the registered accounts associated with the abnormal trajectories, and execute certain punishment actions thereon. For example, the determination module 440 may deactivate at least one of the registered accounts associated with the abnormal trajectories. In some embodiments, the determination module 440 may deactivate at least one of the registered accounts associated with the abnormal trajectories for a certain time period, for example, a week, a month, a year, or the like. In some embodiments, the determination module 440 may deactivate at least one of the registered accounts associated with the abnormal trajectories permanently.
The determination module 440 may also send signals indicating the deactivation of the registered account to any other device. For example, determination module 440 may also send signals indicating the deactivation of the registered account to the provider terminal 140 through the network 120. As another example, the determination module 440 may also send signals indicating the deactivation of the registered account to the server 110, which may further send the signal to the provider terminal 140. In some embodiments, the determination module 440 may send said signals to any device via a suitable communication protocol (e.g., the Hypertext Transfer Protocol (HTTP) , Address Resolution Protocol (ARP) , Dynamic Host Configuration Protocol (DHCP) , File Transfer Protocol (FTP) , etc. ) .
The modules in the processing engine 112 may be connected to or communicate 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 first hasher 420 and the second hasher 430 may be combined as a single module which may both obtain the trajectories from the obtaining module 410, hash the trajectories into first-hash bits, and hash the first-hash bits into second-hash bits. As another example, the processing engine 112 may include a storage module (not shown) used to store the trajectories, the first-hash bits, and the second-hash bits. As a further example, the modules in the processing engine 112 may include a storage unit (not shown) respectively.
FIG. 4B is a block diagram illustrating an exemplary second hasher 430 according to some embodiments of the present disclosure. The second hasher 430 may include a selecting unit 431 and a hashing unit 432.
The second hasher 430 may select a plurality of target hash bits from the hash bit string. In some embodiments, for each first-hash bit string obtained from the first hasher 420, the selecting unit 431 may select target first-hash bits from the first-hash bit string. The selecting unit 431 may select the target first-hash bits by eliminating at least some of duplicate first-hash bits in the first-hash bit string of the trajectory. For example, for a certain trajectory, the 1
st first-hash bit, 2
nd first-hash bit, 3
rd first-hash bit may be same, the second hasher 430 may eliminate the three first-hash bits, or any two of the three hash bits, or any one of the three hash bits. Merely by way of example, the selecting unit 431 may eliminate the 2
nd first-hash bit, and the 3
rd first-hash bit in the trajectory, maintaining the 1
st first-hash bit in the trajectory. When the trajectory, for example, the second trajectory does not include duplicate first-hash bits, the selecting unit 431 may determine all the bits in the first-hash bit string to be target first-hash bit of the first-hash bit string of the second trajectory.
In some embodiments, after eliminating one or more first-hash bits of certain trajectory, the selecting unit 431 may further eliminate one or more of the first-hash bits of the trajectories to ensure that the second-hash bit strings corresponding to the trajectories obtained by the obtaining module 410 have same length, which is required by the determination module 440 to determine the Hamming distance among the second-hash bit strings. For example, the obtaining module 410 may obtain a first-hash bit string of the first trajectory and a first-hash bit string of the second trajectory. After eliminating the duplicate 2
nd first-hash bit, 3
rd first-hash bit of the first trajectory, the selecting unit 431 may further eliminate two first-hash bits in the first-hash bit string of the second trajectory. Merely by way of example, the selecting unit 431 may eliminate the 2
nd first-hash bit, 3
rd first-hash bit in the first-hash bit string of the second trajectory.
It should be noted herein that the above description of the second hasher 430 is provided for illustrative purposes and is not intended to limit the present of the present disclosure. In some embodiments, when the second hasher 430 obtain more than 2 first-hash bit strings that correspond to more than 2 trajectories, for example, the first trajectory, the second trajectory, and the third trajectory, the selecting unit 431 may first eliminate a first number of first-hash bits in the first-hash bit string of the first trajectory, and a second number of first-hash bits in the first-hash bit string of the third trajectory. Then, the selecting unit 431 may further eliminate a third number of first-hash bits in the first-hash bit string of the first trajectory, a fourth number of first-hash bits in the first-hash bit string of the second trajectory, and a fifth number of first-hash bits in the first-hash bit string of the third trajectory based on the first number of first-hash bits in the first-hash bit string of the first trajectory, and the second number of first-hash bits in the first-hash bit string of the second trajectory. The first number, the second number, the third number, the fourth number, and the fifth number may be the same or different.
For example, the selecting unit 431 may first eliminate the 1
st first-hash bit in the first-hash bit string of the first trajectory, eliminate the 2
nd first-hash bit in the first-hash bit string of the second trajectory. Then, the selecting unit 431 may eliminate the 2
nd first-hash bit in the first-hash bit string of the first trajectory, the 1
st first-hash bit in the first-hash bit string of the second trajectory, the 1
st first-hash bit in the first-hash bit string of the third trajectory, and the 2
nd first-hash bit in the first-hash bit string of the third trajectory. Thus, the first-hash bit string of the first trajectory, the first-hash bit string of the second trajectory, and the first-hash bit string of the third trajectory may have the same length.
As another example, the selecting unit 431 may first eliminate the 1
st first-hash bit and the 2
nd first-hash bit in the first-hash bit string of the first trajectory, eliminate the 2
nd first-hash bit in the first-hash bit string of the second trajectory. Then, the selecting unit 431 may eliminate the 1
st first-hash bit in the first-hash bit string of the second trajectory, the 1
st first-hash bit in the first-hash bit string of the third trajectory, and the 2
nd first-hash bit in the first-hash bit string of the third trajectory. Thus, the first-hash bit string of the first trajectory, the first-hash bit string of the second trajectory, and the first-hash bit string of the third trajectory may have the same length.
In some embodiments, the selecting unit 431 may send the target first-hash bits corresponding to the trajectories to the hashing unit 432.
The hashing unit 432 may transform the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm, the plurality of binary bits constituting one binary bit string
For example, for each trajectory, the hashing unit 432 may hash each of the target first-hash bit into a second-hash bit. The second-hash bit may be a binary bit which includes two values (e.g., “1” and “0” ) . The second hash function may be any function which transforms text-based bits into binary bits. Merely by way of example, the second hash function may be a simhash function which may quickly estimate how similar two sets of binary bits are. As another example the second hash function may be a minhash function.
In some embodiments, to hash each target first-hash bit into a second-hash bit, the hashing unit 432 may assign each letter or value in the target first-hash bit with a second-hash bit. The second-hash bits of the letters or values which make up the target first-hash bit may make up the second-hash bit of the target first-hash bit. For example, a target first-hash bit may be “OK” . The hashing unit 432 may assign the letter “O” with a binary value of “11” , the letter “K” with a binary value “10” , then, the second-hash bit of the first hash bit “OK” may be “1110” .
It should be noted that the descriptions above in relation to the second hasher 430 is 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, various variations and modifications may be conducted under the guidance of the present disclosure. However, those variations and modifications do not depart the scope of the present disclosure. For example, when more than 2 first-hash bit strings are involved, after eliminating the duplicate first-hash bits in each first-hash bit string, the selecting unit 431 may eliminate the first-hash bits in the first-hash bit strings in a random manner, so as to the first-hash bit strings having the same length.
FIG. 5A is a flowchart illustrating an exemplary process for identifying a pair of similar trajectories according to some embodiments of the present disclosure. As used herein, the relationship between two registered accounts may suggest whether the two registered accounts correspond to a same vehicle.
In some embodiments, at least a portion of process 500 may be implemented in the online-offline service system 100 as illustrated in FIG. 1. In some embodiments, one or more operations in process 500 may be executed by the processing engine 112. In some embodiments, one or more operations in process 500 may be implemented on the mobile device as illustrated in FIG. 3. In some embodiments, one or more operations in process 500 may be stored in storage device 150 and/or another storage device in the form of instructions, and invoked and/or executed by, e.g., the processing engine 112, which, as illustrated above in FIG. 1, may be implemented on the server 110 in the online-offline service system 100. The operations of the illustrated process 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 as illustrated in FIG. 5A and described below is not intended to be limiting.
In 510, the obtaining module 410 may obtain a plurality of trajectories from one or more user terminals. Each of the plurality of trajectories may have a plurality of representations of positions of the one or more user terminals. Each representation of position of one user terminal may be implemented as a geographic coordinate or a physical address.
The plurality of trajectories may include a first trajectory of a first registered account and a second trajectory of a second registered account. In some embodiments, the first registered account and the second registered account may be registered by a same driver or two different drivers. In some embodiments, the first registered account and the second registered account may be logged on two terminals by one driver driving a vehicle, and the first registered account and the second registered account may correspond to the vehicle. In some embodiments, the first registered account and the second registered account may be logged on two terminals by two drivers driving two different vehicles, for example, a first vehicle and a second vehicle, respectively, and the the first registered account and the second registered account may respectively correspond to the first vehicle and the second vehicle. Either of the first trajectory and the second trajectory may include a plurality of geographic coordinates, for example, latitude coordinates and longitude coordinates.
In 520, the first hasher 420 may obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality hash bit strings are text-based bit strings including at least one letter.
The first hasher 420 may obtain a first-hash bit string of the first trajectory and a first-hash bit string of the second trajectory based on the first trajectory of the first registered account, the second trajectory of the second registered account, and a first hash function. The first hash function may any function which transform geographic coordinates into text-based bits. Merely by way of example, the first hash function may be a geohash function. The first-hash bit string of the first trajectory may be a geohash bit string of the first trajectory. The first-hash bit string of the second trajectory may be a geohash bit string of the second trajectory. For the first trajectory, the first hasher 420 may perform a geohash function on each of the geographic coordinates of the first trajectory to obtain the geohash bit of the geographic coordinate. The geohash bits of the geographic coordinates of the first trajectory may constitutes the geohash bit string of the first trajectory. Likewise, the first hasher 420 may perform a geohash function on each of the geographic coordinates of the second trajectory to obtain the geohash bit of the geographic coordinate. The geohash bits of the geographic coordinates may constitute the geohash bit string of the second trajectory. In some embodiments, the geohash bit string of the first trajectory and/or the geohash bit string of the second trajectory may include at least one letter. In some embodiments, the geohash bit string of the first trajectory and/or the geohash bit string of the second trajectory may include letters only and may not include any digits.
In 530, the determination module 440 may identify a pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing. Locality Sensitive Hashing may include a simhash calculation or a minhash calculation. Detailed description of the identifying of the pair of similar trajectories may be found elsewhere, e.g., FIG. 5B and the description thereof, and may not be repeated herein.
It should be noted that the above descriptions of process 500 are 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, various modifications and changes in the forms and details of the application of the above method and system may occur without departing from the principles in the present disclosure. However, those variations and modifications also fall within the scope of the present disclosure. For example, process 500 may further include an operation for generating a signal indicating the determination of the first registered account and the second registered account corresponding to the same vehicle, and an operation for deactivate at least one of the first registered account and the second registered account.
FIG. 5B is a flowchart illustrating an exemplary process for determining a relationship between one or more vehicles associated with a pair of similar trajectories according to some embodiments of the present disclosure. At least a portion of process 504 may be implemented in the online-offline service system 100 as illustrated in FIG. 1. In some embodiments, one or more operations in process 504 may be executed by the second hasher 430, which may be executed by the processing engine 112. In some embodiments, one or more operations in process 504 may be implemented on the mobile device as illustrated in FIG. 3. In some embodiments, one or more operations in process 504 may be stored in storage device 150 and/or another storage device in the form of instructions, and invoked and/or executed by, e.g., the processing engine 112, which, as illustrated above in FIG. 5B, may be implemented on the server 110 in the online-offline service system 100. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 504 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 as illustrated in FIG. 5B and described below is not intended to be limiting.
In 540, the second hasher 430 may transform the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm. The second hasher 430 may transform the first-hash bit string of the first trajectory into a second-hash bit string of the first trajectory, and transform the first-hash bit string of the second trajectory into a second-hash bit string of the second trajectory, , using a second hash function (or referred to as a second hash algorithm) . The second hash function may be any function which transform text-based bits into binary bits. Merely by way of example, the second hash function may be a simhash function. The second-hash bit string of the first trajectory may be a simhash bit string of the first trajectory. The second-hash bit string of the second trajectory may be a simhash bit string of the second trajectory. Detailed description of the obtaining of the simhash bit string of the first trajectory and the simhash bit string of the second trajectory may be found in FIG. 5C and the description thereof, and may not be repeated herein.
In 550, the determination module 440 may measure a hamming distance between any two of the plurality of binary bit strings. The determination module 440 may determine the hamming distance between the simhash bit string of the first trajectory and the simhash bit string of the second trajectory.
In 560, the determination module 440 may identify a pair of trajectories having the hamming distance less than a threshold, as the pair of similar trajectories, among the plurality of trajectories. The determination module 440 may compare the hamming distance determined in operation 550 with a threshold. Upon a determination that the Hamming distance between the simhash bit string of the first trajectory and the simhash bit string of the second trajectory is smaller than the threshold, the determination module 440 may determine the similarity between the first trajectory and the second trajectory to be relatively high, and identify the first trajectory and the second trajectory to be a pair of similar trajectories. Upon a determination that the Hamming distance between the simhash bit string of the first trajectory and the simhash bit string of the second trajectory is no smaller than the threshold, the determination module 440 may determine the similarity between the first trajectory and the second trajectory to be relatively low.
In 570, the determination module 440 may determine a relationship between one or more vehicles associated with the pair of similar trajectories. In some embodiments, the determination module 440 may directly determine the relationship between one or more vehicles associated with the pair of similar trajectories. For example, the determination module 440 may, upon identifying the pair of similar trajectories, determine that the one or more vehicles associated with the pair of similar trajectories are the same. In some embodiments, the determination module 440 may first determine the relationship between the registered accounts associated with the similar trajectories, based on which the determination module 440 may determine the relationship between the one or more vehicles associated with the pair of similar trajectories. The determination module 440 may determine a relationship between the first registered account and the second registered account based on the determined similarity between the first trajectory and the second trajectory. For example, the determination module 440 may determine whether the first registered account and the second registered account correspond to a same vehicle. When the similarity between the first trajectory and the second trajectory is relatively high, the determination module 440 may determine the first registered account and the second registered account to correspond to a same vehicle. Otherwise, the determination module 440 may determine the first registered account and the second registered account to correspond to different vehicles.
FIG. 5C is a flowchart illustrating an exemplary process for obtaining a binary bit string according to some embodiments of the present disclosure. At least a portion of process 505 may be implemented in the online-offline service system 100 as illustrated in FIG. 1. In some embodiments, one or more operations in process 505 may be executed by the second hasher 430, which may be executed by the processing engine 112. In some embodiments, one or more operations in process 505 may implemented on the mobile device as illustrated in FIG. 3. In some embodiments, one or more operations in process 505 may be stored in storage device 150 and/or another storage device in the form of instructions, and invoked and/or executed by, e.g., the processing engine 112, which, as illustrated above in FIG. 1, may be implemented on the server 110 in the online-offline service system 100. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 505 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 as illustrated in FIG. 5C and described below is not intended to be limiting.
In 541, the selecting unit 431 may select a plurality of target hash bits from the hash bit string. The selecting unit 431 may select one or more target first-hash bits from the first-hash bit string of a trajectory. For example, the selecting unit 431 may select one or more target first-hash bits from the first-hash bit string of the first trajectory. As another example, the selecting unit 431 may select one or more target first-hash bits from the first-hash bit string of the second trajectory. The selecting unit 431 may select the target first-hash bits from the first-hash bit string of a trajectory by eliminating at least some of duplicate first-hash bits in the first-hash bit string of the trajectory. For example, for a certain trajectory, the 1
st first-hash bit, 2
nd first-hash bit, 3
rd first-hash bit may be same, the second hasher 430 may eliminate the three first-hash bits, or any two of the three hash bits, or any one of the three hash bits. Merely by way of example, the selecting unit 431 may eliminate the 2
nd first-hash bit, 3
rd first-hash bit may be same in the trajectory, maintaining the 1
st first-hash bit in the trajectory. When the trajectory, for example, the second trajectory does not include duplicate first-hash bits, the selecting unit 431 may determine all the bits in the first-hash bit string to be target first-hash bit of the first-hash bit string of the second trajectory.
In 542, the hashing unit 432 may transform the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm, the plurality of binary bits constituting one binary bit string. The hashing unit 432 may, for each target first-hash bit, perform a second hash function on the target first-hash bit to obtain the second-hash bit of the target first-hash bit. In some embodiments, to hash each target first-hash bit into a second-hash bit, the second hasher 430 may assign each letter or value in the target first-hash bit with a second-hash bit. The second-hash bits of the letters or values which make up the target first-hash bit may make up the second-hash bit of the target first-hash bit. For example, a target first-hash bit may be “OK” . The hashing unit 432 may assign the letter “O” with a binary value of “11” , the letter “K” with a binary value “10” , then, the second-hash bit of the first hash bit “OK” may be “1110” .
It should be noted that the above descriptions of process 505 are 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, various modifications and changes in the forms and details of the application of the above method and system may occur without departing from the principles in the present disclosure. However, those variations and modifications also fall within the scope of the present disclosure. For example, process 505 may further include an operation for storing the selected target first-hash bits.
FIG. 6 is a flowchart illustrating an exemplary process for identifying similar trajectories according to some embodiments of the present disclosure. The process 600 may be executed by the online-offline service system 100. For example, the process 600 may be implemented as a set of instructions (e.g., an application) stored in the storage ROM 230 or RAM 240. The processor 220 may execute the set of instructions, and when executing the instructions, it may be configured to perform the process 600. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 600 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 as illustrated in FIG. 6 and described below is not intended to be limiting.
In 610, the obtaining module 410 may obtain a plurality of motion paths reported from a plurality of drivers having at least a first motion path (VMP) reported from a first driver, and a second VMP reported from a second driver. The obtaining module 410 may obtain the plurality of motion paths from one or more components (e.g., the storage 150) of the online-offline service system 100. The first motion path may include first set of values indicating longitude and latitude of the first VMP. The second motion path may include a second set of values indicating longitude and latitude of the second VMP. In some embodiments, each of the first set of values and each of the second set of values may have the same length.
In 620, the first hasher 420 may transform the first set of values of the first VMP to a first geohash bit string and transform the second set of values of the second VMP to a second geohash bit string, using geohashing technology. The first hasher 420 may transform each value of the first set of values of the first VMP to a geohash bit. The geohash bits of the first set of values of the first VMP may constitute the first geohash bit string of the first VMP. Likewise, the first hasher 420 may transform each value of the second set of values of the second VMP to a geohash bit. The geohash bits of the second set of values of the second VMP may constitute the second geohash bit string of the second VMP. In some embodiments, each of the geohash bits in the first geohash bit string of the first VMP and each of the geohash bits in the second geohash bit string of the second VMP have a same length. For example, each of the geohash bits in the first geohash bit string of the first VMP and each of the geohash bits in the second geohash bit string of the second VMP may include 8 values.
In 630, the second hasher 430 may eliminate one or more geohash bits in the first geohash bit string of the first VMP, and/or eliminate one or more geohash bits in the second geohash bit string of the second VMP. In some embodiments, one or more geohash bits in the geohash bit string (for example, the first geohash bit string of the first VMP, and/or the second geohash bit string of the second VMP) may be duplicate. The second hasher 430 may eliminate at least some of the duplicate bits. The second hasher 430 may eliminate duplicate bits in the first geohash bit string of the first VMP and/or the second geohash bit string of the second VMP such that no duplicate bits are involved in the first geohash bit string of the first VMP and that no duplicate bits are involved in the the second geohash bit string of the second VMP. The second hasher 430 may eliminate duplicate bits in the first geohash bit string of the first VMP and/or the second geohash bit string of the second VMP such that the number of remaining bits in the first geohash bit string of the first VMP and that in the second geohash bit string of the second VMP may be same. That is, after the elimination operation, the modified first geohash bit string of the first VMP and the second geohash bit string of the second VMP have the same length.
In 640, the second hasher 430 may convert the modified first geohash string to a first 64/128 bit binary string and covert the modified second geohash string to a second 64/128 bit binary string, using Simhashing calculation. For each of the geohash bit in the first geohash bit string, the second hasher 430 may convert the geohash bit into a simhash bit. The simhash bits of the geohash bits in the first geohash bit string may be a binary string, which may has a length of 64/128 bit. Likewise, for each of the geohash bit in the second geohash bit string, the second hasher 430 may convert the geohash bit into a simhash bit. The simhash bits of the geohash bits in the second geohash bit string may make up a binary string, which may has a length of 64/128 bit.
In 650, the determination module 440 may use locality-sensitive hashing (LSH) calculation to identify whether the first VMP and the second VMP have Hamming distance (s) less than a preset Hamming distance threshold X. The preset Hamming distance threshold X may be set by a user through one or more components in the online-offline service system 100.
It should be noted that the above descriptions of process 600 are 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, various modifications and changes in the forms and details of the application of the above method and system may occur without departing from the principles in the present disclosure. However, those variations and modifications also fall within 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 exemplary 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, ” “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-bit, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "block, " “module, ” “engine, ” “unit, ” “component, ” 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 bit embodied thereon.
A computer readable signal medium may include a propagated data signal with computer readable program bit 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 1703, Perl, COBOL 1702, 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 (20)
- A system for identifying similar trajectories, comprising:at least one storage medium including a set of instructions;at least one processor in communication with the at least one storage medium, wherein when executing the set of instructions, the at least one processor is directed to:obtain, from one or more user terminals, a plurality of trajectories, each of which having a plurality of representations of positions of the one or more user terminals;obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality of hash bit strings are text-based bit strings including at least one letter; andidentify at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- The system of claim 1, wherein to identify the pair of similar trajectories from the plurality of trajectories by the Locality Sensitive Hashing, the at least one processor is directed to:transform the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
- The system of claim 1 or claim 2, wherein to obtain the plurality of binary bit strings, the at least one processor is directed to:for each of the plurality of hash bit strings,select a plurality of target hash bits from each of the plurality of hash bit strings; andtransform the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm, the plurality of binary bits constituting one binary bit string.
- The system of any one of claims 1-3, wherein to identify the at least one pair of similar trajectories from the plurality of trajectories by the Locality Sensitive Hashing, the at least one processor is directed to:measure a hamming distance between any two of the plurality of binary bit strings; andidentify at least one pair of trajectories having the hamming distance less than a threshold, as the at least one pair of similar trajectories, among the plurality of trajectories.
- The system of any one of claims 1-4, wherein the at least one processor is further directed to:determine a relationship between one or more vehicles associated with the at least one pair of similar trajectories.
- The system of claim 5, wherein the at least one processor is directed to:upon identifying the at least one pair of similar trajectories, determine that the one or more vehicles associated with the at least one pair of similar trajectories are the same.
- The system of any one of claims 1-6, wherein each of the plurality of representations of the position is a pair of geographic coordinates or a physical address.
- The system of any one of claims 1-7, wherein the Locality Sensitive Hashing is a simhashing algorithm or a minhashing algorithm.
- A method for identifying similar trajectories implemented on a computer device, the method comprising:obtaining, from one or more user terminals, a plurality of trajectories, each of which having a plurality of representations of positions of the one or more user terminals;obtaining a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality of hash bit strings are text-based bit strings including at least one letter; andidentifying at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- The method of claim 9, wherein the identifying the pair of similar trajectories from the plurality of trajectories by the Locality Sensitive Hashing includes:transforming the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
- The method of claim 9 or claim 10, wherein the obtaining the plurality of binary bit strings includes:for each of the plurality of hash bit strings,selecting a plurality of target hash bits from the each of the plurality of hash bit strings; andtransforming the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm, the plurality of binary bits constituting one binary bit string.
- The method of any of claims 9-11, wherein the identifying the at least one pair of similar trajectories from the plurality of trajectories by the Locality Sensitive Hashing includes:measuring a hamming distance between any two of the plurality of binary bit strings; andidentifying at least one pair of trajectories having the hamming distance less than a threshold, as the at least one pair of similar trajectories, among the plurality of trajectories.
- The method of any one of claims 9-12, wherein the method further includes:determining a relationship between one or more vehicles associated with the at least one pair of similar trajectories.
- The method of claim 13, wherein the method further includes:upon identifying the at least one pair of similar trajectories, determining that the one or more vehicles associated with the at least one pair of similar trajectories are the same.
- The method of any one of claims 9-14, wherein each of the plurality of representations of the position is a pair of geographic coordinates or a physical address.
- The method of any of claims 9-15, wherein the Locality Sensitive Hashing is a simhashing algorithm or a minhashing algorithm.
- A system for identifying similar trajectories, comprising:an obtaining module configured to obtain, from one or more user terminals, a plurality of trajectories, each of which having a plurality of representations of positions of the one or more user terminals;one or more hashers configured to obtain a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality of hash bit strings are text-based bit strings including at least one letter; anda determination module configured to identify at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- A non-transitory computer readable medium, comprising a set of instructions for identifying similar trajectories, wherein when executed by at least one processor, the set of instructions direct the at least one processor to effectuate a method, the method comprising:obtaining, from one or more user terminals, a plurality of trajectories, each of which having a plurality of representations of positions of the one or more user terminals;obtaining a plurality of hash bit strings respectively based on the plurality of representations of the positions, wherein the plurality of hash bit strings are text-based bit strings including at least one letter; andidentifying at least one pair of similar trajectories from the plurality of trajectories by Locality Sensitive Hashing.
- The non-transitory computer readable medium of claim 9, wherein the identifying the pair of similar trajectories from the plurality of trajectories by the Locality Sensitive Hashing includes:transforming the plurality of hash bit strings respectively into a plurality of binary bit strings using a hashing algorithm.
- The non-transitory computer readable medium of claim 9 or claim 10, wherein the obtaining the plurality of binary bit strings includes:for each of the plurality of hash bit strings,selecting a plurality of target hash bits from the each of the plurality of hash bit strings; andtransforming the plurality of target hash bits respectively into a plurality of binary bits using the hashing algorithm, the plurality of binary bits constituting one binary bit string.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201910092756.6 | 2019-01-30 | ||
| CN201910092756.6A CN111507732B (en) | 2019-01-30 | 2019-01-30 | System and method for identifying similar trajectories |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020155135A1 true WO2020155135A1 (en) | 2020-08-06 |
Family
ID=71840648
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2019/074524 Ceased WO2020155135A1 (en) | 2019-01-30 | 2019-02-02 | Systems and methods for identifying similar trajectories |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN111507732B (en) |
| WO (1) | WO2020155135A1 (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112015956A (en) * | 2020-09-04 | 2020-12-01 | 杭州海康威视数字技术股份有限公司 | Similarity determination method, device, equipment and storage medium for mobile object |
| CN112434084A (en) * | 2020-12-02 | 2021-03-02 | 电信科学技术第十研究所有限公司 | Trajectory similarity matching method and device based on geohash and LCSS |
| CN112770252A (en) * | 2020-12-31 | 2021-05-07 | 深圳前海中电慧安科技有限公司 | Single-point similarity-based man-vehicle association method, device, equipment and storage medium |
| CN114638282A (en) * | 2022-02-08 | 2022-06-17 | 南京航空航天大学 | Campus running compliance detection method based on geohash grid and hausdorff distance |
| US20220260376A1 (en) * | 2021-02-17 | 2022-08-18 | Turing Research Inc. | System and method for rideshare matching based on locality sensitive hashing |
| EP4339916A1 (en) * | 2022-09-14 | 2024-03-20 | Maxar Intelligence Inc. | Hashing vehicle position data in real-time to detect behavior patterns |
| EP4339915A1 (en) * | 2022-09-14 | 2024-03-20 | Maxar Intelligence Inc. | Hashing vehicle position data in real-time to detect behavior patterns |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112752232B (en) * | 2021-01-07 | 2022-07-12 | 重庆大学 | Privacy protection-oriented driver-passenger matching method |
| CN113487865B (en) * | 2021-07-02 | 2022-07-22 | 江西锦路科技开发有限公司 | System and method for acquiring information of vehicles running on highway |
| CN114034938B (en) * | 2021-11-05 | 2023-12-05 | 青岛大学 | Antenna performance evaluation method, device and electronic equipment in medium space |
| CN116912510A (en) * | 2022-12-15 | 2023-10-20 | 中国移动通信有限公司研究院 | Terminal trajectory processing method, device and readable storage medium |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105229985A (en) * | 2013-03-20 | 2016-01-06 | 诺基亚技术有限公司 | Identity tokens |
| CN105989268A (en) * | 2015-03-02 | 2016-10-05 | 苏宁云商集团股份有限公司 | Safety access method and system for human-computer identification |
| CN107341668A (en) * | 2016-04-29 | 2017-11-10 | 滴滴(中国)科技有限公司 | A kind of method and device for judging True Data |
| CN108536704A (en) * | 2017-03-02 | 2018-09-14 | 华为技术有限公司 | A kind of track querying method, system and device |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106972917B (en) * | 2017-03-15 | 2020-08-04 | 西安电子科技大学 | Security verification method of user's running track |
| CN108009253A (en) * | 2017-12-05 | 2018-05-08 | 昆明理工大学 | A kind of improved character string Similar contrasts method |
| CN108596815A (en) * | 2018-04-08 | 2018-09-28 | 深圳市和讯华谷信息技术有限公司 | User behavior similarity recognition method, system and device based on mobile terminal |
| CN108536851B (en) * | 2018-04-16 | 2021-04-16 | 武汉大学 | A User Identity Recognition Method Based on Similarity Comparison of Movement Trajectories |
-
2019
- 2019-01-30 CN CN201910092756.6A patent/CN111507732B/en active Active
- 2019-02-02 WO PCT/CN2019/074524 patent/WO2020155135A1/en not_active Ceased
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105229985A (en) * | 2013-03-20 | 2016-01-06 | 诺基亚技术有限公司 | Identity tokens |
| CN105989268A (en) * | 2015-03-02 | 2016-10-05 | 苏宁云商集团股份有限公司 | Safety access method and system for human-computer identification |
| CN107341668A (en) * | 2016-04-29 | 2017-11-10 | 滴滴(中国)科技有限公司 | A kind of method and device for judging True Data |
| CN108536704A (en) * | 2017-03-02 | 2018-09-14 | 华为技术有限公司 | A kind of track querying method, system and device |
Cited By (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN112015956A (en) * | 2020-09-04 | 2020-12-01 | 杭州海康威视数字技术股份有限公司 | Similarity determination method, device, equipment and storage medium for mobile object |
| CN112434084A (en) * | 2020-12-02 | 2021-03-02 | 电信科学技术第十研究所有限公司 | Trajectory similarity matching method and device based on geohash and LCSS |
| CN112434084B (en) * | 2020-12-02 | 2023-04-07 | 电信科学技术第十研究所有限公司 | Trajectory similarity matching method and device based on geohash and LCSS |
| CN112770252A (en) * | 2020-12-31 | 2021-05-07 | 深圳前海中电慧安科技有限公司 | Single-point similarity-based man-vehicle association method, device, equipment and storage medium |
| US20220260376A1 (en) * | 2021-02-17 | 2022-08-18 | Turing Research Inc. | System and method for rideshare matching based on locality sensitive hashing |
| US12345535B2 (en) * | 2021-02-17 | 2025-07-01 | Turing Research Inc. | System and method for rideshare matching based on locality sensitive hashing |
| CN114638282A (en) * | 2022-02-08 | 2022-06-17 | 南京航空航天大学 | Campus running compliance detection method based on geohash grid and hausdorff distance |
| EP4339916A1 (en) * | 2022-09-14 | 2024-03-20 | Maxar Intelligence Inc. | Hashing vehicle position data in real-time to detect behavior patterns |
| EP4339915A1 (en) * | 2022-09-14 | 2024-03-20 | Maxar Intelligence Inc. | Hashing vehicle position data in real-time to detect behavior patterns |
| US12020564B2 (en) | 2022-09-14 | 2024-06-25 | Maxar Intelligence Inc. | Hashing vehicle position data in real-time to detect behavior patterns |
Also Published As
| Publication number | Publication date |
|---|---|
| CN111507732A (en) | 2020-08-07 |
| CN111507732B (en) | 2023-07-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10883842B2 (en) | Systems and methods for route searching | |
| WO2020155135A1 (en) | Systems and methods for identifying similar trajectories | |
| US11017662B2 (en) | Systems and methods for determining a path of a moving device | |
| US11398002B2 (en) | Systems and methods for determining an estimated time of arrival | |
| US11079244B2 (en) | Methods and systems for estimating time of arrival | |
| US10904724B2 (en) | Methods and systems for naming a pick up location | |
| US10876847B2 (en) | Systems and methods for route planning | |
| WO2021012342A1 (en) | Systems and methods for traffic prediction | |
| WO2017202112A1 (en) | Systems and methods for distributing request for service | |
| WO2017157069A1 (en) | Systems and methods for predicting service time point | |
| AU2016395338A1 (en) | Systems and methods for determining predicted distribution of future transportation service time point | |
| WO2019037549A1 (en) | System and method for destination predicting | |
| US11748860B2 (en) | Systems and methods for new road determination | |
| US20200167812A1 (en) | Systems and methods for determining a fee of a service request | |
| US20210021677A1 (en) | Systems and methods for on-demand services | |
| WO2019100366A1 (en) | Systems and methods for distributing on-demand service requests | |
| US20200142876A1 (en) | Systems and methods for spatial index |
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: 19912828 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19912828 Country of ref document: EP Kind code of ref document: A1 |