本申请涉及交通运输领域,尤其涉及一种上车点推荐方法、系统、装置及存储介质。
背景技术:
随着在线打车服务的快速发展以及手机的普及使用,越来越多人在手机上使用在线打车服务,对于位置推荐技术的要求也越来越高。在面状poi场景进行上车点推荐时,通常是将poi场景的父点poi和子点poi的候选上车点分别召回,以至于搜索父点poi或子点poi时,二者所呈现的推荐点并无联系。该问题的存在会影响位置推荐精度,降低用户位置感知性及出行效率。因此,有必要提出一种结合poi父子关系的上车点推荐在面状poi场景的应用,使得推荐上车点更加精确稳定,提升用户体验。
技术实现要素:
本申请的第一方面提供一种上车点推荐方法。所述上车点推荐方法包括:获取用户的原始出发点;判断所述原始出发点是否为父点poi,当所述原始出发点为父点poi时,召回所述父点poi的至少一个子点poi;基于所述父点poi和召回的所有所述子点poi分别得到对应的候选上车点,合并父点poi的候选上车点和子点poi的候选上车点得到候选上车点集;计算所述候选上车点集中各个所述候选上车点的相关得分并基于所述相关得分对各个所述候选上车点进行排序;基于排序结果,得到至少一个推荐上车点。
在一些实施例中,所述候选上车点的相关得分基于以下特征数据中的至少一个计算得到:第一特征数据,所述第一特征数据能够反映该候选上车点至所述原始出发点的距离特征;第二特征数据,所述第二特征数据能够反映该候选上车点至用户当前定位位置的距离特征;第三特征数据,所述第三特征数据能够反映召回该候选上车点的所述父点poi或子点poi的第一属性特征,所述第一属性特征至少包括:所述父点poi或子点poi在过去一段时间内作为上车点的频次;以及第四特征数据,所述第四特征数据能够反映该候选上车点的第二属性特征,所述第二属性特征至少包括:该候选上车点在过去一段时间内作为上车点的频次。
在一些实施例中,所述基于所述相关得分对各个所述候选上车点进行排序的方法包括:获取排序模型,所述排序模型为机器学习模型;分别将各个所述候选上车点的特征数据输入所述排序模型中,通过所述排序模型输出各个所述候选上车点的排序结果。
在一些实施例中,所述排序模型包括以下模型中的至少一种:lambdarank模型、lambdamart模型、cnn模型和ltr模型。
在一些实施例中,基于所述父点poi或子点poi得到对应的候选上车点的方法包括以下至少一种:召回距离所述父点poi或子点poi第一距离范围以内的所有上车点,作为所述候选上车点;或者将与所述父点poi或子点poi距离最近的n个上车点,作为所述候选上车点,其中n为正整数。
在一些实施例中,所述召回所述父点poi的至少一个子点poi的方法包括:基于父子关系属性召回所述子点poi;确定所述父子关系属性的方法至少包括:所述父点poi与所述子点poi在语义上存在包含关系和/或所述父点poi和所述子点poi在地图范围上存在包含关系。
在一些实施例中,所述候选上车点的相关得分基于该候选上车点在一段时间内作为上车点的频次以及用户当前定位位置得到。
本申请的第二方面提供一种上车点推荐系统,包括:第一获取单元,用于获取用户的原始出发点;第一判断单元,用于判断所述原始出发点是否为父点poi,当所述原始出发点为父点poi时,召回所述父点poi的至少一个子点poi;第一处理单元,用于基于所述父点poi和召回的所有所述子点poi分别得到对应的候选上车点,合并父点poi的候选上车点和子点poi的候选上车点得到候选上车点集;第一排序单元,用于计算所述候选上车点集中各个所述候选上车点的相关得分并基于所述相关得分对各个所述候选上车点进行排序;以及第一推荐单元,用于基于排序结果,得到至少一个推荐上车点。
在一些实施例中,所述候选上车点的相关得分基于以下特征数据中的至少一个计算得到:第一特征数据,所述第一特征数据能够反映该候选上车点至所述原始出发点的距离特征;第二特征数据,所述第二特征数据能够反映该候选上车点至用户当前定位位置的距离特征;第三特征数据,所述第三特征数据能够反映召回该候选上车点的所述父点poi或子点poi的第一属性特征,所述第一属性特征至少包括:所述父点poi或子点poi在过去一段时间内作为上车点的频次;以及第四特征数据,所述第四特征数据能够反映该候选上车点的第二属性特征,所述第二属性特征至少包括:该候选上车点在过去一段时间内作为上车点的频次。
在一些实施例中,所述第一排序单元用于:获取排序模型,所述排序模型为机器学习模型;分别将各个所述候选上车点的特征数据输入所述排序模型中,通过所述排序模型输出各个所述候选上车点的排序结果。
在一些实施例中,所述排序模型包括以下模型中的至少一种:lambdarank模型、lambdamart模型、cnn模型和ltr模型。
在一些实施例中,所述第一处理单元基于所述父点poi或子点poi得到对应的候选上车点的方法包括以下至少一种:召回距离所述父点poi或子点poi第一距离范围以内的所有上车点,作为所述候选上车点;或者将与所述父点poi或子点poi距离最近的n个上车点,作为所述候选上车点,其中n为正整数。
在一些实施例中,所述第一判断单元召回所述父点poi的至少一个子点poi的方法包括:基于父子关系属性召回所述子点poi;确定所述父子关系属性的方法至少包括:所述父点poi与所述子点poi在语义上存在包含关系和/或所述父点poi和所述子点poi在地图范围上存在包含关系。
在一些实施例中,所述候选上车点的相关得分基于该候选上车点在一段时间内作为上车点的频次以及用户当前定位位置得到。
本申请的第三方面提供一种上车点推荐装置,包括:至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现本申请一些实施例所述的操作。
本申请的第四方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当所述计算机指令被处理器执行时实现本申请一些实施例所述的操作。
本申请的第五方面提供一种上车点推荐方法,包括:获取用户的原始出发点;判断所述原始出发点是否为父点poi;基于判断结果得到至少一个候选上车点;获取各个所述候选上车点的排序结果;基于排序结果,向用户推荐至少一个推荐上车点。
在一些实施例中,所述获取各个所述候选上车点的排序结果包括:向服务端发送所述原始出发点以及所述原始出发点是否为父点poi的判断结果;接收服务端返回的至少一个候选上车点及其排序结果。
本申请的第六方面提供一种上车点推荐系统,包括:第二获取单元,用于获取用户的原始出发点;第二判断单元,用于判断所述原始出发点是否为父点poi;第二处理单元,用于基于判断结果得到至少一个候选上车点;第二排序单元,用于获取各个所述候选上车点的排序结果;第二推荐单元,用于基于排序结果,向用户推荐至少一个推荐上车点。
在一些实施例中,所述第二处理单元还包括:发送单元,用于向服务端发送所述原始出发点以及所述原始出发点是否为父点poi的判断结果;以及接收单元,用于接收服务端返回的至少一个候选上车点。
本申请的第七方面提供一种上车点推荐装置,包括至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现本申请一些实施例所述的操作。
本申请的第八方面提供一种计算机可读存储介质,所述存储介质存储计算机指令,当所述计算机指令被处理器执行时实现本申请一些实施例所述的操作。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。其中:
图1是根据本申请的一些实施例所示的上车点推荐系统的应用场景示意图;
图2是根据本申请的一些实施例所示的上车点推荐系统的示意框图;
图3是根据本申请的一些实施例所示的上车点推荐方法的示例性流程图;
图4是根据本申请的另一些实施例所示的上车点推荐系统的示意框图;
图5是根据本申请的另一些实施例所示的上车点推荐方法的示例性流程图。
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
虽然本申请对根据本申请的实施例的系统中的某些模块做出了各种引用,然而,任何数量的不同模块可以被使用并运行在车辆客户端和/或服务器上。所述模块仅是说明性的,并且所述系统和方法的不同方面可以使用不同模块。
本申请中使用了流程图用来说明根据本申请的实施例的系统所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本申请的实施例可以应用于不同的交通服务系统,不同的交通服务系统包括但不限于陆地、河道、湖泊、海洋、航空等中的一种或几种的组合。例如,人力车、代步工具、汽车(例如,小型车、巴士、大型运输车等)、轨道交通(例如,火车、动车、高铁、地铁等)、船舶、飞机、飞行器、热气球、无人驾驶的交通工具、收/送快递等应用了管理和/或分配的运输系统等。应当理解的是,本申请的系统及方法的应用场景仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。例如,其他类似的引导用户停车系统。
图1是根据本申请的一些实施例所示的上车点推荐系统的应用场景示意图。上车点推荐系统100可以确定上车点并推荐给乘客,引导乘客选择合适的上车点。上车点推荐系统100可以是用于互联网服务的线上服务平台。例如,该上车点推荐系统100可以是运输服务的线上运输服务平台。在一些实施例中,该上车点推荐系统100可以应用于网约车服务,例如出租车呼叫、快车呼叫、专车呼叫、小巴呼叫、拼车、公交服务、司机雇佣和接送服务等。在一些实施例中,该上车点推荐系统100还可以应用于代驾、快递、外卖等服务。上车点推荐系统100可以是一个线上服务平台,包含服务器110、网络120、用户终端130以及存储设备140。服务器110可包含处理设备112。
在一些实施例中,服务器110可以用于处理与确定上车点推荐的相关信息和/或数据。服务器110可以是独立的服务器或者服务器组。该服务器组可以是集中式的或者分布式的(如:服务器110可以是分布系统)。在一些实施例中该服务器110可以是区域的或者远程的。例如,服务器110可通过网络120访问存储于用户终端130、存储设备140中的信息和/或资料。在一些实施例中,服务器110可直接与用户终端130、存储设备140连接以访问存储于其中的信息和/或资料。在一些实施例中,服务器110可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云等中的一种或其任意组合。
在一些实施例中,服务器110可包含处理设备112。该处理设备112可处理与服务请求有关的数据和/或信息以执行一个或多个本申请中描述的功能。例如处理设备112可以接收用户终端130发送的用车请求信号,向用户提供上车点推荐。在一些实施例中,处理设备112可包含一个或多个子处理设备(例如,单芯处理设备或多核多芯处理设备)。仅仅作为范例,处理设备112可包含中央处理器(cpu)、专用集成电路(asic)、专用指令处理器(asip)、图形处理器(gpu)、物理处理器(ppu)、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编辑逻辑电路(pld)、控制器、微控制器单元、精简指令集电脑(risc)、微处理器等或以上任意组合。
网络120可促进数据和/或信息的交换。在一些实施例中,上车点推荐系统100中的一个或多个组件(例如,服务器110、用户终端130、存储设备140)可通过网络120发送数据和/或信息给上车点推荐系统100中的其他组件。在一些实施例中,网络120可是任意类型的有线或无线网络。例如,网络120可包括缆线网络、有线网络、光纤网络、电信网络、内部网络、网际网络、区域网络(lan)、广域网络(wan)、无线区域网络(wlan)、都会区域网络(man)、公共电话交换网络(pstn)、蓝牙网络、zigbee网络、近场通讯(nfc)网络等或以上任意组合。在一些实施例中,网络120可包括一个或多个网络进出点。例如,网络120可包含有线或无线网络进出点,如基站和/或网际网络交换点120-1、120-2、…,通过这些进出点,上车点推荐系统100的一个或多个组件可连接到网络120上以交换数据和/或信息。
在一些实施例中,用户可以通过用户终端130获取推荐上车点。在一些实施例中,用户终端130可包括移动装置130-1、平板电脑130-2、笔记本电脑130-3、机动车内建装置130-4等中的一种或其任意组合。在一些实施例中,移动装置130-1可包括智能家居装置、可穿戴装置、智能行动装置、虚拟实境装置、增强实境装置等或其任意组合。在一些实施例中,智能家具装置可包括智能照明装置、智能电器的控制装置、智能监测装置等或其任意组合。在一些实施例中,用户终端130可包括具有定位功能的装置,以确定用户和/或用户终端130的位置。
存储设备140可存储资料和/或指令。在一些实施例中,存储设备140可存储从用户终端130获取的资料。在一些实施例中,存储设备140可存储供服务器110执行或使用的信息和/或指令,以执行本申请中描述的示例性方法。在一些实施例中,存储设备140可包括大容量存储器、可移动存储器、挥发性读写存储器(例如,随机存取存储器ram)、只读存储器(rom)等或以上任意组合。在一些实施例中,存储设备140可在云平台上实现。例如,该云平台可包括私有云、公共云、混合云等或以上任意组合。
在一些实施例中,存储设备140可与网络120连接以与系统100的一个或多个组件(例如,服务器110、用户终端130等)通讯。上车点推荐系统100的一个或多个组件可通过网络120访问存储于存储设备140中的资料或指令。在一些实施例中,存储设备140可直接与上车点推荐系统100中的一个或多个组件(如,服务器110、用户终端130)连接或通讯。在一些实施例中,存储设备140可以是服务器110的一部分。
图2是根据本申请的一些实施例所示的上车点推荐系统的示意框图。如图2所示,在一些实施例中,所述上车点推荐系统200可以包括:第一获取单元201,用于获取用户的原始出发点;第一判断单元203,用于判断所述原始出发点是否为父点poi,当所述原始出发点为父点poi时,召回所述父点poi的至少一个子点poi。所述父点poi可以是指一个或多个片状区域,例如北京邮电大学。子点poi可以是指一个或多个具体的点,例如北京邮电大学的东门、西门等;第一处理单元205,用于基于所述父点poi和召回的所有所述子点poi分别得到对应的候选上车点,合并父点poi的候选上车点和子点poi的候选上车点得到候选上车点集;第一排序单元207,用于计算所述候选上车点集中各个所述候选上车点的相关得分并基于所述相关得分对各个所述候选上车点进行排序;以及第一推荐单元209,用于基于排序结果,得到至少一个推荐上车点。
在一些实施例中,所述候选上车点的相关得分基于以下特征数据中的至少一个计算得到:第一特征数据,所述第一特征数据能够反映该候选上车点至所述原始出发点的距离特征;第二特征数据,所述第二特征数据能够反映该候选上车点至用户当前定位位置的距离特征;第三特征数据,所述第三特征数据能够反映召回该候选上车点的所述父点poi或子点poi的第一属性特征,所述第一属性特征至少包括:所述父点poi或子点poi在过去一段时间内作为上车点的频次;以及第四特征数据,所述第四特征数据能够反映该候选上车点的第二属性特征,所述第二属性特征至少包括:该候选上车点在过去一段时间内作为上车点的频次。
在一些实施例中,所述第一排序单元207还可以用于:获取排序模型,所述排序模型为机器学习模型;分别将各个所述候选上车点的特征数据输入所述排序模型中,通过所述排序模型输出各个所述候选上车点的排序结果。
在一些实施例中,所述排序模型包括以下模型中的至少一种:lambdarank模型、lambdamart模型、cnn模型和ltr模型。
在一些实施例中,所述第一处理单元205基于所述父点poi或子点poi得到对应的候选上车点的方法包括以下至少一种:召回距离所述父点poi或子点poi第一距离范围以内的所有上车点,作为所述候选上车点;或者将与所述父点poi或子点poi距离最近的n个上车点,作为所述候选上车点,其中n为正整数。
在一些实施例中,所述第一判断单元203召回所述父点poi的至少一个子点poi的方法可以包括:基于父子关系属性召回所述子点poi。确定所述父子关系属性的方法至少包括:所述父点poi与所述子点poi在语义上存在包含关系和/或所述父点poi和所述子点poi在地图范围上存在包含关系。
在一些实施例中,所述候选上车点的相关得分可以基于该候选上车点在一段时间内作为上车点的频次以及用户当前定位位置得到。
应当理解,图2所示的系统及其单元可以利用各种方式来实现。例如,在一些实施例中,系统及其单元可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、cd或dvd-rom的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本申请的系统及其单元不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其单元的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,图2中披露的第一获取单元201、第一判断单元203、第一处理单元205、第一排序单元207、第一推荐单元209可以是一个系统中的不同单元,也可以是一个单元实现上述的两个或以上单元的功能。又例如,各个单元可以共用一个存储设备140,各个单元也可以分别具有各自的存储设备140。诸如此类的变形,均在本申请的保护范围之内。
图3是根据本申请的一些实施例所示的示例性流程图,用于说明上车点推荐方法的实现步骤。
在本申请的一些实施例中,提供了一种上车点推荐方法,该方法可以由服务器110执行,所述方法300可以包括如下步骤:
步骤301、获取用户的原始出发点;在一些实施例中,该步骤可以由系统200中的第一获取单元201执行。
在一些实施例中,所述原始出发点可以是用户输入的查询词,也可以是通过定位技术获取的用户当前位置。例如,当用户在用户终端130输入查询词后,用户终端130可以将该查询词通过网络120发送给服务器110,处理设备112可以接收该查询词并对其进行处理。
在一些实施例中,用户输入查询词的方式可以包括但不限于打字输入、手写输入、选择输入、语音输入、扫描输入等一种或多种的任意组合。具体地,打字输入根据语言的不同可以包括英文输入、中文输入等。选择输入可以包括从选择列表中选择查询词等。扫描输入可以包括扫描条形码输入、扫描二维码输入、扫描文本输入、扫描图片输入等。例如,查询词可以是用户直接手写输入的中文文字。又例如,查询词可以是根据用户扫描图片输入识别的文字或字母。又例如,查询词可以是根据用户输入的语音识别出的文字或字母。
在一些实施例中,用户终端130通过定位技术获取的用户的当前位置可以包括经纬度信息,进而可以根据经纬度信息确定用户的原始出发点。在一些实施例中,原始出发点可以包括出发地名称。在一些实施例中,定位技术可以包括全球定位系统(gps)技术、北斗导航系统技术、全球导航卫星系统(glonass)技术、伽利略定位系统(伽利略)技术、准天顶卫星系统(qazz)技术、基站定位技术、wi-fi定位技术等或其任意组合。
在一些实施例中,用户可以基于记录列表选择原始出发点。例如,用户终端130可以为用户提供原始出发点记录列表,用户可以在记录列表中点击其中一个,输入原始出发点。在一些实施例中,所述记录列表可以是基于当前用户的历史输入信息获得的地点信息列表。
在一些实施例中,用户可以基于地图输入原始出发点。例如,用户可以在用户终端130中通过拖动地图的方式使大头针扎到所选择的位置,输入原始出发点。
步骤303、判断所述原始出发点是否为父点poi,当所述原始出发点为父点poi时,召回所述父点poi的至少一个子点poi;在一些实施例中,该步骤可以由系统200中的第一判断单元203执行。
在一些实施例中,所述父点poi可以是指一个或多个片状区域,例如北京邮电大学。子点poi可以是指一个或多个具体的点,例如北京邮电大学的东门、西门等。第一判断单元203可以通过判断原始出发点在地图上所对应的区域确定原始出发点是父点poi或子点poi。例如,用户的原始出发点为“北京邮电大学”,“北京邮电大学”在地图上对应一个片状区域,第一判断单元203可以确定“北京邮电大学”为父点poi。
在一些实施例中,所述父点poi和所述子点poi可以存在父子关系属性。第一判断单元203可以基于父子关系属性召回所述子点poi。所述父子关系属性可以是父点poi与子点poi的包含关系,具体可以是,父点poi包含子点poi的关系。一个父点poi可以有一个或多个与其存在父子关系属性的子点poi。
在一些实施例中,第一判断单元203可以基于所述父点poi与所述子点poi在语义上存在包含关系,确定所述父点poi和所述子点poi的父子关系属性。在一些实施例中,所述父点poi与所述子点poi在语义上存在包含关系可以是指所述父点poi与所述子点poi在语义上是整体与部分的关系。具体可以是,所述子点poi在语义上属于所述父点poi的一部分。例如,“北京邮电大学的东门”在语义上是“北京邮电大学”的一部分,“北京邮电大学”和“北京邮电大学的东门”存在父子关系属性。
在一些实施例中,第一判断单元203还可以基于所述父点poi与所述子点poi在地图范围上存在包含关系,确定所述父点poi和所述子点poi的父子关系属性。在一些实施例中,所述父点poi与所述子点poi在地图范围上存在包含关系可以是指子点poi在地图上的位置落入父点poi在地图上的区域范围内。例如,“北京邮电大学的东门”在地图上的位置点处于“北京邮电大学”在地图上的区域范围内,“北京邮电大学”和“北京邮电大学的东门”存在父子关系属性。
在一些实施例中,第一判断单元203还可以基于父点poi与子点poi的父子关系属性确定父点poi的一个或多个子点poi。在一些实施例中,当所述原始出发点为父点poi时,第一判断单元203可以召回(recall)所述父点poi的至少一个子点poi。例如,当用户的原始出发点为“北京邮电大学”时,第一判断单元203可以确定“北京邮电大学”是父点poi,并可以召回其子点poi“北京邮电大学的东门”。
步骤305、基于所述父点poi和召回的所有所述子点poi分别得到对应的候选上车点,合并父点poi的候选上车点和子点poi的候选上车点得到候选上车点集;在一些实施例中,该步骤可以由系统200中的第一处理单元205执行。
在一些实施例中,所述基于所述父点poi或子点poi得到对应的候选上车点的方法可以包括召回距离所述父点poi或子点poi第一距离范围以内的所有上车点,作为所述候选上车点。在一些实施例中,所述基于所述父点poi或子点poi得到对应的候选上车点的方法也可以包括将与所述父点poi或子点poi距离最近的n个上车点,作为所述候选上车点,其中n为正整数。
在一些实施例中,第一处理单元205可以基于父点poi,召回父点poi的候选上车点集合a。在一些实施例中,第一处理单元205可以根据用户输入的父点poi的历史订单行为数据以及基础点库,获取该父点poi附近的候选上车点集合a。在一些实施例中,所述基础点库可以是包括google地图、高德地图、百度地图等的地图数据库中的点库。在一些实施例中,第一处理单元205也可以基于与父点poi的第一距离来召回候选上车点集合a,候选上车点集合a中包含至少一个候选上车点。例如,可以将与父点poi距离50m范围内的所有上车点召回,作为候选上车点集合a。在一些实施例中,第一处理单元205还可以将与所述父点poi距离最近的n个上车点,作为父点poi的候选上车点集合a,其中n为正整数。例如,第一处理单元205可以召回与父点poi距离最近的10个上车点作为候选上车点集合a。
在一些实施例中,第一处理单元205可以基于步骤303中获得的至少一个子点poi,召回所有子点poi的候选上车点集合b。在一些实施例中,第一处理单元205可以根据获得的子点poi的历史订单行为数据以及基础点库,获取该子点poi附近的候选上车点集合b。在一些实施例中,第一处理单元205也可以基于与子点poi的第一距离来召回一个或多个候选上车点集合b。例如,可以将与第一个子点poi距离50m范围内的所有上车点召回,将与第二个子点poi距离50m范围内的所有上车点召回,以此类推,将所有子点poi召回的上车点作为候选上车点集合b。在一些实施例中,第一处理单元205还可以将与获取的所述子点poi距离最近的n个上车点,作为其候选上车点集合b,其中n为正整数。例如,第一处理单元205可以召回与第一子点poi距离最近的5个上车点,召回与第二子点poi距离最近的5个上车点,以此类推,将所有子点poi召回的上车点作为候选上车点集合b。
在一些实施例中,第一处理单元205可以合并候选上车点集合a和候选上车点集合b获得所述候选上车点集。在一些实施例中,合并候选上车点集合a和候选上车点集合b的方式可以为取两个集合的交集,即剔除重复的候选上车点。
步骤307、计算所述候选上车点集中各个所述候选上车点的相关得分并基于所述相关得分对各个所述候选上车点进行排序;在一些实施例中,该步骤可以由系统200中的第一排序单元207执行。
在一些实施例中,所述各个所述候选上车点的相关得分可以由以下相关特征数据中的至少一个计算得到:第一特征数据、第二特征数据、第三特征数据以及第四特征数据。
在一些实施例中,所述第一特征数据可以是能够反映该候选上车点至所述原始出发点的距离特征的数据。在一些实施例中,所述距离包括但不限于球面距离或直线距离。球面距离可以是球面上两点之间的最短连线的长度,就是经过这两点的大圆在这两点间的一段劣弧的长度。在一些实施例中,所述第一特征数据越大,表示该候选上车点偏离所述原始出发点越多。所述第一特征数据越小,表示该候选上车点偏离所述原始出发点越少。
在一些实施例中,所述第二特征数据可以是能够反映该候选上车点至用户当前定位位置的距离特征的数据。在一些实施例中,所述用户当前定位位置可以是由定位系统实时得到的位置,该位置可能由于用户移动等原因而不同于用户下单时的原始出发点。所述第二特征数据越大,表示用户从当前定位位置步行至该候选上车点的步行成本越高。所述第二特征数据越大,表示用户从当前定位位置步行至该候选上车点的步行成本越小。
在一些实施例中,所述第三数据特征可以是能够反映召回该候选上车点的所述父点poi或子点poi的第一属性特征的数据特征。在一些实施例中,所述第一属性特征至少包括:所述父点poi或子点poi的历史热度,即所述父点poi或子点poi在过去一段时间内作为上车点的频次。在一些实施例中,所述父点poi或子点poi在过去一段时间内作为上车点的频次,可以从过去一段时间内的历史订单中统计获得。在一些实施例中,所述第一属性特征还可以包括:父点poi或子点poi召回的候选上车点数量、父点poi或子点poi与候选上车点历史上的关联次数等。在一些实施例中,所述父点poi或子点poi召回的候选上车点数量越多,参与排序的候选上车点数量越多。在一些实施例中,父点poi或子点poi与候选上车点历史上的关联次数越多,该候选上车点的热度权重越高,该候选上车点的得分越高。
在一些实施例中,所述第四数据特征可以是能够反映该候选上车点的第二属性特征的数据特征。在一些实施例中,所述第二属性特征至少包括:所述候选上车点的历史热度,即所述候选上车点在过去一段时间内作为上车点的频次。在一些实施例中,所述候选上车点在过去一段时间内作为上车点的频次,可以从过去一段时间内的历史订单中统计获得。在一些实施例中,所述第二属性特征还可以包括:所述候选上车点的全局热度、局部热度等。在一些实施例中,所述全局热度可以是过去一段时间内的历史订单中,历史乘客以该候选上车点作为实际上车点的订单数量。在一些实施例中,所述局部热度可以是过去一段时间内的历史订单中,历史乘客从所述原始出发点出发且到达该候选上车点的订单数量。
在一些实施例中,所述基于所述相关得分对各个所述候选上车点进行排序的方法包括:获取排序模型,所述排序模型为机器学习模型。例如,可以从存储设备140中获取训练好的排序模型参数,进而获得排序模型。分别将各个所述候选上车点的特征数据输入所述排序模型中,通过所述排序模型输出各个所述候选上车点的排序结果。
在一些实施例中,当用户在用户终端130发起乘车订单后,第一处理单元205可以基于该订单信息的原始出发点确定候选上车点集。第一排序单元207可以计算出候选上车点集中各个候选上车点的上述相关特征数据,并将候选上车点集的相关特征数据输入到已训练好的排序模型中,利用排序模型输出排序结果。在一些实施例中,排序模型可以包括lambdarank模型、lambdamart模型、cnn模型、ltr模型等。在一些实施例中,所述排序结果可以是推荐的上车点及其得分,例如,“上车点a,90分”、“上车点b,80分”…。在一些实施例中,排序结果也可以是得分分值降序排列的topn的上车点。
在一些实施例中,所述lambdarank模型是一个经验算法,直接定义了损失函数的梯度,即lambda梯度。在一些实施例中,lambdamart模型是lambda梯度和mart的结合,适用于排序场景、损失函数可导、增量学习、组合特征、特征选择等。在一些实施例中,还可以采用cnn(卷积神经网络)模型进行排序,cnn模型在本质上是一种输入到输出的映射,它能够学习大量的输入与输出之间的映射关系,而不需要任何输入和输出之间的精确的数学表达式。在一些实施例中,还可以采用ltr(learningtorank)模型进行排序,ltr模型是一种监督学习的排序方法。其中,所述排序方法的步骤可以包括训练数据获取、特征提取、模型训练、测试数据预测以及效果评估。
在另一些实施例中,所述排序模型还可以通过以下步骤训练得到:获取多个历史订单;对多个历史订单中的每一个进行处理以获得训练样本;使用多个训练样本训练所述排序模型,从而获得训练好的排序模型。在一些实施例中,所述历史订单包括历史原始出发点以及历史上车点。具体的,处理过程可以包括:基于历史原始出发点召回至少一个候选上车点;获取各候选上车点的相关特征数据作为训练样本的输入数据;基于候选上车点与所述历史上车点之间的距离是否小于第一阈值确定各候选上车点的标记;将各候选上车点的标记组合得到所述训练样本的参考标准。
在一些实施例中,还可以对模型进行优化。优化过程可以是调整排序模型参数的过程。所述调整排序模型参数的过程可以是根据排序模型的输出结果与标记结果的比较,当输出的排序结果与标记结果偏差较大,给与排序模型一定惩罚,当输出的排序结果与标记结果吻合度较高时,给与排序模型一定奖励,从而得到最终的排序模型,作为上车点推荐模型。例如,候选上车点a为负样本,标记为“0”,通过模型训练后,排序结果中的前五候选上车点包括站点a,此时需要给与排序模型一定惩罚,继续对排序模型进行训练,达到调优效果。若模型排序结果中的前五候选上车点均为被标记为“1”的正样本,则排序模型训练效果较好,可以投入使用。
步骤309、基于排序结果,得到至少一个推荐上车点;在一些实施例中,该步骤可以由系统200中的第一推荐单元209执行。
在一些实施例中,所述第一推荐单元209可以将排序结果中的前n个候选上车点作为推荐上车点,也可以将得分大于阈值的候选上车点作为推荐上车点等等。
在一些实施例中,得到的所述推荐上车点可以以列表形式呈现在用户终端130的显示界面上。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
在本申请的另一些实施例中,提供了一种上车点推荐装置,所述装置包括至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现如上所述的操作。
在本申请的又一些实施例中,提供了一种计算机可读存储介质,所述存储介质存储计算机指令,当所述计算机指令被处理器执行时实现如上所述的操作。
图4是根据本申请的另一些实施例所示的上车点推荐系统的示意框图。如图4所示,在一些实施例中,所述上车点推荐系统400可以包括:第二获取单元401,用于获取用户的原始出发点。第二判断单元403,用于判断所述原始出发点是否为父点poi。第二处理单元405,用于基于判断结果得到至少一个候选上车点。第二排序单元407,用于获取各个所述候选上车点的排序结果。第二推荐单元409,用于基于排序结果,向用户推荐至少一个推荐上车点。
在一些实施例中,所述第二处理单元405还包括:发送单元,用于向服务端发送所述原始出发点以及所述原始出发点是否为父点poi的判断结果,以及接收单元,用于接收服务端返回的至少一个候选上车点。
需要注意的是,以上对于系统及其单元的描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可能在不背离这一原理的情况下,对各个单元进行任意组合,或者构成子系统与其他单元连接。例如,在一些实施例中,图2中披露的第二获取单元401、第二判断单元403、第二处理单元405、第二排序单元407、第二推荐单元409可以是一个系统中的不同单元,也可以是一个单元实现上述的两个或以上单元的功能。又例如,各个单元可以共用一个存储设备140,各个单元也可以分别具有各自的存储设备140。诸如此类的变形,均在本申请的保护范围之内。
图5是根据本申请的另一些实施例所示的示例性流程图,用于说明上车点推荐方法的实现步骤。在本申请的另一些实施例中,提供了一种上车点推荐方法,该方法可以由用户终端130执行,所述方法500可以包括如下步骤:
步骤501、获取用户的原始出发点;在一些实施例中,该步骤可以由系统400中的第二获取单元401执行。
在一些实施例中,所述原始出发点可以是用户输入的查询词,也可以是通过定位技术获取的用户当前位置。在一些实施例中,用户输入查询词的方式可以包括但不限于打字输入、手写输入、选择输入、语音输入、扫描输入等一种或多种的任意组合。在一些实施例中,用户终端130通过定位技术获取的用户的当前位置可以包括经纬度信息,进而可以根据经纬度信息确定用户的原始出发点。在一些实施例中,用户可以基于记录列表选择原始出发点。例如,用户终端130可以为用户提供原始出发点记录列表,用户可以在记录列表中点击其中一个,输入原始出发点。在一些实施例中,用户可以基于地图输入原始出发点。例如,用户可以在用户终端130中通过拖动地图的方式使大头针扎到所选择的位置,输入原始出发点。
步骤503、判断所述原始出发点是否为父点poi;在一些实施例中,该步骤可以由系统400中的第二判断单元403执行。
在一些实施例中,所述父点poi可以是指一个或多个片状区域。所述子点poi可以是指一个或多个具体的点。第二判断单元403可以通过判断原始出发点在地图上所对应的区域确定原始出发点是父点poi或子点poi。例如,用户的原始出发点为“北京邮电大学”,“北京邮电大学”在地图上对应一个片状区域,第二判断单元403可以确定“北京邮电大学”为父点poi。
在一些实施例中,判断结果可以是服务端提供的。例如,用户终端130向服务端发送所述原始出发点;接收服务端返回的原始出发点是否为父点poi的判断结果。在一些实施例中,所述判断结果也可以是用户终端130自带的处理器处理得到的。其中,所述判断结果的获取过程具体可以参见图3的相关描述。
步骤505、基于判断结果得到至少一个候选上车点;在一些实施例中,该步骤可以由系统400中的第二处理单元405执行。
在一些实施例中,所述第二处理单元405可以基于步骤503中的判断结果得到至少一个候选上车点。在一些实施例中,所述候选上车点可以是服务端提供的,也可以是用户终端130自带的处理器处理得到的。所述候选上车点可以是父点poi的候选上车点,也可以是子点poi的候选上车点。所述得到至少一个候选上车点的方式可以参照本说明书图3中步骤305的相关描述类似得到,此处不再赘述。
步骤507、获取各个所述候选上车点的排序结果;在一些实施例中,该步骤可以由系统400中的第二排序单元407执行。
在一些实施例中,所述获取各个所述候选上车点的排序结果可以包括:向服务端发送所述原始出发点以及所述原始出发点是否为父点poi的判断结果,接收服务端返回的至少一个候选上车点及其排序结果。
在一些实施例中,所述服务端返回的候选上车点及其排序结果可以是服务端提供的,也可以是用户终端130自带的处理器实现的。其中,所述排序结果的获取具体可以参见本说明书图3中步骤307的相关描述类似得到,此处不再赘述。
步骤509、基于排序结果,向乘客推荐至少一个推荐上车点;在一些实施例中,该步骤可以由系统400中的第二推荐单元409执行。
在一些实施例中,第二推荐单元409可以将排序结果中的前n个候选上车点作为推荐上车点,例如,在显示界面显示排序结果中的前5个候选上车点;在另一实施例中,可以将得分大于阈值的候选上车点作为推荐上车点,阈值可以取80分、90分、95分等。
在一些实施例中,还可以通过调整所述显示界面上推荐上车点的排列方式、显示方式、显示位置等或其任意组合,以提高用户对推荐上车点的感知度。
在一些实施例中,所述排列方式可以包括上下排列和左右排列。例如,当用户在用户终端的输入框中输入查询词时,模型输出的排序结果以上下排列的方式呈现给用户。例如,基于排序结果,第二推荐单元409将其以左右排列的方式呈现给用户。
在一些实施例中,所述显示方式可以包括缩略显示和完整显示。在一些实施例中,当排序结果中的推荐上车点信息包含大于显示框的长度时,可以采用缩略显示将推荐上车点呈现于用户终端。例如,排序结果中的推荐上车点信息较长时,显示框中可以只显示推荐上车点的前部分信息,超出显示框部分省略。在一些实施例中,所述完整显示可以是将排序结果完整的呈现给用户。例如,排序结果中的推荐上车点信息大于显示框长度时,可以通过调节字号大小使其完整显示。
在一些实施例中,所述显示位置可以包括输入框的下方、输入框的上方以及输入框的右侧等。例如,用户在用户终端输入查询词后,基于排序模型输出的排序结果,在输入框的下方呈现给用户。又例如,用户在用户终端输入查询词后,基于排序结果,在输入框的右侧呈现给用户。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本申请的适用范围。对于本领域技术人员来说,在本申请的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本申请的范围之内。
在本申请的另一些实施例中,提供了一种上车点推荐装置,所述装置包括至少一个处理器以及至少一个存储器;所述至少一个存储器用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令中的至少部分指令以实现如上所述的操作。
在本申请的又一些实施例中,提供了一种计算机可读存储介质,所述存储介质存储计算机指令,当所述计算机指令被处理器执行时实现如上所述的操作。
需要注意的是,以上描述,仅为描述方便,并不能把本申请限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解本申请的原理后,可以在不背离这一原理的情况下,对实施上述流程进行形式和细节上的各种修正和改变。然而,这些变化和修改不脱离本申请的范围。
本申请实施例可能带来的有益效果包括但不限于:(1)通过判断poi的父子关系属性确定召回的候选上车点,使父点poi召回的候选上车点能够包含其子点poi召回的候选上车点,从而提高候选上车点的覆盖率;(2)通过排序模型对候选上车点集进行排序,使得推荐上车点更加精确稳定,提升用户体验。
需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
以上内容描述了本申请和/或一些其他的示例。根据上述内容,本申请还可以做出不同的变形。本申请披露的主题能够以不同的形式和例子所实现,并且本申请可以被应用于大量的应用程序中。后文权利要求中所要求保护的所有应用、修饰以及改变都属于本申请的范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”、或“一个实施例”、或“一替代性实施例”、或“另一实施例”或“另一个实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
本领域技术人员能够理解,本申请所披露的内容可以出现多种变型和改进。例如,以上所描述的不同系统组件都是通过硬件设备所实现的,但是也可能只通过软件的解决方案得以实现。例如:在现有的服务器上安装系统。此外,这里所披露的位置信息的提供可能是通过一个固件、固件/软件的组合、固件/硬件的组合或硬件/固件/软件的组合得以实现。
所有软件或其中的一部分有时可能会通过网络进行通信,如互联网或其他通信网络。此类通信能够将软件从一个计算机设备或处理器加载到另一个。例如:从放射治疗系统的一个管理服务器或主机计算机加载至一个计算机环境的硬件平台,或其他实现系统的计算机环境,或与提供确定轮椅目标结构参数所需要的信息相关的类似功能的系统。因此,另一种能够传递软件元素的介质也可以被用作局部设备之间的物理连接,例如光波、电波、电磁波等,通过电缆、光缆或者空气实现传播。用来载波的物理介质如电缆、无线连接或光缆等类似设备,也可以被认为是承载软件的介质。在这里的用法除非限制了有形的“储存”介质,其他表示计算机或机器“可读介质”的术语都表示在处理器执行任何指令的过程中参与的介质。
本申请各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如java、scala、smalltalk、eiffel、jade、emerald、c++、c#、vb.net、python等,常规程序化编程语言如c语言、visualbasic、fortran2003、perl、cobol2002、php、abap,动态编程语言如python、ruby和groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,例如,局域网(lan)或广域网(wan)、或连接至外部计算机(例如通过因特网)、或在云计算环境中、或作为服务使用如软件即服务(saas)。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述属性、数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档、物件等,特将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。
最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不限于本申请明确介绍和描述的实施例。