一种基于局部敏感哈希算法的相似人群的扩展算法
技术领域
本发明涉及信息处理技术领域,尤其涉及一种基于局部敏感哈希算法的相似人群的扩展算法。
背景技术
在数字营销中,如何快速、精准地找到目标客户群是互联网时代富有挑战的一项工作。相似人群的扩展(Look-alike)是从种子用户出发寻找最相似的人群算法的统称,其作为广告投放领域中一类重要的算法,可以帮助广告主高效地定位营销人群。
常见的Look-alike算法思路具体如下:第一种,基于简单的相似度计算,比如Cosine(连续值)或者Jaccard(01值),通过计算两两用户的相似度,从种子用户出发寻找相似的用户,该方法逻辑简单,但计算量大,使得其计算成本高,且计算准确性较差。第二种,基于逻辑回归进行有监督的二分类预测的方法,这种方法只需要线性的计算量,在线预测时算法复杂度较低,但是这一种方法存在负样本取样难、冷启动难等问题,造成计算准确性较差。第三种,基于segment的近似搜索系统,即对用户打标签,通过标签聚合用户群体并给出候选的营销对象,成熟的标签系统可以带来较好的营销效果,而且在线应用时非常简单和快速,但是这种系统需要花费大量资源来预先挖掘标签,同时该系统的后期维护和改进的成本都相对较高,计算准确性较差。
发明内容
本发明的目的在于,提供一种基于局部敏感哈希算法的相似人群的扩展算法,可以提高相似人群的扩展算法的高效性和准确性的同时,降低计算成本。
为了解决上述问题,本发明提供一种基于局部敏感哈希算法的相似人群的扩展算法,包括以下步骤:
步骤S1:根据返利网已有的用户画像准备全体用户的原始数据特征;
步骤S2:根据所述原始数据特征使用开源工具datasketch计算出所述全体用户的特征向量的加权最小哈希,以及构建局部敏感哈希模型,以获得LSH索引;
步骤S3:输入种子用户ID,根据所述原始数据特征得到所述种子用户的数据特征;
步骤S4:根据所述LSH索引获得与所述种子用户的数据特征相似的候选用户ID及候选用户的数据特征,接着对所述候选用户的各数据特征进行打分,以获得候选用户的每个数据特征的分数;
步骤S5:计算出所述种子用户的数据特征的重要程度;
步骤S6:根据所述重要程度及所述分数计算所述候选用户的得分;以及
步骤S7:对所述得分进行排序,并根据所述排序得到最终的目标用户。
可选的,步骤S1包括:
获取返利网已有的用户画像,根据所述用户画像得到全员用户的原始数据特征,其中,所述原始数据特征包括用户的类目偏好、品牌等级偏好、购物性别偏好、购物年龄段偏好、商城偏好、购买力、优惠敏感度、地域和手机os;
对所述原始数据特征进行数据预处理;以及
通过稀疏矩阵将经过数据预处理所得到的数据进行数据拼接。
进一步的,对所述原始数据特征进行数据预处理包括:
将所述原始数据特征分为分值数据和分类数据,其中,所述分值数据包括品牌等级偏好、优惠敏感度和购买力,所述分类数据包括类目偏好、购物性别偏好、购物年龄段偏好、商城偏好、地域和手机os;以及
对所述分值数据进行归一化处理,对所述分类数据进行离散化处理。
进一步的,步骤S2包括:
使用开源工具datasketch并根据拼接后的数据计算出所述全体用户的特征向量的加权最小哈希;以及
使用开源工具datasketch并根据所述加权最小哈希构建LSH模型,以获得LSH索引。
进一步的,使用开源工具datasketch中的Weighted minHash算法并根据拼接后的数据计算出所述全体用户的特征向量的加权最小哈希。
进一步的,使用开源工具datasketch中的局部敏感哈希算法并根据所述加权最小哈希构建LSH模型,以获得LSH索引。
进一步的,步骤S4包括:
在所述LSH索引中输入所述种子用户的数据特征,以对所述LSH模型进行扩展,从而得到与所述种子用户的数据特征相似的多个候选用户ID;
根据所述候选用户ID匹配数据拼接后的所述数据,以得到所述候选用户的数据特征;以及
对所述候选用户的各数据特征进行打分,以获得每个候选用户的每个数据特征的分数。
可选的,步骤S5中,所有的所述种子用户的第j个数据特征的权重wj满足以下公式:
其中,m为所述种子用户的数据特征的个数,m≥3且为正整数;pj为所有所述种子用户的第j个数据特征在种子用户的人群中出现的概率,且pj>0.1;qj为所有所述种子用户的第j个数据特征在负样本中出现的概率,且j≤m。
进一步的,步骤S6中,
第i个所述候选用户的得分score-ui通过满足以下公式:
其中,sij为第i个候选用户的第j个数据特征的分数;wj为所有所述种子用户的第j个数据特征的权重;n为候选用户的数据特征的个数,i≤n,且n为正整数。
可选的,步骤S7中,根据所述得分对所有的候选用户的得分从高向低依次排序,并选出排序靠前的多个候选用户,以得到最终的目标用户。
与现有技术相比,本发明具有以下有益效果:
本发明提供一种基于局部敏感哈希算法的相似人群的扩展算法,包括以下步骤:根据返利网已有的用户画像准备全体用户的原始数据特征;根据所述原始数据特征使用开源工具datasketch计算出所述全体用户的特征向量的加权最小哈希,以及构建局部敏感哈希模型,以获得LSH索引;输入种子用户ID,根据所述原始数据特征得到所述种子用户的数据特征;根据所述LSH索引获得与所述种子用户的数据特征相似的候选用户ID及候选用户的数据特征,接着对所述候选用户的各数据特征进行打分,以获得候选用户的每个数据特征的分数;计算出所述种子用户的数据特征的重要程度;根据所述重要程度及所述分数计算所述候选用户的得分;以及对所述得分进行排序,并根据所述排序得到最终的目标用户。本发明通过采用开源工具datasketch对原始数据特征进行计算,以获得所述全体用户的特征向量的加权最小哈希,可以大大减少运算量,提升了运算速度和准确性的同时,降低计算成本;还使用开源工具datasketch构建的局部敏感哈希模型,可以根据存储器的内存大小及计算精确度的要求获得,使得局部敏感哈希模型的准确性高。
进一步的,本发明的获取返利网已有的用户画像,根据所述用户画像得到全员用户的原始数据特征,其中,所述原始数据特征包括用户的类目偏好、品牌等级偏好、购物性别偏好、购物年龄段偏好、商城偏好、购买力、优惠敏感度、地域和手机os;对所述原始数据特征进行数据预处理;以及通过稀疏矩阵将经过数据预处理所得到的数据进行数据拼接。(权2),本发明采用的稀疏矩阵可以在计算生成局部敏感哈希模型时大量减少没有意义的运算,大大减少了运算量,提升了运算速度,即提高相似人群的扩展算法的高效性的同时,降低计算成本。
附图说明
图1为本发明一实施例的一种基于局部敏感哈希算法的相似人群的扩展算法的流程图。
具体实施方式
以下将对本发明的一种基于局部敏感哈希算法的相似人群的扩展算法作进一步的详细描述。下面将参照附图对本发明进行更详细的描述,其中表示了本发明的优选实施例,应该理解本领域技术人员可以修改在此描述的本发明而仍然实现本发明的有利效果。因此,下列描述应当被理解为对于本领域技术人员的广泛知道,而并不作为对本发明的限制。
为了清楚,不描述实际实施例的全部特征。在下列描述中,不详细描述公知的功能和结构,因为它们会使本发明由于不必要的细节而混乱。应当认为在任何实际实施例的开发中,必须做出大量实施细节以实现开发者的特定目标,例如按照有关系统或有关商业的限制,由一个实施例改变为另一个实施例。另外,应当认为这种开发工作可能是复杂和耗费时间的,但是对于本领域技术人员来说仅仅是常规工作。
为使本发明的目的、特征更明显易懂,下面结合附图对本发明的具体实施方式作进一步的说明。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用以方便、明晰地辅助说明本发明实施例的目的。
图1为本实施例的一种基于局部敏感哈希算法的相似人群的扩展算法的流程图。如图1所示,本实施例提供一种基于局部敏感哈希算法的相似人群(Locality SensitiveHashing,LSH)的扩展算法。本算法针对在线广告营销的特定应用场景。
所述扩展算法包括以下步骤:
步骤S1:根据返利网已有的用户画像准备全体用户的原始数据特征;
步骤S2:根据所述原始数据特征使用开源工具datasketch计算出所述全体用户的特征向量的加权最小哈希,以及构建局部敏感哈希(LSH)模型,以获得LSH索引;
步骤S3:输入种子用户ID(身份识别号),根据所述原始数据特征得到所述种子用户的数据特征;
步骤S4:根据所述LSH索引获得与所述种子用户的数据特征相似的候选用户ID及候选用户的数据特征,接着对所述候选用户的各数据特征进行打分,以获得候选用户的每个数据特征的分数;
步骤S5:计算出所述种子用户的数据特征的重要程度;
步骤S6:根据所述重要程度及所述分数计算所述候选用户的得分;以及
步骤S7:对所述得分进行排序,并根据所述排序得到最终的目标用户。
步骤S1具体包括以下步骤:
步骤S11,获取返利网已有的用户画像,所述用户画像可以从多角度刻画用户的固有属性以及在特定app内的行为习惯等特征。根据所述用户画像得到全员用户的原始数据特征。所述原始数据特征包括用户的类目偏好、品牌等级偏好、购物性别偏好、购物年龄段偏好、商城偏好、购买力、优惠敏感度、地域和手机os等。
步骤S12,对所述原始数据特征进行数据预处理。具体的,首先对所述原始数据特征进行分类,例如是分为分值数据和分类数据,其中,所述分值数据包括品牌等级偏好、优惠敏感度和购买力,所述分类数据包括类目偏好、购物性别偏好、购物年龄段偏好、商城偏好、地域和手机os等。接着,例如是对所述分值数据进行归一化处理(即范围划分),对所述分类数据进行离散化处理,例如将性别按照01划分,其中0表示男性,1表示女性,以实现分类数据的数字化处理。
步骤S13,通过稀疏矩阵将上述经过数据预处理所得到的数据进行数据拼接。本步骤的稀疏矩阵有利于在后续运算时大量减少没有意义的运算,大大减少了运算量,提升了运算速度,即提高相似人群的扩展算法的高效性的同时,降低计算成本。
步骤S2具体包括如下步骤:
步骤S21,使用开源工具datasketch并根据拼接后的数据计算出所述全体用户的特征向量的加权最小哈希,其基于开源工具datasketch中的Weighted minHash算法实现。本步骤的运算采用开源工具datasketch对稀疏矩阵中的原始数据特征进行计算,以获得所述全体用户的特征向量的加权最小哈希,可以大大减少运算量,提升了运算速度和准确性的同时,降低计算成本。
步骤S22,使用开源工具datasketch并根据所述全体用户的特征向量的加权最小哈希构建LSH模型,以获得LSH索引。所述LSH模型基于改进datasketch中的LSH实现。在本步骤中,可以根据存储器的内存大小及计算精确度的要求对应计算生成局部敏感哈希模型,同时得到指定数量的LSH索引,该LSH索引例如是hash函数索引。本步骤根据存储器的内存大小及计算精确度计算获得的局部敏感哈希模型的准确性高。
步骤S3具体为:输入种子用户ID,并根据数据拼接后的所述数据得到种子用户的数据特征。
步骤S4具体包括以下步骤:
步骤S41,在所述LSH索引中输入种子用户的数据特征,以对所述LSH模型进行扩展,从而得到与所述种子用户的数据特征相似的多个候选用户ID。
步骤S42,根据所述候选用户ID匹配数据拼接后的所述数据,得到所述候选用户的数据特征。
步骤S43,接着对所述数据特征进行打分,所述候选用户的数据特征的数量为n个,第i个候选用户的第j个数据特征的分数为sij,以得到每个候选用户的每个数据特征的得分。
步骤S5具体为:计算出所述种子用户的数据特征的重要程度,其中,所述种子用户的数据特征的数量为m个,m≥3且为正整数。
所有所述种子用户的第j个数据特征的权重wj满足以下公式:
其中,pj为所有所述种子用户的第j个数据特征在种子用户的人群中出现的概率,且pj>0.1;qj为所有所述种子用户的第j个数据特征在负样本中出现的概率,且j≤m。通过上述公式计算出所有所述种子用户的每个数据特征的权重(w1~wm)。
在上述公式中,当pj>qj时,则认为所有所述种子用户的第j个数据特征有正面效果,此时wj为正权重。当pj<qj时,则认为所有所述种子用户的第j个数据特征有负面效果,此时wj为负权重。
步骤S6具体为:根据所有所述种子用户的第j个数据特征的权重wj及所述种子用户的数据特征的分数sij计算出每个所述候选用户的所有数据特征对应的总得分。
第i个所述候选用户的得分score-ui通过满足以下公式:
其中,sij为第i个候选用户的第j个数据特征的分数,wj为所有所述种子用户的第j个数据特征的权重,n为候选用户的数据特征的个数。
步骤S7中,根据所述得分对所有的候选用户进行排序,例如是得分从高向低依次排序,并根据需求选出排序靠前的多个候选用户,这些用户就是最终的目标用户。
本发明通过首先计算用户特征向量的加权最小哈希(Weighted minHash)和构建LSH模型;然后通过LSH模型拓展种子用户,得到候选用户;接着统计种子用户以及负样本用户的特征分布,计算种子用户的数据特征的重要程度;最后使用所得的所述重要特征的权重对候选用户打分并筛选出目标用户。
综上所述,本发明提供的一种基于局部敏感哈希算法的相似人群的扩展算法,根据多维特征向量对用户进行分桶,构建图约束索引,再以此为基础对用户进行快速聚类,从种子用户出发推荐合适的目标用户群体。本发明有效利用已有的用户画像体系,就能从种子用户快速扩展出目标客户群,无需构建复杂的标签体系,节省了有限的资源。还根据开源工具datasketch计算加权最小哈希(W-MinHash)的函数,针对稀疏矩阵的特性减少了大量无意义的计算,整体性能提升约40倍。
此外,需要说明的是,除非特别说明或者指出,否则说明书中的术语“第一”、“第二”的描述仅仅用于区分说明书中的各个组件、元素、步骤等,而不是用于表示各个组件、元素、步骤之间的逻辑关系或者顺序关系等。
可以理解的是,虽然本发明已以较佳实施例披露如上,然而上述实施例并非用以限定本发明。对于任何熟悉本领域的技术人员而言,在不脱离本发明技术方案范围情况下,都可利用上述揭示的技术内容对本发明技术方案作出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。