用于路径搜索的系统和方法与流程

文档序号:16150354发布日期:2018-12-05 17:28阅读:173来源:国知局

本申请要求2017年3月23日提交的中国申请号为201710179750.3的申请的优先权,其内容以引用的方式包含于此。

本申请涉及用于按需服务的系统和方法,具体地,涉及用于基于递归神经网络(rnn,recurrentneuralnetwork)模型搜索与目标路径相似的至少一个条路径的系统和方法。

背景技术

利用互联网技术的按需服务(例如,出租车服务)由于其便利性而变得越来越流行。对于请求者同意与其他请求者共享运输服务的服务请求,提供运输服务的系统应该具备识别出与该服务请求的路径相似的候选服务请求的功能。因此,需要提供一种用于快速有效地搜索相似路径的系统和方法。



技术实现要素:

根据本申请的一方面,提供了一种系统。该系统包括至少一个存储介质和至少一个处理器与所述至少一个存储介质通信。至少一个存储介质包括路径搜索指令。当至少一个处理器执行该组指令时,可以指示至少一个处理器执行以下操作中的一个或以上。至少一个处理器可以获取第一路径的路径信息。所述至少一个处理器可以基于目标模型将第一路径的路径信息编码为第一编码,其中,所述目标模型可以被配置为将路径编码为预设长度为n个字节的编码,n是大于1的整数,及将大体相似的路径编码成相同的编码。所述至少一个处理器可以访问所述至少一个存储介质中的目标数据库,其中所述目标数据库可以包括至少两个候选编码,所述至少两个候选编码由所述目标模型对至少两个候选路径进行编码得到。所述至少一个处理器可以基于所述第一编码,从所述至少两个候选编码中识别第二编码,其中所述第二编码可以与至少一条第二路径相关联。至少一个处理器可以将与至少一条第二路径相关联的信息发送到接收设备。

根据本申请的另一方面,提供了一种方法。该方法可以在包括至少一个处理器、至少一个存储介质和连接到网络的通信平台的计算设备上实现。该方法可以包括以下一个或以上操作。至少一个处理器可以获取第一路径的路径信息。所述至少一个处理器可以基于目标模型将第一路径的路径信息编码为第一编码,其中,所述目标模型可以被配置为将路径编码为预设长度为n个字节的编码,n是大于1整的数,及将大体相似的路径编码成相同的编码。所述至少一个处理器可以访问所述至少一个存储介质中的目标数据库,其中所述目标数据库可以包括至少两个候选编码,所述至少两个候选编码由所述目标模型对至少两个候选路径进行编码得到。所述至少一个处理器可以基于所述第一编码,从所述至少两个候选编码中识别第二编码,其中所述第二编码可以与至少一条第二路径相关联。至少一个处理器可以将与至少一条第二路径相关联的信息发送到接收设备。

根据本申请的又一方面,提供了一种非暂时性计算机可读介质。非暂时性计算机可读介质包括路径搜索指令。当由至少一个处理器执行该指令时,该指令可以使该至少一个处理器实现以下操作中的一个或以上。至少一个处理器可以获取第一路径的路径信息。所述至少一个处理器可以基于目标模型将第一路径的路径信息编码为第一编码,其中,所述目标模型可以被配置为将路径编码为预设长度为n个字节的编码,n是大于1的整数,及将大体相似的路径编码成相同的编码。所述至少一个处理器可以访问所述至少一个存储介质中的目标数据库,其中所述目标数据库可以包括至少两个候选编码,所述至少两个候选编码由所述目标模型对至少两个候选路径进行编码得到。所述至少一个处理器可以基于所述第一编码从所述至少两个候选编码中识别第二编码,其中所述第二编码可以与至少一条第二路径相关联。至少一个处理器可以将与至少一条第二路径相关联的信息发送到接收设备。

在一些实施例中,所述第一路径的路径信息可以包括沿第一路径的m个路径点的位置信息,所述m个路径点的序列与所述第一个路径的方向相对应,其中m是大于1且独立于n的整数。

在一些实施例中,所述目标模型可以包括具有隐藏层的递归神经网络(rnn)模型,该隐藏层包括至少m个神经元。rnn模型可以通过训练过程获得。训练过程可以包括设置rnn模型的初始参数,其中初始参数包括与rnn模型的输入层相关联的第一参数和与rnn模型的隐藏层相关联的第二参数;获取至少两个样本路径的样本路径信息,其中所述至少两个样本路径中每一个可以包括至少两个样本路径点,样本路径信息可以包括至少两个样本路径点的样本位置信息;对于至少两个样本路径中每一个样本路径,基于初始参数、预设的非线性激活函数和样本路径信息,确定与隐藏层中至少m个神经元相关联的输出信息,其中对于所述至少m个神经元中的第一神经元,输入为所述至少两个样本路径点中第一样本路径点的样本位置信息,对于所述至少m个神经元中的第i个神经元,所述输入包括所述至少两个路径点中第i个路径点的样本位置信息和所述至少m个神经元中第(i-1)个神经元的输出;及基于输出信息确定所述rnn模型的训练参数。

在一些实施例中,确定与隐藏层中至少m个神经元相关联的输出信息可以包括:确定对应于第(i-1)个神经元的输出的第一1*n向量:确定对应于第i个样本路径点的样本位置信息的1*2向量:基于对应于第(i-1)个神经元的1*n向量和对应于第i个样本路径点的样本位置信息的1*2向量,确定1*(n+2)矩阵;基于第一参数和第二参数,确定(n+2)*n矩阵,其中第一参数为n*n矩阵,第二参数为2*n矩阵;基于1*(n+2)矩阵和(n+2)*n矩阵,确定与第i个神经元对应的1*n矩阵;基于1*n矩阵和预设的非线性激活函数,确定对应于第i个神经元输出的第二1*n向量。

在一些实施例中,确定与隐藏层中至少m个神经元相关联的输出信息可以包括:确定对应于第(i-1)个神经元的输出的第一n*1向量;确定对应于第i个样本路径点的样本位置信息的2*1向量;基于对应于第(i-1)个神经元的n*1向量和对应于第i个样本路径点的样本位置信息的2*1向量,确定(n+2)*1矩阵;基于所述第一参数和所述第二参数,确定n*(n+2)矩阵,其中,所述第一参数为n*n矩阵,所述第二参数为n*2矩阵;基于所述1*(n+2)矩阵和所述(n+2)*n矩阵,确定对应于所述第i个神经元的n*1矩阵;及基于n*1矩阵和预设的非线性激活函数,确定对应于第i个神经元输出的第二n*1向量。

在一些实施例中,基于所述输出信息确定rnn模型的训练参数可以包括基于反向传播算法或梯度下降算法确定训练参数。

在一些实施例中,预设的非线性激活函数可以包括sigmoid函数、双曲正切(tanh,hyperbolictangent)函数和/或修正线性单元(relu,rectifiedlinearunits)函数中的至少一个。

