WO2020133549A1 - Artificial intelligent systems and methods for semantic-based search - Google Patents

Artificial intelligent systems and methods for semantic-based search Download PDF

Info

Publication number
WO2020133549A1
WO2020133549A1 PCT/CN2018/125993 CN2018125993W WO2020133549A1 WO 2020133549 A1 WO2020133549 A1 WO 2020133549A1 CN 2018125993 W CN2018125993 W CN 2018125993W WO 2020133549 A1 WO2020133549 A1 WO 2020133549A1
Authority
WO
WIPO (PCT)
Prior art keywords
poi
query
model
vectors
pois
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
Application number
PCT/CN2018/125993
Other languages
French (fr)
Inventor
Peng Yu
Wanji ZHENG
Ji Zhao
Huan CHEN
Qi Song
Li Ma
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Publication of WO2020133549A1 publication Critical patent/WO2020133549A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound

Definitions

  • the present disclosure generally relates to artificial intelligent systems and methods for semantic-based search, and more particularly, to artificial intelligent systems and methods for semantic-based search based on deep learning.
  • a user may input a query relating to a location into a search box of the online to offline service application implemented on a user terminal device when the user wants to retrieve a point of interest (POI) .
  • POI point of interest
  • the online to offline system may recommend at least one location to the user based on the semantic of the inputted query.
  • the at least one recommended location may help the user quickly find out the POI that the user wants to retrieve.
  • the online to offline system may parse the query, and traverse a plurality of recall policies to retrieve at least one recommended location for the user.
  • search strategy is complex causing an inefficient search and high search cost. Therefore, it is desirable to provide an artificial intelligence systems and methods for semantic-based search directly based on the query inputted by the user, and more particularly for retrieving POIs according to a deep learning algorithm.
  • An aspect of the present disclosure introduces a system for semantic-based search may include at least one storage medium including a set of instructions.
  • the system may include a data exchange port communicatively connected to a network.
  • the system may also include at least one processor in communication with the storage medium.
  • the at least one processor may perform the following operations.
  • the at least one processor may obtain a query from a user terminal via the data exchange port.
  • the at least one processor may transform the query to a query vector using a pre-generated model.
  • the at least one processor may retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method.
  • the at least one processor may determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  • POI point of interest
  • the pre-generated model may be trained based on correlations between query semantics and POIs by performing: obtaining a preliminary model; obtaining a plurality of historical query-POI pairs, each of the plurality of historical query-POI pairs including a historical query and a corresponding historical POI; for each of the plurality of historical query-POI pairs, parsing at least one of the historical query or the corresponding historical POI into one or more segments, and generating one or more text denotations for the historical query-POI pair based on the parsing; and training the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model.
  • the pre-generated model may include a deep POI semantic model (DPSM) model.
  • DPSM deep POI semantic model
  • the at least one processor may obtain an index to a plurality of POIs in a POI database; obtain at least one target location from the query; and determine the set of POI vectors from the search library based on the index, the query vector and the at least one target location.
  • the set of POI vectors may be relevant to the query.
  • the at least one processor may obtain the plurality of POIs from the POI database; transform the plurality of POIs to the plurality of POI vectors using the pre-generated model; and generate the index to the plurality of POIs based on the plurality of POI vectors using graphics processing unit (GPU) .
  • GPU graphics processing unit
  • the at least one processor may generate an identifier (ID) list based on the set of POI vectors.
  • the ID list may include a set of IDs each directing to a candidate POI.
  • the at least one processor may determine a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained quality model, each similarity score indicating a relevance level of a corresponding POI to the query.
  • the at least one processor may rank the set of similarity scores of the set of candidate POIs.
  • the at least one processor may determine the at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores.
  • the trained quality model is a Gradient Boosted Decision Tree (GBDT) model.
  • GBDT Gradient Boosted Decision Tree
  • the at least one processor may determine whether the corresponding similarity score is greater than a score threshold; obtain one or more relevant candidate POIs with similarity scores greater than the score threshold; and rank the one or more relevant candidate POIs based on a trained ranking model.
  • the trained ranking model may be obtained by a learning to rank method.
  • an artificial intelligent method for semantic-based search may include: obtaining a query from a user terminal via the data exchange port; transforming the query to a query vector using a pre-generated model; retrieving a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and determining at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  • POI point of interest
  • PQ Product Quantization
  • a non-transitory computer readable medium comprising at least one set of instructions compatible for semantic-based search, wherein when executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method, the method comprising: obtaining a query from a user terminal; transforming the query to a query vector using a pre-generated model; retrieving a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and determining at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  • POI point of interest
  • a system for semantic-based search may include: a query obtaining module configured to obtain a query from a user terminal; a query vector transforming module configured to transform the query to a query vector using a pre-generated model; a POI vector set obtaining module configured to retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and a recommended POI determining module configured to determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  • a query obtaining module configured to obtain a query from a user terminal
  • a query vector transforming module configured to transform the query to a query vector using a pre-generated model
  • a POI vector set obtaining module configured to retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method
  • PQ Product Quantization
  • FIG. 1 is a schematic diagram illustrating an exemplary artificial intelligent system according to some embodiments of the present disclosure
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of a computing device according to some embodiments of the present disclosure
  • FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure
  • FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure
  • FIG. 5 is a flowchart illustrating an exemplary process for determining at least one point of interest (POI) according to some embodiments of the present disclosure
  • FIG. 6 is a flowchart illustrating an exemplary process for obtaining a pre-generated model according to some embodiments of the present disclosure
  • FIG. 7 is a flowchart illustrating an exemplary process for determining a set of PIO vectors according to some embodiments of the present disclosure
  • FIG. 8 is a flowchart illustrating an exemplary process for generating an index to a plurality of POIs according to some embodiments of the present disclosure
  • FIG. 9 is a flowchart illustrating an exemplary process for determining at least one POI according to some embodiments of the present disclosure.
  • FIG. 10 is a flowchart illustrating an exemplary process for ranking one or more relevant candidate POIs according to some embodiments of the present disclosure.
  • FIG. 11 is a schematic diagram illustrating an exemplary process for determining at least one POI 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.
  • an aspect of the present disclosure relates to artificial intelligent systems and methods for semantic-based search.
  • the artificial intelligent systems and methods may transform a query that a user inputs to a query vector using a deep POI semantic model (DPSM) model.
  • the artificial intelligent systems and methods may retrieve a plurality of similar POI vectors that are relevant to the transformed query vector using a Product Quantization (PQ) method.
  • PQ Product Quantization
  • the artificial intelligent systems and methods may select at least one most relevant POI from the plurality of similar POI vectors to recommend to the user in response to the query.
  • the artificial intelligent systems and methods may use a trained Gradient Boosted Decision Tree (GBDT) model to predict similarity score that indicate a relevance level of a POI to the query in the plurality of similar POI vectors. In this way, the artificial intelligent systems and methods may determine at least one most relevant POI and recommend the at least one most relevant POI to the user.
  • GBDT Gradient Boosted Decision Tree
  • FIG. 1 is a schematic diagram of an exemplary artificial intelligent (AI) system 100 according to some embodiments of the present disclosure.
  • the AI system 100 may be an online to offline service platform for providing services such as taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, shuttle services, online navigation services, good delivery services, etc.
  • the AI system 100 may include a server 110, a network 120, a user terminal 130, and a storage 140.
  • the server 110 may include a processing engine 112.
  • the server 110 may be configured to process information and/or data relating to a query input by a user. For example, the server 110 may transform the query into a query vector. As another example, the server 110 may retrieve a set of POI vectors from a search library based on the query vector. As still another example, the server 110 may determine at least one POI to recommend to the user in response to the query. 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 user terminal 130, and/or the storage 140 via the network 120.
  • the server 110 may connect the user terminal 130, and/or the storage 140 to access stored information and/or data.
  • the server 110 may be implemented on a cloud platform.
  • the cloud platform may be 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 query input by the user to perform one or more functions described in the present disclosure. For example, the processing engine 112 may transform the query into a query vector. As another example, the processing engine 112 may retrieve a set of POI vectors from a search library based on the query vector. As still another example, the processing engine 112 may determine at least one POI to recommend to the user in response to the query. 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) ) .
  • processing engines e.g., single-core processing engine (s) or multi-core processor (s)
  • the processing engine 112 may be 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 AI system 100 e.g., the server 110, the user terminal 130, and the storage 140
  • the server 110 may obtain the query from the user terminal 130 via the network 120.
  • the server 110 may send at least one recommended POI to the user terminal 130 to render the user terminal 130 to present the at least one recommended POI.
  • the network 120 may be any type of wired or wireless network, or combination thereof.
  • the network 120 may be 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 AI system 100 may be connected to the network 120 to exchange data and/or information between them.
  • the user terminal 130 may be any electronic device used by a user of the online to offline service.
  • the user terminal 130 may be a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a desktop computer 130-4, or the like, or any combination thereof.
  • the mobile device 130-1 may be a wearable device, a smart mobile device, a virtual reality device, an augmented reality device, or the like, or any combination thereof.
  • the wearable device may be 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 be 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 be 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 be a Google Glass TM , a RiftCon TM , a Fragments TM , a Gear VR TM , etc.
  • the desktop computer 130-4 may be an onboard computer, an onboard television, etc.
  • the user terminal 130 may be a device with positioning technology for locating the position of the user and/or the user terminal 130.
  • the positioning technology used in the present disclosure may be 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
  • the user terminal 130 may further include at least one network port.
  • the at least one network port may be configured to send information to and/or receive information from one or more components in the AI system 100 (e.g., the server 110, the storage 140) via the network 120.
  • the user terminal 130 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2, or a mobile device 300 having one or more components illustrated in FIG. 3 in the present disclosure.
  • the storage 140 may store data and/or instructions.
  • the storage 140 may store a pre-generated model, a trained quality model, and/or a trained ranking model.
  • the storage 140 may store a search library, a POI database, and/or a plurality of historical query-POI pairs.
  • the storage 140 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 140 may be 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.
  • DRAM dynamic RAM
  • DDR SDRAM double date rate synchronous dynamic RAM
  • SRAM static RAM
  • T-RAM thyristor RAM
  • Z-RAM zero-capacitor RAM
  • 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 140 may be implemented on a cloud platform.
  • the cloud platform may be 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 140 may include at least one network port to communicate with other devices in the AI system 100.
  • the storage 140 may be connected to the network 120 to communicate with one or more components of the AI system 100 (e.g., the server 110, the user terminal 130) via the at least one network port.
  • One or more components in the AI system 100 may access the data or instructions stored in the storage 140 via the network 120.
  • the storage 140 may be directly connected to or communicate with one or more components in the AI system 100 (e.g., the server 110, the user terminal 130) .
  • the storage 140 may be part of the server 110.
  • one or more components of the AI system 100 may communicate with each other in form of electronic and/or electromagnetic signals, through wired and/or wireless communication.
  • the AI system 100 may further include at least one data exchange port.
  • the at least one exchange port may be configured to receive information and/or send information relating to determining the recommended locations (e.g., in form of electronic signals and/or electromagnetic signals) between any electronic devices in the AI system 100.
  • the at least one data exchange port may be one or more of an antenna, a network interface, a network port, or the like, or any combination thereof.
  • the at least one data exchange port may be a network port connected to the server 110 to send information thereto and/or receive information transmitted therefrom.
  • FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, and/or the user terminal 130 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 used to implement an AI system 100 for the present disclosure.
  • the computing device 200 may be used to implement any component of AI system 100 that perform one or more functions disclosed in the present disclosure.
  • 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 to 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 COM port 250 may be any network port or data exchange port 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 (e.g., logic circuits) , for executing program instructions.
  • the processor may include interface circuits and processing circuits therein.
  • the interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process.
  • the processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals.
  • the processing circuits may also generate electronic signals including the conclusion or the result (e.g., the at least one recommended POI) and a triggering code.
  • the trigger code may be in a format recognizable by an operation system (or an application installed therein) of an electronic device (e.g., the user terminal 130) in the AI system 100.
  • the trigger code may be an instruction, a code, a mark, a symbol, or the like, or any combination thereof, that can activate certain functions and/or operations of a mobile phone or let the mobile phone execute a predetermined program (s) .
  • the trigger code may be configured to rend the operation system (or the application) of the electronic device to generate a presentation of the conclusion or the result (e.g., a prediction result) on an interface of the electronic device. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
  • the exemplary computing device may include the 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 exemplary computing device may also include operation systems stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220.
  • the program instructions may be compatible with the operation systems for providing the online to offline service.
  • 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.
  • processors are also contemplated; thus, operations and/or method steps performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors.
  • the processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different 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 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
  • the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390.
  • the CPU may include interface circuits and processing circuits similar to the processor 220.
  • 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 relating to the at least one recommended POI.
  • User interactions with the information stream may be achieved via the I/O devices 350 and provided to the processing engine 112 and/or other components of the system 100 via the network 120.
  • computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein (e.g., the AI system 100, and/or other components of the AI system 100 described with respect to FIGs. 1-11) .
  • the hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to determine at least one POI to recommend to a user in response to a query as described herein.
  • a computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming and general operation of such computer equipment and as a result the drawings should be self-explanatory.
  • the element may perform through electrical signals and/or electromagnetic signals.
  • the server 110 may operate logic circuits in its processor to process such task.
  • the processor of the server 110 may generate electrical signals encoding the the at least one POI to recommend to the user.
  • the processor of the server 110 may then send the electrical signals to at least one data exchange port of a vomt system associated with the server 110.
  • the server 110 communicates with the target system via a wired network, the at least one data exchange port may be physically connected to a cable, which may further transmit the electrical signals to an input port (e.g., an inforamtion exchange port) of the user terminal 130.
  • the at least one data exchange port of the target system may be one or more antennas, which may convert the electrical signals to electromagnetic signals.
  • an electronic device such as the user terminal 130, 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 retrieves or saves data from a storage medium (e.g., the storage 140)
  • 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 be one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
  • FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure.
  • the processing engine 112 may include a query obtaining module 410, a query vector transforming module 420, a POI vector set obtaining module 430, a recommended POI determining module 440, and a model training module 450.
  • the query obtaining module 410 may be configured to obtain the query from the user terminal 130.
  • the query may be inputted by the user to search a content relating to the online to offline service (e.g., a content relating to a location of the online to offline service) .
  • the online to offline service may include but not limited to a navigation service, a car-hailing service, a meal-delivery service.
  • the query vector transforming module 420 may be configured to transform the query obtained by the query obtaining module 410 to a query vector using a pre-generated model.
  • the query vector may be a semantic representation of the query.
  • the query vector may be a multi-dimensional vector of numerical features that represent the query, for example a 128-dimensional vector.
  • the pre-generated model may include a deep POI semantic model (DPSM) model.
  • DPSM deep POI semantic model
  • the DPSM model may be trained online and/offline, and the training process of the DPSM may be found elsewhere in the present disclosure (e.g., FIG. 5 and the description thereof) .
  • the POI vector set obtaining module 430 may be configured to retrieve a set of point of interest (POI) vectors from a search library using a Product Quantization (PQ) method.
  • the search library may be an algorithms library for searching similar content, for example, the search library may include a Facebook open source search library (e.g., Faiss) .
  • the PQ method may be used to search a plurality of POI vectors that are nearest to the query that the user inputs.
  • the PQ method for retrieving the POI vectors may include a tree-based method (e.g., a K-dimension (KD) Tree method, an R-Tree method, etc. ) , a hash-based method (e.g., a Locality Sensitive hash (LSH) method, etc. ) , or the like, or any combination thereof.
  • KD K-dimension
  • LSH Locality Sensitive hash
  • the recommended POI determining module 440 may be configured to determine at least one POI based on the set of POI vectors to recommend to the user in response to the query.
  • the at least one POI may include at least one POI that are determined as the most relevant with the query that the user inputs.
  • the method and/or process for determining the at least one POI may be found elsewhere in the present disclosure (e.g., FIG. 5 and/or FIG. 9 and the description thereof) .
  • the model training module 450 may be configured to train a model. For example, the model training module 450 may obtain a preliminary model and a plurality of historical query-POI pairs. For each of the plurality of historical query-POI pairs, the model training module 450 may parse at least one of the historical query or the corresponding historical POI into one or more segments, and generate one or more text denotations for the historical query-POI pair based on the parsing. The model training module 450 may train the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model. Details regarding to the training of the model may be found elsewhere in the present disclosure (e.g., FIG. 6 and the description thereof) .
  • 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 be a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof.
  • the wireless connection may be 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 model training module 450 may be divided into two or more units for training a deep POI semantic model (DPSM) model, a Gradient Boosted Decision Tree (GBDT) model, and a ranking model, respectively.
  • the processing engine 112 may include a storage module (not shown) used to store data and/or information relating to the query.
  • FIG. 5 is a flowchart illustrating an exemplary process 500 for determining at least one point of interest (POI) according to some embodiments of the present disclosure.
  • the process 500 may be executed by the AI system 100.
  • the process 500 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 500.
  • 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. 5 and described below is not intended to be limiting.
  • the processing engine 112 may obtain a query from the user terminal 130.
  • the query may be inputted into the user terminal 130 by the user for searching a content relating to the online to offline service (e.g., a content relating to a location of the online to offline service) .
  • the query may include a textual query, a voice query, an image query, or the like, or any combination thereof.
  • the query may include a word, a term, a sentence, or the like, or any expression associated with a location.
  • the user terminal 130 may send the query to the processing engine 112 via a data exchange port that is communicatively connected to a network 120.
  • the processing engine 112 may obtain the query via the data exchange port.
  • the processing engine 112 may transform the query to a query vector using a pre-generated model.
  • the query vector may be a semantic representation of the query.
  • the query vector may be a multi-dimensional vector of numerical features that represent the query.
  • the query vector may be a mathematical expression of a 128-dimensional vector.
  • the pre-generated model may include a trained model used for transforming a query to a query vector.
  • the pre-generated model may include a deep POI semantic model (DPSM) model.
  • the DPSM model may include a query model.
  • the query model may include a plurality of layers.
  • the query model may include a contextual representation layer, a feature extraction layer and a vector representation layer.
  • the processing engine 112 may input the query into the DPSM model.
  • the output of the DPSM model may be the corresponding query after the query passing through the contextual representation layer, the feature extraction layer and the vector representation layer, respectively.
  • the DPSM model may also transform a POI to a POI vector, and/or determine a relevance level (e.g., a similarity score) of a corresponding POI to the query.
  • the DPSM model may further include a POI model.
  • the POI model may include a plurality of contextual representation layers, a plurality of feature extraction layers and a plurality of vector representation layers.
  • the processing engine 112 may input a POI name of a POI into a contextual representation layer, a feature extraction layer and a vector representation layer, respectively to obtain a POI name vector.
  • the processing engine 112 may input a POI address of the POI into a contextual representation layer, a feature extraction layer and a vector representation layer, respectively to obtain a POI address vector. Then the processing engine 112 may input the POI name vector and the POI address vector into a vector representation layer to obtain a POI vector.
  • the DPSM model may finally output a similarity score for a POI with respect to the query based on the query vector and the POI vector.
  • the processing engine 112 may use a middle output (i.e., the query vector, the POI vector) of the pre-generated model.
  • the process and/or method for training of the DPSM model may be found elsewhere in the present disclosure (e.g., FIG. 6 and the description thereof) .
  • the processing engine 112 may input the query into the query model of the DPSM model.
  • the contextual representation layer of the DPSM model may segment the inputted query, and a result of the segmentation may be embedded into a vector representation of a single word (e.g., “go” , “location” ) and/or a phrase (e.g., “go to” , “a location” ) .
  • each of the inputted query may be segmented into a plurality of vector representations according to a semantic sequence of the inputted query, and each vector representation may represent a single word.
  • the plurality of vector representations may be transmitted to the feature extraction layer.
  • any two adjacent vector representations according to the semantic sequence of the inputted query in the plurality of vector representations may be convolved, i.e., a contextual information may be extracted.
  • the convolved information may be maxpooled to obtain a semantic information of the query.
  • the vector representation corresponding to each maximum convolved information may be selected.
  • the semantic information may be spliced by full-connecting to obtain the query vector.
  • a plurality of vector representations representing phrases may be processed according to a same way as the plurality of vector representations representing single words.
  • the processing engine 112 may retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method.
  • PQ Product Quantization
  • the search library may be an algorithms library for searching similar content.
  • the search library may include a Facebook open source search library (e.g., Faiss) for nearest neighbor searching in high- dimension.
  • the PQ method may be a product quantization-based method for similarity searching of POIs.
  • the PQ method may be used to search a plurality of POI vectors that are nearest to the query that the user inputs.
  • the PQ method may include a PQ method, an IVFPQ method, or any modified method based on PQ method, or any combination thereof.
  • the method and/or process for retrieving the set of POI vectors may include a tree-based method (e.g., a K-dimension (KD) Tree method, an R-Tree method, etc. ) , a hash-based method (e.g., a Locality Sensitive hash (LSH) method, etc. ) , or the like, or any combination thereof.
  • KD K-dimension
  • LSH Locality Sensitive hash
  • the set of POI vectors may include a plurality of POI vectors that are highly correlated with the query.
  • a set of POI vectors may include a predetermined number of POI vectors that are most relevant to the query. The predetermine number may be a default value or dynamically determined by the processing engine 112.
  • the processing engine 112 may obtain an index to a plurality of POIs in a POI database.
  • the index may indicate spatial information (e.g., a nation, a city, a street, etc. ) of the plurality of POIs.
  • the processing engine 112 may obtain at least one target location from the query.
  • the target location may indicate a location that the user searches, for example, the target location may include a city, a street, a road, a point, or the like, or any combination thereof.
  • the processing engine 112 may determine the set of POI vectors from the search library based on the index, the query vector and the at least one target location.
  • the set of POI vectors may be relevant to the query.
  • the processing engine 112 may input the index, the query vector, and the at least one target location into the search library (e.g., Faiss) .
  • the processing engine 112 may first invoke the corresponding index of a city based on a city ID of the at least one target location, and then search the set of POI vectors that are associated with the corresponding POIs in the city according to the PQ method.
  • the method and/or process for retrieving the set of POI vectors may be found elsewhere in the present disclosure (e.g., FIG. 7 and the description thereof) .
  • the processing engine 112 may determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  • the at least one POI may include at least one POI that are determined as the most relevant to the query that the user inputs.
  • the processing engine 112 may recommend the at least one POI to the user in response to the query.
  • the processing engine 112 may generate an identifier (ID) list based on the set of POI vectors.
  • the ID list may include a set of IDs each directing to a candidate POI (e.g., a set of candidate POI-ID pairs) .
  • the set of POI vectors may correspond to a set of candidate POIs.
  • the ID of a corresponding candidate POI may be an identifier that represent the candidate POI.
  • the processing engine 112 may determine a set of similarity scores for the set of candidate POIs with respect to the set of POI vectors using a trained quality model. Each similarity score may indicate a relevance level of a corresponding candidate POI to the query.
  • the trained quality model may predict a similarity score of the candidate location and the query.
  • the processing engine 112 may rank the set of similarity scores of the set of candidate POIs, and select the at least one POI that ranks at top of the ranking from the set of candidate POIs.
  • the method and/or process for determining the at least one POI may be found elsewhere in the present disclosure (e.g., FIG. 9 and the description thereof) .
  • the processing engine 112 may recommend the at least one POI to the user.
  • the recommended at least one POI may be displayed on the user interface of the user terminal 130 for the user to view and/or select.
  • at least one POI recommended to the user in response to a query may be shown in Table 1.
  • the processing engine 112 may determine at least one recommended POI and transmit the at least one recommended POI to the user (or a user terminal thereof) .
  • the processing engine 112 may display recommended POIs, such as “Guiyou Mansion” , “Park Lot of Guiyou Mansion” , and/or “Tower A of Guiyou Mansion” on the user interface of the user terminal for the user to view and/or select.
  • FIG. 6 is a flowchart illustrating an exemplary process 600 for obtaining a pre-generated model according to some embodiments of the present disclosure.
  • the process 600 may be executed by the AI 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 processing engine 112 may obtain a preliminary model.
  • the preliminary model may be an initial neural network model to be trained to obtain a pre-generated model.
  • the pre-generated model is a DPSM model
  • the preliminary model may be an initial DPSM model including an initial query model and an initial POI model.
  • the initial query model may be an initial neural network including a plurality of layers.
  • the initial query model may include a plurality of contextual representation layers, a plurality of feature extraction layers, a plurality of vector representation layers and a plurality of output layers.
  • the initial POI model may be an initial neural network including a plurality of layers.
  • the initial POI model may include a plurality of contextual representation layers, a plurality of feature extraction layers, and a plurality of vector representation layers.
  • the processing engine 112 may obtain a plurality of historical query-POI pairs.
  • each of the plurality of historical query-POI pairs may include a historical query and a corresponding historical POI.
  • a historical query-POI pair in the plurality of historical query-POI pairs may indicate a matching pair of a historical query that a historical user input and a corresponding historical POI that the user selected in response to the historical query.
  • a historical user may input a query, such as “Guiyou Liyuan”
  • a plurality of POIs may be displayed to the historical user, such as “Guiyou Liyuan Building” , “Park lot of Guiyou Building” , “bus station of Guiyou” , etc.
  • the user may click/select the “Park lot of Guiyou Building” in response to the query.
  • the “Guiyou Liyuan” and the “Park lot of Guiyou Building” may form a query-POI pair.
  • the plurality of historical query-POI pairs may be stored in a user log.
  • the user log may include a user information, such as a user name, a historical query of the user, a selected historical POI by the user, or the like, or any combination thereof.
  • the user log may be stored in the ROM 230, RAM 240, and/or other type of storage medium to be executed by the processing engine 112.
  • the processing engine 112 may parse at least one of the historical query or the corresponding historical POI into one or more segments, and generate one or more text denotations for the historical query-POI pair based on the parsing.
  • the processing engine 112 may segment the historical query or the corresponding historical POI into one or more segments using different segmentation methods. For example, the processing engine 112 may segment a query or a POI of “Beijing University” into three segments (e.g., “Bei” + “jing” + “University” ) or two segments (e.g., “Beijing” + “University” ) , or one segment (e.g., “Beijing University” ) .
  • one or more text denotations for the historical query-POI pair may be generated based on the parsing.
  • a text denotation may be a textual representation.
  • the processing engine 112 may respectively generate a text denotation of “Bei/jing/University” based on the three segments of “Bei” + “jing” + “University” , a text denotation of “Beijing/University” based on the two segments of “Beijing” + “University” , and a text denotation of “Beijing University” based on the one segment of “Beijing University” .
  • the processing engine 112 may parse both a historical query and the corresponding historical POI in each historical query-POI pair to obtain one or more text denotations for the historical query-POI pair. Alternatively, the processing engine 112 may only parse the historical query (or only the corresponding historical POI) in each historical query-POI pair to obtain the one or more text denotations for the historical query-POI pair.
  • the processing engine 112 may train the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model.
  • the processing engine 112 may input the text denotations of the plurality of historical query-POI pairs into the preliminary model to train the preliminary model.
  • the processing engine 112 may input the one or more text denotations for each historical query-POI pair into the initial DPSM model including the initial query model and the initial POI model, and revise or adjust parameters (e.g., layers, nodes, weights, etc. ) of the initial query model and the initial POI model according to the deep learning method.
  • the preliminary model may be trained to obtain the pre-generated model until the preliminary model is convergent in the training process.
  • process 600 may further include storing the pre-generated model after obtaining the pre-generated model.
  • FIG. 7 is a flowchart illustrating an exemplary process 700 for determining a set of POI vectors according to some embodiments of the present disclosure.
  • the process 700 may be executed by the AI system 100.
  • the process 700 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 700.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 700 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. 7 and described below is not intended to be limiting.
  • the processing engine 112 may obtain an index to a plurality of POIs in a POI database.
  • the index may indicate a spatial information (e.g., a nation, a city, a street, etc. ) of the plurality of POIs.
  • a POI of “Beijing University -No. 5, Yiheyuan Road, Haidian District, Beijing” may be included in the plurality of POIs, and the index corresponding to the POI may indicate the spatial information of Beijing or Haidian District, etc.
  • the index may be stored in the storage (e.g., the ROM 230, the RAM 240, and/or other type of storage medium to be executed by the processing engine 112) .
  • the POI database may include a data set of a large number of POIs.
  • the processing engine 112 may transform the plurality of POIs in the POI database to the plurality of POI vectors using the pre-generated model (e.g., DPSM model) .
  • the processing engine 112 may input each of the plurality of POIs into the DPSM model to obtain the plurality of POI vectors.
  • the POI vector may be a mathematical expression of a 128-dimensional vector.
  • the processing engine 112 may use a graphics processing unit (GPU) to generate the index by mapping the plurality of POI vectors to spatial information.
  • the transformation of the POI to POI vectors may be found elsewhere of the present disclosure (e.g., FIG. 8, and the description thereof) .
  • the processing engine 112 may obtain the index to the plurality of POIs in the POI database using the GPU.
  • the index may be pre-generated and stored in a storage device (e.g., the storage 140, the ROM 230 the RAM 240, and/or other type of storage medium to be executed by the processing engine 112) , and the processing engine 112 may obtain the index from the storage 140 directly.
  • the processing engine 112 may obtain at least one target location from the query.
  • the target location may indicate a target area that the user searches, for example, the target location may include a nation, a city, a street, a road, a point, or the like, or any combination thereof.
  • the processing engine 112 may extract the target location from GPS information obtained from the user terminal. For example, the processing engine 112 may obtain a target city that the user terminal located based on the GPS information.
  • the processing engine 112 may extract the target location from a selected location that the user selects on a user interface of the user terminal 130. For example, before the user inputs the query, the user may select the target location on the user interface.
  • the target location may include a nation ID, a city ID, a street ID, or the like, or any combination thereof.
  • the processing engine 112 may determine the set of POI vectors from the search library based on the index, the query vector and the at least one target location.
  • the set of POI vectors are relevant to the query.
  • the processing engine 112 may input the query vector, the index and at least one target location into the search library (e.g., Faiss) .
  • the processing engine 112 may map the at least one target location (e.g., the city ID) with the index to obtain a plurality of POI vectors in the city of the at least one target location.
  • the processing engine 112 may then determine a similarity between the query vector and the plurality of POI vectors in the city, and select the set of POI vectors from the plurality of POI vectors in the city.
  • Each POI vector in the set of POI vectors may have a high similarity with the query vector.
  • the processing engine 112 may perform the similarity search using the PQ method to determine the similarity between the query vector and the plurality of POI vectors in the city.
  • the set of POI vectors may include a predetermined number of POI vectors that are most similar (or most relevant) to the query vector. The predetermine number may be a default value or dynamically determined by the processing engine 112.
  • operation 720 may be performed before operation 710.
  • FIG. 8 is a flowchart illustrating an exemplary process 800 for generating an index to a plurality of POIs according to some embodiments of the present disclosure.
  • the process 800 may be executed by the AI system 100.
  • the process 800 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 800.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 8 and described below is not intended to be limiting.
  • the processing engine 112 may obtain the plurality of POIs from the POI database.
  • the processing engine 112 may transform the plurality of POIs to the plurality of POI vectors using the pre-generated model.
  • each POI in the POI database may be transformed to a POI vector using the pre-generated model (e.g., DPSM model) .
  • the processing engine 112 may input each POI in the POI database into the pre-generated model.
  • the POI may be inputted into the POI model of the DPSM model.
  • the POI model may output a POI vector responding to the inputted POI.
  • the processing engine 112 may use a middle output (i.e., the POI vector) of the pre-generated model.
  • Each POI in the POI database may be transformed into a POI vector responding to the POI. Therefore, the plurality of POIs in the POI database may be transformed into the plurality of POI vectors responding to the POIs using the pre-generated model.
  • the processing engine 112 may generate the index to the plurality of POIs based on the plurality of POI vectors using graphics processing unit (GPU) .
  • GPU graphics processing unit
  • the processing engine 112 may use a graphics processing unit (GPU) to generate the index by mapping the plurality of POI vectors to spatial information.
  • the GPU may extract spatial information from each of the plurality of POI vectors, and generate the index by converting the extracted spatial information into a multi-dimensional vector.
  • the index may be a multi-dimensional vector converted using a binary, hexadecimal value, or other numerical value of the spatial information.
  • the generating of the index in the GPU may be implemented offline.
  • the generated index may be stored in the ROM 230, RAM 240, and/or other type of storage medium to be executed by the processing engine 112.
  • process 800 may further include storing the index after generating the index.
  • FIG. 9 is a flowchart illustrating an exemplary process 900 for determining at least one POI according to some embodiments of the present disclosure.
  • the process 900 may be executed by the AI system 100.
  • the process 900 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 900.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 900 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. 9 and described below is not intended to be limiting.
  • the processing engine 112 may generate an identifier (ID) list based on the set of POI vectors.
  • ID list may include a set of IDs each directing to a candidate POI.
  • the set of POI vectors may include a predetermined number of POI vectors that are nearest to or most similar (or most relevant) to the query vector.
  • Each POI vector in the set of the POI vectors may respond to a candidate POI.
  • the candidate POI may indicate a possible target location where the user may search via the user terminal 130.
  • the ID list may include a plurality of IDs each directing to a candidate POI.
  • Each ID may be an identifier that indicates a candidate POI.
  • the processing engine 112 may generate an ID for each candidate POI corresponding to each POI vector in the set of the POI vectors, and a plurality of IDs may form an ID list.
  • the processing engine 112 may determine a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained quality model. Each similarity score may indicate a relevance level of a corresponding POI to the query.
  • the similarity score may be a parameter to indicate a relevance level between a candidate POI and a query inputted by the user.
  • the similarity score may be positive correlation with the relevance level between the candidate POI and the query, that is, the higher of the similarity score, the higher of the relevance level between the POI and the query. And the user may be more likely to retrieve the corresponding candidate POI.
  • the relevance level between the corresponding candidate POI and the inputted query with the similarity score 3 may be higher than the relevance level between the corresponding candidate POI and the inputted query with the similarity score 1, and the user may be more likely to obtain the candidate POI with the similarity score 3 than the candidate POI with the similarity score 1.
  • the trained quality model may be used to predict a similarity score between a query and a POI.
  • the trained quality model may include a Gradient Boosted Decision Tree (GBDT) model.
  • the processing engine 112 e.g., the processor 220, the model training module 450
  • the processing engine 112 may obtain a preliminary model.
  • the preliminary model may be a preliminary GBDT model. A large number of historical queries that a plurality of user inputted in the history and the corresponding historical POIs in a historical POI list that recalled in response to the historical queries may be marked manually to obtain labeled data. The labeled data may include similarity scores marked manually.
  • the similarity score may be generated for the query and each POI in the POI list manually according to a pre-determined standard.
  • the standard may be pre-determined manually.
  • the processing engine 112 may input the labeled data into the preliminary GBDT model to train the preliminary GBDT model.
  • the preliminary model may be trained to obtain the trained quality model until the preliminary model is convergent in the training process.
  • the processing engine 112 may input the query and each candidate POI responding to vector in the set of the POI vectors into the trained quality model, the trained quality model may output the similarity score between the query and the corresponding candidate POI. Thereby, the processing engine 112 may determine a set of similarity scores for the set of candidate POIs with respect to the set of POI vectors.
  • the processing engine 112 may rank the set of similarity scores of the set of candidate POIs.
  • the processing engine 112 may rank the similarity scores in the set of similarity scores according to a predetermined rule. For example, the processing engine 112 may rank the set of similarity scores according to an ascending order, a descending order, or the like, or any combination thereof. As another example, the processing engine 112 may first determine whether each similarity score is greater than a score threshold. The score threshold may be set manually or be determined by the processing engine 112. In response to a determination that the corresponding similarity score is not greater than the score threshold, the processing engine 112 may delete the corresponding POI, and in response to a determination that the corresponding similarity score is greater than the score threshold, the processing engine 112 may input the corresponding POI into a ranking model to rank the corresponding candidate POIs. The detailed description of the ranking process may be found elsewhere in the present disclosure (e.g., FIG. 10, and the description thereof) .
  • the processing engine 112 may determine the at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores.
  • the processing engine 112 may select a predetermined number of POIs from the candidate POIs that rank at top of the ranking of the set of similarity scores, and recommend the predetermined number of POIs to the user via a data exchange port that is communicatively connected to a network 120.
  • the predetermined number may be a default number of the system or may be a number determined according to different conditions.
  • the processing engine 112 may select top 5 POIs in ranking of set of similarity scores corresponding to the set of the POI in the descending order.
  • the processing engine 112 may recommend the 5 POIs to the user via the user terminal.
  • process 900 may further include storing the at least one POI after determining the at least one POI.
  • FIG. 10 is a flowchart illustrating an exemplary process 1000 for ranking a set of similarity scores of a set of candidate POIs according to some embodiments of the present disclosure.
  • the process 1000 may be executed by the AI system 100.
  • the process 1000 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 1000.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1000 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. 10 and described below is not intended to be limiting.
  • the processing engine 112 may determine whether the corresponding similarity score is greater than a score threshold.
  • the score threshold may be used to determine whether the relevance level of the candidate POI with the query meet a requirement. For example, in response to a similarity score of a candidate POI in the set of the candidate POIs is higher than the score threshold, the processing engine 112 may determine that the relevance level of the candidate POI to the query meets the requirement. In response to the similarity score of the candidate POI is less than the score threshold, the processing engine 112 may determine that the relevance level of the candidate POI with the query may not meet the requirement.
  • the score threshold may be a default value stored in a storage device (e.g., the storage 140, the ROM 230 the RAM 240, and/or other type of storage medium to be executed by the processing engine 112) , or may be dynamically determined according to different conditions.
  • the processing engine 112 may obtain one or more relevant candidate POIs with similarity scores greater than the score threshold.
  • the processing engine may select one or more candidate POIs in set of candidate POIs with similarity scores that are greater than the score threshold as relevant candidate POIs.
  • the score threshold may be set as 1 by the processing engine 112
  • the candidate POIs with the similarity score less than 1 may be deleted by the processing engine 112
  • the candidate POIs with the similarity score greater than 1 may be selected by the processing engine 112 as the relevant candidate POIs.
  • the processing engine 112 may rank the one or more relevant candidate POIs based on a trained ranking model.
  • the processing engine 112 may input the one or more relevant candidate POIs into a trained ranking model.
  • the ranking model may rank the one or more relevant candidate POIs and output a ranking order.
  • the trained ranking model may be used to predict a relevance ranking order of a plurality of relevant candidate POIs related to the query.
  • the trained ranking model may be pre-trained and stored in a storage device (e.g., the storage 140, the ROM 230 the RAM 240, and/or other type of storage medium to be executed by the processing engine 112) , or may be online trained by the processing engine 112.
  • the processing engine 112 may train the ranking model according to a Learn to Rank method.
  • FIG. 11 is a schematic diagram illustrating an exemplary process 1100 for determining at least one POI according to some embodiments of the present disclosure.
  • the process 1100 may be executed by the AI system 100.
  • the process 1100 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 1100.
  • the operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1100 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. 11 and described below is not intended to be limiting.
  • the processing engine 112 may train a DPSM model.
  • the processing engine 112 may obtain a plurality of the history query and a plurality of corresponding history POIs in a user log.
  • the history query and the corresponding history POI may form a historical query-POI pair.
  • the processing engine 112 may parse the historical query-POI pair into one or more segments, and generate one or more text denotations for the historical query-POI pair based on the parsing.
  • the processing engine 112 may train a preliminary DPSM model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method, and obtain the DPSM model.
  • the training process may be performed by the processing engine 112 offline.
  • the user may send a user request by inputting a query into a search box of an application of the online to offline service via the user terminal 130.
  • the processing engine 112 may obtain the query and/or a city ID from the user terminal 130 based on the user request.
  • the processing engine 112 may invoke the trained DPSM model trained in the dashed box using a Tensor Flow serving (TF_SVR) , and input the query into the trained DPSM model.
  • the trained DPSM model may transform the query to a query vector.
  • the processing engine 112 may obtain a POI database, and input each POI in the POI database into the trained DPPSM model to obtain a plurality of POI vectors.
  • the processing engine 112 may generate an index based on the plurality of POI vectors and the GPU.
  • the processing engine 112 may input the query, the city ID, and the index into the search library (e.g., Faiss) , and perform a similarity search to retrieve at least one candidate POI vector that is similar to the query using the PQ method.
  • the search library e.g., Faiss
  • the processing engine 112 may generate an ID for each similar POI vector of the at least one similar POI vector to obtain an ID list.
  • the ID list may include a set of IDs each directing to a candidate POI.
  • the processing engine 112 may test a set of candidate POIs with respect to the set of POI vectors to test a relevance level between each candidate POI and the query. For example, the processing engine 112 may determine a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained quality model. Each similarity score may indicate a relevance level of a corresponding candidate POI to the query.
  • the processing engine 112 may rank the set of similarity scores of the set of candidate POIs using a trained ranking model, and select at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores. Finally, the processing engine 112 may display the ranking results to the user by the user terminal. The processing engine 112 may recommend the selected at least one POI to the user terminal 130 via the data exchange port, and the user may select a POI from the at least one displayed POI responding to the query.
  • aspects of the present disclosure may be illustrated and described herein in any of a number of patentable classes or context including any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof. Accordingly, aspects of the present disclosure may be implemented entirely hardware, entirely software (including firmware, resident software, micro-code, etc. ) or combining software and hardware implementation that may all generally be referred to herein as a "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 code embodied thereon.
  • a computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electro-magnetic, optical, or the like, or any suitable combination thereof.
  • a computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
  • Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
  • Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 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
  • the numbers expressing quantities or properties used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ”
  • “about, ” “approximate, ” or “substantially” may indicate ⁇ 20%variation of the value it describes, unless otherwise stated.
  • the numerical parameters set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment.
  • the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the application are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A system and a method for semantic-based search. The system may perform the me-thod to: obtaining a query from a user terminal(510); transforming the query to a qu-ery vector using a pre-generated model(520); retrieving a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization(PQ) method(530); and determining at least one POI based on the set of POI vectors to recommend to a user in response to the query(540).

