行程推荐的方法和系统与流程

文档序号:30385328发布日期:2022-06-11 08:20阅读:448来源:国知局
行程推荐的方法和系统与流程

1.本说明书涉及行程规划技术领域,尤其涉及一种行程推荐的方法和系统。


背景技术:

2.随着人工智能技术的高速发展,推荐算法在各个领域中的应用取得了巨大的成功,通过向用户推荐感兴趣的产品能够提升产品的点击率、转化率,减少用户的信息检索时间。例如在行程推荐的场景中,随着当今资讯的发达和交通的便利,人们在出行前通常会通过各种应用程序提前进行路线规划,应用程序也会基于推荐算法向用户推荐行程。传统的推荐算法只对单个类型产品进行推荐(比如只推荐与吃有关的产品,或只推荐与玩有关的产品),通常直接向用户展示点击率最大的产品。当涉及多个产品的联合推荐(比如一条路线行程中往往涉及多种不同类型的产品,比如吃、喝、玩、乐,等等)时,除了最大化点击率外,还需要考虑不同类型的产品间的关系(比如产品之间的距离、线路的折返等等),对推荐过程施加约束。传统的推荐算法只能在当前类型产品的推荐中获取更优推荐(即局部更优),而无法在整条线路的行程推荐中获取更优的行程推荐(即全局更优)。
3.因此,需要提供一种能够基于不同类型的产品间的关系进行行程推荐的方法和系统,以推荐更优的行程线路。


技术实现要素:

4.本说明书提供一种能够基于不同类型的产品间的关系进行行程推荐的方法和系统,以推荐更优的行程线路。
5.第一方面,本说明书提供一种行程推荐的方法,包括:获取目标用户的目标目的地;从预设的数据库中确定所述目标目的地对应的行程模板,所述行程模板包括多个环节,所述多个环节中的每个环节包括至少一个候选对象;基于行程推荐模型,从所述每个环节的所述至少一个候选对象中确定推荐对象,所述行程推荐模型是基于所述多个环节对应的多个推荐对象的组合点击率最大为优化目标,以及以目标约束函数为约束条件构建的,所述目标约束函数至少包括相邻环节对应的推荐对象之间的距离约束;以及基于所述多个推荐对象生成推荐行程。
6.在一些实施例中,所述多个环节包括饮食环节、交通环节、景点环节、娱乐环节以及住宿环节中的多种。
7.在一些实施例中,所述从预设的数据库中确定所述目标目的地对应的行程模板,包括:对所述每个环节,基于所述目标用户的属性特征数据以及所述目标目的地的位置数据,从所述数据库中选取与当前环节对应的所述至少一个候选对象。
8.在一些实施例中,所述从所述数据库中选取与当前环节对应的所述至少一个候选对象,包括:从所述数据库中获取所述至少一个候选对象中的每个候选对象的特征数据,所述特征数据包括位置数据以及点击率。
9.在一些实施例中,所述相邻环节对应的推荐对象之间的距离约束包括所述相邻环
节对应的推荐对象之间的距离在预设的距离阈值内,所述相邻环节对应的推荐对象之间的距离是基于所述相邻环节对应的推荐对象的所述位置数据得到的。
10.在一些实施例中,所述目标约束函数还包括折返约束,所述折返约束包括第一个环节对应的推荐对象与最后一个环节对应的推荐对象之间的距离与所述第一个环节对应的推荐对象与第二个环节对应的推荐对象之间的距离的比例大于预设阈值,其中,所述第一个环节对应的推荐对象与所述最后一个环节对应的推荐对象之间的距离是基于所述第一个环节对应的推荐对象的所述位置数据与所述最后一个环节对应的推荐对象的所述位置数据得到的,所述第一个环节对应的推荐对象与所述第二个环节对应的推荐对象之间的距离是基于所述第一个环节对应的推荐对象的所述位置数据与所述第二个环节对应的推荐对象的所述位置数据得到的。
11.在一些实施例中,所述目标约束函数还包括所述每个环节包括一个所述推荐对象。
12.在一些实施例中,所述组合点击率包括所述多个推荐对象的所述点击率的和与平均值中的至少一种。
13.在一些实施例中,所述行程推荐模型的模型变量包括所述每个环节对应的所述推荐对象,所述基于行程推荐模型,从所述每个环节的所述至少一个候选对象中确定一个推荐对象,包括:基于线性化处理,将所述目标约束函数转换为线性函数;以及基于松弛算法求解所述模型变量的整数规划问题,确定所述多个推荐对象。
14.第二方面,本说明书还提供一种行程推荐的系统,包括至少一个存储介质以及至少一个处理器,所述至少一个存储介质存储有至少一个指令集,用于进行行程推荐;以及所述至少一个处理器同所述至少一个存储介质通信连接,其中,当所述行程推荐的系统运行时,所述至少一个处理器读取所述至少一个指令集,并且根据所述至少一个指令集的指示执行本说明书第一方面所述的行程推荐的方法。
15.由以上技术方案可知,本说明书提供的行程推荐的方法和系统,以行程中不同环节对应的推荐对象的组合点击率最大为优化目标,并以不同环节对应的推荐对象之间的关系为约束条件(比如距离约束、折返约束,等等),来构建行程推荐模型,以获取每个环节对应的推荐对象,从而生成推荐行程,使得在复杂的场景下,获取更优的推荐行程,避免因距离太远或频繁折返带来的麻烦,以提升用户体验。同时,本说明书提供的行程推荐的方法和系统,在对行程推荐模型求解时,可以使用线性化处理方式来处理约束条件,还可以使用松弛算法来求解整数规划问题,从而加快求解速度,进行实时的行程推荐计算,在节省计算量的同时,提升计算速度和提升用户体验。
16.本说明书提供的行程推荐的方法和系统的其他功能将在以下说明中部分列出。根据描述,以下数字和示例介绍的内容将对那些本领域的普通技术人员显而易见。本说明书提供的行程推荐的方法和系统的创造性方面可以通过实践或使用下面详细示例中所述的方法、装置和组合得到充分解释。
附图说明
17.为了更清楚地说明本说明书实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,
对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1示出了根据本说明书的实施例提供的一种行程推荐的系统的应用场景示意图;图2示出了根据本说明书的实施例提供的一种计算设备的硬件结构图;以及图3示出了根据本说明书的实施例提供的一种行程推荐的方法流程图。
具体实施方式
19.以下描述提供了本说明书的特定应用场景和要求,目的是使本领域技术人员能够制造和使用本说明书中的内容。对于本领域技术人员来说,对所公开的实施例的各种局部修改是显而易见的,并且在不脱离本说明书的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用。因此,本说明书不限于所示的实施例,而是与权利要求一致的最宽范围。
20.这里使用的术语仅用于描述特定示例实施例的目的,而不是限制性的。比如,除非上下文另有明确说明,这里所使用的,单数形式“一”,“一个”和“该”也可以包括复数形式。当在本说明书中使用时,术语“包括”、“包含”和/或“含有”意思是指所关联的整数,步骤、操作、元素和/或组件存在,但不排除一个或多个其他特征、整数、步骤、操作、元素、组件和/或组的存在或在该系统/方法中可以添加其他特征、整数、步骤、操作、元素、组件和/或组。
21.考虑到以下描述,本说明书的这些特征和其他特征、以及结构的相关元件的操作和功能、以及部件的组合和制造的经济性可以得到明显提高。参考附图,所有这些形成本说明书的一部分。然而,应该清楚地理解,附图仅用于说明和描述的目的,并不旨在限制本说明书的范围。还应理解,附图未按比例绘制。
22.本说明书中使用的流程图示出了根据本说明书中的一些实施例的系统实现的操作。应该清楚地理解,流程图的操作可以不按顺序实现。相反,操作可以以反转顺序或同时实现。此外,可以向流程图添加一个或多个其他操作。可以从流程图中移除一个或多个操作。
23.在出行场景中,当用户确定了出行目的地后,一般是通过网络进行查找,就该出行目的地进行大量的周边信息查找,例如路线、住宿、景点、餐饮等,就上述各个要素的时间、价格、便利程度以及感兴趣程度等方面进行检索和对比,从而制定行程线路。这个过程需要耗费大量的时间,行程的合理性方面也无法得到保障。因此,基于推荐算法自动为用户进行行程推荐的方式应运而生。
24.为了方便描述,本说明书将对以下描述将会出现的术语进行如下解释:行程模板:一种线路规划模板,其中包含多个环节,比如吃、和、玩、乐等等,每个环节包含多个候选对象,通过挑选候选对象来组合生成推荐行程;推荐行程:根据行程模板,从每个环节的多个候选对象中挑选出一个推荐对象,多个环节的推荐对象按顺序组成一个推荐行程;环节:行程模板或推荐行程中的一个子单元,在行程模板中一个环节包含多个候选对象,在推荐行程中,一个环节包含一个推荐对象。
25.现有技术中,在对组合行程进行行程推荐时,传统的推荐算法采用规则+贪心的方
式。其中,规则指的是在从多个候选对象中挑选推荐对象时遵循一定的简单规则进行筛选,例如不同环节挑选的推荐对象不能重复。贪心指的是在满足上述规则的前提下,每个环节中依次选取点击率最高的候选对象作为推荐对象。现有技术的推荐算法中的规则只考虑了硬规则,如果没有满足规则的候选对象,则无法完成行程的组合;同时,贪心算法只能取得当前环节的更优推荐对象,无法取得整个行程的更优推荐对象,在复杂场景下性能较差。
26.本说明书提供的行程推荐的方法和系统,以行程中不同环节对应的推荐对象的组合点击率最大为优化目标,并以不同环节对应的推荐对象之间的关系为约束条件(比如距离约束、折返约束,等等),来构建行程推荐模型,以获取每个环节对应的推荐对象,从而生成推荐行程,使得在复杂的场景下,获取更优的推荐行程,避免因距离太远或频繁折返带来的麻烦,以提升用户体验。
27.图1示出了根据本说明书的实施例提供的一种行程推荐的系统001的应用场景示意图。行程推荐的系统001(以下简称系统001)可以用于任意场景的行程推荐,比如,旅游场景、线路规划场景,等等。如图1所示,系统001可以包括目标用户100、客户端200、服务器300以及网络400。
28.目标用户100可以是需要进行行程推荐的用户或正在进行行程推荐的用户。目标用户100可以在客户端200上进行操作,以输入目标目的地。
29.客户端200可以是能够接收目标用户100输入的目标目的地的设备。在一些实施例中,客户端200可以基于所述目标目的地为目标用户100进行行程推荐,并生成推荐行程。在一些实施例中,客户端200可以通过网络400与服务器300进行通信连接,接收或发送消息等,比如向服务器300发送所述目标目的地,服务器300可以基于所述目标目的地为目标用户100进行行程推荐,并将生成的推荐行程发送给客户端200。在一些实施例中,客户端200可以安装有一个或多个应用程序(app)。所述app能够为目标用户100提供通过网络400同外界交互的能力以及界面。所述app包括但不限于:地图类app程序、线路规划类app程序、行程推荐类app程序、门店推荐类app程序、网页浏览器类app程序、搜索类app程序、聊天类app程序、购物类app程序、视频类app程序、理财类app程序、即时通信工具、邮箱客户端、社交平台软件等等。在一些实施例中,客户端200上可以安装有目标app。所述目标app能够与服务器300进行通信连接。所述目标app能够接收目标用户100输入的所述目标目的地,并将所述目标目的地发送给服务器300。目标用户100可以通过所述目标app触发行程推荐请求。所述目标app可以是能够提供行程推荐类的app,比如,地图类app、团购类app、旅行类app,等等。
30.在一些实施例中,所述行程推荐的方法可以在客户端200上执行。此时,客户端200可以存储有执行本说明书描述的行程推荐的方法的数据或指令,并可以执行或用于执行所述数据或指令。在一些实施例中,客户端200可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。在一些实施例中,客户端200可以包括移动设备、平板电脑、笔记本电脑、机动车辆的内置设备或类似内容,或其任意组合。在一些实施例中,所述移动设备可包括智能家居设备、智能移动设备、虚拟现实设备、增强现实设备或类似设备,或其任意组合。在一些实施例中,所述智能家居装置可包括智能电视、台式电脑等,或任意组合。在一些实施例中,所述智能移动设备可包括智能手机、个人数字辅助、游戏设备、导航设备等,或其任意组合。在一些实施例中,所述虚拟现实设备或增强现实设备可能包括虚拟现实头盔、虚拟现实眼镜、虚拟现实补丁、增强现实头盔、增强现实眼镜、增强现实补丁或
类似内容,或其中的任何组合。例如,所述虚拟现实设备或所述增强现实设备可能包括谷歌眼镜、头戴式显示器、vr等。在一些实施例中,所述机动车中的内置装置可包括车载计算机、车载电视等。在一些实施例中,客户端200可以是具有定位技术的设备,用于定位客户端200的位置。
31.服务器300可以是提供各种服务的服务器,例如对客户端200上显示的页面提供支持的后台服务器。在一些实施例中,所述行程推荐的方法可以在服务器300上执行。此时,服务器300可以存储有执行本说明书描述的行程推荐的方法的数据或指令,并可以执行或用于执行所述数据或指令。在一些实施例中,服务器300可以包括具有数据信息处理功能的硬件设备和驱动该硬件设备工作所需必要的程序。服务器300可以与多个客户端200通信连接,并接收客户端200发送的数据。
32.网络400用以在客户端200和服务器300之间提供通信连接的介质。网络400可以促进信息或数据的交换。如图1所示,客户端200和服务器300可以同网络400连接,并且通过网络400互相传输信息或数据。在一些实施例中,网络400可以是任何类型的有线或无线网络,也可以是其组合。比如,网络400可以包括电缆网络,有线网络、光纤网络、电信通信网络、内联网、互联网、局域网(lan)、广域网(wan)、无线局域网(wlan)、大都市市区网(man)、广域网(wan)、公用电话交换网(pstn)、蓝牙网络、zigbee网络、近场通信(nfc)网络或类似网络。在一些实施例中,网络400可以包括一个或多个网络接入点。例如,网络400可以包括有线或无线网络接入点,如基站或互联网交换点,通过该接入点,客户端200和服务器300的一个或多个组件可以连接到网络400以交换数据或信息。
33.应该理解,图1中的客户端200、服务器300和网络400的数目仅仅是示意性的。根据实现需要,可以具有任意数目的客户端200、服务器300和网络400。
34.需要说明的是,所述行程推荐的方法可以完全在客户端200上执行,也可以完全在服务器300上执行,还可以部分在客户端200上执行,部分在服务器300上执行。
35.图2示出了根据本说明书的实施例提供的一种计算设备600的硬件结构图。计算设备600可以执行本说明书描述的行程推荐的方法。所述行程推荐的方法在本说明书中的其他部分介绍。当所述行程推荐的方法在客户端200上执行时,计算设备600可以是客户端200。当所述行程推荐的方法在服务器300上执行时,计算设备600可以是服务器300。当所述行程推荐的方法部分在客户端200上执行,部分在服务器300上执行时,计算设备600可以是客户端200和服务器300。
36.如图2所示,计算设备600可以包括至少一个存储介质630和至少一个处理器620。在一些实施例中,计算设备600还可以包括通信端口650和内部通信总线610。同时,计算设备600还可以包括i/o组件660。
37.内部通信总线610可以连接不同的系统组件,包括存储介质630、处理器620和通信端口650。
38.i/o组件660支持计算设备600和其他组件之间的输入/输出。
39.通信端口650用于计算设备600同外界的数据通信,比如,通信端口650可以用于计算设备600同网络400之间的数据通信。通信端口650可以是有线通信端口也可以是无线通信端口。
40.存储介质630可以包括数据存储装置。所述数据存储装置可以是非暂时性存储介
质,也可以是暂时性存储介质。比如,所述数据存储装置可以包括磁盘632、只读存储介质(rom)634或随机存取存储介质(ram)636中的一种或多种。存储介质630还包括存储在所述数据存储装置中的至少一个指令集。所述指令是计算机程序代码,所述计算机程序代码可以包括执行本说明书提供的行程推荐的方法的程序、例程、对象、组件、数据结构、过程、模块等等。
41.至少一个处理器620可以同至少一个存储介质630以及通信端口650通过内部通信总线610通信连接。至少一个处理器620用以执行上述至少一个指令集。当计算设备600运行时,至少一个处理器620读取所述至少一个指令集,并且根据所述至少一个指令集的指示,执行本说明书提供的行程推荐的方法。处理器620可以执行行程推荐的方法包含的所有步骤。处理器620可以是一个或多个处理器的形式,在一些实施例中,处理器620可以包括一个或多个硬件处理器,例如微控制器,微处理器,精简指令集计算机(risc),专用集成电路(asic),特定于应用的指令集处理器(asip),中心处理单元(cpu),图形处理单元(gpu),物理处理单元(ppu),微控制器单元,数字信号处理器(dsp),现场可编程门阵列(fpga),高级risc机器(arm),可编程逻辑器件(pld),能够执行一个或多个功能的任何电路或处理器等,或其任何组合。仅仅为了说明问题,在本说明书中计算设备600中仅描述了一个处理器620。然而,应当注意,本说明书中计算设备600还可以包括多个处理器,因此,本说明书中披露的操作和/或方法步骤可以如本说明书所述的由一个处理器执行,也可以由多个处理器联合执行。例如,如果在本说明书中计算设备600的处理器620执行步骤a和步骤b,则应该理解,步骤a和步骤b也可以由两个不同处理器620联合或分开执行(例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一和第二处理器共同执行步骤a和b)。
42.图3示出了根据本说明书的实施例提供的一种行程推荐的方法p100的流程图。如前,计算设备600可以执行本说明书的行程推荐的方法p100。具体地,处理器620可以读取存储在其本地存储介质中的指令集,然后根据指令集的规定,执行本说明书的行程推荐的方法p100。为了方便展示,以下的描述中我们将以行程推荐的方法p100在服务器300上执行为例进行说明。如图3所示,方法p100可以包括:s120:获取目标用户100的目标目的地。
43.具体地,服务器300可以从客户端200中获取目标用户100的所述目标目的地。在一些实施例中,目标用户100可以通过客户端200上的目标app输入所述目标目的地。在一些实施例中,所述目标目的地可以是目标用户100想要到达的目的地。在一些实施例中,所述目标目的地也可以是目标用户100当前所处的地址。所述目标目的地可以是所述目标目的地的位置数据。所述位置数据可以是经纬度数据,也可以是大地坐标系,等等。客户端200可以将目标用户100的所述目标目的地通过网络400发送给服务器300。客户端200在将所述目标目的地发送给服务器300时,可以同时发送目标用户100的身份标识。所述身份标识可以是用于标识和区分目标用户100的唯一身份信息。不同的目标用户100的身份标识不同。在一些实施例中,步骤s120可以包括获取目标用户100的属性特征数据以及所述目标目的地的位置数据。服务器300中可以预先设置数据库。所述数据库中可以预先存储有所有注册用户的属性特征数据。所述属性特征数据可以与其对应的用户的身份标识对应存储在所述数据库中。服务器300可以基于目标用户100的所述身份标识获取目标用户100的所述属性特征数据。所述属性特征数据可以是能够用于表征目标用户100的偏好以及属性的数据。比如,
目标用户100的基本信息,如年纪、职业、居住地、性格、特长、爱好,等等。
44.在一些实施例中,所述属性特征数据还可以包括所述目标目的地的行程特征数据。目标用户100的可以通过所述目标app输入所述行程特征数据。服务器300可以从客户端200中获取所述目标目的地的行程特征数据。在一些实施例中,所述行程特征数据可以是能够用于表征目标用户100此次行程的属性数据,比如,出行人数、出行人员关系(比如闺蜜行、好友行、亲子游、情侣游、全家游,等等)、出行时间、出行天数、出行预算、出行偏好(比如人文类、度假类、娱乐类、美食类,等等)、出行方式(比如自驾、公共交通等),等等。
45.s140:从预设的数据库中确定所述目标目的地对应的行程模板。
46.所述行程模板可以包括多个不同的环节,比如吃、喝、玩、乐,等等。在一些实施例中所述多个环节可以包括饮食环节、交通环节、景点环节、娱乐环节以及住宿环节中的多种。在一些实施例中,服务器300可以基于目标用户100的所述属性特征数据以及、所述目标目的地的所述位置数据,从上述多个环节中选定其中的两种或两种以上的环节组合生成所述目标目的地对应的行程模板。比如,服务器300可以基于预存的行程模板模型,确定所述行程模板所包含的多个环节。所述行程模板模型可以是基于历史行程数据预先训练好的模型。再比如,服务器300可以基于对历史行程数据的统计,确定所述行程模板所包含的多个环节。
47.在一些实施例中,服务器300中可以预先设定一种行程模板。所述行程模板中所包含的多个环节可以是上述多个环节中的任意多种环节的组合。在一些实施例中,服务器300中可以预先设定多种行程模板。不同的行程模板中所包含的环节是不同的。在一些实施例中,服务器300中可以预先设定每种行程模板所包括的所述多个环节的类型,比如,服务器300中可以设定第一种行程模板包含的多个环节是饮食环节、景点环节和娱乐环节,再比如,服务器300中可以设定第二种行程模板包含的多个环节是饮食环节、景点环节和住宿环节,等等。服务器300可以基于目标用户100的所述属性特征数据以及所述目标目的地的所述位置数据,从上述多种行程模板中选定一种作为所述目标目的地对应的行程模板。比如,服务器300可以基于预存的行程模板模型,确定所述目标目的地对应的行程模板。所述行程模板模型可以是基于历史行程数据预先训练好的模型。再比如,服务器300可以基于对历史行程数据的统计,确定所述目标目的地对应的行程模板。
48.综上所述,所述方法p100可以基于目标用户100的属性特征数据以及所述目标目的地的位置数据,为目标用户100定制行程模板中所包含的环节,充分考虑到不同用户的个性化差异,提升用户体验。比如,当属性特征数据为1日游时,所述行程模板中可以不包括住宿环节。再比如,当属性特征数据为自驾游时,所述行程模板中可以不包括交通环节。
49.在一些实施例中,步骤s140可以包括:对所述每个环节,基于目标用户100的所述属性特征数据以及所述目标目的地的位置数据,从所述数据库中选取与当前环节对应的所述至少一个候选对象。所述多个环节中的每个环节包括至少一个候选对象。所述至少一个候选对象可以是与当前环节相对应的可以作为备选的目标。比如,当前环节为餐饮环节时,当前环节对应的候选对象可以是符合餐饮类特征的对象。所述数据库中可以存储有多个候选对象。所述方法p100可以基于目标用户100的属性特征数据以及所述目标目的地的位置数据,从所述数据库中选取相匹配的所述至少一个候选对象。不同的用户所选定的候选对象也可能是不同的。
50.在一些实施例中,从所述数据库中选取与当前环节对应的所述至少一个候选对象可以包括:从所述数据库中获取所述至少一个候选对象中的每个候选对象的特征数据。所述特征数据可以包括位置数据以及点击率。所述点击率可以是基于所述每个候选对象历史点击率得到的。
51.在一些实施例中,所述多个环节按照预设规则依次排列。在一些实施例中,所述预设规则可以是预先设定好的排列顺序。在一些实施例中,服务器300可以基于历史行程数据预先确定所述排列顺序。在一些实施例中,所述预设规则可以是基于所述多个环节与所述目标目的地的距离设定的排列顺序。比如,服务器300可以基于每个环节中的至少一个候选对象的位置数据,确定所述至少一个候选对象的中心位置,从而确定多个环节对应的多个中心位置;进一步地,服务器300可以基于所述多个中心位置与所述目标目的地的距离由近到远生成所述排列顺序。在一些实施例中,所述预设规则可以是基于时间设定的排列顺序。需要说明的是,上面示出的实施例仅仅是关于预设规则的示例性说明,本领域技术人员应当明白,其他规则也在本说明书的保护范围内。
52.综上所述,所述方法p100可以基于目标用户100的属性特征数据以及所述目标目的地的位置数据,为目标用户100定制候选对象,充分考虑到不同用户的个性化差异,提升用户体验。比如,当属性特征数据为亲子游时,所述住宿环节中可以包括亲子酒店,等等。
53.如图3所示,所述方法p100还可以包括:s160:基于行程推荐模型,从所述每个环节的所述至少一个候选对象中确定推荐对象。
54.所述行程推荐模型可以是基于所述多个环节对应的多个推荐对象的组合点击率最大为优化目标,以及以目标约束函数为约束条件构建的。
55.为了方便描述,我们对所述行程推荐模型中的参数指标进行如下定义:k:所述目标目的地对应的行程模板中包括一次排列的k个环节;k:所述k个环节中的第k个环节,其中,;:第k个环节中所包含的至少一个候选对象的集合;:第k个环节中的第i个候选对象的点击率,其中;:第k-1个环节中的第i个候选对象与第k个环节中的第j个候选对象的距离,其中,;s:行程中需要考虑折返的环节,一般是行程模板中的多个环节中的最后一个环节,即s=k;d:距离阈值;t:预设阈值。
56.所述行程推荐模型的模型变量可以包括所述每个环节对应的所述推荐对象。所述模型变量可以表示为::是否将第k个环节中的第i个候选对象作为推荐对象,其中,可以表示
为以下公式:公式(1)所述组合点击率可以包括所述多个推荐对象的所述点击率的和与平均值中的至少一种。所述多个推荐对象的所述点击率的和可以表示为。所述多个推荐对象的所述点击率的平均值可以表示为。为了方便展示,下面的描述中我们将以所述组合点击率包括所述多个推荐对象的所述点击率的和为例进行描述。
57.所述行程模型的优化目标可以表示为::最大化多个推荐对象的组合点击率。
58.在一些实施例中,所述目标约束函数可以包括所述每个环节包括一个所述推荐对象。所述每个环节包括一个所述推荐对象可以表示为::每个环节包括一个推荐对象。
59.在一些实施例中,所述目标约束函数至少可以包括相邻环节对应的推荐对象之间的距离约束。所述相邻环节(第k-1个环节和第k个环节)对应的推荐对象之间的距离约束可以包括所述相邻环节(第k-1个环节和第k个环节)对应的推荐对象之间的距离在预设的距离阈值d内。所述相邻环节对应的推荐对象之间的距离可以是基于所述相邻环节(第k-1个环节和第k个环节)对应的推荐对象的所述位置数据得到的。具体地,所述相邻环节对应的推荐对象之间的距离约束可以表示为::相邻环节对应的推荐对象之间的距离在预设的距离阈值d内。
60.在一些实施例中,所述相邻环节对应的推荐对象之间的距离约束也可以表示为::当时,即第k-1个环节中的第i个候选对象和第k个环节中的第j个候选对象中的至少一个不是推荐对象时,这两个候选对象的距离在预设的距离阈值d外。
61.在一些实施例中,所述目标约束函数还可以包括折返约束。所述折返约束可以包括第一个环节(k=1)对应的推荐对象与最后一个环节(k=k)对应的推荐对象之间的距离
与所述第一个环节(k=1)对应的推荐对象与第二个环节(k=2)对应的推荐对象之间的距离的比例大于预设阈值t。其中,所述第一个环节(k=1)对应的推荐对象与所述最后一个环节(k=k)对应的推荐对象之间的距离是基于所述第一个环节(k=1)对应的推荐对象的所述位置数据与所述最后一个环节(k=k)对应的推荐对象的所述位置数据得到的。所述第一个环节(k=1)对应的推荐对象与所述第二个环节(k=2)对应的推荐对象之间的距离基于所述第一个环节(k=1)对应的推荐对象的所述位置数据与所述第二个环节(k=2)对应的推荐对象的所述位置数据得到的。具体地,所述折返约束可以表示为::折返约束。
62.综上所述,所述行程模型可以表示为:所述预设阈值t可以是任意正数,比如,预设阈值t可以是0.2,0.4,0.5,0.6,等等。预设阈值t还可以是任意更大或更小的正数。在一些实施例中,预设阈值t可以是0.5。所述预设阈值t可以是基于经验得到的,也可以是基于统计数据得到的,还可以是基于机器学习得到的。所述折返约束可以避免目标用户100在行程进行过程中发生频繁折返的现象,从而提升用户体验。
63.在一些实施例中,步骤s160可以包括:基于线性化处理,将所述目标约束函数转换为线性函数;以及基于松弛算法求解所述模型变量的整数规划问题,确定所述多个推荐对象。
64.为了加速所述行程模型的求解,所述方法p100可以对所述目标约束函数进行线性
化处理,从而将所述目标约束函数转换为线性函数。比如,在上述的相邻环节对应的推荐对象之间的距离约束中包含两个变量,分别是和,是一个二次非线性函数。为了加快求解速度,所述方法p100可以基于线性化处理,将上述相邻环节对应的推荐对象之间的距离约束转换为基于和的线性函数。线性化处理后,相邻环节对应的推荐对象之间的距离约束可以表示为::相邻环节对应的推荐对象之间的距离在预设的距离阈值d内。
65.其中,m为极大常数。
66.同样的方式,线性化处理后,上述折返约束可以表示为::折返约束。
67.综上所述,所述行程模型可以表示为:在对行程模型求解时,为了加快求解速度,所述方法p100可以基于松弛算法,将决策变量的0-1的整数规划问题放松为0-1之间的连续问题,直接将0-1整数变量松弛为[0,1]连续变量的下界,使得问题被分解,进而大大简化原问题。所述松弛算法可以在原0-1的整数规划问题无解时得到略微违反约束的次优解,克服传统技术中无法求解的问题,同时使行程模型在复杂约束下也能快速求解。
[0068]
综上所述,步骤s160中在对行程模型求解时不仅可以使用线性化处理加快求解速度,还可以基于松弛算法将整数变量放松为连续变量,在原问题无解时得到略微违反约束的次优解,解决硬规则下无解的问题,同时加快求解速度。所述方法p100可以提高行程推荐的计算速度,以实现实时求解的性能,从而可以应用于实时行程推荐的场景,提升用户体验感。
[0069]
如图3所示,所述方法p100还可以包括:s180:基于所述多个推荐对象生成推荐行程。
[0070]
所述方法p100可以基于所述多个环节的排列顺序,将每个环节对应的推荐对象按照所述多个环节的排列顺序进行排序,组合生成推荐行程。服务器300可以将所述推荐行程发送给客户端200,客户端200可以向目标用户100显示所述推荐行程。在一些实施例中,所述方法p100可以生成一种推荐行程,在一些实施例中,所述方法p100可以生成多种推荐行程。
[0071]
综上所述,本说明书提供了一种行程推荐的方法p100以及系统001,以推荐行程中不同环节对应的推荐对象的组合点击率最大为优化目标,并以不同环节对应的推荐对象之间的关系为约束条件(比如距离约束、折返约束,等等),来构建行程推荐模型,以获取每个环节对应的推荐对象,并给予多个环节的推荐对象生成推荐行程,使得在复杂的场景下,获取更优的推荐行程,避免因距离太远或频繁折返带来的麻烦,以提升用户体验。同时,本说明书提供的行程推荐的方法p100和系统001,在对行程推荐模型求解时,可以使用线性化处理方式来处理约束条件加快求解速度,同时还可以使用松弛算法来求解整数规划问题,使行程模型在复杂约束下依然可以求解。本说明书提供的行程推荐的方法p100和系统001能够实现实时的行程推荐计算,在节省计算量的同时,提升计算速度和提升用户体验。同时,本说明书提供的行程推荐的方法p100和系统001可以基于目标用户100的属性特征数据以及目标目的地的位置数据从数据库中筛选各环节,以及各个环节中的候选对象,以更贴近目标用户100的需求,实现定制化的行程推荐,提升用户体验,增加用户粘性。
[0072]
本说明书另一方面提供一种非暂时性存储介质,存储有至少一组用来进行行程推荐的可执行指令。当所述可执行指令被处理器执行时,所述可执行指令指导所述处理器实施本说明书所述的行程推荐的方法p100的步骤。在一些可能的实施方式中,本说明书的各个方面还可以实现为一种程序产品的形式,其包括程序代码。当所述程序产品在计算设备600上运行时,所述程序代码用于使计算设备600执行本说明书描述的行程推荐的方法p100的步骤。用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(cd-rom)包括程序代码,并可以在计算设备600上运行。然而,本说明书的程序产品不限于此,在本说明书中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统使用或者与其结合使用。所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本说明书操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码
可以完全地在计算设备600上执行、部分地在计算设备600上执行、作为一个独立的软件包执行、部分在计算设备600上部分在远程计算设备上执行、或者完全在远程计算设备上执行。
[0073]
上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者是可能有利的。
[0074]
综上所述,在阅读本详细公开内容之后,本领域技术人员可以明白,前述详细公开内容可以仅以示例的方式呈现,并且可以不是限制性的。尽管这里没有明确说明,本领域技术人员可以理解本说明书需求囊括对实施例的各种合理改变,改进和修改。这些改变,改进和修改旨在由本说明书提出,并且在本说明书的示例性实施例的精神和范围内。
[0075]
此外,本说明书中的某些术语已被用于描述本说明书的实施例。例如,“一个实施例”,“实施例”和/或“一些实施例”意味着结合该实施例描述的特定特征,结构或特性可以包括在本说明书的至少一个实施例中。因此,可以强调并且应当理解,在本说明书的各个部分中对“实施例”或“一个实施例”或“替代实施例”的两个或更多个引用不一定都指代相同的实施例。此外,特定特征,结构或特性可以在本说明书的一个或多个实施例中适当地组合。
[0076]
应当理解,在本说明书的实施例的前述描述中,为了帮助理解一个特征,出于简化本说明书的目的,本说明书将各种特征组合在单个实施例、附图或其描述中。然而,这并不是说这些特征的组合是必须的,本领域技术人员在阅读本说明书的时候完全有可能将其中一部分设备标注出来作为单独的实施例来理解。也就是说,本说明书中的实施例也可以理解为多个次级实施例的整合。而每个次级实施例的内容在于少于单个前述公开实施例的所有特征的时候也是成立的。
[0077]
本文引用的每个专利,专利申请,专利申请的出版物和其他材料,例如文章,书籍,说明书,出版物,文件,物品等,可以通过引用结合于此。用于所有目的全部内容,除了与其相关的任何起诉文件历史,可能与本文件不一致或相冲突的任何相同的,或者任何可能对权利要求的最宽范围具有限制性影响的任何相同的起诉文件历史。现在或以后与本文件相关联。举例来说,如果在与任何所包含的材料相关联的术语的描述、定义和/或使用与本文档相关的术语、描述、定义和/或之间存在任何不一致或冲突时,使用本文件中的术语为准。
[0078]
最后,应理解,本文公开的申请的实施方案是对本说明书的实施方案的原理的说明。其他修改后的实施例也在本说明书的范围内。因此,本说明书披露的实施例仅仅作为示例而非限制。本领域技术人员可以根据本说明书中的实施例采取替代配置来实现本说明书中的申请。因此,本说明书的实施例不限于申请中被精确地描述过的实施例。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1