在一些实施例中,基于目标模型,至少一个处理器可以确定n维向量。基于编码函数,至少一个处理器可以对所述n维向量进行编码来生成第一编码。

在一些实施例中,编码函数为:

其中x指的是n维向量中元素的值,h(x)指的是所述第一编码中对应于所述元素的编码值。

在一些实施例中,目标模型可以包括长短时记忆(lstm,longshort-termmemorynetwork)模型。

本申请的一部分附加特性可以在下面的描述中进行说明。通过对以下描述和相应附图的研究或者对实施例的生产或操作的了解,本申请的一部分附加特性对于本领域技术人员是明显的。本申请的特性可以通过对以下描述的具体实施例的各种方面的方法、手段和组合的实践或使用得以实现和达到。

附图说明

本申请通过示例性实施例进行进一步描述。这些示例性实施例将通过附图进行详细描述。附图不是按比例绘制的。这些实施例并非限制性的,在这些实施例中,各图中相同的标号表示相同的部件,其中:

图1是根据本申请的一些实施例所示的示例性按需服务系统的示意图;

图2是根据本申请的一些实施例所示的计算设备的示例性硬件和/或软件组件的示意图;

图3是根据本申请的一些实施例所示的示例性处理引擎的框图;

图4a是根据本申请的一些实施例所示的确定与目标路径相似的至少一条路径的示例性过程的流程图;

图4b是根据本申请的一些实施例所示的与服务请求相关联的示例性电子信号的示意图;

图4c是根据本申请的一些实施例所示的存储至少两个编码和/或路径的目标数据库的示例性数据结构的示意图;

图4d是根据本申请的一些实施例所示的存储至少两个编码和/或路径的目标数据库的示例性数据结构的示意图;

图5是根据本申请的一些实施例所示的示例性训练模块的框图;

图6是根据本申请的一些实施例所示的用于训练递归神经网络(rnn)模型的示例性过程的流程图;

图7是根据本申请的一些实施例所示的rnn模型的示例性结构的示意图;

图8是根据本申请的一些实施例所示的示例性编码模块的框图;

图9是根据本申请的一些实施例所示的对路径的路径信息进行编码的示例性过程的流程图;

图10是根据本申请的一些实施例所示的呈现服务请求的示例性用户界面的示意图。

具体实施方式

下述描述是为了使本领域的普通技术人员能够制造和使用本申请,并且该描述是在特定的应用场景及其要求的环境下提供的。对于本领域的普通技术人员来讲,显然可以对所披露的实施例作出各种改变,另外,在不偏离本申请的原则和范围的情况下,本申请中所定义的普遍原则可以适用于其他实施例和应用场景。因此,本申请并不限于所描述的实施例,而应该被给予与权利要求一致的最广泛的范围。

此处使用的术语仅仅用来描述特定的示例性实施例,并不旨在对其进行。如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可以包括复数。可以进一步理解的是,术语“包括”与“包含”是指存在多个明确标识的特征、整数、步骤、操作、元件和/或组件,但并不排除呈现或添加一个或以上其他特征、整数、步骤、操作、元件和/或组件,和/或它们的组合。

通过对以下附图的描述,本申请的特征以及相关结构元件的操作方法和功能,以及部件的组合和制造的经济性,可以变得更加显而易见,这些附图都构成本申请说明书的一部分。应当理解的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当理解的是,附图并不是按比例绘制的。

本申请中使用了流程图用来说明根据本申请的一些实施例的系统所执行的操作。应当理解的是,流程图的操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些流程图中,或从这些流程图中移除某一步或数步操作。

虽然本申请的系统和方法的描述主要是关于按需运输服务,但是还应当理解,这仅仅是一个示例性实施例。本申请的系统或方法可以应用于任何其他类型的按需服务。例如,本申请的系统或方法可以应用于不同的运输系统,包括陆地、海洋、航空、航天等中的一种或几种的组合。运输系统的车辆可以包括出租车、私家车、顺风车、公共汽车、火车、动车、高铁、地铁、船舶、飞机、宇宙飞船、热气球、无人驾驶车辆等中的一种或几种的组合。运输系统还可以包括应用管理和/或分配的任何运输系统,例如用于发送和/或接收快递的系统。本申请的系统或方法的应用场景可以包括网页,浏览器插件,客户端,客户系统,内部分析系统,人工智能机器人等,或其任意组合。

在本申请中,术语“乘客”,“请求者”,“服务请求者”和“客户”是可以互换的,其是指请求或订购服务的个人,实体或工具。同样的,本申请中的术语“驾驶员”、“提供者”,“服务提供者”和“供应者”也是可以互换的,其用于指提供服务或协助提供服务的个人,实体或工具。本申请中的术语“用户”可以是请求服务、订购服务、提供服务或协助提供服务的个人,实体或工具。例如,用户可以是乘客、驾驶员、操作者等或其任意组合。在本申请中,“乘客”和“乘客终端”可以交换使用,而且“驾驶员”和“驾驶员终端”可以交换使用。

在本申请中,术语“服务请求”和“订单”可以交换使用,其可以是指由乘客、请求者、服务请求者、顾客、驾驶员、提供者、服务提供者、供应者等或其任意组合所发起的请求。服务请求可以由乘客、请求者、服务请求者、客户、驾驶员、提供者、服务提供者或供应者等中的一个接受。服务请求可以是收费的,也可以是免费的。

本申请中使用的定位技术可以包括全球定位系统(gps)、全球导航卫星系统(glonass)、指南针导航系统(compass)、伽利略定位系统、准天顶卫星系统(qzss)、无线保真(wifi)定位技术等,或其任意组合。上述定位技术中的一种或以上可以在本申请中可以交换使用。

本申请的一个方面涉及基于编码在数据库中搜索相似路径的系统和方法,所述编码是通过目标模型(例如,训练的rnn模型和哈希函数)从至少两个路径中编码得到。根据本申请,当系统接收到运输服务的服务请求并且请求者同意与其他请求者共享运输服务时,系统可以确定服务请求的目标路径并在目标数据库中搜索至少一个与目标路径相似的路径。目标数据库包括至少两个候选编码,至少两个候选编码由目标模型对至少两个候选路径进行编码得到,其中目标模型可以被配置为将大体相似的路径编码成相同的编码。因此,搜索与目标路径相似的路径的过程是识别与目标编码相同的编码的过程,所述目标编码与目标路径相对应。因此,它提高了搜索过程的速度和效率。

需要注意的是,搜索至少一条与目标路径相似的路径,是一种植根于互联网时代的新型服务形式。在终端和服务器之间没有实时gps定位和实时通信的情况下,确定服务请求的目标路径并从与至少两个候选服务请求相关联的至少两条候选路径中搜索与目标路径相似的至少一条路径是不可能的。因此,本申请中公开的技术方案也是一种植根于互联网时代的技术。

