哈希学习在电动汽车共享充电桩推荐中的应用研究:一种快速推荐算法
作者: 徐晖 游凤芹
摘要:针对现有电动汽车共享充电桩推荐算法在大数据场景下存在耗时问题,本文提出一种基于哈希学习的快速推荐算法。该算法首先采集目标范围内充电桩的用户偏好因素,并利用监督离散哈希学习模型进行训练,得到一组能够保持原始空间语义相似性的二值哈希编码。然后,在汉明空间内进行特征匹配,实现快速推荐。实验结果表明,相较于传统方法,本文方法能够显著提高私人共享充电桩的推荐速度。
关键词:哈希学习;电动汽车;充电桩推荐;特征匹配
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2025)04-0047-04 开放科学(资源服务) 标识码(OSID) :
0 引言
为了缓解公共充电桩供应量不足与电动汽车充电需求强烈之间的矛盾,工业界提出将现有的闲置私人充电桩与公共充电桩组成联盟,并纳入共享充电服务体系,使私人充电桩和公共充电桩共同为公众提供服务。目前,电动汽车市场和充电基础设施建设正处于快速发展阶段,国家政策也对新能源汽车和充电设施给予了大力扶持,因此电动汽车和充电桩的数量均呈现出快速增长的态势。截至2023年底,全国新能源汽车保有量已达2 041万辆,而充电基础设施总量达859.6万台。
在充电桩推荐策略方面,目前已取得了一定的研究进展。孙哲等[1]提出的充电桩推荐算法的第一步是获取用户准确的地理位置,随后根据该位置获取用户一定范围内的充电桩编号,并对充电桩的声誉值、充电单价、距离、等待时间等因素赋予权重,计算每个充电桩的综合评分,从而为用户推荐最佳充电桩。QiaoG H等[2]提出了一种两阶段的异构充电桩与电动汽车匹配方案,首先根据电动汽车的充电需求建立第一阶段的双边匹配结果,然后在此基础上根据系统总体效用重新分配第一阶段的匹配结果,从而降低匹配过程的复杂度并提高系统效用。
随着研究的深入与成熟,深度学习技术也逐渐被应用到充电桩推荐领域中。贾鉴等[3]采用双阶段注意力机制的循环神经网络,提出了基于车辆行驶轨迹预测的充电桩推荐方法。LI Yujing等[4]则采用深度学习方法对到达充电站的车辆数量进行实时预测,结合协同过滤推荐算法,综合考虑用户选择偏好,为用户提供充电桩推荐服务。
然而,电动汽车和私人充电桩数量的急剧增长使得充电桩推荐存在一定的时延问题。在海量数据面前,信息量的激增使得充电桩推荐的时效性成为一项新的挑战。现有的充电桩推荐算法大多集中于某一方向的优化,例如降低充电价格或提升实时性,但在推荐的时效性方面则鲜有深入研究。
为了解决上述问题,本文利用哈希学习强大的学习能力及其在检索速度和存储开销方面的优越性能,提出了一种基于哈希学习的电动汽车充电桩推荐算法。
1 哈希学习
哈希学习[5]自2007年推广到机器学习领域以来,迅速发展成为机器学习和大数据学习领域的研究热点。哈希学习通过机器学习机制[6]将数据映射为二进制串形式,在保持数据相似性的同时,将高维特征映射到低维的哈希码。由于哈希码只有-1或1两种取值,且哈希码的位数一般较少,因此使用哈希码表示数据后,所需的存储空间会被大幅减少,同时计算效率也会显著提高[7]。
根据学习过程中是否利用原始数据的监督信息(如类别标记等) ,现有的哈希学习方法可以分为非监督哈希和监督哈希。非监督哈希学习保存了原始特征空间中的度量结构,这种度量结构一般是指阿基米德距离,但没有使用任何监督(标签) 信息。然而,原始特征空间的距离度量不能很好地保持语义相似性。而监督哈希学习利用了监督(标签) 信息,从而保存了原始数据的语义结构。监督信息可以有3种表现形式:点标签、对标签和排序标签。代表性的方法包括核监督哈希(Kernel Supervised Hashing, KSH) [8]、监督离散哈希(Supervised Discrete Hashing, SDH) [9]、列采样监督离散哈希(Column Sampling based Discrete Super⁃vised Hashing, COSDISH) [10] 和本地一致哈希(LocallyUniform Hashing, LUH) [11]等。近两年,涌现出了许多基于深度学习的哈希方法。凭借其强大的特征学习能力,与基于手工设计特征的传统哈希方法相比,这些方法具有更好的特征表达能力。代表性的深度学习哈希方法包括非松弛深度哈希(Non-relaxationDeep Hashing, NRDH) [12]和无监督深度三元组哈希(Unsupervised Deep Triplet Hashing, UDTrHash) [13]等。
2 基于哈希学习的电动汽车充电桩推荐算法
2.1 模型定义
本文提出的基于哈希学习的电动汽车充电桩推荐算法的模型如图1所示。在训练阶段,训练样本为一定范围内的私人共享充电桩。首先,需要获取每个充电桩的用户偏好因素,并将评分最高的因素作为该充电桩的类别标签,然后将数据输入监督离散哈希分类器进行训练,最终得到一串二进制哈希编码。
在测试阶段,首先根据待充电电动汽车的用户偏好,计算目标充电桩所需因素的评分,并将其作为测试样本输入训练好的监督离散哈希分类器中进行预测,最终同样得到一串二进制哈希编码。通过比较测试样本与训练样本的二进制哈希码的汉明距离,可以筛选出排名靠前的充电桩。
由于测试样本可能与多个训练样本具有相同的汉明距离,本文方法进一步选出汉明距离前 10 的训练样本进行更为精确的筛选。具体来说,为每个用户偏好因素赋予权重,并使用加权综合评分法计算出最优充电桩。
2.2 监督离散哈希(SDH)
监督离散哈希(SDH) 根据线性分类定义了哈希框架,以利用数据的标签信息。在优化过程中,通过离散循环坐标下降(Discrete Cyclic Coordinate,DCC) 算法对每一个比特位进行计算生成哈希码,这也是后续离散哈希常用的优化策略。
假设有n 个样本X = { xi }ni= 1 ∈ Rd × n,第i 列xi 表示一个d 维样本。哈希学习的目标是学习一组能够保持原始空间语义相似性的二值编码B = {bi }ni= 1 ∈ {-1,1}q × n,其中第i 列bi 是原始样本xi 学习到的长度为q比特的二值编码。通过利用训练样本的标签信息,使真实类别与预测类别的差异应尽可能小,我们希望学习到的二值编码能够进行最佳的线性分类。监督离散哈希(SDH) 采用如下多类别分类优化问题:
W = { wk }ck = 1 ∈ Rq × c 是分类权重矩阵,Y ={ yi }ni= 1 ∈ Rc × n 是原始数据的标签矩阵,c 是类别数量,λ1 是正则参数。如果yki = 1,说明xi 属于类别k;如果yki = 0,说明xi不属于类别k。
上述优化问题利用了标签的语义信息,使学习到的二值编码能够实现最佳的线性分类。同时,学习得到的二值编码需要能够保存原始样本空间的相似关系,因此需要定义一个哈希方程H (X ),将样本的连续特征映射为二值特征。为了能够得到更高质量的二值哈希编码,将式(1)重写为:
需要特别指出的是,式 (3)直接对学习到的二值编码B进行离散约束,没有进行松弛操作,这种处理方式称为离散哈希。式(3)的最后一项表示原始数据经过哈希方程H (X ) 变换后与二值编码B的拟合误差,其中λ2 为惩罚参数。在实际应用中,B与H (X )之间可以存在微小误差。
哈希方程H (X ) 可以看作是一个投影方程,它将原始特征空间映射为q 比特。一般来说,可以采用任何合适的映射学习算法(线性或非线性)来实现这一过程。目前,大多数哈希方法采用线性投影矩阵,但这种线性投影矩阵无法很好地保存样本的非线性结构。
为了能够得到理想的二值哈希编码,哈希方程的选择非常重要。SDH采用如下一种非线性形式:
H (X) = PTK (X) (4)
K (X ) ∈ Rm × n是通过RBF核映射得到的一个矩阵。
K (X) 的每一列通过 K (x) = [ exp (-x - x(1) 2/σ),...,exp (-x - x(m) 2/σ) ]计算得到,其中{ x(i) }mi= 1 是从训练样本中随机选取的m 个样本,σ是核的宽度,这些样本称为锚点。矩阵P ∈ Rm × q 将数据K(X)投影到低维空间,矩阵P也称为哈希模型矩阵,这是整个监督离散哈希训练阶段非常重要的输出矩阵,同时也是测试阶段进行实际分类的依据。通过哈希方程H(X)进行二值映射,式(3)的最后一项以非线性的方式使学习得到的二值编码尽可能保持原始特征的相似关系。
式(3)中包含3个变量,分别是B、W和H。根据式(4),H 的优化过程本质上求解P。因此,本方法将式(3) 分解为求解B、W和P这3个子问题,并在迭代的过程中交替优化这3个子问题。具体来说:当W和B固定时,优化P;P和B固定时,优化W;当P和W固定时,优化B。
1) P-Step。如果固定式(3)中的B和W,哈希模型矩阵P可以通过回归计算得出:
P = (K (X) K (X) ) T -1 K (X )BT (5)
2) W-Step。在固定B和P的前提下,可以通过正则化最小二乘问题求解W:
W = (BBT ) + λ1 I -1 BY T (6)
3) B-Step。当固定除了B以外的所有变量时,这个子问题可以写成如下形式:
通过简单的数学变换,式(7)可以写成:
U = WY + λ2H (X),tr (∙)是矩阵的迹。
由于B的离散约束,直接求解B十分困难。但是有一个近似的解决方案:B的每一行可以通过固定其他行求解,即依次学习每一个比特,直到所有q 个比特学习完毕。根据这个思路,我们可以通过离散坐标轮换的方式依次更新二值编码矩阵B的每一行。令bi为B的第i 行,i = 1,2,...,q,即bi 是所有n 个样本的其中一个比特, B͂是矩阵B除去bi 后的矩阵。类似地,令ui 为U的第i 行,U͂是矩阵U除去ui 后的矩阵,wi 为W的第i行,W͂是矩阵W除去wi 后的矩阵。由此可以得到一个近似的解决方案:
bi = sgn(ui - ( B͂TW͂wiT )T ) (9)
由此,所有样本每一个比特bi 的计算依赖于B͂中已经学习好的q-1个比特。通过q 次操作可以依次得到全部q 个比特。同时可以迭代t 次,直到程序收敛或达到最大迭代次数,每一次的迭代产生一组更好的哈希编码B。通过式(9),离散变量B 的优化问题得以解决。
用上述方法得到每个样本的哈希编码后,就可以根据测试样本与训练样本的汉明距离进行相似性排序。汉明距离越小,代表相似度越高。由于可能存在汉明距离相同的情况,我们挑选出相似性最高的 10 个训练样本作为备选充电桩,待进一步筛选。
2.3 加权综合评分
本文将充电桩的用户偏好因素进行量化,并为每个因素赋予权重。充电桩推荐算法的具体计算过程如公式(10) 所示。
假设有k 个用户偏好因素,如充电桩充电单价、声誉、等待时间、评价等,记作score1, score2,...,scorek,各个因素的权重为 λ1, λ2,...,λk,本文使用加权综合评分法对哈希学习筛选出的10个备选充电桩计算综合评分,计算公式如下:
λ1 score1 + λ2 score2 + ...+ λk scoreks.t. λ1 + λ2 + ...+ λk = 1 (10)
通过式(10),我们计算出备选的10个充电桩的综合评分,综合评分最高的充电桩即为最优充电桩。