Description

ARTIFICIAL INTELLIGENT SYSTEMS AND METHODS FOR SEMANTIC-BASED SEARCH
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims priority of Chinese Application No. 201811647685.3, filed on December 29, 2018, the contents of which are incorporated herein in its entirety by reference.
TECHNICAL FIELD
The present disclosure generally relates to artificial intelligent systems and methods for semantic-based search, and more particularly, to artificial intelligent systems and methods for semantic-based search based on deep learning.
BACKGROUND
During an online to offline service, a user may input a query relating to a location into a search box of the online to offline service application implemented on a user terminal device when the user wants to retrieve a point of interest (POI) . The online to offline system may recommend at least one location to the user based on the semantic of the inputted query. The at least one recommended location may help the user quickly find out the POI that the user wants to retrieve. In existing methods for semantic search, the online to offline system may parse the query, and traverse a plurality of recall policies to retrieve at least one recommended location for the user. However, the problems of the existing methods are that search strategy is complex causing an inefficient search and high search cost. Therefore, it is desirable to provide an artificial intelligence systems and methods for semantic-based search directly based on the query inputted by the user, and more particularly for retrieving POIs according to a deep learning algorithm.
SUMMARY
An aspect of the present disclosure introduces a system for semantic-based  search may include at least one storage medium including a set of instructions. The system may include a data exchange port communicatively connected to a network. The system may also include at least one processor in communication with the storage medium. When executing the set of instructions, the at least one processor may perform the following operations. The at least one processor may obtain a query from a user terminal via the data exchange port. The at least one processor may transform the query to a query vector using a pre-generated model. The at least one processor may retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method. The at least one processor may determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
In some embodiments, the pre-generated model may be trained based on correlations between query semantics and POIs by performing: obtaining a preliminary model; obtaining a plurality of historical query-POI pairs, each of the plurality of historical query-POI pairs including a historical query and a corresponding historical POI; for each of the plurality of historical query-POI pairs, parsing at least one of the historical query or the corresponding historical POI into one or more segments, and generating one or more text denotations for the historical query-POI pair based on the parsing; and training the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model.
In some embodiments, the pre-generated model may include a deep POI semantic model (DPSM) model.
In some embodiments, to retrieve the set of POI vectors from a search library based on the query vector using a Product Quantization (PQ) method, the at least one processor may obtain an index to a plurality of POIs in a POI database; obtain at least one target location from the query; and determine the set of POI vectors from the search library based on the index, the query vector and the at least one target location. The set of POI vectors may be relevant to the query.
In some embodiments, to obtain an index to a plurality of POIs in a POI  database, the at least one processor may obtain the plurality of POIs from the POI database; transform the plurality of POIs to the plurality of POI vectors using the pre-generated model; and generate the index to the plurality of POIs based on the plurality of POI vectors using graphics processing unit (GPU) .
In some embodiments, to determine the at least one POI based on the set of POI vectors to recommend to a user in response to the query, the at least one processor may generate an identifier (ID) list based on the set of POI vectors. The ID list may include a set of IDs each directing to a candidate POI. The at least one processor may determine a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained quality model, each similarity score indicating a relevance level of a corresponding POI to the query. The at least one processor may rank the set of similarity scores of the set of candidate POIs. The at least one processor may determine the at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores.
In some embodiments, the trained quality model is a Gradient Boosted Decision Tree (GBDT) model.
In some embodiments, to rank the set of similarity scores of the set of candidate POIs, for each of the set of candidate POIs, the at least one processor may determine whether the corresponding similarity score is greater than a score threshold; obtain one or more relevant candidate POIs with similarity scores greater than the score threshold; and rank the one or more relevant candidate POIs based on a trained ranking model.
In some embodiments, the trained ranking model may be obtained by a learning to rank method.
According to another aspect of the present disclosure, an artificial intelligent method for semantic-based search may include: obtaining a query from a user terminal via the data exchange port; transforming the query to a query vector using a pre-generated model; retrieving a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and determining at least one POI based on the set of POI vectors to recommend to a  user in response to the query.
According to still another aspect of the present disclosure, a non-transitory computer readable medium, comprising at least one set of instructions compatible for semantic-based search, wherein when executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method, the method comprising: obtaining a query from a user terminal; transforming the query to a query vector using a pre-generated model; retrieving a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and determining at least one POI based on the set of POI vectors to recommend to a user in response to the query.
According to still another aspect of the present disclosure, a system for semantic-based search may include: a query obtaining module configured to obtain a query from a user terminal; a query vector transforming module configured to transform the query to a query vector using a pre-generated model; a POI vector set obtaining module configured to retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and a recommended POI determining module configured to determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
Additional features will be set forth in part in the description which follows, and in part will become apparent to those skilled in the art upon examination of the following and the accompanying drawings or may be learned by production or operation of the examples. The features of the present disclosure may be realized and attained by practice or use of various aspects of the methodologies, instrumentalities and combinations set forth in the detailed examples discussed below.
BRIEF DESCRIPTION OF THE DRAWINGS
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 artificial intelligent system according to some embodiments of the present disclosure;
FIG. 2 is a schematic diagram illustrating exemplary hardware and/or software components of a computing device according to some embodiments of the present disclosure;
FIG. 3 is a schematic diagram illustrating exemplary hardware and/or software components of a mobile device according to some embodiments of the present disclosure;
FIG. 4 is a block diagram illustrating an exemplary processing engine according to some embodiments of the present disclosure;
FIG. 5 is a flowchart illustrating an exemplary process for determining at least one point of interest (POI) according to some embodiments of the present disclosure;
FIG. 6 is a flowchart illustrating an exemplary process for obtaining a pre-generated model according to some embodiments of the present disclosure;
FIG. 7 is a flowchart illustrating an exemplary process for determining a set of PIO vectors according to some embodiments of the present disclosure;
FIG. 8 is a flowchart illustrating an exemplary process for generating an index to a plurality of POIs according to some embodiments of the present disclosure;
FIG. 9 is a flowchart illustrating an exemplary process for determining at least one POI according to some embodiments of the present disclosure;
FIG. 10 is a flowchart illustrating an exemplary process for ranking one or more relevant candidate POIs according to some embodiments of the present disclosure; and
FIG. 11 is a schematic diagram illustrating an exemplary process for determining at least one POI according to some embodiments of the present  disclosure.
DETAILED DESCRIPTION
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.
An aspect of the present disclosure relates to artificial intelligent systems and methods for semantic-based search. To this end, the artificial intelligent systems and methods may transform a query that a user inputs to a query vector using a deep POI semantic model (DPSM) model. The artificial intelligent systems and methods may retrieve a plurality of similar POI vectors that are relevant to the transformed query vector using a Product Quantization (PQ) method. Then the artificial intelligent systems and methods may select at least one most relevant POI from the plurality of similar POI vectors to recommend to the user in response to the query. The artificial intelligent systems and methods may use a trained Gradient Boosted Decision Tree (GBDT) model to predict similarity score that indicate a relevance level of a POI to the query in the plurality of similar POI vectors. In this way, the artificial intelligent systems and methods may determine at least one most relevant POI and recommend the at least one most relevant POI to the user.
FIG. 1 is a schematic diagram of an exemplary artificial intelligent (AI) system 100 according to some embodiments of the present disclosure. For example, the AI system 100 may be an online to offline service platform for providing services such as taxi hailing, chauffeur services, delivery vehicles, carpool, bus service, driver hiring, shuttle services, online navigation services, good delivery services, etc. The AI system 100 may include a server 110, a network 120, a user terminal 130, and a storage 140. The server 110 may include a processing engine 112.
The server 110 may be configured to process information and/or data relating to a query input by a user. For example, the server 110 may transform the query into a query vector. As another example, the server 110 may retrieve a set of POI vectors from a search library based on the query vector. As still another example, the server 110 may determine at least one POI to recommend to the user  in response to the query. 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 user terminal 130, and/or the storage 140 via the network 120. As another example, the server 110 may connect the user terminal 130, and/or the storage 140 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 be 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 query input by the user to perform one or more functions described in the present disclosure. For example, the processing engine 112 may transform the query into a query vector. As another example, the processing engine 112 may retrieve a set of POI vectors from a search library based on the query vector. As still another example, the processing engine 112 may determine at least one POI to recommend to the user in response to the query. 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 be 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 AI system 100 (e.g., the server 110, the user terminal 130, and the storage 140) may transmit information and/or data to other component (s) in the AI system 100 via the network 120. For example, the server 110 may obtain the query from the user terminal 130 via the network 120. As another example, the server 110 may send at least one recommended POI to the user terminal 130 to render the user terminal 130 to present the at least one recommended POI. 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 120 may be 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 AI system 100 may be connected to the network 120 to exchange data and/or information between them.
The user terminal 130 may be any electronic device used by a user of the online to offline service. In some embodiments, the user terminal 130 may be a mobile device 130-1, a tablet computer 130-2, a laptop computer 130-3, a desktop computer 130-4, or the like, or any combination thereof. In some embodiments, the mobile device 130-1 may be 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 wearable device may be 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 be 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 be 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 be a Google Glass TM, a RiftCon TM, a Fragments TM, a Gear VR TM, etc. In some embodiments, the desktop computer 130-4 may be an onboard computer, an onboard television, etc.
In some embodiments, the user terminal 130 may be a device with positioning technology for locating the position of the user and/or the user terminal 130. The positioning technology used in the present disclosure may be 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.
In some embodiments, the user terminal 130 may further include at least one network port. The at least one network port may be configured to send information to and/or receive information from one or more components in the AI system 100 (e.g., the server 110, the storage 140) via the network 120. In some embodiments, the user terminal 130 may be implemented on a computing device 200 having one or more components illustrated in FIG. 2, or a mobile device 300 having one or more components illustrated in FIG. 3 in the present disclosure.
The storage 140 may store data and/or instructions. For example, the storage 140 may store a pre-generated model, a trained quality model, and/or a trained ranking model. As another example, the storage 140 may store a search library, a POI database, and/or a plurality of historical query-POI pairs. As still another example, the storage 140 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 140 may be 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 140 may be implemented on a cloud platform. Merely by way of example, the cloud platform may be 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 140 may include at least one network port to communicate with other devices in the AI system 100. For example, the storage 140 may be connected to the network 120 to communicate with one or more components of the AI system 100 (e.g., the server 110, the user terminal 130) via the at least one network port. One or more components in the AI system 100 may access the data or instructions stored in the storage 140 via the network 120. In some embodiments, the storage 140 may be directly connected to or communicate with one or more components in the AI system 100 (e.g., the server 110, the user terminal 130) . In some embodiments, the storage 140 may be part of the server 110.
In some embodiments, one or more components of the AI system 100 (e.g., the server 110, the user terminal 130, and the storage 140) may communicate with each other in form of electronic and/or electromagnetic signals, through wired and/or  wireless communication. In some embodiments, the AI system 100 may further include at least one data exchange port. The at least one exchange port may be configured to receive information and/or send information relating to determining the recommended locations (e.g., in form of electronic signals and/or electromagnetic signals) between any electronic devices in the AI system 100. In some embodiments, the at least one data exchange port may be one or more of an antenna, a network interface, a network port, or the like, or any combination thereof. For example, the at least one data exchange port may be a network port connected to the server 110 to send information thereto and/or receive information transmitted therefrom.
FIG. 2 is a schematic diagram illustrating exemplary hardware and software components of a computing device 200 on which the server 110, and/or the user terminal 130 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 used to implement an AI system 100 for the present disclosure. The computing device 200 may be used to implement any component of AI system 100 that perform one or more functions disclosed in the present disclosure. 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 to 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 COM port 250 may be any network port or data exchange port 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 (e.g.,  logic circuits) , for executing program instructions. For example, the processor may include interface circuits and processing circuits therein. The interface circuits may be configured to receive electronic signals from a bus 210, wherein the electronic signals encode structured data and/or instructions for the processing circuits to process. The processing circuits may conduct logic calculations, and then determine a conclusion, a result, and/or an instruction encoded as electronic signals. The processing circuits may also generate electronic signals including the conclusion or the result (e.g., the at least one recommended POI) and a triggering code. In some embodiments, the trigger code may be in a format recognizable by an operation system (or an application installed therein) of an electronic device (e.g., the user terminal 130) in the AI system 100. For example, the trigger code may be an instruction, a code, a mark, a symbol, or the like, or any combination thereof, that can activate certain functions and/or operations of a mobile phone or let the mobile phone execute a predetermined program (s) . In some embodiments, the trigger code may be configured to rend the operation system (or the application) of the electronic device to generate a presentation of the conclusion or the result (e.g., a prediction result) on an interface of the electronic device. Then the interface circuits may send out the electronic signals from the processing circuits via the bus 210.
The exemplary computing device may include the 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 exemplary computing device may also include operation systems stored in the ROM 230, RAM 240, and/or other type of non-transitory storage medium to be executed by the processor 220. The program instructions may be compatible with the operation systems for providing the online to offline service. 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 processor is illustrated in FIG. 2. Multiple processors are also contemplated; thus, operations and/or method steps performed by one processor as described in the present disclosure may also be jointly or separately performed by the multiple processors. For example, if in the present disclosure the processor of the computing device 200 executes both step A and step B, it should be understood that step A and step B may also be performed by two different 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 is a schematic diagram illustrating exemplary hardware and/or software components of an exemplary mobile device 300 on which the user terminal 130 may be implemented according to some embodiments of the present disclosure.
As illustrated in FIG. 3, the mobile device 300 may include a communication platform 310, a display 320, a graphic processing unit (GPU) 330, a central processing unit (CPU) 340, an I/O 350, a memory 360, and a storage 390. The CPU may include interface circuits and processing circuits similar to the processor 220. 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 relating to the at least one recommended POI. User interactions with the information stream may be achieved via the I/O devices 350 and provided to the processing engine 112 and/or other components of the system 100 via the network 120.
To implement various modules, units, and their functionalities described in  the present disclosure, computer hardware platforms may be used as the hardware platform (s) for one or more of the elements described herein (e.g., the AI system 100, and/or other components of the AI system 100 described with respect to FIGs. 1-11) . The hardware elements, operating systems and programming languages of such computers are conventional in nature, and it is presumed that those skilled in the art are adequately familiar therewith to adapt those technologies to determine at least one POI to recommend to a user in response to a query as described herein. A computer with user interface elements may be used to implement a personal computer (PC) or other type of work station or terminal device, although a computer may also act as a server if appropriately programmed. It is believed that those skilled in the art are familiar with the structure, programming and general operation of such computer equipment and as a result the drawings should be self-explanatory.
One of ordinary skill in the art would understand that when an element of the AI system 100 performs, the element may perform through electrical signals and/or electromagnetic signals. For example, when a server 110 processes a task, such as determine at least one POI to recommend to the user in response to the query, the server 110 may operate logic circuits in its processor to process such task. 
When the server 110 completes determine the at least one POI, the processor of the server 110 may generate electrical signals encoding the the at least one POI to recommend to the user. The processor of the server 110 may then send the electrical signals to at least one data exchange port of a traget system associated with the server 110. The server 110 communicates with the target system via a wired network, the at least one data exchange port may be physically connected to a cable, which may further transmit the electrical signals to an input port (e.g., an inforamtion exchange port) of the user terminal 130. If the server 110 communicates with the target system via a wireless network, the at least one data exchange port of the target system may be one or more antennas, which may convert the electrical signals to electromagnetic signals. Within an electronic device, such as the user terminal 130, 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 140) , 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 be one electrical signal, a series of electrical signals, and/or a plurality of discrete electrical signals.
FIG. 4 is a block diagram illustrating an exemplary processing engine 112 according to some embodiments of the present disclosure. As illustrated in FIG. 4, the processing engine 112 may include a query obtaining module 410, a query vector transforming module 420, a POI vector set obtaining module 430, a recommended POI determining module 440, and a model training module 450.
The query obtaining module 410 may be configured to obtain the query from the user terminal 130. The query may be inputted by the user to search a content relating to the online to offline service (e.g., a content relating to a location of the online to offline service) . The online to offline service may include but not limited to a navigation service, a car-hailing service, a meal-delivery service.
The query vector transforming module 420 may be configured to transform the query obtained by the query obtaining module 410 to a query vector using a pre-generated model. In some embodiments, the query vector may be a semantic representation of the query. For example, the query vector may be a multi-dimensional vector of numerical features that represent the query, for example a 128-dimensional vector. In some embodiments, the pre-generated model may include a deep POI semantic model (DPSM) model. The DPSM model may be trained online and/offline, and the training process of the DPSM may be found elsewhere in the present disclosure (e.g., FIG. 5 and the description thereof) .
The POI vector set obtaining module 430 may be configured to retrieve a set of point of interest (POI) vectors from a search library using a Product Quantization (PQ) method. In some embodiments, the search library may be an algorithms library for searching similar content, for example, the search library may include a  Facebook open source search library (e.g., Faiss) . In some embodiments, the PQ method may be used to search a plurality of POI vectors that are nearest to the query that the user inputs. Alternatively or additionally, the PQ method for retrieving the POI vectors may include a tree-based method (e.g., a K-dimension (KD) Tree method, an R-Tree method, etc. ) , a hash-based method (e.g., a Locality Sensitive hash (LSH) method, etc. ) , or the like, or any combination thereof.
The recommended POI determining module 440 may be configured to determine at least one POI based on the set of POI vectors to recommend to the user in response to the query. The at least one POI may include at least one POI that are determined as the most relevant with the query that the user inputs. In some embodiments, the method and/or process for determining the at least one POI may be found elsewhere in the present disclosure (e.g., FIG. 5 and/or FIG. 9 and the description thereof) .
The model training module 450 may be configured to train a model. For example, the model training module 450 may obtain a preliminary model and a plurality of historical query-POI pairs. For each of the plurality of historical query-POI pairs, the model training module 450 may parse at least one of the historical query or the corresponding historical POI into one or more segments, and generate one or more text denotations for the historical query-POI pair based on the parsing. The model training module 450 may train the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model. Details regarding to the training of the model may be found elsewhere in the present disclosure (e.g., FIG. 6 and the description thereof) .
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 be a metal cable, an optical cable, a hybrid cable, or the like, or any combination thereof. The wireless connection may be 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 model training module 450 may be divided into two or more units for training a deep POI semantic model (DPSM) model, a Gradient Boosted Decision Tree (GBDT) model, and a ranking model, respectively. As another example, the processing engine 112 may include a storage module (not shown) used to store data and/or information relating to the query.
FIG. 5 is a flowchart illustrating an exemplary process 500 for determining at least one point of interest (POI) according to some embodiments of the present disclosure. The process 500 may be executed by the AI system 100. For example, the process 500 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 500. 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. 5 and described below is not intended to be limiting.
In 510, the processing engine 112 (e.g., the processor 220, the query obtaining module 410) may obtain a query from the user terminal 130.
In some embodiments, the query may be inputted into the user terminal 130 by the user for searching a content relating to the online to offline service (e.g., a content relating to a location of the online to offline service) . In some embodiments, the query may include a textual query, a voice query, an image query, or the like, or any combination thereof. For example, the query may include a word, a term, a sentence, or the like, or any expression associated with a location.
In some embodiments, the user terminal 130 may send the query to the processing engine 112 via a data exchange port that is communicatively connected to a network 120. The processing engine 112 may obtain the query via the data  exchange port.
In 520, the processing engine 112 (e.g., the processor 220, the query vector transforming module 420) may transform the query to a query vector using a pre-generated model.
In some embodiments, the query vector may be a semantic representation of the query. For example, the query vector may be a multi-dimensional vector of numerical features that represent the query. For example, the query vector may be a mathematical expression of a 128-dimensional vector.
In some embodiments, the pre-generated model may include a trained model used for transforming a query to a query vector. For example, the pre-generated model may include a deep POI semantic model (DPSM) model. The DPSM model may include a query model. The query model may include a plurality of layers. For example, the query model may include a contextual representation layer, a feature extraction layer and a vector representation layer. The processing engine 112 may input the query into the DPSM model. The output of the DPSM model may be the corresponding query after the query passing through the contextual representation layer, the feature extraction layer and the vector representation layer, respectively.
In some embodiments, the DPSM model may also transform a POI to a POI vector, and/or determine a relevance level (e.g., a similarity score) of a corresponding POI to the query. For example, the DPSM model may further include a POI model. The POI model may include a plurality of contextual representation layers, a plurality of feature extraction layers and a plurality of vector representation layers. For example, the processing engine 112 may input a POI name of a POI into a contextual representation layer, a feature extraction layer and a vector representation layer, respectively to obtain a POI name vector. The processing engine 112 may input a POI address of the POI into a contextual representation layer, a feature extraction layer and a vector representation layer, respectively to obtain a POI address vector. Then the processing engine 112 may input the POI name vector and the POI address vector into a vector representation layer to obtain  a POI vector. The DPSM model may finally output a similarity score for a POI with respect to the query based on the query vector and the POI vector. As used herein, the processing engine 112 may use a middle output (i.e., the query vector, the POI vector) of the pre-generated model. In some embodiments, the process and/or method for training of the DPSM model may be found elsewhere in the present disclosure (e.g., FIG. 6 and the description thereof) .
In some embodiments, the processing engine 112 may input the query into the query model of the DPSM model. The contextual representation layer of the DPSM model may segment the inputted query, and a result of the segmentation may be embedded into a vector representation of a single word (e.g., “go” , “location” ) and/or a phrase (e.g., “go to” , “a location” ) . For example, each of the inputted query may be segmented into a plurality of vector representations according to a semantic sequence of the inputted query, and each vector representation may represent a single word. The plurality of vector representations may be transmitted to the feature extraction layer. In the feature extraction layer, any two adjacent vector representations according to the semantic sequence of the inputted query in the plurality of vector representations may be convolved, i.e., a contextual information may be extracted. The convolved information may be maxpooled to obtain a semantic information of the query. For example, the vector representation corresponding to each maximum convolved information may be selected. Then in the vector representation layer, the semantic information may be spliced by full-connecting to obtain the query vector. In some embodiments, a plurality of vector representations representing phrases may be processed according to a same way as the plurality of vector representations representing single words.
In 530, the processing engine 112 (e.g., the processor 220, the POI vector set obtaining module 430) may retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method.
In some embodiments, the search library may be an algorithms library for searching similar content. For example, the search library may include a Facebook open source search library (e.g., Faiss) for nearest neighbor searching in high- dimension.
In some embodiments, the PQ method may be a product quantization-based method for similarity searching of POIs. For example, the PQ method may be used to search a plurality of POI vectors that are nearest to the query that the user inputs. In some embodiments, the PQ method may include a PQ method, an IVFPQ method, or any modified method based on PQ method, or any combination thereof. Alternatively or additionally, the method and/or process for retrieving the set of POI vectors may include a tree-based method (e.g., a K-dimension (KD) Tree method, an R-Tree method, etc. ) , a hash-based method (e.g., a Locality Sensitive hash (LSH) method, etc. ) , or the like, or any combination thereof.
In some embodiments, the set of POI vectors may include a plurality of POI vectors that are highly correlated with the query. For example, a set of POI vectors may include a predetermined number of POI vectors that are most relevant to the query. The predetermine number may be a default value or dynamically determined by the processing engine 112.
In some embodiments, the processing engine 112 may obtain an index to a plurality of POIs in a POI database. The index may indicate spatial information (e.g., a nation, a city, a street, etc. ) of the plurality of POIs. The processing engine 112 may obtain at least one target location from the query. The target location may indicate a location that the user searches, for example, the target location may include a city, a street, a road, a point, or the like, or any combination thereof. The processing engine 112 may determine the set of POI vectors from the search library based on the index, the query vector and the at least one target location. The set of POI vectors may be relevant to the query. For example, the processing engine 112 may input the index, the query vector, and the at least one target location into the search library (e.g., Faiss) . The processing engine 112 may first invoke the corresponding index of a city based on a city ID of the at least one target location, and then search the set of POI vectors that are associated with the corresponding POIs in the city according to the PQ method. In some embodiments, the method and/or process for retrieving the set of POI vectors may be found elsewhere in the  present disclosure (e.g., FIG. 7 and the description thereof) .
In 540, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
In some embodiments, the at least one POI may include at least one POI that are determined as the most relevant to the query that the user inputs. The processing engine 112 may recommend the at least one POI to the user in response to the query.
In some embodiments, the processing engine 112 may generate an identifier (ID) list based on the set of POI vectors. The ID list may include a set of IDs each directing to a candidate POI (e.g., a set of candidate POI-ID pairs) . The set of POI vectors may correspond to a set of candidate POIs. The ID of a corresponding candidate POI may be an identifier that represent the candidate POI. The processing engine 112 may determine a set of similarity scores for the set of candidate POIs with respect to the set of POI vectors using a trained quality model. Each similarity score may indicate a relevance level of a corresponding candidate POI to the query. For each the candidate POI-ID pair in the ID list, the trained quality model may predict a similarity score of the candidate location and the query. The processing engine 112 may rank the set of similarity scores of the set of candidate POIs, and select the at least one POI that ranks at top of the ranking from the set of candidate POIs. In some embodiments, the method and/or process for determining the at least one POI may be found elsewhere in the present disclosure (e.g., FIG. 9 and the description thereof) .
In some embodiments, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may recommend the at least one POI to the user. For example, the recommended at least one POI may be displayed on the user interface of the user terminal 130 for the user to view and/or select. Merely by way of example, at least one POI recommended to the user in response to a query may be shown in Table 1.
Figure PCTCN2018125993-appb-000001
Table 1
When a user input query, the processing engine 112 may determine at least one recommended POI and transmit the at least one recommended POI to the user (or a user terminal thereof) . For example, as shown in Table 1, when a user input “Guiyou Liyuan” by the user terminal, the processing engine 112 may display recommended POIs, such as “Guiyou Mansion” , “Park Lot of Guiyou Mansion” , and/or “Tower A of Guiyou Mansion” on the user interface of the user terminal for the user to view and/or select.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. For example, operation 510 and operation 520 may be integrated into a single step. However, those variations and modifications do not depart from the scope of the present disclosure.
FIG. 6 is a flowchart illustrating an exemplary process 600 for obtaining a pre-generated model according to some embodiments of the present disclosure.  The process 600 may be executed by the AI 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 processing engine 112 (e.g., the processor 220, the model training module 450) may obtain a preliminary model.
In some embodiments, the preliminary model may be an initial neural network model to be trained to obtain a pre-generated model. For example, if the pre-generated model is a DPSM model, the preliminary model may be an initial DPSM model including an initial query model and an initial POI model. The initial query model may be an initial neural network including a plurality of layers. For example, the initial query model may include a plurality of contextual representation layers, a plurality of feature extraction layers, a plurality of vector representation layers and a plurality of output layers. Similarly, the initial POI model may be an initial neural network including a plurality of layers. For example, the initial POI model may include a plurality of contextual representation layers, a plurality of feature extraction layers, and a plurality of vector representation layers.
In 620, the processing engine 112 (e.g., the processor 220, the model training module 450) may obtain a plurality of historical query-POI pairs. In some embodiments, each of the plurality of historical query-POI pairs may include a historical query and a corresponding historical POI.
In some embodiments, a historical query-POI pair in the plurality of historical query-POI pairs may indicate a matching pair of a historical query that a historical user input and a corresponding historical POI that the user selected in response to  the historical query. For example, a historical user may input a query, such as “Guiyou Liyuan” , and a plurality of POIs may be displayed to the historical user, such as “Guiyou Liyuan Building” , “Park lot of Guiyou Building” , “bus station of Guiyou” , etc. The user may click/select the “Park lot of Guiyou Building” in response to the query. Therefore, the “Guiyou Liyuan” and the “Park lot of Guiyou Building” may form a query-POI pair. In some embodiments, the plurality of historical query-POI pairs may be stored in a user log. The user log may include a user information, such as a user name, a historical query of the user, a selected historical POI by the user, or the like, or any combination thereof. The user log may be stored in the ROM 230, RAM 240, and/or other type of storage medium to be executed by the processing engine 112.
In 630, for each of the plurality of historical query-POI pairs, the processing engine 112 (e.g., the processor 220, the model training module 450) may parse at least one of the historical query or the corresponding historical POI into one or more segments, and generate one or more text denotations for the historical query-POI pair based on the parsing.
In some embodiments, for each of the plurality of historical query-POI pairs, the processing engine 112 (the model training module 450, or a segment unit in the model training module 450) may segment the historical query or the corresponding historical POI into one or more segments using different segmentation methods. For example, the processing engine 112 may segment a query or a POI of “Beijing University” into three segments (e.g., “Bei” + “jing” + “University” ) or two segments (e.g., “Beijing” + “University” ) , or one segment (e.g., “Beijing University” ) .
In some embodiments, one or more text denotations for the historical query-POI pair may be generated based on the parsing. A text denotation may be a textual representation. For example, the processing engine 112 may respectively generate a text denotation of “Bei/jing/University” based on the three segments of “Bei” + “jing” + “University” , a text denotation of “Beijing/University” based on the two segments of “Beijing” + “University” , and a text denotation of “Beijing University” based on the one segment of “Beijing University” .
In some embodiments, the processing engine 112 may parse both a historical query and the corresponding historical POI in each historical query-POI pair to obtain one or more text denotations for the historical query-POI pair. Alternatively, the processing engine 112 may only parse the historical query (or only the corresponding historical POI) in each historical query-POI pair to obtain the one or more text denotations for the historical query-POI pair.
In 640, the processing engine 112 (e.g., the processor 220, the model training module 450) may train the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model.
In some embodiments, the processing engine 112 may input the text denotations of the plurality of historical query-POI pairs into the preliminary model to train the preliminary model. For example, the processing engine 112 may input the one or more text denotations for each historical query-POI pair into the initial DPSM model including the initial query model and the initial POI model, and revise or adjust parameters (e.g., layers, nodes, weights, etc. ) of the initial query model and the initial POI model according to the deep learning method. The preliminary model may be trained to obtain the pre-generated model until the preliminary model is convergent in the training process.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 600. For example, process 600 may further include storing the pre-generated model after obtaining the pre-generated model.
FIG. 7 is a flowchart illustrating an exemplary process 700 for determining a set of POI vectors according to some embodiments of the present disclosure. The  process 700 may be executed by the AI system 100. For example, the process 700 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 700. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 700 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. 7 and described below is not intended to be limiting.
In 710, the processing engine 112 (e.g., the processor 220, the POI vector set obtaining module 430) may obtain an index to a plurality of POIs in a POI database.
In some embodiments, the index may indicate a spatial information (e.g., a nation, a city, a street, etc. ) of the plurality of POIs. For example, a POI of “Beijing University -No. 5, Yiheyuan Road, Haidian District, Beijing” may be included in the plurality of POIs, and the index corresponding to the POI may indicate the spatial information of Beijing or Haidian District, etc. The index may be stored in the storage (e.g., the ROM 230, the RAM 240, and/or other type of storage medium to be executed by the processing engine 112) .
In some embodiments, the POI database may include a data set of a large number of POIs. In some embodiments, the processing engine 112 may transform the plurality of POIs in the POI database to the plurality of POI vectors using the pre-generated model (e.g., DPSM model) . For example, the processing engine 112 may input each of the plurality of POIs into the DPSM model to obtain the plurality of POI vectors. In some embodiments, the POI vector may be a mathematical expression of a 128-dimensional vector. The processing engine 112 may use a graphics processing unit (GPU) to generate the index by mapping the plurality of POI vectors to spatial information. The transformation of the POI to POI vectors may be found elsewhere of the present disclosure (e.g., FIG. 8, and the description thereof) .
In some embodiments, the processing engine 112 may obtain the index to the plurality of POIs in the POI database using the GPU. Alternatively or additionally, the index may be pre-generated and stored in a storage device (e.g., the storage 140, the ROM 230 the RAM 240, and/or other type of storage medium to be executed by the processing engine 112) , and the processing engine 112 may obtain the index from the storage 140 directly.
In 720, the processing engine 112 (e.g., the processor 220, the POI vector set obtaining module 430) may obtain at least one target location from the query.
In some embodiments, the target location may indicate a target area that the user searches, for example, the target location may include a nation, a city, a street, a road, a point, or the like, or any combination thereof. In some embodiments, the processing engine 112 may extract the target location from GPS information obtained from the user terminal. For example, the processing engine 112 may obtain a target city that the user terminal located based on the GPS information. In some embodiments, the processing engine 112 may extract the target location from a selected location that the user selects on a user interface of the user terminal 130. For example, before the user inputs the query, the user may select the target location on the user interface. In some embodiments, the target location may include a nation ID, a city ID, a street ID, or the like, or any combination thereof.
In 730, the processing engine 112 (e.g., the processor 220, the POI vector set obtaining module 430) may determine the set of POI vectors from the search library based on the index, the query vector and the at least one target location. The set of POI vectors are relevant to the query.
In some embodiments, the processing engine 112 may input the query vector, the index and at least one target location into the search library (e.g., Faiss) . For example, the processing engine 112 may map the at least one target location (e.g., the city ID) with the index to obtain a plurality of POI vectors in the city of the at least one target location. The processing engine 112 may then determine a similarity between the query vector and the plurality of POI vectors in the city, and select the set of POI vectors from the plurality of POI vectors in the city. Each POI  vector in the set of POI vectors may have a high similarity with the query vector. In some embodiments, the processing engine 112 may perform the similarity search using the PQ method to determine the similarity between the query vector and the plurality of POI vectors in the city. In some embodiments, the set of POI vectors may include a predetermined number of POI vectors that are most similar (or most relevant) to the query vector. The predetermine number may be a default value or dynamically determined by the processing engine 112.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, operation 720 may be performed before operation 710.
FIG. 8 is a flowchart illustrating an exemplary process 800 for generating an index to a plurality of POIs according to some embodiments of the present disclosure. The process 800 may be executed by the AI system 100. For example, the process 800 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 800. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 800 may be accomplished with one or more additional operations not described and/or without one or more of the operations discussed. Additionally, the order in which the operations of the process as illustrated in FIG. 8 and described below is not intended to be limiting.
In 810, the processing engine 112 (e.g., the processor 220, the POI vector set obtaining module 430) may obtain the plurality of POIs from the POI database.
In 820, the processing engine 112 (e.g., the processor 220, the POI vector set obtaining module 430) may transform the plurality of POIs to the plurality of POI vectors using the pre-generated model.
In some embodiments, each POI in the POI database may be transformed to a POI vector using the pre-generated model (e.g., DPSM model) . For example, the processing engine 112 may input each POI in the POI database into the pre-generated model. The POI may be inputted into the POI model of the DPSM model. The POI model may output a POI vector responding to the inputted POI. As used herein, the processing engine 112 may use a middle output (i.e., the POI vector) of the pre-generated model. Each POI in the POI database may be transformed into a POI vector responding to the POI. Therefore, the plurality of POIs in the POI database may be transformed into the plurality of POI vectors responding to the POIs using the pre-generated model.
In 830, the processing engine 112 (e.g., the processor 220, the POI vector set obtaining module 430) may generate the index to the plurality of POIs based on the plurality of POI vectors using graphics processing unit (GPU) .
In some embodiments, the processing engine 112 may use a graphics processing unit (GPU) to generate the index by mapping the plurality of POI vectors to spatial information. For example, the GPU may extract spatial information from each of the plurality of POI vectors, and generate the index by converting the extracted spatial information into a multi-dimensional vector. The index may be a multi-dimensional vector converted using a binary, hexadecimal value, or other numerical value of the spatial information. In some embodiments, the generating of the index in the GPU may be implemented offline. The generated index may be stored in the ROM 230, RAM 240, and/or other type of storage medium to be executed by the processing engine 112.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. For example, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 800. For example, process 800 may  further include storing the index after generating the index.
FIG. 9 is a flowchart illustrating an exemplary process 900 for determining at least one POI according to some embodiments of the present disclosure. The process 900 may be executed by the AI system 100. For example, the process 900 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 900. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 900 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. 9 and described below is not intended to be limiting.
In 910, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may generate an identifier (ID) list based on the set of POI vectors. In some embodiments, the ID list may include a set of IDs each directing to a candidate POI.
In some embodiments, the set of POI vectors may include a predetermined number of POI vectors that are nearest to or most similar (or most relevant) to the query vector. Each POI vector in the set of the POI vectors may respond to a candidate POI. The candidate POI may indicate a possible target location where the user may search via the user terminal 130.
In some embodiments, the ID list may include a plurality of IDs each directing to a candidate POI. Each ID may be an identifier that indicates a candidate POI. The processing engine 112 may generate an ID for each candidate POI corresponding to each POI vector in the set of the POI vectors, and a plurality of IDs may form an ID list.
In 920, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may determine a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained  quality model. Each similarity score may indicate a relevance level of a corresponding POI to the query.
In some embodiments, the similarity score may be a parameter to indicate a relevance level between a candidate POI and a query inputted by the user. The similarity score may be positive correlation with the relevance level between the candidate POI and the query, that is, the higher of the similarity score, the higher of the relevance level between the POI and the query. And the user may be more likely to retrieve the corresponding candidate POI. For example, if a similarity score is 1, and another similarity score is 3, the relevance level between the corresponding candidate POI and the inputted query with the similarity score 3 may be higher than the relevance level between the corresponding candidate POI and the inputted query with the similarity score 1, and the user may be more likely to obtain the candidate POI with the similarity score 3 than the candidate POI with the similarity score 1.
In some embodiments, the trained quality model may be used to predict a similarity score between a query and a POI. For example, the trained quality model may include a Gradient Boosted Decision Tree (GBDT) model. In some embodiments, the processing engine 112 (e.g., the processor 220, the model training module 450) may obtain a preliminary model. For example, the preliminary model may be a preliminary GBDT model. A large number of historical queries that a plurality of user inputted in the history and the corresponding historical POIs in a historical POI list that recalled in response to the historical queries may be marked manually to obtain labeled data. The labeled data may include similarity scores marked manually. The similarity score may be generated for the query and each POI in the POI list manually according to a pre-determined standard. The standard may be pre-determined manually. The processing engine 112 may input the labeled data into the preliminary GBDT model to train the preliminary GBDT model. The preliminary model may be trained to obtain the trained quality model until the preliminary model is convergent in the training process.
In some embodiments, the processing engine 112 may input the query and each candidate POI responding to vector in the set of the POI vectors into the  trained quality model, the trained quality model may output the similarity score between the query and the corresponding candidate POI. Thereby, the processing engine 112 may determine a set of similarity scores for the set of candidate POIs with respect to the set of POI vectors.
In 930, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may rank the set of similarity scores of the set of candidate POIs.
In some embodiments, the processing engine 112 may rank the similarity scores in the set of similarity scores according to a predetermined rule. For example, the processing engine 112 may rank the set of similarity scores according to an ascending order, a descending order, or the like, or any combination thereof. As another example, the processing engine 112 may first determine whether each similarity score is greater than a score threshold. The score threshold may be set manually or be determined by the processing engine 112. In response to a determination that the corresponding similarity score is not greater than the score threshold, the processing engine 112 may delete the corresponding POI, and in response to a determination that the corresponding similarity score is greater than the score threshold, the processing engine 112 may input the corresponding POI into a ranking model to rank the corresponding candidate POIs. The detailed description of the ranking process may be found elsewhere in the present disclosure (e.g., FIG. 10, and the description thereof) .
In 940, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may determine the at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores.
In some embodiments, the processing engine 112 may select a predetermined number of POIs from the candidate POIs that rank at top of the ranking of the set of similarity scores, and recommend the predetermined number of POIs to the user via a data exchange port that is communicatively connected to a network 120. The predetermined number may be a default number of the system or may be a number determined according to different conditions. For example, the  processing engine 112 may select top 5 POIs in ranking of set of similarity scores corresponding to the set of the POI in the descending order. The processing engine 112 may recommend the 5 POIs to the user via the user terminal.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure. In some embodiments, one or more other optional operations (e.g., a storing operation) may be added elsewhere in the exemplary process 900. For example, process 900 may further include storing the at least one POI after determining the at least one POI.
FIG. 10 is a flowchart illustrating an exemplary process 1000 for ranking a set of similarity scores of a set of candidate POIs according to some embodiments of the present disclosure. The process 1000 may be executed by the AI system 100. For example, the process 1000 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 1000. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1000 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. 10 and described below is not intended to be limiting.
In 1010, for each of the set of candidate POIs, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may determine whether the corresponding similarity score is greater than a score threshold.
In some embodiments, the score threshold may be used to determine whether the relevance level of the candidate POI with the query meet a requirement.  For example, in response to a similarity score of a candidate POI in the set of the candidate POIs is higher than the score threshold, the processing engine 112 may determine that the relevance level of the candidate POI to the query meets the requirement. In response to the similarity score of the candidate POI is less than the score threshold, the processing engine 112 may determine that the relevance level of the candidate POI with the query may not meet the requirement. In some embodiments, the score threshold may be a default value stored in a storage device (e.g., the storage 140, the ROM 230 the RAM 240, and/or other type of storage medium to be executed by the processing engine 112) , or may be dynamically determined according to different conditions.
In 1020, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may obtain one or more relevant candidate POIs with similarity scores greater than the score threshold.
In some embodiments, the processing engine may select one or more candidate POIs in set of candidate POIs with similarity scores that are greater than the score threshold as relevant candidate POIs. For example, the score threshold may be set as 1 by the processing engine 112, the candidate POIs with the similarity score less than 1 may be deleted by the processing engine 112, and the candidate POIs with the similarity score greater than 1 may be selected by the processing engine 112 as the relevant candidate POIs.
In 1030, the processing engine 112 (e.g., the processor 220, the recommended POI determining module 440) may rank the one or more relevant candidate POIs based on a trained ranking model.
In some embodiments, the processing engine 112 may input the one or more relevant candidate POIs into a trained ranking model. The ranking model may rank the one or more relevant candidate POIs and output a ranking order. The trained ranking model may be used to predict a relevance ranking order of a plurality of relevant candidate POIs related to the query. The trained ranking model may be pre-trained and stored in a storage device (e.g., the storage 140, the ROM 230 the RAM 240, and/or other type of storage medium to be executed by the processing  engine 112) , or may be online trained by the processing engine 112. For example, the processing engine 112 may train the ranking model according to a Learn to Rank method.
It should be noted that the above description is merely provided for the purposes of illustration, and not intended to limit the scope of the present disclosure. For persons having ordinary skills in the art, multiple variations and modifications may be made under the teachings of the present disclosure. However, those variations and modifications do not depart from the scope of the present disclosure.
FIG. 11 is a schematic diagram illustrating an exemplary process 1100 for determining at least one POI according to some embodiments of the present disclosure. The process 1100 may be executed by the AI system 100. For example, the process 1100 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 1100. The operations of the illustrated process presented below are intended to be illustrative. In some embodiments, the process 1100 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. 11 and described below is not intended to be limiting.
As shown in FIG. 11, in the dashed box, the processing engine 112 may train a DPSM model. The processing engine 112 may obtain a plurality of the history query and a plurality of corresponding history POIs in a user log. The history query and the corresponding history POI may form a historical query-POI pair. The processing engine 112 may parse the historical query-POI pair into one or more segments, and generate one or more text denotations for the historical query-POI pair based on the parsing. The processing engine 112 may train a preliminary DPSM model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method, and obtain the DPSM model. In some embodiments, the training process may be performed by the processing  engine 112 offline.
When a user wants to take an online to offline service, the user may send a user request by inputting a query into a search box of an application of the online to offline service via the user terminal 130. The processing engine 112 may obtain the query and/or a city ID from the user terminal 130 based on the user request. The processing engine 112 may invoke the trained DPSM model trained in the dashed box using a Tensor Flow serving (TF_SVR) , and input the query into the trained DPSM model. The trained DPSM model may transform the query to a query vector. The processing engine 112 may obtain a POI database, and input each POI in the POI database into the trained DPPSM model to obtain a plurality of POI vectors. Then the processing engine 112 may generate an index based on the plurality of POI vectors and the GPU. The processing engine 112 may input the query, the city ID, and the index into the search library (e.g., Faiss) , and perform a similarity search to retrieve at least one candidate POI vector that is similar to the query using the PQ method.
The processing engine 112 may generate an ID for each similar POI vector of the at least one similar POI vector to obtain an ID list. The ID list may include a set of IDs each directing to a candidate POI. The processing engine 112 may test a set of candidate POIs with respect to the set of POI vectors to test a relevance level between each candidate POI and the query. For example, the processing engine 112 may determine a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained quality model. Each similarity score may indicate a relevance level of a corresponding candidate POI to the query. The processing engine 112 may rank the set of similarity scores of the set of candidate POIs using a trained ranking model, and select at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores. Finally, the processing engine 112 may display the ranking results to the user by the user terminal. The processing engine 112 may recommend the selected at least one POI to the user terminal 130 via the data exchange port, and the user may select a POI from the at least one displayed POI responding to the query.
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-code, 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 code embodied thereon.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband  or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including electro-magnetic, optical, or the like, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that may communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device. Program code embodied on a computer readable signal medium may be transmitted using any appropriate medium, including wireless, wireline, optical fiber cable, RF, or the like, or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present disclosure may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB. NET, Python or the like, conventional procedural programming languages, such as the “C” programming language, Visual Basic, Fortran 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.
In some embodiments, the numbers expressing quantities or properties used to describe and claim certain embodiments of the application are to be understood as being modified in some instances by the term “about, ” “approximate, ” or “substantially. ” For example, “about, ” “approximate, ” or “substantially” may indicate ±20%variation of the value it describes, unless otherwise stated. Accordingly, in some embodiments, the numerical parameters set forth in the written description and attached claims are approximations that may vary depending upon the desired properties sought to be obtained by a particular embodiment. In some embodiments, the numerical parameters should be construed in light of the number of reported significant digits and by applying ordinary rounding techniques. Notwithstanding that the numerical ranges and parameters setting forth the broad scope of some embodiments of the application are approximations, the numerical values set forth in the specific examples are reported as precisely as practicable.
Each of the patents, patent applications, publications of patent applications, and other material, such as articles, books, specifications, publications, documents,  things, and/or the like, referenced herein is hereby incorporated herein by this reference in its entirety for all purposes, excepting any prosecution file history associated with same, any of same that is inconsistent with or in conflict with the present document, or any of same that may have a limiting affect as to the broadest scope of the claims now or later associated with the present document. By way of example, should there be any inconsistency or conflict between the descriptions, definition, and/or the use of a term associated with any of the incorporated material and that associated with the present document, the description, definition, and/or the use of the term in the present document shall prevail.
In closing, it is to be understood that the embodiments of the application disclosed herein are illustrative of the principles of the embodiments of the application. Other modifications that may be employed may be within the scope of the application. Thus, by way of example, but not of limitation, alternative configurations of the embodiments of the application may be utilized in accordance with the teachings herein. Accordingly, embodiments of the present application are not limited to that precisely as shown and describe.