图1是根据本申请的一些实施例所示的示例性按需服务系统100的示意图。例如,按需服务系统100可以是用于运输服务的在线运输服务平台,例如出租车服务、专车服务、运送车辆、拼车服务、公共汽车服务、代驾服务和班车服务。按需服务系统100可以是在线平台,包括服务器110、网络120、请求者终端130、提供者终端140和存储器150。

在一些实施例中,服务器110可以是单个服务器,也可以是服务器组。服务器组可以是集中式的,也可以是分布式的(例如,服务器110可以是分布式系统)。在一些实施例中,服务器110可以是本地的,也可以是远程的。例如,服务器110可以经由网络120访问存储在请求者终端130、提供者终端140和/或存储器150中的信息和/或数据。又例如,服务器110可以直接连接到请求者终端130、提供者终端140和/或存储器150,以访问存储的信息和/或数据。在一些实施例中,服务器110可以在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布式云、云间、多云等或其任意组合。在一些实施例中,服务器110可以在计算设备200上实现,如本申请中图2所示,该计算设备200包括一个或以上组件。

在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与服务请求有关的信息和/或数据,以执行本申请中描述的至少一个功能。例如,处理引擎112可以获取目标路径的路径信息,并基于路径信息确定与目标路径相似的路径。在一些实施例中,处理引擎112包括一个或以上处理引擎(例如,单核处理引擎或多核处理器)。仅作为示例,处理引擎112包括一个或以上硬件处理器,诸如中央处理单元(centralprocessingunit,cpu)、专用集成电路(asic)、专用指令集处理器(asip)、图形处理单元(gpu)、物理处理单元(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、控制器、微控制器单元、精简指令集计算机(risc)、微处理器等,或者它们的任意组合。

网络120可以促进信息和/或数据的交换。在一些实施例中,按需服务系统100中的一个或以上组件(例如,服务器110、请求者终端

130、提供者终端140、存储器150和定位系统160)可以经由网络120向按需服务系统100中的其他组件发送信息和/或数据。例如,服务器110可以经由网络120从请求者终端130获得/获取服务请求。在一些实施例中,网络120可以是任何类型的有线或无线网络或其组合。仅作为示例,网络130可以包括有线网络、有线网络、光纤网络、电信网络、内联网、因特网、局域网(lan)、广域网(wan)、无线局域网(wlan)、城域网(man)、公共电话交换网(pstn)、蓝牙网络、zigbee网络、近场通信(nfc)网络等或其任意组合。在一些实施例中,网络120可以包括一个或以上网络接入点。例如,网络120可以包括有线或无线网络接入点,例如基站和/或互联网交换点120-1、120-2等,通过这些接入点,按需服务系统100的一个或以上组件可以连接到网络120以交换数据和/或信息。

在一些实施例中,请求者可以是请求者终端130的用户。在一些实施例中,请求者终端130的用户可以是除请求者之外的其他人。例如,请求者终端130的用户a可以使用请求者终端130来发送针对用户b的服务请求,或者从服务器110接收服务和/或信息或指令。在一些实施例中,提供者可以是提供者终端140的用户。在一些实施例中,提供者终端140的用户可以是除提供者之外的其他人。例如,提供者终端140的用户c可以使用提供者终端140来接收对用户d的服务请求,和/或来自服务器110的信息或指令。在一些实施例中,“请求者”和“请求者终端”可以互换使用,“提供者”和“提供者终端”可以互换使用。

在一些实施例中,请求者终端130可以包括移动设备130-1、平板计算机130-2、膝上型计算机130-3、机动车辆130-4中的内置设备等,或其任意组合。在一些实施例中,移动设备130-1可以包括智能家庭设备、可佩戴设备、移动设备、虚拟现实设备、增强现实设备等或其任意组合。在一些实施例中,智能家庭设备可以包括智能照明设备、智能电气设备的控制设备、智能监控设备、智能电视、智能摄像机、对讲机等或其任意组合。在一些实施例中,可佩戴装置可包括手镯、脚具、眼镜、头盔、手表、衣服、背包、智能附件等或其任意组合。在一些实施例中,移动设备可以包括移动电话、个人数字助理(pda)、游戏设备、导航设备、销售点(pos)设备、膝上型计算机、桌面等或其任意组合。在一些实施例中,虚拟现实设备和/或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实补丁、增强现实头盔、增强现实眼镜、增强现实补丁等或其任意组合。例如,虚拟现实设备和/或增强现实设备可以包括googleglasstm、riftcontm、fragmentstm、gearvrtm等。在一些实施例中,机动车辆130-4中的内置设备可以包括车载计算机、车载电视等。在一些实施例中,请求者终端130可以是具有定位技术的设备,用于定位请求者和/或请求者终端130的位置。

在一些实施例中,提供者终端140可以是与请求者终端130相似或相同的设备。在一些实施例中,提供者终端140可以是利用定位技术来定位提供者终端140(例如,服务提供者)和/或提供者终端140的用户位置的设备。在一些实施例中,请求者终端130和/或提供者终端140可以与一个或以上其他定位设备通信,以确定请求者、请求者终端130、提供者和/或提供者终端140的位置。在一些实施例中,请求方终端130和/或提供方终端140可以将定位信息发送到服务器110。

存储器150可以存储数据和/或指令。在一些实施例中,存储器150可以存储从请求者终端130和/或提供者终端140获取的数据。在一些实施例中,存储器150可以存储服务器110执行或用于执行本申请中描述的示例性方法的数据和/或指令。在一些实施例中,存储器150可以包括大容量存储器、可移动存储器、易失性读写存储器、只读存储器(rom)等,或其任何组合。示例性大容量存储器可以包括磁盘、光盘、固态驱动器等。示例性可移动存储器可以包括闪存驱动器、软盘、光盘、存储卡、压缩盘、磁带等。示例性易失性读写存储器可以包括随机存取存储器(ram)。示例性ram可以包括动态随机存取存储器(dram)、双倍数据速率同步动态随机存取存储器(ddrsdram)、静态随机存取存储器(sram)、晶闸管随机存取存储器(t-ram)和零电容随机存取存储器(z-ram)等。示例性只读存储器(rom)可以包括光罩式只读存储器(mrom)、可编程只读存储器(prom)、可擦除可编程只读存储器(perom)、电可擦除可编程只读存储器(eeprom)、光盘只读存储器(cd-rom)、数字多功能磁盘只读存储器等。在一些实施例中,存储器150可以在云平台上实现。仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分布式云、云间、多云等或其任意组合。

在一些实施例中,存储器150可连接到网络120以与按需服务系统100中的至少一个组件(例如,服务器110、请求者终端130、提供者终端140等)通信。按需服务系统100中的至少一个组件可以经由网络120访问存储在存储器150中的数据或指令。在一些实施例中,存储器150可以直接与按需服务系统100中的至少一个组件(例如,服务器110、请求者终端130、提供者终端140等)连接或通信。在一些实施例中,存储器150可以是服务器110的一部分。

在一些实施例中,按需服务系统100中的至少一个组件(例如,服务器110、请求者终端130、提供者终端140等)可以具有访问存储器150的许可。在一些实施例中,当满足至少一个条件时,按需服务系统100中的至少一个组件可以读取和/或修改与请求者、提供者和/或公众有关的信息。例如,服务器110可以在完成服务之后读取和/或修改至少一个用户的信息。又例如,当从请求者终端130接收服务请求时,提供者终端140可以访问与请求者有关的信息,但是提供者终端140可以不修改请求者的相关信息。

在一些实施例中,按需服务系统100中的至少一个组件的信息交换可以通过请求服务来实现。服务请求的对象可以是任何产品。在一些实施例中,产品可以是有形产品或无形产品。有形产品可以包括食品、药品、商品、化学产品、电器、服装、汽车、住房、奢侈品等,或者其任意组合。无形产品可以包括服务产品、金融产品、知识产品、互联网产品等,或者其任意组合。互联网产品可以包括个人主机产品、网络产品、移动互联网产品、商业主机产品、嵌入式产品等或其任意组合。移动互联网产品可用于移动终端的软件、程序、系统等中,或其任意组合中。移动终端可以包括平板计算机、膝上型计算机、移动电话、个人数字助理(pda)、智能手表、销售点(pos)设备、车载计算机、车载电视、可佩戴设备等或其任意组合。例如,产品可以是计算机或移动电话中使用的任何软件和/或应用程序。该软件和/或应用可以涉及社交、购物、运输、娱乐、学习、投资等,或其任意组合。在一些实施例中,与运输相关的软件和/或应用可以包括出行软件和/或应用、车辆调度软件和/或应用、映射软件和/或应用等。在车辆调度软件和/或应用中,车辆可以包括马、马车、人力车(例如独轮车、自行车、三轮车等)、汽车(例如出租车、公共汽车、私家车等)、火车、地铁、船舶、航空器(如飞机、直升机、航天飞机、火箭、热气球等)等,或其任意组合。

本领域普通技术人员应当理解,当按需服务系统100的一个元件执行操作时,该元件可以通过电信号和/或电磁信号执行。例如,当请求者终端130处理任务(如做出确定、识别或选择对象)时,请求者终端130可以在其处理器中操作逻辑电路以处理上述任务。当请求者终端130向服务器110发出服务请求时,服务请求者终端130的处理器可以生成编码服务请求的电信号。然后,请求者终端130的处理器可以将电信号发送到输出端口。如果请求者终端130经由有线网络与服务器110通信,则输出端口可以物理地连接到电缆,电缆还可以将电信号发送到服务器110的输入端口。如果请求者终端130经由无线网络与服务器110通信,则请求者终端130的输出端口可以是至少一个天线,其可以将电信号转换为电磁信号。类似地,提供者终端140可以通过其处理器中的逻辑电路的操作来处理任务,并且经由电信号或电磁信号从服务器110接收指令和/或服务请求。在诸如请求者终端130、提供者终端140和/或服务器110的电子设备内,当其处理器处理指令、发出指令和/或执行动作时,指令和/或动作通过电信号进行。例如,当处理器从存储介质(例如,存储器150)检索或保存数据时,它可以向存储介质的读/写设备发送电信号,该读/写设备可以在存储介质中读取或写入结构化数据。结构化数据可以经由电子设备的总线以电信号的形式发送到处理器。这里,电信号可以指一个电信号、一系列电信号和/或至少两个离散电信号。

图2是根据本申请的计算设备200的示例性硬件和软件组件的示意图,其中服务器110、请求者终端130和/或提供者终端140可根据本申请的一些实施例实现。例如,处理引擎112可以在计算设备200上实现并且被配置为执行本申请中所披露的处理引擎112的功能。

计算设备200可以用于实现本申请描述的按需服务系统100的任何组件。例如,处理引擎112可以是通过硬件、软件程序、固件或其组合在计算设备上实现。为了方便起见,仅示出了一台计算机,但是本申请所描述的与按需服务有关的计算机功能可以在多个相似平台上以分布式的方式实现,以分配处理负载。

例如,计算设备200可以包括与网络连接的通信端口250,以实现数据通信。计算设备200还可以包括处理器(例如,处理器220),其形式为一个或以上处理器(例如,逻辑电路),用于执行程序指令。例如,处理器可以包括其中的接口电路和处理电路。接口电路可以被配置为从总线210接收电子信号,其中电子信号编码用于处理电路的结构化数据和/或指令。处理电路可以进行逻辑计算,然后确定可编码为电子信号的结论、结果和/或指令。然后,接口电路可以经由总线210从处理电路发出电子信号。

示例性计算机平台包括内部通信总线210、不同形式的程序存储器和数据存储器,例如磁盘270、只读存储器(rom)230或随机存取存储器(ram)240、用于计算机处理和/或传输的各种数据文件。示例性计算机平台还包括存储在rom230、ram240和/或其他类型的非暂时性存储介质中的程序指令,以由处理器220执行。将本申请的方法和/或过程以程序指令实现。计算机设备200还包括输入/输出组件(i/o)260,支持计算机和其他组件之间的输入/输出。计算设备200还可以经由网络通信接收编程和数据。

为了方便说明,在计算设备200中仅描述了一个cpu和/或处理器。然而,应该注意的是,本申请中的计算设备200还可以包括多个cpu和/或处理器,因此本申请中描述的由一个cpu和/或处理器执行的操作和/或方法步骤也可以由多个cpu和/或处理器共同地或单独地执行。例如,如果在本申请中,计算设备200的cpu和/或处理器执行步骤a和步骤b,则应当理解,步骤a和步骤b也可以由计算设备200中的两个不同的cpu和/或处理器共同地或单独地执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同执行步骤a和b)。

