疫情下的思考:末端派送热点识别实践

距离快递网点复工已有一月的时间,自2月至今,部分省市所需处理的包裹数量近乎“双十一”。大量快递需要尽快消化,快递末端正面临着严峻的考验:小区禁入,露天摆放,限时派送。大部分小区的快递小哥只能在每社区门口停留两个小时,时间到了就必须前往下一个派送社区,在这种派送条件下,快递小哥每天派送的件量有限,派送的时间长,只能加班加点的工作。

通过科技手段,聚合识别每个小区的快件,能在一定程度上节省派件员的一些时间,减轻末端压力。

背景分析

一般来说,一件快递在客户下单后,会经历如下的环节:
疫情下的思考:末端派送热点识别实践

目前,在中通快递系统运营中,广泛采用三段码来进行快递的分拣分派,在订单进入我们的快递运单系统那一刻起,就会生成三段码信息。
疫情下的思考:末端派送热点识别实践

其中,一段码标识目标城市,二段码标识派件网点,三段码标识派件员,根据如上运单上的三段码能够有效的将一件快递分配到末端派件网点的派件员,派件员分配到当天的派送件后,再根据具体的地址进行派送。

一般来说,在快递量不是很多的情况下,快递员能够在当天的快递到达后,对自己要派送的快件根据具体地址做分拣分别派送,绝大多数情况下可以及时的完成快递的派件工作。

但是,随着公司快递业务量的快速增长,快递员的派送量在不断增多。
疫情下的思考:末端派送热点识别实践

特别是双十一,618等电商购物节日的兴起。快递员的派件量成倍的增长。由此导致派件压力不断增大,部分快递不能及时送达用户,许多快递员在晚上9点后依然在辛苦的派件,不可避免导致了部分用户体验下降,一线派件员也面临着很多投诉问题。

怎样减轻末端网点、快递小哥的派送压力,提升末端网点的派送效率,是一个急需解决的问题。

需求分析

要解决末端派送的压力,首先要了解末端派件网点,派件员的派件量和派件结构,不同的地方派送量不一样,有些派件量大,有些派件量小。那么首要问题是找出末端的派送热点。从而有针对性的采取下一步措施。

要找出派送热点,就需要能够把快递件量能够具体的聚合到末端派送热点上面去:比如:xx小区当天派件量多少件,xx大厦当天派件量多少件等。

在我国的行政区划体系中,主干地址层级大体遵循如下标准:xx省xx市xx区xx街道xx路xx号,一般来说,我们所说的末端地址基本上由如上地址标识。

例如:中通快递集团总部 地址为上海市青浦区华新镇华志路1685号

但目前,系统中地址库只有标准的省市区3级地址,无法实现到末端热点级别的派件分析,怎样实现对末端热点的件量聚集,是面临的首要难题。

开发迭代

数据初探
通过对系统中收件地址的分析,发现通常情况下一个地址由主干地址+详细地址组成.
疫情下的思考:末端派送热点识别实践

派件员日常派送中,一个或者相邻几个主干地址的快递通常先分拣在一起派送。这个主干地址派件量超过一定件量的地方就是我们的派件热点。那么我们要处理的问题即把派件量聚合在主干地址上。

技术迭代路径
要实现主干地址的派件量聚合,最早也是最容易考虑的利用规则,选取主干地址,对数据进行分组聚合,件量超过一定数量的为此地址打上热点的标记。根据抽样测试数据进行统计,大概60%左右的数据能够被比较准确的解析出来。对未能够达到准确度要求的数据进行分析,发现存在很多的数据问题。

具体主要表现如下:
疫情下的思考:末端派送热点识别实践

地址上海市青浦区华新镇华志路1685号的实际快递运单填写地址就有如下等情况:
疫情下的思考:末端派送热点识别实践

这样简单的数据规则化清洗会导致同一个地址的快递无法聚合到同一个热点上或者聚合到错误的热点上,导致部分热点无法准确标记出来,更有甚者会标记出错误的派件热点。

基于字典的分词算法+百度地图api解析的结合
于是考虑在自有数据清洗聚合基础上,采取基于字典的分词算法,结合百度地图api进行末端热点地址的聚合处理。

地址和一般的中文语句相比有一定的特殊性:

  1. 含有有限的可列举的地理层级名称
  2. 较少含有名词外的其他动词,语气词等

所以,对于4级地址,利用python中文分词库jieba分词,结合从国家民政局获取的标准省市区街道4级地址作为自定义词典,生成标准的4级地址。对于其他地址采用基于统计的算法进行分词,并利用树结构衡量地址相似性尽可能在相似的派件地址上积聚结构化数据。

对于未能够通过模型进行标准化结构化的地址,我们采用百度地图服务进行地址结构化。百度提供了正逆地址解析接口能够将一个输入的地址获取经纬度,并输出结构化的地址