Claims (20)

  1. An artificial intelligent system for semantic-based search, comprising:
    at least one storage medium including a set of instructions;
    a data exchange port communicatively connected to a network; and
    at least one processor in communication with the storage medium, wherein when executing the set of instructions, the at least one processor is directed to:
    obtain a query from a user terminal via the data exchange port;
    transform the query to a query vector using a pre-generated model;
    retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and
    determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  2. The system of claim 1, wherein the pre-generated model is trained based on correlations between query semantics and POIs by performing:
    obtaining a preliminary model;
    obtaining a plurality of historical query-POI pairs, each of the plurality of historical query-POI pairs including a historical query and a corresponding historical POI;
    for each of the plurality of historical query-POI pairs,
    parsing at least one of the historical query or the corresponding historical POI into one or more segments, and
    generating one or more text denotations for the historical query-POI pair based on the parsing; and
    training the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model.
  3. The system of claim 2, wherein the pre-generated model includes a deep POI semantic model (DPSM) model.
  4. The system of any one of claims 1-3, wherein to retrieve the set of POI vectors from a search library based on the query vector using a Product Quantization (PQ) method, the at least one processor is further directed to:
    obtain an index to a plurality of POIs in a POI database;
    obtain at least one target location from the query; and
    determine the set of POI vectors from the search library based on the index, the query vector and the at least one target location, the set of POI vectors being relevant to the query.
  5. The system of claim 4, wherein to obtain an index to a plurality of POIs in a POI database, the at least one processor is further directed to:
    obtain the plurality of POIs from the POI database;
    transform the plurality of POIs to the plurality of POI vectors using the pre-generated model; and
    generate the index to the plurality of POIs based on the plurality of POI vectors using graphics processing unit (GPU) .
  6. The system of any one of claims 1-5, wherein to determine the at least one POI based on the set of POI vectors to recommend to a user in response to the query, the at least one processor is further directed to:
    generate an identifier (ID) list based on the set of POI vectors, the ID list including a set of IDs each directing to a candidate POI;
    determine a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained quality model, each similarity score indicating a relevance level of a corresponding POI to the query;
    rank the set of similarity scores of the set of candidate POIs; and
    determine the at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores.
  7. The system of claim 6, wherein the trained quality model is a Gradient Boosted Decision Tree (GBDT) model.
  8. The system of claim 6, wherein to rank the set of similarity scores of the set of candidate POIs, the at least one processor is further directed to:
    for each of the set of candidate POIs, determine whether the corresponding similarity score is greater than a score threshold;
    obtain one or more relevant candidate POIs with similarity scores greater than the score threshold; and
    rank the one or more relevant candidate POIs based on a trained ranking model.
  9. The system of claim 8, wherein the trained ranking model is obtained by a learning to rank method.
  10. An artificial intelligent method for semantic-based search implemented on a computing device including at least one storage medium including a set of instructions, a data exchange port communicatively connected to a network, and at least one processor in communication with the storage medium, the method comprising:
    obtaining a query from a user terminal via the data exchange port;
    transforming the query to a query vector using a pre-generated model;
    retrieving a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and
    determining at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  11. The method of claim 10, wherein the pre-generated model is trained based on correlations between query semantics and POIs by performing:
    obtaining a preliminary model;
    obtaining a plurality of historical query-POI pairs, each of the plurality of historical query-POI pairs including a historical query and a corresponding historical POI;
    for each of the plurality of historical query-POI pairs,
    parsing at least one of the historical query or the corresponding historical POI into one or more segments, and
    generating one or more text denotations for the historical query-POI pair based on the parsing; and
    training the preliminary model based on the text denotations for the plurality of historical query-POI pairs using a deep learning method to obtain the pre-generated model.
  12. The method of claim 11, wherein the pre-generated model includes a deep POI semantic model (DPSM) model.
  13. The method of any one of claims 10-12, wherein the retrieving of the set of POI vectors from a search library based on the query vector using a Product Quantization (PQ) further includes:
    obtaining an index to a plurality of POIs in a POI database;
    obtaining at least one target location from the query; and
    determining the set of POI vectors from the search library based on the index, the query vector and the at least one target location, the set of POI vectors being relevant to the query.
  14. The method of claim 13, wherein the obtaining of an index to a plurality of POIs in a POI database further includes:
    obtaining the plurality of POIs from the POI database;
    transforming the plurality of POIs to the plurality of POI vectors using the pre-generated model; and
    generating the index to the plurality of POIs based on the plurality of POI vectors using graphics processing unit (GPU) .
  15. The method of any one of claims 10-14, wherein the determining of the at least one POI based on the set of POI vectors to recommend to a user in response to the query further includes:
    generating an identifier (ID) list based on the set of POI vectors, the ID list including a set of IDs each directing to a candidate POI;
    determining a set of similarity scores for a set of candidate POIs with respect to the set of POI vectors using a trained quality model, each similarity score indicating a relevance level of a corresponding POI to the query;
    ranking the set of similarity scores of the set of candidate POIs; and
    determining the at least one POI from the set of candidate POIs based on the ranking of the set of similarity scores.
  16. The method of claim 15, wherein the trained quality model is a Gradient Boosted Decision Tree (GBDT) model.
  17. The method of claim 15, wherein the ranking of the set of similarity scores of the set of candidate POIs further includes:
    for each of the set of candidate POIs, determining whether the corresponding similarity score is greater than a score threshold;
    obtaining one or more relevant candidate POIs with similarity scores greater than the score threshold; and
    ranking the one or more relevant candidate POIs based on a trained ranking model.
  18. The method of claim 17, wherein the trained ranking model is obtained by a learning to rank method.
  19. A non-transitory readable medium, comprising at least one set of instructions for semantic-based search, wherein when executed by at least one processor of an electrical device, the at least one set of instructions directs the at least one processor to perform a method, the method comprising:
    obtaining a query from a user terminal;
    transforming the query to a query vector using a pre-generated model;
    retrieving a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and
    determining at least one POI based on the set of POI vectors to recommend to a user in response to the query.
  20. A system for semantic-based search, comprising:
    a query obtaining module configured to obtain a query from a user terminal;
    a query vector transforming module configured to transform the query to a query vector using a pre-generated model;
    a POI vector set obtaining module configured to retrieve a set of point of interest (POI) vectors from a search library based on the query vector using a Product Quantization (PQ) method; and
    a recommended POI determining module configured to determine at least one POI based on the set of POI vectors to recommend to a user in response to the query.