图3是根据本申请的一些实施例所示的示例性处理引擎112的框图。处理引擎112包括获取模块310、训练模块320、编码模块330、识别模块340和通信模块350。

获取模块310可以用于获取第一路径(即目标路径)的路径信息。第一路径的路径信息可以包括第一路径中至少两个路径点(例如,gps点)的纬度坐标信息和/或经度坐标信息。如本申请所示的,第一路径可以对应于运输服务(例如,出租车服务)的服务请求(也称为“目标服务请求”),并且发起服务请求的请求者同意与其他请求者共享运输服务。服务请求可以包括目标开始位置、目标目的地、目标开始时间等。

训练模块320可以被配置为训练目标模型或其一部分(例如,rnn模型)。在一些实施例中,目标模型可以是rnn模型和编码函数(例如,散列函数)的组合。目标模型可以被配置为将路径编码为预设长度为n个字节(其中n是大于1的整数)的编码,并且将大体相似的路径编码为相同的编码。如本申请所示的,以路径a和路径b为例,“大体相似的路径”可以指路径a和路径b的路径信息之间的相似性大于阈值(例如,60%、70%、75%、80%、85%、90%或95%)。训练模块320可以基于至少两个样本路径的样本路径信息(例如,与至少两个历史服务订单相关联的至少两条历史路径)来训练rnn模型。