百度地图api,调用地理编码接口,可以获得经纬度信息:
疫情下的思考:末端派送热点识别实践
调用逆地址解析功能,可以把经纬度解析为详细的结构化地址:

疫情下的思考:末端派送热点识别实践
对于百度地图api的解析数据,地址准确性校验也是非常重要的一环,但怎样进行校验呢?虽然百度地图提供了相应的置信度字段来描述地址理解程度,但其也只是一个概率的估计,不能完全依赖其作为判断标准,需要有自己额外的一些校验标准,来验证数据的准确性。

目前省市区三级地址的标准化已经投入生产使用,像三段码的生成就是基于3级的标准地址库。经过实际生产数据的检验,准确率高达99.99%,所以进一步校验省市区3级地址的解析是否准确。

在一件快递派送后,我们很多派送快递都放在快递柜中,相同的快递柜的件量应该属于相同的小区,所以可以结合快递柜的地址维表来进行校验。

综上,结合具体业务场景和具体实际情况,最终我们使用如下的校验方案:

1.根据对百度解析数据的分析,我们选择comprehension>=90 作为判断是否准确的依据。
疫情下的思考:末端派送热点识别实践

2.自有3级标准地址库核对,解析后省市区和订单表中的省市区一致的确认为解析成功。
3.快递柜地址校验:放入相同快递柜的件应该有相同的末端派件6级地址。

经过对数据结果进行评估,发现百度地图地址编码的解析准确率和输入的源数据之间呈现正相关关系,源数据比较规范的数据,百度地图识别准确度就高,不规范的数据,百度地图识别准确度低。于是考虑采用深度学习算法对相关地址进行进一步的规范化。

深度学习模型进行地址解析+百度地图api解析的结合

在如上方案后,进一步采用深度学习的文本处理方法对地址进行标准化的处理。我们前面讲到,地址相较于其他中文文本数据,可以有限列举的层级和比较少的非地址名称,可以先采用分词结合地名字典的方法,积累标准数据集,然后结合已经生成的地址库构建深度学习算法模型,进而对地址进行解析。主要思想是使用RNN结构并结合CRF来进行地址的识别分类,然后采用深度学习的文本分类,将提取到的特征分到对应的类别。

首先对派件地址进行embedding,先采用jieba分词进行基本的规则清洗后,将派件地址序列初始化为embedding矩阵,即将句子中的每个词由one-hot 向量映射为低维稠密的字向量character embedding.
疫情下的思考:末端派送热点识别实践

然后采用双向LSTM提取句子特征。将一个句子的各个字的char embedding序列作为双向LSTM的输入,再将双向LSTM输出的隐状态序列接入一个tanh层,将隐状态向量从 nn维映射到 mm 维,mm是标注集的标签数,从而得到自动提取的句子特征,此时是对每个输入的单词的一个打分的结果,但无法利用已经标注过的信息,再考虑将BiLSTM层预测的得分输入CRF层进行句子级别的序列标注,具有最高得分的标签序列将是模型预测的最好结果。

模型如下:
疫情下的思考:末端派送热点识别实践
最后使用分类算法,将提取到的特征分到对应的类别。训练时会将整个数据集按8:1:1的比例进行划分,拿出80%的文本进行训练,训练完成后用10%进行验证,剩下的10%进行测试,不停的调整参数来达到最优的结果。

总的步骤如下:
疫情下的思考:末端派送热点识别实践
在算法模型标准化后的数据,调用百度地图api进行解析,然后对比算法模型和百度地图api的解析结果,对解析出来的结构化地址进行完整度评分,以评分高的作为标准派件地址。

最终整体的技术方案如下图:
疫情下的思考:末端派送热点识别实践

根据如上的方案,中心城市末端派件热点覆盖度超过85%,随着地址库数据的累积,标准的结构化地址越来越多,末端派件热点的覆盖度将会进一步提升。

应用

对于末端派件员来说,每天的主要工作包括以下3个环节:
快递包裹分拣+快递包裹运送+投递签收(代收或者本人签收)=快递派送总时间
疫情下的思考:末端派送热点识别实践
目前在中通慧眼中已经上线派件热点地图服务,为末端快递柜合理选址提供数据支持。

图:快递末端派件热点地图
疫情下的思考:末端派送热点识别实践

目前快递到达末端网点后,需要派件员去进行相应的快递包裹的分拣,耗费大量时间,根据测算,包裹分拣的时间占到每天工作时间的20%以上,后续结合大数据分析,利用标准化后的派件地址先进行派件热点包裹的聚合,预计可以减少60%以上的分拣时间,也可以利用结构化的快件热点结合算法为快递员合理规划派件范围和派件路径规划提供助力。

通过如上应用的落地,最终确切的赋能末端,减少末端派送压力。