PCT/CN2018/125993 2018-12-29 2018-12-31 Artificial intelligent systems and methods for semantic-based search Ceased WO2020133549A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811647685.3 2018-12-29
CN201811647685.3A CN110765368B (en) 2018-12-29 2018-12-29 Artificial intelligence system and method for semantic retrieval

Publications (1)

Publication Number Publication Date
WO2020133549A1 true WO2020133549A1 (en) 2020-07-02

Family

ID=69328482

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/125993 Ceased WO2020133549A1 (en) 2018-12-29 2018-12-31 Artificial intelligent systems and methods for semantic-based search

Country Status (2)

Country Link
CN (1) CN110765368B (en)
WO (1) WO2020133549A1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111931067A (en) * 2020-09-14 2020-11-13 北京百度网讯科技有限公司 Interest point recommendation method, device, equipment and medium
CN112507091A (en) * 2020-12-01 2021-03-16 百度健康(北京)科技有限公司 Method, device, equipment and storage medium for retrieving information
CN112685525A (en) * 2020-12-29 2021-04-20 北京三快在线科技有限公司 Position recommendation method, device, equipment and storage medium
CN113205546A (en) * 2021-04-30 2021-08-03 四川云从天府人工智能科技有限公司 Method, system, medium, and apparatus for obtaining a motion trajectory of a target vehicle
CN113377923A (en) * 2021-06-25 2021-09-10 北京百度网讯科技有限公司 Semantic retrieval method, device, equipment, storage medium and computer program product
CN114036322A (en) * 2021-11-05 2022-02-11 北京百度网讯科技有限公司 Training method for search system, electronic device, and storage medium
WO2022083596A1 (en) * 2020-10-20 2022-04-28 北京沃东天骏信息技术有限公司 Sorting method, apparatus and device, and computer storage medium
CN114691957A (en) * 2022-03-25 2022-07-01 北京百度网讯科技有限公司 Information processing method, information processing device, electronic equipment and storage medium
CN114691828A (en) * 2022-03-23 2022-07-01 腾讯科技(深圳)有限公司 Data processing method, device, equipment and medium
US20220260376A1 (en) * 2021-02-17 2022-08-18 Turing Research Inc. System and method for rideshare matching based on locality sensitive hashing
CN115203383A (en) * 2021-04-13 2022-10-18 澜起科技股份有限公司 Method and apparatus for querying similarity vectors in a set of candidate vectors
CN116541436A (en) * 2023-04-13 2023-08-04 华院计算技术(上海)股份有限公司 Correlation query method and device for continuous casting production line, medium and terminal
CN116595256A (en) * 2023-05-22 2023-08-15 毕加展览有限公司 Method and system for data screening and immersive interaction of digital exhibition

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666292B (en) * 2020-04-24 2023-05-26 百度在线网络技术(北京)有限公司 Similarity model establishment method and device for retrieving geographic position
CN111666461B (en) * 2020-04-24 2023-05-26 百度在线网络技术(北京)有限公司 Method, device, device and computer storage medium for retrieving geographic location
CN112269797B (en) * 2020-10-28 2024-02-27 国家卫星气象中心(国家空间天气监测预警中心) Multidimensional query method of satellite remote sensing data on heterogeneous computing platform
CN113111662B (en) * 2021-04-21 2025-03-21 浙江口碑网络技术有限公司 Intention recognition method, device, electronic device, storage medium and program product
CN120804443A (en) * 2021-06-17 2025-10-17 华为技术有限公司 Information point searching method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279288A (en) * 2015-12-04 2016-01-27 深圳大学 A method for online content recommendation based on deep neural network
CN106095983A (en) * 2016-06-20 2016-11-09 北京百度网讯科技有限公司 A method and device for determining similarity based on personalized deep neural network
CN106528676A (en) * 2016-10-31 2017-03-22 北京百度网讯科技有限公司 Entity semantic retrieval processing method and device based on artificial intelligence
KR20180001155A (en) * 2016-06-27 2018-01-04 (주)휴먼웍스 Method for auto-selection of on-line ai chatting partner using big-data
CN108733669A (en) * 2017-04-14 2018-11-02 优路(北京)信息科技有限公司 A kind of personalized digital media content recommendation system and method based on term vector

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103020164B (en) * 2012-11-26 2015-06-10 华北电力大学 Semantic search method based on multi-semantic analysis and personalized sequencing
CN104572645B (en) * 2013-10-11 2020-07-10 阿里巴巴(中国)有限公司 Interest point data association method and device
US9846836B2 (en) * 2014-06-13 2017-12-19 Microsoft Technology Licensing, Llc Modeling interestingness with deep neural networks
US9836529B2 (en) * 2014-09-22 2017-12-05 Oracle International Corporation Semantic text search
CN108763538B (en) * 2018-05-31 2019-07-23 北京嘀嘀无限科技发展有限公司 A kind of method and device in the geographical location determining point of interest POI

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105279288A (en) * 2015-12-04 2016-01-27 深圳大学 A method for online content recommendation based on deep neural network
CN106095983A (en) * 2016-06-20 2016-11-09 北京百度网讯科技有限公司 A method and device for determining similarity based on personalized deep neural network
KR20180001155A (en) * 2016-06-27 2018-01-04 (주)휴먼웍스 Method for auto-selection of on-line ai chatting partner using big-data
CN106528676A (en) * 2016-10-31 2017-03-22 北京百度网讯科技有限公司 Entity semantic retrieval processing method and device based on artificial intelligence
CN108733669A (en) * 2017-04-14 2018-11-02 优路(北京)信息科技有限公司 A kind of personalized digital media content recommendation system and method based on term vector

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111931067B (en) * 2020-09-14 2023-09-29 北京百度网讯科技有限公司 Point of interest recommendation methods, devices, equipment and media
CN111931067A (en) * 2020-09-14 2020-11-13 北京百度网讯科技有限公司 Interest point recommendation method, device, equipment and medium
WO2022083596A1 (en) * 2020-10-20 2022-04-28 北京沃东天骏信息技术有限公司 Sorting method, apparatus and device, and computer storage medium
CN112507091A (en) * 2020-12-01 2021-03-16 百度健康(北京)科技有限公司 Method, device, equipment and storage medium for retrieving information
CN112685525A (en) * 2020-12-29 2021-04-20 北京三快在线科技有限公司 Position recommendation method, device, equipment and storage medium
US12345535B2 (en) * 2021-02-17 2025-07-01 Turing Research Inc. System and method for rideshare matching based on locality sensitive hashing
US20220260376A1 (en) * 2021-02-17 2022-08-18 Turing Research Inc. System and method for rideshare matching based on locality sensitive hashing
CN115203383A (en) * 2021-04-13 2022-10-18 澜起科技股份有限公司 Method and apparatus for querying similarity vectors in a set of candidate vectors
CN113205546A (en) * 2021-04-30 2021-08-03 四川云从天府人工智能科技有限公司 Method, system, medium, and apparatus for obtaining a motion trajectory of a target vehicle
CN113377923A (en) * 2021-06-25 2021-09-10 北京百度网讯科技有限公司 Semantic retrieval method, device, equipment, storage medium and computer program product
CN113377923B (en) * 2021-06-25 2024-01-09 北京百度网讯科技有限公司 Semantic retrieval methods, devices, equipment, storage media and computer program products
CN114036322A (en) * 2021-11-05 2022-02-11 北京百度网讯科技有限公司 Training method for search system, electronic device, and storage medium
CN114691828A (en) * 2022-03-23 2022-07-01 腾讯科技(深圳)有限公司 Data processing method, device, equipment and medium
CN114691957A (en) * 2022-03-25 2022-07-01 北京百度网讯科技有限公司 Information processing method, information processing device, electronic equipment and storage medium
CN116541436A (en) * 2023-04-13 2023-08-04 华院计算技术(上海)股份有限公司 Correlation query method and device for continuous casting production line, medium and terminal
CN116541436B (en) * 2023-04-13 2024-02-27 华院计算技术(上海)股份有限公司 Correlation query method and device for continuous casting production line, medium and terminal
CN116595256A (en) * 2023-05-22 2023-08-15 毕加展览有限公司 Method and system for data screening and immersive interaction of digital exhibition
CN116595256B (en) * 2023-05-22 2023-11-03 毕加展览有限公司 Method and system for data screening and immersive interaction of digital exhibition