编码模块330可以被配置为基于目标模型将第一路径的路径信息编码为第一编码(即,目标编码)。例如,编码模块330可以基于rnn模型确定对应于第一路径的路径信息的n维向量。编码模块330还可以基于编码函数(例如,散列函数)将n维向量编码为第一编码。

识别模块340可以被配置为基于第一路径识别与至少一条第二路径相关联的第二编码。识别模块340可以访问目标数据库(例如,存储器150),目标数据库包括至少两个候选编码,至少两个候选编码由目标模型对至少两个候选路径进行编码得到。至少两个候选路径可以与来自至少两个候选请求者的至少两个候选服务请求相关联。如本申请所示的,对于至少两个候选服务请求中的每一个,候选请求者同意与其他请求者共享运输服务,候选开始位置或候选目的地与目标开始位置或目标目的地在同一区域(例如,同一城市、同一地区)内,并且候选开始时间和目标开始时间之间的时间差小于时间阈值(例如,1小时、2小时)。

识别模块340还可以基于第一编码,从至少两个候选编码中识别第二编码,第二编码与至少一条第二路径相关联。第二编码可以与第一编码相同,并且至少一条第二路径可以与第一路径相似。

通信模块350可以被配置为将与至少一条第二路径相关联的信息发送到接收设备(例如,请求者终端130、提供者终端140)。在一些实施例中,与至少一条第二路径相关联的信息可以以文本、图像、视频内容、音频内容、图形等格式呈现在请求者终端130和/或提供者终端140上。在一些实施例中,可以使用任何合适的通信协议(例如超文本传输协议(http)、地址解析协议(arp)、动态主机配置协议(dhcp)、文件传输协议(ftp)等),经由消息来发送和/或接收与至少一条第二路径相关联的信息。

处理引擎112中的模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任何组合。无线连接可以包括局域网(lan)、广域网(wan)、蓝牙、zigbee、近场通信(nfc)等或其任意组合。两个或多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。例如,获取模块310和通信模块350可以组合为单个模块,其既可以获取第一路径的路径信息,又可以将与至少一条第二路径相关的信息发送给接收设备。又如此,处理引擎112可以包括存储模块(图3中未示出),其可以被配置为存储任何(例如,第一路径的路径信息、与至少一条第二路径相关联的信息等)与第一路径和/或至少一条第二路径相关联的信息和/或数据。

图4a是根据本申请的一些实施例所示的确定与目标路径相似的至少一条路径的示例性过程400的流程图。过程400可以实现为存储在存储rom230或ram240中的一组指令集(例如,应用程序)。处理器220和/或如图3所示的模块可以执行该组指令,并且当执行指令时,它可以被配置为执行过程400。以下所示过程的操作旨在说明问题。在一些实施例中,可以通过添加一个或以上未描述的附加操作和/或省略一个或以上所讨论的操作来完成过程400。另外,图4和下面描述的过程操作的顺序不是限制性的。

在步骤405中,处理引擎112(例如,获取模块310)(例如,处理器220的接口电路)可以从请求者接收运输服务请求。

运输服务可以是从请求者的请求者终端130(例如移动电话)发送的电子信号。此外,如图4b所示,电子信号可以包括至少5个部分。电子信号的第一部分可以对识别请求本身开始的数据头进行编码。第二部分可以对用来识别终端设备的标识和/或请求者的id的数据进行编码。电子信号的第三部分可以编码与所请求的运输服务的目标开始位置和目标目的地有关的信息。第三部分还可以包括运输服务的目标开始时间。电子信号的第四部分可以包括显示运输服务的附加限制的数据。例如,限制可以是请求者同意与其他请求者共享运输服务。电子信号的第五部分可以是结束标记,识别电子信号的结束。

上述电子信号中的至少5个部分可以按预设顺序放置。预设顺序可以是从部分1到部分5(例如,部分1、部分2、部分3、部分4、部分5)的顺序。或者,除了标记电子信号开始和结束的数据外,其余部分的预设顺序可以是预设的并且被打乱的顺序(例如,部分1、部分3、部分4、部分2、部分5)。或者,电子信号的部分(标记电子信号开始和结束的数据除外)可以随机排列,使得来自一个请求者的运输服务请求可以与另一个请求者的运输服务请求具有不同的结构,从而使接收电子信号的系统可以识别电子信号中的内容。

在步骤410中,处理引擎112(例如,获取模块310)(例如,处理器220的接口电路)可以响应于服务请求,获取第一路径(也称为“目标路径”)的路径信息。第一路径的路径信息可以包括第一路径中至少两个路径点(例如,gps点)的纬度坐标信息和/或经度坐标信息。

如本申请所示的,第一路径可以对应于运输服务(例如,出租车服务)的服务请求(也称为“目标服务请求”),并且服务请求同意与其他请求者共享运输服务。如上所述,服务请求可以包括目标开始位置、目标目的地、目标开始时间等。在一些实施例中,请求者可以经由请求者终端130输入目标开始位置和目标目的地并且向按需服务系统100发起服务请求。处理引擎112可以接收服务请求并基于目标开始位置和目标目的地确定推荐路径(即,第一路径)。在一些实施例中,在请求者接收到输入之后,请求者终端130可以基于目标开始位置和目标目的地确定推荐路径,并将推荐路径发送到处理引擎112。

在步骤420中,处理引擎112(例如,编码模块330)(例如,处理器220的处理电路)可以基于目标模型将第一路径的路径信息编码为第一编码。

处理引擎112可以从训练模块320或本申请中其他地方公开的存储设备(例如,存储设备150)获取目标模型。目标模型可以被配置为将路径编码为预设长度为n个字节(其中n是大于1的整数)的编码,并且将大体相似的路径编码为相同的编码。如本申请所示的,以路径a和路径b为例,“大体相似的路径”可以指路径a和路径b的路径信息之间的相似性大于阈值(例如,60%、70%、75%、80%、85%、90%或95%)。

在一些实施例中,目标模型可以是rnn模型和编码函数(例如,散列函数)的组合。处理引擎112可以基于rnn模型确定与第一路径的路径信息对应的n维向量,并且基于编码函数(例如,散列函数)将n维向量编码为第一编码。如本申请所示的,n是指预设编码长度,并且rnn模型的参数可以与n相关联(例如,参见图6及其描述)。

在一些实施例中,rnn模型可以包括至少两个神经元,并且至少两个神经元的数量可以大于或等于第一路径中至少两个路径点的数量。

在步骤430中,处理引擎112(例如,识别模块340)(例如,处理器220的接口电路)可以访问目标数据库(例如,存储器150),目标数据库包括至少两个候选编码,至少两个候选编码由目标模型对至少两个候选路径进行编码得到的。至少两个候选路径可以与来自至少两个候选请求者的至少两个候选服务请求相关联。如本申请所示的,对于至少两个候选服务请求中的每一个,候选请求者同意与其他请求者共享运输服务,候选开始位置或候选目的地与目标开始位置或目标目的地在同一区域(例如,同一城市、同一地区)内,并且候选开始时间和目标开始时间之间的时间差小于时间阈值(例如,1小时、2小时)。

