一种基于司机特征的车辆匹配推荐方法与流程

文档序号:18415322发布日期:2019-08-13 19:19阅读:294来源:国知局
一种基于司机特征的车辆匹配推荐方法与流程

本发明属于数据处理领域或物流调度领域,特别涉及一种车辆推荐匹配技术。



背景技术:

随着移动互联网的快速发展,诸如快递、配送、外卖等物流业务逐渐成为人们生活中不可缺少的一部分,为人们的生活消费提供便利。在一种应用场景下,用户通过终端订购运输服务,用户的订单会通过系统推送至可以接单的司机群体,最终由司机选择自己所要完成的订单。

在这一情况中,为了快速完成订单目标,现行的技术一般是由系统将距离司机较近的订单推送给司机,这样订单被司机选择的可能性较高。但在实际的配送过程中,司机作为任务的接受方所考虑的问题并不仅仅是能否快速的得到订单,订单的距离、将前往的城市、路线情况等等因素都会影响司机的选择。

这表明司机作为订单的实际完成人员,其自身的行为特征将会对订单能否快速完成、平台能否收到更好的回报有着至关重要的作用。例如:部分司机不擅长远距离运输,如果系统频繁给予这类司机远距离订单会导致订单接受率降低,最终影响整个系统的订单完成情况,使得司机利用率低下、系统运转缓慢。

申请号为201711433479.8的《一种订单分配方法及装置、电子设备》提出了根据订单特征信息和当前可提供服务的司机特征信息,采用不同的订单分配策略将订单分配给司机,根据每个订单分配策略下所有司机的评价指标综合来进行订单的分配;但是该专利是以司机的最大收益作为订单分配策略的决策方法,并不能提升物流调度的效率。



技术实现要素:

为了解决上述技术问题,本发明提出一种基于司机特征的车辆匹配推荐方法,以司机对订单的选择性与完成后的反馈作为订单分配策略的方法,最大程度地提升物流调度效率。

本发明采用的技术方案为:一种基于司机特征的车辆匹配推荐方法,包括:

s1、读取数据库中的司机历史信息,将与司机特征相关的原始数据清洗后存放在关系型数据库中;

s2、通过对每个司机不同维度特征进行分析,建立多维司机特征数据模型,根据多维司机特征数据模型生成各个司机不同维度的初始数据;

s3、根据运输需求,对司机特征进行多层赋权筛选,得到司机车辆初选列表;

s4、根据实时定位,额外获取与司机初选列表数量相同的在运输订单的货源附近的司机车辆;

s5、将步骤s4得到的司机车辆与步骤s3的司机车辆初选列表,进行分层排序,得到司机推荐列表,将司机推荐列表推荐给用户;

s6、根据用户反馈进行修正;

s7、将请求过的运输订单信息与对应的步骤s5得到的司机推荐列表建立双向缓冲;具体包括:对每个运输订单建立司机缓存,对每个司机建立运输订单缓存;所述司机缓存用于存储该运输订单可以推荐的司机车辆信息;所述运输订单缓存用于存储该司机可接受的运输订单信息。

进一步地,步骤s2所述多维司机特征数据,具体包括:

货主与司机之间的熟车关系、司机喜爱的接单时间倾向、司机的驾驶经验、司机的接单价格倾向、车辆的基本信息、司机运输活跃区域、司机实时状态。

进一步地,步骤s3具体包括以下分步骤:

s31、根据车辆的基本信息以及系统生成的司机黑名单记录筛选与运输订单的货源最匹配的若干司机车辆;所述车辆的基本信息包括:车型、总里程、实时状态;

s32、在步骤s31筛选得到的车辆范围内,根据司机与货主之间的熟车关系、司机偏好接单时间、司机活跃地区这三个特征数据进行再次筛选,筛选得到的司机车辆数目为步骤s31筛选得到司机车辆数目的60%;

s33、通过司机特征关联度值计算方法,计算得到司机与运输订单的货源的关联度值;

s34、在步骤s32筛选得到的车辆范围内,根据车辆平均里程、司机的接单价格倾向这两个特征数据与步骤s33计算得到的关联度值结合,再次进行筛选,最终筛选得到的司机车辆数目为步骤s32筛选得到的司机车辆总数的10%,根据当前筛选得到的司机车辆生成推荐司机的初选列表。

更进一步地,步骤s33的关联度值计算过程为:

a1、通过获取司机用户对历史订单的评价,生成关联度矩阵为:

m=p·q

其中,m表示司机与运输订单的关联度,p表示司机用户矩阵,q表示运输订单的特征矩阵;

a2、引入如下偏置部分:

bij=μ+bi+bj