Also Published As

Publication number Publication date
CN110765368B (en) 2020-10-27
CN110765368A (en) 2020-02-07

Similar Documents

Publication Publication Date Title
WO2020133549A1 (en) Artificial intelligent systems and methods for semantic-based search
CN111460248B (en) System and method for on-line to off-line service
CN110717010B (en) Text processing method and system
US20210049224A1 (en) Systems and methods for on-demand services
WO2019232772A1 (en) Systems and methods for content identification
US20210089531A1 (en) Systems and methods for processing queries
WO2018035139A1 (en) Semantic forward search indexing of publication corpus
US10872300B2 (en) Artificial intelligent systems and methods for using a structurally simpler learner model to mimic behaviors of a structurally more complicated reference model
US20190362266A1 (en) Systems and methods for text attribute determination using a conditional random field model
US20220214185A1 (en) Systems and methods for recommendation and display of point of interest
WO2020103183A1 (en) System and method for constructing database
US11984118B2 (en) Artificial intelligent systems and methods for displaying destination on mobile device
US20200151390A1 (en) System and method for providing information for an on-demand service
WO2021087663A1 (en) Systems and methods for determining name for boarding point
CN111382369B (en) System and method for determining relevant points of interest related to an address query
CN111831929B (en) A method and device for obtaining POI information
CN111858787B (en) POI information acquisition method and device
US11093531B2 (en) Systems and methods for recalling points of interest using a tagging model
CN119229162A (en) Visual language model training, image label prediction method and electronic device
CN113515687B (en) Logistics information acquisition method and device
CN116701567B (en) Electronic book retrieval method and system based on artificial intelligence
CN115690398B (en) A method for identifying urban functional zones that balances POI homogeneity and structural similarity
CN111797620B (en) System and method for identifying proper nouns
CN114691957B (en) Information processing method, information processing device, electronic equipment and storage medium
HK40075325A (en) Search statement recommendation method and apparatus, device, and medium

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: 18945027

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: 18945027

Country of ref document: EP

Kind code of ref document: A1