在一些实施例中,至少两个候选编码和/或至少两个候选路径可以被存储在各种数据结构的目标数据库中。例如,如图4c所示,至少两个候选编码可以存储在第一数据表中,且至少两个候选中路径可以存储在第二数据表中。至少两个候选编码可以通过一个或以上指针指向至少两个候选路径。如上所述,目标模型可以被配置为将大体相似的路径编码为相同的编码。因此,可以看出候选路径a和候选路径b大体相似并编码成候选路径i。候选路径i通过指针i指向候选路径a和b。类似地,候选码j通过指针j指向候选路径c。如图4d所示,至少两个编码和至少两个路径可以合并到数据表中,并且数据表的每一行都包含与候选编码和相应候选路径相关联的数据记录。例如,第一行包括候选编码i和候选路径a的数据记录,第二行包括候选编码i和候选路径b的数据记录,第三行包括候选编码j和候选路径c的数据记录。利用上述数据结构,服务器可以通过候选编码快速搜索候选路径。

在步骤440中,处理引擎112(例如,识别模块340)(例如,处理器220的处理电路)可以基于第一编码从至少两个候选编码中识别与至少一条第二路径相关联的第二编码。第二编码可以与第一编码相同。如步骤420所述,目标模型可以被配置为将大体相似的路径编码为相同的编码。因此,至少一条第二路径与第一路径相似。

在步骤450中,处理引擎112(例如,通信模块350)(例如,处理器220的接口电路)可以将与至少一条第二路径相关联的信息发送到接收设备。

例如,在识别至少一条第二路径之后,处理引擎112可以识别与至少一条第二路径相对应的至少一个第二服务请求,并且将至少一个第二服务请求和目标服务请求组合为请求组。此外,处理引擎112可以将请求组发送到至少两个提供者终端140。响应于服务提供者对请求组的接受,处理引擎112可以将与请求组相关联的信息(例如,开始位置、目的地和/或与至少一条第二路径相关联的开始时间)发送给提供者终端140和请求者终端130。

在一些实施例中,与至少一条第二路径相关联的信息路径可以以文本、图像、视频内容、音频内容、图形等格式呈现在请求者终端130和/或提供者终端140上。在一些实施例中,可以使用任何合适的通信协议

(例如超文本传输协议(http)、地址解析协议(arp)、动态主机配置协议(dhcp)、文件传输协议(ftp)等),经由消息来发送和/或接收与至少一条第二路径相关联的信息。

出于说明目的,本申请描述了一种应用场景,在该应用场景中,处理引擎112接收对运输服务的服务请求,并且请求者同意与其他请求者共享运输服务。此外,处理引擎112为服务请求确定目标路径,并确定与目标路径相似的至少一条路径。应当注意,该应用场景仅用于说明,本申请可以应用于任何其他应用场景。

应当注意,以上描述仅出于说明的目的,并不旨在限制本申请的范围。对于本领域普通技术人员,可以在本申请的指示下进行多种改变和修改。然而,这些改变和修改不脱离本申请的范围。例如,步骤430和步骤440可以组合为单个步骤,其中处理引擎112可以访问目标数据库并识别目标数据库中与至少一条第二路径相关联的第二编码。又例如一个或以上其他可选步骤(例如,存储步骤)可以被添加到示例性过程400的其他地方。在存储步骤中,处理引擎112可以将与第一路径和/或至少一条第二路径相关联的信息和/或数据(例如,第一编码、与至少一条第二路径相关联的信息等)存储至存储设备(例如,存储150)中。

图5是根据本申请的一些实施例所示的示例性训练模块320的框图。训练模块320包括设置单元510、样本获取单元520、确定单元530和修正单元540。

设置单元510可以被配置为设置rnn模型的初始参数。rnn模型可以包括输入层、隐藏层和输出层(例如,参见图7及其描述)。初始参数可以包括与输入层相关联的第一初始参数和与隐藏层相关联的第二初始参数。初始参数可以是系统100的默认设置,或者可以根据不同情况进行调节。

样本获取单元520可以被配置为获取至少两个样本路径的样本路径信息。处理引擎112可以从本申请中其他地方公开的存储设备(例如,存储器150)获取样本路径信息。至少两个样本路径可以与在预定时间段(例如,上个月、去年等)内的至少两个历史服务订单相关联。至少两个样本路径中的每一个可包括至少两个样本路径点。对于具体样本路径,样本路径信息可以包括样本路径中包括的至少两个样本路点的样本位置信息(例如,经度坐标信息、纬度坐标信息)。

确定单元530可以被配置为基于初始参数和至少两个样本路径确定与rnn模型的隐藏层中的至少两个神经元相关联的输出信息。对于具体样本路径,输出信息可以是n维向量(例如,参见图6及其描述)。

修正单元540可以被配置为基于输出信息确定rnn模型的训练参数。例如,处理引擎112可以通过使用反向传播算法或梯度下降算法来修改第一初始参数和第二初始参数。梯度下降算法可以包括随机梯度下降、批量梯度下降、小批量梯度下降等。

训练模块320中的单元可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任何组合。无线连接可以包括局域网(lan)、广域网(wan)、蓝牙、zigbee、近场通信(nfc)等或其任意组合。两个或多个单元可以组合为单个模块,并且任何一个单元可以分成两个或多个子单元。例如,训练模块320可以包括用于存储与rnn模型相关联的任何信息(例如,初始参数)的存储单元(未示出)。又例如,训练模块320中的单元可以分别包括一个子存储单元(未示出)。

图6是根据本申请的一些实施例的用于训练rnn模型的示例性过程600的流程图。过程600可以实现为存储在存储rom230或ram240中的一组指令集(例如,应用程序)。处理器220和/或图5所示的单元可以执行该指令集,并且当执行指令集时,其可以被配置为执行过程600。以下所示过程的操作旨在说明问题。在一些实施例中,可以通过添加一个或以上未描述的附加操作和/或省略一个或以上所讨论的操作来完成过程600。另外,如图6中所示的过程操作的顺序不是限制性的。

在步骤610中,处理引擎112(例如,设置单元510)(例如,处理器220的处理电路)可以设置rnn模型(例如,长短时记忆网络(lstm)模型)的初始参数。rnn模型可以包括输入层、隐藏层和输出层(例如,参见图7及其描述)。初始参数可以包括与输入层相关联的第一初始参数和与隐藏层相关联的第二初始参数。初始参数可以是系统100的默认设置,或者可以根据不同情况进行调节。

在步骤620中,处理引擎112(例如,样本获取单元520)(例如,处理器220的接口电路)可以获取至少两个样本路径的样本路径信息。至少两个样本路径可以与在预定时间段内(例如,上个月、去年等)的至少两个历史服务订单相关联。处理引擎112可以从本申请其他地方披露的存储设备(例如,存储器150)中获取样本路径信息。