其中,μ表示训练集中所有评分记录的全局平均数,bi表示用户的选择偏向,bj表示运输订单被选择的可能;

a3、根据历史数据对目标函数进行训练;

其中,λ表示目标函数学习率,pi表示矩阵p中的元素,qj表示矩阵q中的元素;

a4、根据步骤a3的训练得到矩阵p、q;

a5、有运输需求的货源信息转化为特征矩阵,通过计算该特征矩阵与q矩阵的余弦相似度矩阵的最大值,得到最大值下标i对应的qi,

a6、通过将步骤a5得到的qi与步骤a4得到的矩阵p作点积,得到所有司机与运输订单的关联度值。

进一步地,步骤s5具体为:

若步骤s4得到的司机车辆与步骤s3得到的司机车辆初选列表,存在有相同的车辆,则将相同的车辆按先后顺序排在推荐列表的第一部分,剩余的步骤s3得到的司机车辆排在推荐列表的第二部分,剩余的步骤s4得到的司机车辆排在推荐列表的第三部分;

若步骤s4得到的司机车辆与步骤s3得到的司机车辆初选列表,没有相同的司机车辆,则将步骤s3得到的司机车辆的前50%排在推荐列表的第一部分,步骤s4得到的司机车辆的前50%排在推荐列表的第二部分,步骤s3得到的司机车辆的后50%排在推荐列表的第三部分,步骤s4得到的司机车辆的后50%排在推荐列表的第四部分。

进一步地,步骤s7具体为:

s71、判断运输订单是否被接受,若未被接受则建立司机车辆缓存;

s72、将推荐的司机车辆加入缓存,再次请求司机车辆时则直接从司机车辆缓存中读取数据;

s73、对每个司机用户建立订单缓存,当有运输订单请求时,则将运输订单加入运输订单缓存;

s74、司机查看可用运输订单时,根据缓存中的运输订单状态,显示还未被接受的运输订单。

本发明的有益效果:本发明通过对司机的不同维度特征进行分析,建立多维司机特征数据模型,当系统中有新的有运输需求的货源时,可以根据建立的特征数据模型,快速响应,实时推荐出符合要求、更易达成订单交易的司机车辆列表,这种个性化和精准化的方式能够有效的提高交易成交几率、减少用户的等待时间及订单交涉的时间,实现提升用户体验的目标;本发明具备以下优点:

1、提出了司机特征关联度值计算方法,来获取物流订单与司机车辆之间的关联关系;

2、采用了三层筛选来确保司机接受订单的可能性;第一层主要考虑了司机画像特征,通过对司机进行画像建模可以有效得出司机的行车特征,例如路线选择、区域熟悉度等,其目的主要在于通过司机对订单的兴趣程度来确保订单建立;第二层为保障订单的被选择率,加入距离订单最近的司机,这一步与传统的方式相同,考虑到了很多司机会优先选择距离自己近的订单;第三层筛选是一个修正形式的筛选,主要对车辆信息、用户黑名单等硬性要求进行筛选,防止出现订单与用户要求不一致;

3、对每个运输订单建立司机缓存,对每个司机建立运输订单缓存;司机用户查看订单时,系统首先直接从缓存中获得曾经推送过的订单,然后更新订单接受状态,重新推荐给司机,避免了每次都需要进行关联度计算带来的大额开销;而订单发布方在发布订单后,若未被第一时间接受需要再次推送时,也不用再去计算,而是从缓存中拉取可以推荐的司机用户,判断司机在岗状态进行再次推送。

附图说明

图1为本发明的方案流程图。

具体实施方式

为便于本领域技术人员理解本发明的技术内容,下面结合附图对本发明内容进一步阐释。

如图1所示为本发明的方案流程图,本发明的一种基于司机特征的车辆匹配推荐方法,包括:

s1、读取数据库中的司机历史信息,将与司机特征相关的原始数据清洗后存放在关系型数据库中,还包括对缺失数据调用相关接口进行补齐;

s2、通过对每个司机不同维度特征进行分析,建立多维司机特征数据模型,根据多维司机特征数据模型生成各个司机不同维度的初始数据;

s3、根据运输需求,对司机特征进行多层赋权筛选,得到司机车辆初选列表;

s4、根据实时定位,额外获取与司机初选列表数量相同的在运输订单的货源附近的司机车辆;

s5、将步骤s4得到的司机车辆与步骤s3的司机车辆初选列表,进行分层排序,得到司机推荐列表,将司机推荐列表推荐给用户;

s6、根据用户反馈进行修正;

s7、将请求过的运输订单信息与对应的步骤s5得到的司机推荐列表建立双向缓冲。

步骤s3具体过程为:

s31、根据步骤s2中建立的多维司机特征数据模型生成的数据,将车型、总里程、实时状态(在订单状态或者空闲状态)以及系统生成的黑名单记录筛选与有运输需求的货源最匹配的若干司机车辆m1。

s32、在步骤s31筛选得到的车辆m1内,通过步骤s2建立得到的司机与货主之间的熟车关系、司机偏好接单时间、司机活跃地区这三个特征数据再次筛选与有运输需求的货源最匹配车辆m1的前60%的车辆(司机)m2。

s33、通过司机特征关联度值计算方法计算得到司机与有运输需求的货源的关联度值:

a.根据运输订单信息生成订单特征矩阵;

b.计算司机用户特征矩阵与订单特征矩阵的点积获得关联度预测值。

在本发明中关联度计算采用机器学习式的训练-预测方式,在步骤s33中使用,即每隔一定时间执行训练过程获得最新的关联度模型,当有订单需要派发的时候使用训练好的模型直接获得目标司机群体。训练过程采用以下方式进行:

本发明首先获取司机对历史订单的评价,生成评价矩阵m。假定矩阵m可以被分解为:

本实施例中司机对历史订单的评价包括:1.总体订单满意程度;2.订单报酬满意程度;3.订单路途道路熟悉程度;4.订单交接顺利程度;5.订单所行距离是否适合;6.自定义格式的反馈内容。

本发明将p矩阵视为司机特征矩阵,q矩阵视为订单特征矩阵,则当系统需要计算第i个司机与第j个订单的关联度的时候,可以通过mij=pi×qj获得。

本发明还引进独立于司机用户或独立于订单的因素,称其为偏置部分。偏置部分主要由三个子部分组成,分别是:

1.训练集中所有评分记录的全局平均数μ,表示了训练数据的总体评分情况,对于固定的数据集,它是一个常数。

2.用户偏置bi,独立于订单特征的因素,表示某一特定用户的选择偏向。

3.物品偏置bj,特立于用户兴趣的因素,表示某一特定订单被选择的可能。

则偏置部分可数学表示为:

bij=μ+bi+bj

本实施例中给出计算μ,bi,bj的一种实现方法,假设存在以下的内容:

订单的反馈内容有一个总体订单满意程度以及用户对订单的反馈内容,总计包括以下3项:

1、订单报酬满意程度

2、订单路途道路熟悉程度

3、订单交接顺利程度

以上3项,每一项可设置评分区间为0-10分。

经过统计一段时期后可得用户与订单内容无关的特征:

1、平均每周接单次数

2、平均接单时间点(采集每次接单的时间,取时钟部分计算可得)

3、该时期总接单次数

总共有100个历史订单,20个司机。

μ的计算通过计算100个历史订单的总体订单满意程度的平均值得到。

bi的计算通过计算用户与订单内容无关的特征,i表示第i个司机,假设司机存在上述的三个订单无关特征,则可以采用(v1+v2+v3)/3的方法来获得,也可以采用(k1*v1+k2*v2+k3*v3)/3的方式,(k1、k2、k3给默认值1.0)的方式计算。

bj的计算通过计算订单反馈内容可得,j表示序号为j的订单,序号j的订单有3个订单回馈内容评分,则可以采用类似bi的方式可到。

本发明采用以下的目标函数进行训练:

其中,偏置项采用以下的方式进行迭代更新:

其中,λ和α分别是目标函数与偏置项的学习速率,是一个常量。通过迭代最终可以得到p和q矩阵用于后续订单来的时候进行计算。当有新订单来时,将订单转化为特征矩阵i,使用以下的方式获得与q矩阵的余弦相似度矩阵d:

取d矩阵中最大值的下标i所对应的qi与用户矩阵p作点积来得到该订单与所有司机用户二点关联度:

m=p·qi

s34、在步骤s32筛选得到的车辆m2范围内,通过步骤s2建立得到的车辆平均里程、司机平均每公里运费这两个特征数据与步骤s33计算得到的关联度值结合再次进行筛选与有运输需求的货源最匹配的前10%的车辆(司机)m3,生成推荐司机的初选列表。

在步骤s31、s32、s34中均涉及对司机车辆的筛选,本实施例以步骤s34为例,提供一种筛选实现方式:比如假设步骤s32获得200辆车(即m2=200),在步骤s34中计算订单预计里程与司机的平均里程的差值的绝对值,获得差值后,对差值进行排序,取总车辆200辆的前80%的车辆(160),之后计算订单心理价位与司机平均每公里运费的差值,获得差值后,对160辆车取总车辆200辆的60%的车辆(120),最后对120辆车辆根据关联度排序,取总车辆200辆的10%(即得到20辆车),得到步骤s3的司机车辆初选列表;本实施例中每次均以步骤s32获取的200辆车为基数进行计算,避免最终筛选得到的车辆过少。