至少两个样本路径中的每一个可包括多个(例如,4、24、50、200、1000等)样本路径点。例如,对于具体样本路径,样本路径信息可以包括以下所示的样本路径点的样本位置信息:

其中l指具体样本路径,l指至少两个样本路径的数量,r(l)指样本路径l的路径信息,m指样本路径l中至少两个样本路径点的数量,zi(l)是指样本路径l中的具体路径点i的样本位置信息,并且至少两个样本路径点的序列对应于样本路径l的方向。

在一些实施例中,至少两个样本路径点的样本位置信息可以表示为经纬度坐标,因此,样本路径的路径信息可以表示如下:

其中xi(l)是指样本路径l中样本路径点i的经度坐标,yi(l)是指样本路径l中样本路径点i的纬度坐标。

在步骤630中,处理引擎112(例如,确定单元530)(例如,处理器220的处理电路)可以基于初始参数和至少两个样本路径,确定与rnn模型的隐藏层中至少两个神经元相关联的输出信息。

以具体样本路径为例,该具体样本路径包括至少两个样本路径点,至少两个样本路径点中的每一个对应于隐藏层中至少两个神经元的一个神经元。例如,第i路径点和第(i+1)路径点的样本位置信息可以分别输入到第i个神经元和第(i+1)个神经元。另外,第i个神经元的输出信息也可以输入到第(i+1)个神经元中。

处理引擎112可以根据下面的公式(3)确定与至少两个神经元相关联的输出信息:

其中si(l)指的是第i个神经元的输出信息,u指的是与输入层相关的第一初始参数,zi(l)指的是具体样本线路l中第i个样本路径点的样本位置信息,v指的是与隐藏层相关联的第二初始参数,si-1(l)指的是第(i-1)个神经元的输出信息,g指的是预设的非线性激活函数(例如,sigmoid函数)。在一些实施例中,预定的非线性激活函数可以包括sigmoid函数、双曲正切(tanh)函数和修正线性单元(relu)函数等。

在一些实施例中,根据公式(3),处理引擎112可以建立与第一初始参数、第二初始参数、具体样本路径中第i样本路径点的样本位置信息、和/或第(i-1)个神经元的输出信息相关联的矩阵,并基于该矩阵确定第i神经元的输出信息。

例如,处理引擎112可以确定与第(i-1)个神经元的输出信息相对应的第一1*n向量(n是预设编码长度,是一个大于1的整数,并且独立于隐藏层中的至少两个神经元的数量)和对应于第i样本路径点的样本位置信息的1*2向量。处理引擎112可以进一步基于第一1*n向量和1*2向量确定1*(n+2)矩阵a1。此外,处理引擎112可以确定与第一初始参数对应的2*n矩阵和与第二初始参数对应的n*n矩阵。然后,处理引擎112可以进一步基于2*n矩阵和n*n矩阵确定(n+2)*n矩阵b1。此外,处理引擎112可以基于1*(n+2)矩阵a1和(n+2)*n矩阵b1确定1*n矩阵d1。最后,处理引擎112可以基于预设的非线性激活函数和1*n矩阵d1确定与第i个神经元的输出信息对应的第二1*n向量。

又例如处理引擎112可以确定对应于第(i-1)个神经元的输出(n是预设编码长度)的第一n*1向量和对应于第i样本路径点的样本位置信息的2*1向量。处理引擎112还可以基于n*1向量和2*1向量确定(n+2)*1矩阵a2。此外,处理引擎112可以确定与第一初始参数对应的n*2矩阵和与第二初始参数对应的n*n矩阵。然后,处理引擎112可以基于n*2矩阵和n*n矩阵确定n*(n+2)矩阵b2。此外,处理引擎112可以基于1*(n+2)矩阵a2和(n+2)*n矩阵b2确定n*1矩阵d2。最后,处理引擎112可以基于预设的非线性激活函数g和n*1矩阵d2确定与第i个神经元的输出信息对应的第二n*1向量。

仅为了说明的目的,以下面通过具体的例子进行描述。假设隐藏层包括4个神经元,样本路径包括4个样本路径点,且预设的编码长度为3。

以第四神经元为例,处理引擎112可以基于对应于第三神经元的输出信息的1*3向量和对应于样本位置信息的1*2向量确定1*(3+2)矩阵m1。第四样本路径点如下图所示:

m1=[bcdxy],

s3=(bcd),

z4=(xy)(4)

其中s3指的是第三神经元的输出信息,z4指的是第四样本路径点的样本位置信息。

处理引擎112还可以基于与第一初始参数对应的2*3矩阵和与第二初始参数对应的3*3矩阵来确定(3+2)*3矩阵n1,如下所示:

其中u表示第一初始参数,v表示第二初始参数。

此外,处理引擎112可以通过将矩阵m1与矩阵n1相乘来确定1*3矩阵p1:

u51yv12b+v22c+v32d+u42x+u52yv13b+v23c+v33d+u43x+u53y],(6)

然后,处理引擎112可以基于矩阵p1和预设的非线性激活函数(例如,sigmoid函数)确定对应于第四神经元的输出信息的1*3向量:

s4=[g(v11b+v21c+v31d+u41x+u51y),g(v12b+v22c+v32d+u42x+u52y),g(v13b+v23c+v33d+u43x+u53y)],(7)

其中s4指的是第四神经元的输出信息,向量s4中的每个元素是在0和1范围内的概率值。

仅为了说明的目的,以下面另一个具体的例子进行描述。假设隐藏层包括4个神经元,样本路径包括4个样本路径点,且预设编码长度为3。

同样以第四神经元为例,处理引擎112可以基于对应于第三神经元的输出信息的3*1向量和对应于第四样本路径点的样本位置信息的2*1向量来确定(3+2)*1矩阵m2向量,如下所示:

其中指的是第三神经元的输出信息(即公式(4)中s3的转置矩阵),指的是第四样本路径点的样本位置信息(即式(4)中z4的转置矩阵)。

处理引擎112还可以基于与第一初始参数对应的2*3矩阵和与第二初始参数对应的3*3矩阵来确定3*(3+2)矩阵n2,如下所示:

其中ut是u的转置矩阵,vt是公式(5)中v的转置矩阵。

此外,处理引擎112可以通过将矩阵m2与矩阵n2相乘来确定3*1矩阵p2:

然后,处理引擎112可以基于1*3矩阵p2和预设的非线性激活函数g(例如,sigmoid函数)确定对应于第四神经元的输出信息的1*3向量:

其中s4指的是第四神经元的输出信息,其中向量s4中的每个元素是在0和1范围内的概率值。

出于说明的目的,本申请采用编码长度“3”作为示例,应当注意,编码长度可以根据不同情况进行调节。众所周知,编码长度越大,训练过程可能需要的时间越多,相应地,rnn模型的准确度也越高。