步骤s5具体为:

比较步骤s4得到的车辆与步骤s3得到的车辆,若有相同的车辆,则按先后顺序排在推荐列表中的第一部分,剩余的步骤s3得到的车辆排在推荐列表中的第二部分,剩余的步骤s4得到的车辆排在推荐列表中的第三部分;

比较步骤s4得到的车辆与步骤s3得到的车辆,若没有相同的车辆,则将步骤s3得到的车辆的前50%排在推荐列表中的第一部分,步骤s4得到的车辆的前50%排在推荐列表中的第二部分,步骤s3得到的车辆的后50%排在推荐列表中的第三部分,步骤s4得到的车辆的后50%排在推荐列表中的第四部分。

步骤s6具体为:

s61、调整筛选权重,对推荐算法做进一步的完善;比如:采集近期(一个月)的司机历史订单数据,根据历史订单反馈信息重新生成司机的特征矩阵p,将该矩阵用于关联度矩阵计算,获得新的矩阵p、q用于接下来一个月的订单推荐时候的关联度计算。

s62、对车辆信息有误或者司机信息有误的情况,修正平台中存储的错误信息;

s63、对于特定司机,如有多个订单推荐但没有任何反馈的司机,对这类司机生成黑名单,不再进行相关推荐。

步骤s7将短时间内请求过的运输订单信息与对应的步骤s5得到的司机推荐列表建立双向缓冲。具体为:

a、判断订单是否被接受,若未被接受则建立司机缓存;

b、将推荐的司机加入缓存,如若需要再次请求司机时则直接从司机缓存中读取;

c、对每个司机用户建立订单缓存,当有订单被推送来时,则将订单加入订单缓存;

d、司机查看可用订单时,考察缓存中的订单状态,显示还未被接受的订单。

这里考虑的短时间在实际中对于每个订单的缓存失效时间都不一样,失效时间都是一个范围内随机值,可以在一定程度上减少缓存同时失效。本实施例中建议通常情况下设置为1小时。

设置的合适的周期,将步骤s1~s2周期性的执行,以更新特征数据库。当系统中有新的运输需求时,即会触发步骤s3~s7。

其中设置周期的大小需要结合具体业务的情况,且需要一定时间的探求才能达到较好的设置效果。若不经过分析实践就随意设置,会致使特征数据更新的时间过长,反映司机的特征信息不可靠,直接影响推荐算法的准确度和采用率;反之若设置的更新周期过短,则会很频繁的进行数据更新操作,这个时候推荐就会不准确,因为数据已经过时了。因此对于不同业务类型、规模、领域的平台来说,设置的周期要通过长时间的测试去探求。

在本发明中,主要采用了三层筛选来确保司机接受订单的可能性。由步骤s2可知,第一层主要考虑了司机画像特征,通过对司机进行画像建模可以有效得出司机的行车特征,例如路线选择、区域熟悉度等,其目的主要在于通过司机对订单的兴趣程度来确保订单建立。第二层为保障订单的被选择率,加入距离订单最近的司机,这一步与传统的方式相同,考虑到了很多司机会优先选择距离自己近的订单。第三层筛选是一个修正形式的筛选。主要对车辆信息、用户黑名单等硬性要求进行筛选,防止出现订单与用户要求不一致。

通过步骤s7的这种高可用性的推荐缓存方法,有效的减少了推荐时间。司机用户查看订单时,系统首先直接从缓存中获得曾经推送过的订单,然后更新订单接受状态,重新推荐给司机,避免了每次都需要进行关联度计算带来的大额开销。而订单发布方在发布订单后,若未被第一时间接受需要再次推送时,也不用再去计算,而是从缓存中拉取可以推荐的司机用户,判断司机在岗状态进行再次推送。总的而言,本发明提供的缓存方法具有以下特点:

高性能:根据预设的短时间额度,会将缓存中超过时间额度的运输请求信息和对应的推荐信息删除,同时会将新的在时间额度内的运输请求信息和对应的推荐信息存入。通过上述的方式不断的更新,使得缓存中的数据始终是可信的,显著减少了不必要的推荐时间。

动态扩展性:该方法将短时间内推荐的司机信息结果列表写入缓存,并且将短时间内请求过的订单信息与推荐的司机列表建立关系。

高可用性:当系统中有新的货源运输请求时,首先从缓存中查找是否短期内存在重复的货源运输请求,如果存在则直接从缓存中获取对应的推荐司机信息,无需进行重新推荐,减少不必要的运行时间,提高用户的平台使用感。

本发明所有运算以及司机推荐发过程均在服务器中进行。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

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