在步骤640中,处理引擎112(例如,修正单元540)(例如,处理器220的处理电路)可以基于输出信息确定rnn模型的训练参数。例如,处理引擎112可以通过使用反向传播算法或梯度下降算法来修改第一初始参数和第二初始参数。梯度下降算法可以包括随机梯度下降、批量梯度下降、小批量梯度下降等。

在一些实施例中,处理引擎112可以根据公式(12),基于最大似然估计算法修改第一初始参数和第二初始参数:

[u,v]=argmax(s′1*s′2*…s′j*…*s′l)(1≤j≤l)(12)

其中sj'指的是与样本路径j相关联的最后一个神经元的输出信息,l指的是至少两个样本路径的数量。可以看出,最大似然估计的目的是最大化每个样本路径的概率。

在一些实施例中,为方便起见,处理引擎112可以根据下面的公式(13)修改第一初始参数和第二初始参数:

[u,v]=argmax(log(s′1)+log(s′2)+…+log(s′j)+..+log(s′l)),(1≤j≤l)(13)

应当注意,用于训练rnn模型的过程600是迭代过程。迭代过程可以包括一个或以上迭代。处理引擎112可以在每次迭代中基于rnn隐藏层中的神经元的输出信息来修改rnn模型的第一初始参数和第二初始参数,直到满足预定条件,例如,迭代次数大于阈值。

应当注意,以上描述仅出于说明的目的,并不旨在限制本申请的范围。对于本领域普通技术人员,可以在本申请的指示下进行多种变化和修改。然而,那些变化和修改不脱离本申请的范围。例如,可以在示例性过程600中的其他地方添加一个或以上其他可选步骤(例如,存储步骤)。在存储步骤中,处理引擎112可以存储与rnn模型相关联的任何信息和/或数据(例如,初始参数、至少两个样本路径等)。

图7是根据本申请的一些实施例所示的rnn模型的示例性结构的示意图。如图所示,rnn模型包括输入层、隐藏层和输出层。隐藏层包括至少两个神经元。可以看出,对于隐藏层中的第i个神经元,输入包括第i路径点的位置信息和第(i-1)个神经元的输出信息。

图8是根据本申请的一些实施例所示的示例性编码模块330的框图。编码模块330包括路径信息获取单元810、输出向量确定单元820、编码单元830。

路径信息获取单元810可以被配置为获取目标路径的路径信息。如结合步骤410和/或步骤620所述,目标路径的路径信息可包括目标路径中包括的至少两个路径点的位置信息(例如,经度坐标信息、纬度坐标信息)。至少两个路径点的序列可以对应于目标路径的方向。

输出向量确定单元820可以被配置为基于训练好的rnn模型和目标路径的路径信息确定n维向量。输出向量确定单元820可以从本申请中其他地方公开的存储设备(例如,存储器150)获取训练好的rnn模型。如结合图6及其描述,输出向量确定单元820可以输入目标路径的路径信息,并根据公式(3)确定rnn模型的隐藏层中最后一个神经元的输出信息(即,n维向量)。

编码单元830可以被配置为基于编码函数对n维向量进行编码以生成与目标路径对应的目标编码。编码单元830可以基于哈希函数生成目标编码。哈希函数的格式可以在不同情况下进行调整,因此,目标编码的格式可以是二进制、十进制、十六进制等。

图9是根据本申请的一些实施例所示的对路径的路径信息进行编码的示例性过程的流程图。过程900可以实现为存储在存储rom230或ram240中的一组指令集(例如,应用程序)。处理器220和/或图8中的单元可以执行该指令集,并且当执行该指令集时,其可以被配置为执行过程900。以下所示过程的操作旨在是说明问题。在一些实施例中,可以通过添加一个或以上未描述的附加操作和/或省略一个或以上所讨论的操作来完成过程900。此外,图9所示和下面描述的过程操作的顺序不是限制性的。

在步骤910中,处理引擎112(例如,路径信息获取单元810)(例如,处理器220的接口电路)可以获取目标路径的路径信息。如结合步骤410和/或步骤620所述,目标路径的路径信息可以包括目标路径中的至少两个路径点的位置信息(例如,经度坐标信息、纬度坐标信息)。至少两个路径点的序列可以对应于目标路径的方向。

在步骤920中,处理引擎112(例如,输出向量确定单元820)(例如,处理器220的处理电路)可以基于训练的rnn模型确定n维向量。处理引擎112可以从本申请中其他地方公开的存储设备(例如,存储器150)获取训练好的rnn模型。如结合图6及其描述,处理引擎112可以输入目标路径的路径信息并根据公式(3)的确定rnn模型的隐藏层中最后一个神经元的输出信息(即,n维向量)。

在步骤930中,处理引擎112(例如,编码单元830)(例如,处理器220的处理电路)可以基于编码函数对n维向量进行编码来生成与目标路径对应的目标编码。例如,处理引擎112可以根据下面的公式(14)生成目标编码:

c=[h(s1),h(s2),h(sh),…,h(sn)],(1≤h≤n),

其中c指的是目标路径对应的目标编码,h(x)指的是hash哈希函数,sh指的是n维向量中的第h个元素,而h(sh)指的是对应于目标编码的第h个元素的编码值。

应当注意,以上提供的哈希函数是为了说明的目的,并且哈希函数的格式可以在不同情况下进行调整,因此,目标编码的格式也可以是二进制、十进制、十六进制等。

应当注意,以上描述仅出于说明的目的,并不旨在限制本申请的范围。对于本领域普通技术人员,可以在本申请的指示下进行多种变化和修改。然而,那些变化和修改不脱离本申请的范围。

图10是根据本申请的一些实施例所示的呈现服务请求的示例性用户界面的示意图。用户界面1000可以由终端(例如,请求者终端130、提供者终端140)呈现。用户界面1000可以包括用于呈现与服务请求相关联的信息的一个或以上用户界面元素(也称为“ui元素”)。每个ui元素可以是和/或包括例如一个或以上按钮、图标、复选框、消息框、文本字段、数据字段、搜索字段等。

例如,如图所示,用户界面1000可以包括用于呈现服务类型(例如,快车、出租车、专车、顺风车)的ui元素1002。用户界面1000还可以包括ui元素1004,用于呈现接收输入起始位置的的输入框,ui元素1006,用于呈现接收输入目的地的输入框。此外,用户界面1000还可以包括用于呈现选项(例如,“拼车”、“单独叫车”)的ui元素1008,询问请求者是否同意与其他请求者共享运输服务。

上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述发明披露仅仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可能会对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。

同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或以上实施例中的某些特征、结构或特点可以进行适当的组合。

此外,本领域技术人员可以理解,本申请的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本申请的各方面可能表现为位于一个或以上计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。

计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令集执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、rf、或类似介质、或任何上述介质的组合。

本申请各部分操作所需的计算机程序编码可以用任意一种或以上程序语言编写,包括面向主体编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(lan)或广域网(wan),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(saas)。

此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。

同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或以上发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请主体所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1