CN117788105A - 一种基于互联网的电商在线直播方法 - Google Patents
一种基于互联网的电商在线直播方法 Download PDFInfo
- Publication number
- CN117788105A CN117788105A CN202311793736.4A CN202311793736A CN117788105A CN 117788105 A CN117788105 A CN 117788105A CN 202311793736 A CN202311793736 A CN 202311793736A CN 117788105 A CN117788105 A CN 117788105A
- Authority
- CN
- China
- Prior art keywords
- commodity
- user
- recommendation
- vector
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000006399 behavior Effects 0.000 claims abstract description 85
- 238000001914 filtration Methods 0.000 claims abstract description 65
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 52
- 238000003062 neural network model Methods 0.000 claims abstract description 28
- 238000012549 training Methods 0.000 claims abstract description 19
- 238000010801 machine learning Methods 0.000 claims abstract description 6
- 239000013598 vector Substances 0.000 claims description 191
- 239000011159 matrix material Substances 0.000 claims description 45
- 230000006870 function Effects 0.000 claims description 42
- 238000009826 distribution Methods 0.000 claims description 15
- 238000007637 random forest analysis Methods 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 8
- 238000003491 array Methods 0.000 claims description 7
- 238000005259 measurement Methods 0.000 claims description 2
- 238000000265 homogenisation Methods 0.000 abstract description 11
- 239000010410 layer Substances 0.000 description 79
- 238000004364 calculation method Methods 0.000 description 9
- 230000002829 reductive effect Effects 0.000 description 9
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000000284 extract Substances 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 230000002441 reversible effect Effects 0.000 description 5
- 230000003542 behavioural effect Effects 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了一种基于互联网的电商在线直播方法,涉及电商直播技术领域,包括:采集用户在电商平台的行为数据;建立MySQL数据库,存储采集的用户的行为数据;利用监督学习算法,基于采集的用户的行为数据和商品ID数据,构建并训练用户的商品ID偏好模型,生成用户的多维画像;基于TensorFlow机器学习框架,构建多层协同过滤的神经网络模型,利用生成的用户的多维画像训练构建的多层协同过滤的神经网络模型;利用训练后的多层协同过滤的神经网络模型,根据用户的实时请求,生成针对用户的商品ID推荐列表。针对现有技术中电商推荐方案同质化的问题,本申请,通过用户特征与商品特征对齐等,提高了互联网的电商在线直播中针对用户的多方案差异性推荐。
Description
技术领域
本申请涉及电商直播技术领域,特别涉及一种基于互联网的电商在线直播方法。
背景技术
随着移动互联网和电子商务的快速发展,各大电商平台上的商品数量和用户量迅速增长,给商品推荐系统提出了更高的要求。高质量的个性化商品推荐服务不仅能提升用户的购物体验,也是电商平台取得竞争优势的关键。
但是传统的基于内容过滤或协同过滤的推荐算法存在如下问题:对冷启动用户的推荐效果较差,无法快速捕捉用户兴趣;推荐同质化严重,无法满足用户对长尾商品的需求;无法深度挖掘多源异构用户数据中的潜在特征,推荐趋同化。
在相关技术中,比如中国专利文献CN113709576A中提供了一种基于互联网的电商在线直播方法及系统,其中,所述方法包括:获得第一售卖货品信息;获得第一货品品类;构建货品购买用户群画像数据集;将所述第一货品品类输入所述货品购买用户群画像数据集,获得第一货品购买用户群画像信息;获得相匹配的第一网销主持信息;获得第一直播界面图像;获得第二直播界面图像;根据所述第一直播界面图像和所述第二直播界面图像,构建第一采购VR图像信息;获得第一标记采购货品信息;将所述第一标记采购货品信息回传至所述第一直播界面图像信息,实现对所述第一货品的网络直销。但是该方案中,主要依据商品类别和用户群体的画像进行匹配推荐,过于依赖商品类别这个维度来确定推荐结果,而缺少对个体用户兴趣喜好的细粒度建模,因此推荐方案存在同质化的问题。
发明内容
针对现有技术中存在的电商推荐方案同质化的问题,本申请提供了一种基于互联网的电商在线直播方法,通过用户特征与商品特征对齐等,提高了互联网的电商在线直播中针对用户的多方案差异性推荐。
本申请的目的通过以下技术方案实现。
本说明书实施例提供一种基于互联网的电商在线直播方法,包括:采集用户在电商平台的行为数据;建立MySQL数据库,存储采集的用户的行为数据;利用监督学习算法,基于采集的用户的行为数据和商品ID数据,构建并训练用户的商品ID偏好模型,生成用户的多维画像;基于TensorFlow机器学习框架,构建多层协同过滤的神经网络模型,利用生成的用户的多维画像训练构建的多层协同过滤的神经网络模型;利用训练后的多层协同过滤的神经网络模型,根据用户的实时请求,生成针对用户的商品ID推荐列表。
其中,采集用户在电商平台的各类行为数据,包括点击、收藏、添加购物车、下单购买等行为日志,以及用户的基础信息,存储到MySQL数据库中。通过对采集行为数据进行分析,应用监督学习算法如Bayes分类器等,训练商品ID偏好模型,生成表示用户兴趣维度的多维特征向量。还可以采用如下监督学习算法:可以使用XGBoost算法对用户的多维度特征进行建模,实现对用户个性化兴趣的学习,并进行精准的个性化商品推荐。可以构建基于深度神经网络的推荐器,通过隐层的非线性变换,实现对用户兴趣的高度抽象表示,产生新的个性化推荐结果。可以使用注意力网络来赋予不同用户行为不同权重,从而建模出用户的个性化兴趣,推荐用户感兴趣而非主流的长尾商品。基于TensorFlow框架,构建融合了多层全连接网络的协同过滤神经网络模型,输入层表示用户特征向量,经过多层非线形变换,输出层给出针对不同用户的商品推荐列表。利用用户的多维特征向量初始化协同过滤网络模型,通过模型训练学习用户的非线性兴趣模式。在用户请求推荐时,实时提取对应用户的特征向量,输入协同过滤网络模型,输出个性化的商品推荐列表。随着用户行为的积累,定期使用新数据重新训练网络模型,实现模型的增量优化。
进一步地,生成针对用户的商品ID推荐列表,还包括:利用构建的多层协同过滤的神经网络模型,根据用户的实时请求,生成针对用户的第一推荐列表。其中,构建的多层协同过滤神经网络模型已经事先训练好,能够产生针对不同用户的商品推荐列表。当用户发起商品推荐请求时,根据用户ID查找对应的用户特征向量作为模型输入。将用户特征向量输入协同过滤模型,激活网络进行前向计算,得到每个商品的推荐概率。根据所有商品的推荐概率值排序,选择概率最高的N个商品作为第一推荐列表。为了获得更加个性化的推荐,可以将第一推荐列表再次输入到协同过滤模型中。模型输出针对第一推荐列表商品的二次推荐概率。根据二次推荐的概率排序,选取前M个商品作为个性化推荐结果。最终将第一轮主流推荐和第二轮个性化推荐合并,构建针对该用户的商品推荐列表。
在构建的多层协同过滤的神经网络模型的输出层后设置统计单元,统计单元包含多个计数器,通过商品ID映射的方式,统计各商品ID在多层协同过滤的神经网络模型中出现的总次数。其中,在多层协同过滤神经网络的输出层后,添加统计单元结构。统计单元包含一个计数器数组,数组长度为商品总数,每个计数器通过商品ID映射到对应的数组索引上。当神经网络模型进行训练时,每次输出层生成一个商品的推荐列表。对推荐列表中的每个商品ID,统计单元通过商品ID映射,找到对应的计数器。将该计数器值加1,表示该商品获得了一次推荐输出。随着训练的进行,统计单元实时统计每个商品ID被网络输出的总次数。训练结束后,统计单元记录了每个商品在模型中的热度信息。根据计数器的值排序,可以得到全局最热门的商品。也可以获取每个商品在模型中的热度分布,作为新颖性的打分。
根据统计单元统计的各商品ID出现的总次数,计算商品ID分布信息熵作为新颖度指标;当新颖度指标低于阈值时,构建基于Scikit learn的随机森林算法冷启动推荐生成器;其中,基于统计单元统计得到每个商品在模型中的出现次数后。计算所有商品出现次数的分布情况,生成概率分布。对该概率分布计算信息熵,作为整体推荐列表的新颖度指标。设置新颖度阈值,当计算得到的信息熵低于阈值时,表示推荐新颖性不足。这种情况下,需要启动冷启动推荐生成器来提供更加个性化的推荐。冷启动生成器利用Scikit learn构建随机森林模型。将用户的多维特征向量作为随机森林模型的输入。模型输出对各商品的推荐概率,形成个性化的候选列表。从候选列表中根据新颖度要求进行二次过滤,产生新颖的冷启动推荐结果。将冷启动结果与主模型结果组合,作为最终推荐输出。
其中,输入用户的多维画像,表示用户的基础特征和行为偏好。冷启动推荐生成器使用协同过滤或者基于内容的算法。如果使用协同过滤,则找到与当前用户在画像上最相似的K个邻居用户。检索这K个用户的历史购买/浏览商品,作为候选集。如果使用基于内容的方法,则直接根据用户画像中反映的商品偏好,检索出符合要求的商品作为候选集。对候选集中的商品,检索它们的商品特征向量。计算用户多维画像向量与商品特征向量之间的相似度。选择与用户画像向量相似度最高的N个商品作为生成的推荐集。进一步对推荐集去重,确保其中商品未在其他列表中出现过。最终得到符合用户兴趣偏好且新颖未重复的商品推荐集。
将生成的商品ID集合与第一推荐列表进行拼接,生成第二推荐列表作为针对用户的商品ID推荐列表。其中,已经生成了基于协同过滤的第一推荐列表,包含K1个热门商品。冷启动生成器产生了K2个符合用户画像的长尾商品。为保证推荐列表整体质量,首先从第一列表中按照商品热度保留Top K个商品。其次从冷启动结果中选择新颖度最高的K3个商品。将保留的K个热门商品与新颖的K3个长尾商品组合起来。可以随机打乱组合结果的显示顺序。也可以根据不同阶段的推荐策略,动态调整热门商品和长尾商品的数量比例。如用户冷启动阶段可以增加更多冷启动商品比例。当用户互动数据积累后,可以适当减少冷启动商品的数量。经过上述策略综合生成的新列表,作为更加平衡的推荐结果。
进一步地,生成与用户的多维画像相匹配且未推荐的商品ID集合,还包括:利用基于Sklearn的One Hot Encoder对用户的行为数据进行编码,生成用户特征向量;对商品ID数据进行编码,生成商品特征向量;根据用户特征向量和商品特征向量,计算用户和商品ID之间的匹配度;其中,收集用户的各类交互行为数据,如点击、加入购物车、收藏等。使用Sklearn的One Hot Encoder对不同行为类型进行One Hot编码,生成用户行为的稀疏特征向量。同时对商品ID也进行One Hot编码,得到商品的特征向量。计算用户行为特征向量与每个商品特征向量的余弦相似度。相似度高表示该商品与用户行为偏好匹配。可以设置相似度阈值,选择与用户行为向量相似度大于阈值的商品。从中过滤掉已在其他列表出现的商品,保证新颖性。还可以结合用户基础属性数据一起编码生成用户特征,计算商品匹配度。最终得到符合用户画像及偏好并且新颖的商品集合。
在冷启动生成器中构建基于Pybloom的布隆过滤器,布隆过滤器根据商品ID推荐列表,生成已推荐商品ID集S;冷启动推荐生成器从MySQL数据库中随机抽取商品ID作为候选集;布隆过滤器采用散列函数判断候选集中的商品ID是否在已推荐商品ID集S中;将匹配度高于阈值且不在已推荐商品ID集S中的商品ID,作为与用户的多维画像相匹配且未推荐的商品ID集合;其中,在冷启动生成器中,利用Pybloom构建布隆过滤器。先将已推荐的商品ID集S全部存入布隆过滤器。从MySQL数据库中随机抽取一批商品作为候选集。对候选集中的每个商品ID,利用布隆过滤器的散列函数判断其是否在集合S中。如果不在,则计算该商品与用户多维画像的匹配度。对匹配度大于设定阈值的商品,认为是符合用户兴趣偏好的。将这部分匹配商品加入结果集,作为冷启动推荐列表。最终结果集中的商品既与用户画像吻合,又不会与已推荐商品重复。此外,还可以根据业务需求,从结果集中移除付费内容或下架商品。得到去重优化后的冷启动推荐列表。
进一步地,对商品ID数据进行编码,生成商品特征向量,还包括:商品ID数据包含商品标题和商品详情页面;对商品标题和商品详情页面的文本内容,利用Text Rank算法提取关键词;其中,收集商品的标题和详情页面的文本内容,进行文本清洗和预处理。利用Text Rank算法构建文本的图模型表示:每个词表示为一个节点。词与词之间的共现关系构建边。按照共现次数为边赋予不同权重。执行Text Rank算法迭代计算:每个词的重要性得分依据其相连词条的重要性进行更新。重复迭代直到得分收敛。根据最终词的Text Rank得分排序。选择得分最高的前N个词作为商品内容的关键词。将关键词转换为词向量表示。构建商品的文本特征向量。相比直接使用TF IDF等词频方法,Text Rank可以提取词义上更重要的词语。
基于提取的关键词构建商品ID数据的TF IDF词频矩阵;获取TF IDF词频矩阵中词频大于阈值的词汇,生成表示商品ID属性的词汇集合;其中,对每个商品的标题和详情页面进行关键词提取,得到关键词列表。构建所有商品的关键词表,统计每个关键词在各商品中的词频,形成词频矩阵。对词频矩阵进行TF IDF转换,得到商品关键词的TF IDF权重矩阵。设置词频阈值,选择TF IDF权重大于该阈值的关键词。这部分关键词即表示商品的主要属性词汇。可以设置词汇数量的上下限,防止维度过大或过小。对选择的词汇进行词向量转换,构建商品内容的低维稠密向量。将向量连接商品ID等特征,形成商品的结构化特征表达。后续可以基于词向量的含义相似性计算商品之间的关联度。
对词汇集合中的词语,通过预训练的BERT语言模型获取语义向量表示;根据TFIDF词频矩阵中词汇对应的权重,对其语义向量进行加权平均,生成商品特征向量。
进一步地,布隆过滤器设置两层;第一层布隆过滤器的位数组大小设置为N1比特;第二层布隆过滤器的位数组大小设置为N2比特,其中N2大于N1。
进一步地,还包括:设置M个不同的哈希函数,针对同一商品ID生成M个不同的哈希值;将商品ID推荐列表中的每个商品ID利用M个哈希函数分别映射到两层布隆过滤器的位数组中;输入的候选集中的商品ID,通过M个不同的哈希函数生成M个对应的哈希值;第一层布隆过滤器中,若生成的M个对应的哈希值对应的位数组的位置均为零,则将对应的商品ID发送到第二层布隆过滤器;仅当第一层布隆过滤器和第二层布隆过滤器对应的全部位数组的位置均为零时,判定对应的商品ID不在推荐列表中。
其中,采用多个哈希函数解决电商同质化问题,可以采用,MD5和SHA-1-加密哈希函数,输出散列值分布均匀,冲突概率小。Murmur Hash,性能高效的非加密哈希函数,Redis中的hash函数采用该算法。FNV Hash,计算简单且性能好的哈希算法,输出分布均匀。CityHash,Google开源的快速高质量哈希算法,碰撞率低。XxHash,同样速度快且质量好的非加密哈希函数。Farm Hash,Google研究的针对短字符串的快速哈希算法。Sip Hash,密码学安全的PRF哈希算法,抗DoS攻击。
进一步地,利用基于Sklearn的One Hot Encoder对用户的行为数据进行编码,生成用户特征向量,还包括:根据时间戳,将采集的用户的行为数据分割为多个会话序列;将获取的会话序列输入预训练的LSTM网络,输出反映用户时间偏好的特征矩阵A;利用OneHot Encoder对用户的形式数据进行编码,生成表示用户基础特征的向量B;通过numpy中的hstack函数,将矩阵A和向量B按列进行水平拼接,生成用户特征矩阵C;将生成的用户特征矩阵平展为用户特征向量。
其中,在本申请中,用户行为数据包括:浏览行为:用户浏览过的商品ID,及对应的浏览时间戳;收藏行为:用户收藏过的商品ID,及对应的收藏时间戳;购买行为:用户购买过的商品ID,及对应的购买时间戳;评论行为:用户对商品发表的评论内容,及对应的评论时间戳;点击行为:用户点击过的商品ID,及对应的点击时间戳。通过这些不同类型的用户行为数据以及对应的时间标记,可以提取出用户的多个会话序列,用于学习用户的时间偏好特征。
进一步地,预训练的LSTM网络为双向LSTM网络。双向LSTM从两个方向学习序列,可以更全面地挖掘用户行为模式。正向LSTM学习顺序特征,反向LSTM学习逆序特征,两者结合可以增强模式提取能力。双向LSTM输出的用户向量综合融合了正反向的特征学习,因此能够产生更个性化的用户表达。
进一步地,计算用户和商品ID之间的匹配度,还包括:将用户特征向量作为查询向量,输入基于Annoy的最近邻搜索索引;将商品特征向量作为输入,通过Annoy构建商品特征向量的最近邻搜索索引;在构建的商品特征向量的最近邻搜索索引中,利用余弦相似度作为距离度量,搜索与用户特征向量最相似的前K1个商品特征向量;计算搜索到的前K1个商品特征向量和用户特征向量之间的余弦相似度,作为用户和商品ID之间的匹配度。
其中,将用户特征向量看作查询向量。将所有商品特征向量输入Annoy,构建商品的近似最近邻索引。在Annoy索引中,以用户特征向量为查询,使用余弦相似度作为距离度量。搜索出与用户向量最相似的前K1个近邻商品向量。计算这K1个商品向量与用户向量的余弦相似度作为匹配度。余弦相似度公式为:sim=cosθ=(A·B)/(|A||B|),其中A为用户特征向量,B为商品特征向量。sim值越大表示两者越相似。返回与用户Top K1相似的商品列表,作为推荐结果。Annoy索引让近邻搜索更加高效。
进一步地,将生成的商品ID集合与第一推荐列表进行拼接,生成第二推荐列表作为针对用户的商品ID推荐列表,还包括:从第一推荐列表中,按照商品的点击购买次数排名,提取前K2个商品ID;根据用户和商品ID之间的匹配度,选择匹配度最高的K3个商品ID;通过笛卡尔积,计算K2个商品ID和K3个商品ID的组合;对生成的组合,根据组合中每个商品ID对应的用户和商品ID之间的匹配度之和进行排序;按照排序结果,选择排名最高的W个组合作为第二推荐列表。
其中,从第一推荐列表中提取点击购买次数最高的前K2个热门商品。根据用户-商品匹配度,选择匹配度最高的K3个商品。将K2和K3进行笛卡尔积组合,生成K2xK3个商品组合。对每个组合,计算组合中每个商品的用户-商品匹配度之和,作为组合的匹配度。对所有组合根据匹配度总和进行排序。选择排序最高的前W个组合作为第二推荐列表。该列表同时考虑了商品热度和个性化匹配度。热门商品可以增加用户接受度,个性化商品增加满意度。两个列表融合可以平衡各因素,优化推荐效果。
相比于现有技术,本申请的优点在于:
(1)通过构建基于深度学习的协同过滤神经网络,实现了对热门商品的精准主流推荐,满足了用户对热门商品的需求,提高了推荐系统的推荐精度,本申请利用了用户的多维特征,实现了用户兴趣模式的深度学习,产生个性化的主流推荐结果;
(2)通过与随机森林算法冷启动推荐的组合,有效改善了新用户冷启动的问题,用户即使没有太多历史行为,也可以快速获取个性化推荐,本申请的组合方式融合了基于内容的个性化推荐与协同过滤推荐,避免用户进入系统时只能获取热门商品;
(3)通过构建用户多维特征与商品内容特征的匹配模型,可以推荐具有新颖性的长尾商品给用户,有效增加了推荐列表的多样性,避免推荐结果的同质化,该匹配模型实现了表达层面特征的对齐,计算了个性化的用户商品匹配度,推荐了目标用户感兴趣而非主流的长尾商品。
综上所述,通过构建协同过滤神经网络实现热门商品的主流推荐,并利用随机森林算法的个性化推荐结果与热门商品进行组合,实现冷启动问题的改善,同时通过用户多维行为特征与商品内容特征的匹配,产生个性化的长尾推荐,有效优化了推荐结果的多样性,解决了同质化问题。
附图说明
本说明书将以示例性实施例的方式进一步描述,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的一种基于互联网的电商在线直播方法的示例性流程图;
图2是根据本说明书一些实施例所示的生成第二推荐列表的示例性流程图;
图3是根据本说明书一些实施例所示的生成与用户的多维画像相匹配且未推荐的商品ID集合的示例性流程图;
图4是根据本说明书一些实施例所示的生成商品特征向量的示例性流程图;
图5是根据本说明书一些实施例所示的生成用户特征向量的示例性流程图;
图6是根据本说明书一些实施例所示的计算用户和商品ID之间的匹配度的示例性流程图。
具体实施方式
下面结合附图对本说明书实施例提供的方法和系统进行详细说明。
图1是根据本说明书一些实施例所示的一种基于互联网的电商在线直播方法的示例性流程图,本说明书实施例提供一种基于互联网的电商在线直播方法,包括:S100采集用户在电商平台的行为数据;S200建立MySQL数据库,存储采集的用户的行为数据;S300利用监督学习算法,基于采集的用户的行为数据和商品ID数据,构建并训练用户的商品ID偏好模型,生成用户的多维画像;S400基于TensorFlow机器学习框架,构建多层协同过滤的神经网络模型,利用生成的用户的多维画像训练构建的多层协同过滤的神经网络模型;S500利用训练后的多层协同过滤的神经网络模型,根据用户的实时请求,生成针对用户的商品ID推荐列表。
其中,采集用户在电商平台的各类行为数据,包括点击、收藏、添加购物车、下单购买等行为日志,以及用户的基础信息,存储到MySQL数据库中。通过对采集行为数据进行分析,应用监督学习算法如Bayes分类器等,训练商品ID偏好模型,生成表示用户兴趣维度的多维特征向量。还可以采用如下监督学习算法:可以使用XGBoost算法对用户的多维度特征进行建模,实现对用户个性化兴趣的学习,并进行精准的个性化商品推荐。可以构建基于深度神经网络的推荐器,通过隐层的非线性变换,实现对用户兴趣的高度抽象表示,产生新的个性化推荐结果。可以使用注意力网络来赋予不同用户行为不同权重,从而建模出用户的个性化兴趣,推荐用户感兴趣而非主流的长尾商品。基于TensorFlow框架,构建融合了多层全连接网络的协同过滤神经网络模型,输入层表示用户特征向量,经过多层非线形变换,输出层给出针对不同用户的商品推荐列表。利用用户的多维特征向量初始化协同过滤网络模型,通过模型训练学习用户的非线性兴趣模式。在用户请求推荐时,实时提取对应用户的特征向量,输入协同过滤网络模型,输出个性化的商品推荐列表。随着用户行为的积累,定期使用新数据重新训练网络模型,实现模型的增量优化。
具体地,在本申请中,生成表示用户兴趣的多维画像:收集不同类别的用户行为数据,如用户的点击、浏览、收藏、购买记录等。对不同行为类型进行One Hot编码,获得sparse特征表示。对用户基础属性数据如年龄、职业等,利用统计方法生成属性特征。对用户的搜索词反馈进行自然语言处理,通过词向量技术获取语义特征。对用户历史交互的商品,使用商品词向量得到用户的商品兴趣表示。将上述各维度的特征拼接起来,构成用户的多维稀疏特征向量。将特征向量输入到多层感知机对用户进行分类,得到分类结果作为用户画像。也可以使用聚类算法如K-Means对用户进行行为分析,获得用户群类别作为画像。还可以训练出基于用户特征的隐语义模型,输出的隐层向量即为多维用户画像。综上,从行为、属性、内容等不同维度收集特征,通过机器学习方式综合处理,可以生成表示用户兴趣的多维特征向量,即为用户画像。
具体地,在本申请中基于TensorFlow构建多层协同过滤的神经网络模型:输入层:表示用户的多维特征向量,向量维度为用户的兴趣维度,如用户历史行为、基础属性等。第一隐藏层:全连接网络层,节点数为N1,激活函数采用ReLU,学习用户兴趣的低阶抽象特征。第二隐藏层:同样是全连接网络层,节点数N2,继续学习高阶兴趣抽象特征。第三隐藏层:设置为多层感知机结构,分别学习用户对不同类别商品的偏好。输出层:针对每个商品,给出预测的用户商品偏好度,构成商品候选列表。模型训练:利用用户多维特征向量训练网络模型,采用两两学习方式最大化正样本偏好度。TensorFlow组件,使用Estimator API实现模型的训练、评估、预测流程,使用Early Stopping防止过拟合。这样通过TensorFlow构建起了一个既包含了多层感知机又包含了全连接网络的混合模型,可以同时支持用户协同过滤和个性化内容推荐。
更具体地,在本申请中,第一层布隆过滤器设置为500万比特,即N1=5000000,第二层布隆过滤器设置为1000万比特,即N2=10000000。N2约为N1的2倍,500万比特的布隆过滤器,误判率在0.1%左右,1000万比特的布隆过滤器,误判率可以控制在0.01%左右。第一层过滤掉大部分非热门商品,第二层再对热门商品去重,进一步减少误判,两层过滤重复商品的能力依次增强,同时考虑存储空间和误判率的平衡。
图2是根据本说明书一些实施例所示的生成第二推荐列表的示例性流程图,生成针对用户的商品ID推荐列表,还包括:S510利用构建的多层协同过滤的神经网络模型,根据用户的实时请求,生成针对用户的第一推荐列表。其中,构建的多层协同过滤神经网络模型已经事先训练好,能够产生针对不同用户的商品推荐列表。当用户发起商品推荐请求时,根据用户ID查找对应的用户特征向量作为模型输入。将用户特征向量输入协同过滤模型,激活网络进行前向计算,得到每个商品的推荐概率。根据所有商品的推荐概率值排序,选择概率最高的N个商品作为第一推荐列表。为了获得更加个性化的推荐,可以将第一推荐列表再次输入到协同过滤模型中。模型输出针对第一推荐列表商品的二次推荐概率。根据二次推荐的概率排序,选取前M个商品作为个性化推荐结果。最终将第一轮主流推荐和第二轮个性化推荐合并,构建针对该用户的商品推荐列表。
S520在构建的多层协同过滤的神经网络模型的输出层后设置统计单元,统计单元包含多个计数器,通过商品ID映射的方式,统计各商品ID在多层协同过滤的神经网络模型中出现的总次数。其中,在多层协同过滤神经网络的输出层后,添加统计单元结构。统计单元包含一个计数器数组,数组长度为商品总数,每个计数器通过商品ID映射到对应的数组索引上。当神经网络模型进行训练时,每次输出层生成一个商品的推荐列表。对推荐列表中的每个商品ID,统计单元通过商品ID映射,找到对应的计数器。将该计数器值加1,表示该商品获得了一次推荐输出。随着训练的进行,统计单元实时统计每个商品ID被网络输出的总次数。训练结束后,统计单元记录了每个商品在模型中的热度信息。根据计数器的值排序,可以得到全局最热门的商品。也可以获取每个商品在模型中的热度分布,作为新颖性的打分。
S530根据统计单元统计的各商品ID出现的总次数,计算商品ID分布信息熵作为新颖度指标;S540当新颖度指标低于阈值时,构建基于Scikit learn的随机森林算法冷启动推荐生成器。其中,基于统计单元统计得到每个商品在模型中的出现次数后。计算所有商品出现次数的分布情况,生成概率分布。对该概率分布计算信息熵,作为整体推荐列表的新颖度指标。设置新颖度阈值,当计算得到的信息熵低于阈值时,表示推荐新颖性不足。这种情况下,需要启动冷启动推荐生成器来提供更加个性化的推荐。冷启动生成器利用Scikitlearn构建随机森林模型。将用户的多维特征向量作为随机森林模型的输入。模型输出对各商品的推荐概率,形成个性化的候选列表。从候选列表中根据新颖度要求进行二次过滤,产生新颖的冷启动推荐结果。将冷启动结果与主模型结果组合,作为最终推荐输出。
具体地,Scikit learn随机森林算法为一种Tree-based的集成学习算法,它在训练集上构建多棵决策树,并采用平均或多数表决的方式进行预测,以提高算法的稳定性和准确性。该算法可以用于分类与回归。在本申请中,采用Scikit learn随机森林算法作为冷启动推荐,随机森林算法可以处理高维稀疏数据,适用于用户画像特征;利用多棵决策树集成,可以学到用户兴趣的非线性模式;树模型具有较好的模型解释性,利于分析不同用户群的区别;随机森林算法训练速度较快,适合增量更新模型;算法本身包含随机性,可以增加推荐结果的多样性,产生更新颖的长尾推荐。随机森林算法可以学习到用户个性化的兴趣偏好模型,产生符合用户特定画像但新颖多样的推荐结果,有效解决冷启动问题。
具体地,冷启动推荐生成器是指针对新用户或用户数据极为稀少时,无法直接通过协同过滤等推荐算法给用户生成个性化推荐的情况,采用的特定推荐,冷启动推荐生成器,不依赖用户历史数据,主要利用用户基础属性或初期交互行为;通常采用基于内容过滤或人工智能算法;可以产生新颖度较高的推荐结果,但准确率较协同过滤低;输出的推荐列表可以与协同过滤结果组合使用;也可在用户冷启动时段使用,并逐步减少其推荐数量。
S550冷启动推荐生成器基于用户的多维画像,生成与用户的多维画像相匹配且未推荐的商品ID集合。其中,输入用户的多维画像,表示用户的基础特征和行为偏好。冷启动推荐生成器使用协同过滤或者基于内容的算法。如果使用协同过滤,则找到与当前用户在画像上最相似的K个邻居用户。检索这K个用户的历史购买/浏览商品,作为候选集。如果使用基于内容的方法,则直接根据用户画像中反映的商品偏好,检索出符合要求的商品作为候选集。对候选集中的商品,检索它们的商品特征向量。计算用户多维画像向量与商品特征向量之间的相似度。选择与用户画像向量相似度最高的N个商品作为生成的推荐集。进一步对推荐集去重,确保其中商品未在其他列表中出现过。最终得到符合用户兴趣偏好且新颖未重复的商品推荐集。
具体地,在本申请中,收集新用户基础信息,如年龄、性别、职业等,生成基础特征向量A,使用预训练好的模型推断出用户的消费能力和品牌偏好,生成特征向量B;将A、B拼接,得到用户综合画像向量P,提取所有商品的标题、标签、描述等文本,通过NLP模型获取文本特征向量Qi,对每个商品向量Qi,计算其与用户画像向量P的余弦相似度sim(P,Qi),设置阈值θ=0.6,过滤出所有sim(P,Qi)>θ的商品,在候选集中过滤掉用户历史购买记录中的商品,得到与用户画像高度匹配但未推荐过的商品集合{I1,I2,...In},随机抽样获取k个商品作为初级推荐结果,随着用户行为数据累积,加入协同过滤等算法进行优化。
S560将生成的商品ID集合与第一推荐列表进行拼接,生成第二推荐列表作为针对用户的商品ID推荐列表。其中,已经生成了基于协同过滤的第一推荐列表,包含K1个热门商品。冷启动生成器产生了K2个符合用户画像的长尾商品。为保证推荐列表整体质量,首先从第一列表中按照商品热度保留Top K个商品。其次从冷启动结果中选择新颖度最高的K3个商品。将保留的K个热门商品与新颖的K3个长尾商品组合起来。可以随机打乱组合结果的显示顺序,也可以根据不同阶段的推荐策略,动态调整热门商品和长尾商品的数量比例。如用户冷启动阶段可以增加更多冷启动商品比例。当用户互动数据积累后,可以适当减少冷启动商品的数量。经过上述策略综合生成的新列表,作为更加平衡的推荐结果。
图3是根据本说明书一些实施例所示的生成与用户的多维画像相匹配且未推荐的商品ID集合的示例性流程图,生成与用户的多维画像相匹配且未推荐的商品ID集合,还包括:S551对商品ID数据进行编码,生成商品特征向量;S552利用基于Sklearn的One HotEncoder对用户的行为数据进行编码,生成用户特征向量;S553根据用户特征向量和商品特征向量,计算用户和商品ID之间的匹配度。
其中,收集用户的各类交互行为数据,如点击、加入购物车、收藏等。使用Sklearn的One Hot Encoder对不同行为类型进行One Hot编码,生成用户行为的稀疏特征向量。同时对商品ID也进行One Hot编码,得到商品的特征向量。计算用户行为特征向量与每个商品特征向量的余弦相似度。相似度高表示该商品与用户行为偏好匹配。可以设置相似度阈值,选择与用户行为向量相似度大于阈值的商品。从中过滤掉已在其他列表出现的商品,保证新颖性。还可以结合用户基础属性数据一起编码生成用户特征,计算商品匹配度。最终得到符合用户画像及偏好并且新颖的商品集合。
具体地,Sklearn是Python中的一个流行的机器学习库,全称为Scikit learn。Sklearn One Hot Encoder:Sklearn库中的一种编码转换器,可以将分类特征值转换为one-hot编码表示的稀疏向量。将用户的交互行为类别及商品ID这些分类特征值,转换为稀疏向量表示。采用向量空间模型计算用户行为向量与商品向量间的相似度。One HotEncoder实现类别特征的向量化,为基于内容的推荐算法提供输入,计算用户-商品的匹配度。
S554在冷启动生成器中构建基于Pybloom的布隆过滤器,布隆过滤器根据商品ID推荐列表,生成已推荐商品ID集S;冷启动推荐生成器从MySQL数据库中随机抽取商品ID作为候选集;布隆过滤器采用散列函数判断候选集中的商品ID是否在已推荐商品ID集S中;将匹配度高于阈值且不在已推荐商品ID集S中的商品ID,作为与用户的多维画像相匹配且未推荐的商品ID集合。其中,在冷启动生成器中,利用Pybloom构建布隆过滤器。先将已推荐的商品ID集S全部存入布隆过滤器。
S555从MySQL数据库中随机抽取一批商品作为候选集。S556对候选集中的每个商品ID,利用布隆过滤器的散列函数判断其是否在集合S中。如果不在,则计算该商品与用户多维画像的匹配度。对匹配度大于设定阈值的商品,认为是符合用户兴趣偏好的。将这部分匹配商品加入结果集,作为冷启动推荐列表。最终结果集中的商品既与用户画像吻合,又不会与已推荐商品重复。此外,还可以根据业务需求,从结果集中移除付费内容或下架商品。得到去重优化后的冷启动推荐列表。
具体地,布隆过滤器(Bloom Filter)是一种高效的概率型数据结构,用于检测某个元素是否属于一个集合。它的主要优点是空间效率和查询时间都远远超过一般的算法。Pybloom是Python中实现布隆过滤器的一个库,提供了布隆过滤器的构建接口;支持自定义散列函数及过滤器容量的参数;实现添加元素和快速查找元素的接口。在本申请中,使用Pybloom的布隆过滤器主要目的是:将已推荐的商品ID集合存入布隆过滤器;快速判断随机抽取的候选商品是否已被推荐过;避免冷启动结果中出现重复的商品推荐。这样可以利用布隆过滤器的空间和时间效率提升推荐系统的去重能力。具体地,散列函数是一种将任意长度的输入数据映射到固定长度输出的函数。在本申请中,可以采用以下散列函数:MD5、SHA1等加密散列函数。
具体地,在本申请中,定义布隆过滤器的大小m,选择散列函数H,初始化所有位为0。对已推荐商品ID集S中的每一个元素x,计算k个散列值:h1=H1(x),h2=H2(x),......,hk=Hk(x)。根据每个散列值hi,将布隆过滤器数组对应的位设置为1。对候选集C中的每个商品IDy,同样计算k个散列值。检查布隆过滤器中是否所有的k个对应位都为1。如果有任一位为0,说明y不在集合S中,没有被推荐过。如果都为1,说明y很可能在集合S中,不能作为新商品推荐。由于散列冲突,可能存在小概率的误判别。重复判断全部商品,得到推荐集中的全新商品。
图4是根据本说明书一些实施例所示的生成商品特征向量的示例性流程图,对商品ID数据进行编码,生成商品特征向量,还包括:S551A商品ID数据包含商品标题和商品详情页面;对商品标题和商品详情页面的文本内容,利用Text Rank算法提取关键词。
具体地,Text Rank算法是一种基于图模型的关键词提取算法,在商品数据处理中,Text Rank可以自动抽取商品标题和详情页面的关键词,构建商品的内容特征,用于匹配用户兴趣。收集商品的标题和详情页面的文本内容,进行文本清洗和预处理。利用TextRank算法构建文本的图模型表示:每个词表示为一个节点。词与词之间的共现关系构建边。按照共现次数为边赋予不同权重。执行Text Rank算法迭代计算:每个词的重要性得分依据其相连词条的重要性进行更新。重复迭代直到得分收敛。根据最终词的Text Rank得分排序。选择得分最高的前N个词作为商品内容的关键词。将关键词转换为词向量表示。构建商品的文本特征向量。相比直接使用TF IDF等词频方法,Text Rank可以提取词义上更重要的词语。
S551B基于提取的关键词构建商品ID数据的TF IDF词频矩阵;S551C获取TF IDF词频矩阵中词频大于阈值的词汇,生成表示商品ID属性的词汇集合;其中,对每个商品的标题和详情页面进行关键词提取,得到关键词列表。构建所有商品的关键词表,统计每个关键词在各商品中的词频,形成词频矩阵。对词频矩阵进行TF IDF转换,得到商品关键词的TF IDF权重矩阵。设置词频阈值,选择TF IDF权重大于该阈值的关键词。这部分关键词即表示商品的主要属性词汇。可以设置词汇数量的上下限,防止维度过大或过小。对选择的词汇进行词向量转换,构建商品内容的低维稠密向量。将向量连接商品ID等特征,形成商品的结构化特征表达。后续可以基于词向量的含义相似性计算商品之间的关联度。
具体地,在本申请中设置词频阈值,采用如下方案:计算词频矩阵所有词语的TFIDF权重值。绘制词语的TF IDF权重分布直方图。在直方图上观察词语TF IDF值的分布情况。一般呈现指数下降趋势。可选取直方图中拐点处的TF IDF值作为词频阈值。拐点前的高频词可以视为商品的主要属性词汇。也可以人工查阅不同TF IDF段位对应的词语,选择合适的阈值。如果词汇量过大,可以适当提高阈值;如果词汇量太少,可以降低阈值。可先在小数据集上快速迭代,确定合适的阈值。在大数据集上直接采用此阈值,避免重复计算。
S551D对词汇集合中的词语,通过预训练的BERT语言模型获取语义向量表示;S551E根据TF IDF词频矩阵中词汇对应的权重,对其语义向量进行加权平均,生成商品特征向量。具体地,BERT(Bidirectional Encoder Representations from Transformers)是一种transformers结构的语言表示模型,在本申请中,BERT的作用是:输入商品关键词,输出关键词的语义向量。语义向量集成得到商品的内容特征表示。利用BERT的语义建模能力,使商品内容向量反映语义级别信息。有利于后续的语义相似性计算和用户兴趣匹配。
具体地,在本申请中,对提取的商品关键词词汇进行分词,处理为词序列。使用预训练的BERT模型对词序列进行输入。BERT模型会输出每个词的语义向量表示。对应每个关键词,取其最后一个词片的BERT向量作为关键词向量。将所有关键词向量组合,根据Keywords的TF IDF权重进行加权平均。加权平均公式为:Keyword_vec=Σ(tfidf_i*word_veci)/Σ(tfidf_i);其中word_veci是第i个关键词的BERT向量,tfidf_i是其TF IDF权重。得到的Keyword_vec即为商品关键词集合的语义向量表示。将向量连接商品ID等特征,形成商品的结构化内容特征。通过BERT模型提取词语的语义信息,构建商品内容特征向量,使得向量可反映词义级别的相似性,利于匹配用户兴趣爱好。
进一步地,布隆过滤器设置两层;第一层布隆过滤器的位数组大小设置为N1比特;第二层布隆过滤器的位数组大小设置为N2比特,其中N2大于N1。具体地,在本申请中,创建大小为N1比特的第一层布隆过滤器BF1,使用散列函数H1。对已推荐商品ID集S,使用H1计算散列,并将BF1的对应位设置为1。同样创建大小为N2比特且N2>N1的第二层过滤器BF2,使用散列函数H2。对集合S,使用H2计算散列,将BF2的对应位设置为1。对候选集中的商品IDy,使用H1计算散列值,在BF1中查询。如果BF1表明y有可能在S中,再使用H2在BF2中验证。只有当两层过滤器都表明y在S中,才确定不推荐商品y。利用两层过滤减少误判率,同时提高空间利用率。BF2只需要存储BF1无法判断的商品ID部分。
更具体地,同质化问题是指用户收到过多相似商品的推荐,降低了推荐的新颖性。单层过滤器容易将不同但类似商品都判断为已推荐,过滤掉大量潜在新颖商品。设置两层过滤器,第一层快速过滤明显重复内容。第二层针对第一个层判断存在歧义的商品进行确证。两层过滤重复判断,可以大大减少对相似商品的误过滤。保留更多未推荐的新颖选择给用户。N2>N1设计合理控制了空间利用,只存储必要商品。同时利用两次判断降低误判率。整体效果是可以推荐更多样式新颖、内容丰富的商品。有效减少同质化现象,提升用户体验。
进一步地,还包括:设置M个不同的哈希函数,针对同一商品ID生成M个不同的哈希值;将商品ID推荐列表中的每个商品ID利用M个哈希函数分别映射到两层布隆过滤器的位数组中;输入的候选集中的商品ID,通过M个不同的哈希函数生成M个对应的哈希值;第一层布隆过滤器中,若生成的M个对应的哈希值对应的位数组的位置均为零,则将对应的商品ID发送到第二层布隆过滤器;仅当第一层布隆过滤器和第二层布隆过滤器对应的全部位数组的位置均为零时,判定对应的商品ID不在推荐列表中。
其中,采用多个哈希函数解决电商同质化问题,可以采用,MD5和SHA-1-加密哈希函数,输出散列值分布均匀,冲突概率小。Murmur Hash,性能高效的非加密哈希函数,Redis中的hash函数采用该算法。FNV Hash-计算简单且性能好的哈希算法,输出分布均匀。CityHash,Google开源的快速高质量哈希算法,碰撞率低。Xx Hash,同样速度快且质量好的非加密哈希函数。Farm Hash,Google研究的针对短字符串的快速哈希算法。Sip Hash,密码学安全的PRF哈希算法,抗DoS攻击。
具体地,在本申请中,定义M个不同的哈希函数H1,H2,......,Hm;对每个推荐商品ID,利用每一个哈希函数计算散列值。在第一层过滤器BF1的对应的M个位置上置1。同样在第二层过滤器BF2的M个位置上置1。对输入的候选商品ID,计算M个哈希值。在BF1的M个位置上查找,如果存在任一位置为0,发送到BF2。在BF2的M个位置上查找,只有当全部M位都为1,才判定为已推荐商品。这样可以降低哈希冲突导致的误判率。同时也控制了过滤器大小,不会线性扩大。两层过滤重复判断,可以提供更准确的去重效果。
更具体地,在本申请中,第一层过滤快速排除明显重复商品,避免大量不必要的二次判断,提高效率。只有第一层无法明确判断的商品才进入第二层过滤器,节省空间。两层过滤重复判断,可以降低哈希冲突导致的误判率,提高判断准确率。多哈希设计增加了每个商品的维度,进一步减少不同商品哈希冲突概率。合理控制过滤器误报率,将更多非重复但相似商品留给推荐选择。两层过滤重复判断加多哈希设计,综合效果是可以有效减少重复商品推荐。同时最大限度保留未推荐的新颖商品。从而缓解同质化问题,提升推荐多样性和准确率。
图5是根据本说明书一些实施例所示的生成用户特征向量的示例性流程图,利用基于Sklearn的One Hot Encoder对用户的行为数据进行编码,生成用户特征向量,还包括:S552A根据时间戳,将采集的用户的行为数据分割为多个会话序列;S552B将获取的会话序列输入预训练的LSTM网络,输出反映用户时间偏好的特征矩阵A;S552C利用One HotEncoder对用户的形式数据进行编码,生成表示用户基础特征的向量B;S552D通过numpy中的hstack函数,将矩阵A和向量B按列进行水平拼接,生成用户特征矩阵C;S552E将生成的用户特征矩阵平展为用户特征向量。
其中,在本申请中,用户行为数据包括:浏览行为:用户浏览过的商品ID,及对应的浏览时间戳;收藏行为,用户收藏过的商品ID,及对应的收藏时间戳;购买行为,用户购买过的商品ID,及对应的购买时间戳;评论行为,用户对商品发表的评论内容,及对应的评论时间戳;点击行为,用户点击过的商品ID,及对应的点击时间戳。通过这些不同类型的用户行为数据以及对应的时间标记,可以提取出用户的多个会话序列,用于学习用户的时间偏好特征。
具体地,在本申请中,收集用户的行为数据,包含不同行为类型和发生时间戳。根据时间戳将行为分割成多个会话序列。对不同行为使用One Hot Encoder进行编码,得到行为的0/1向量。将编码后的行为序列输入预训练的LSTM模型。LSTM模型学习行为顺序特征,输出用户时间偏好的特征矩阵A。同时,对用户的基础信息使用One Hot Encode生成向量B。使用numpy中的hstack函数,横向拼接矩阵A和向量B。得到用户综合特征矩阵C。将矩阵C展平成一个长向量。该向量综合反映了用户行为偏好和基础特征信息。后续可以输入向量计算用户之间的相似度。
更具体地,在本申请中,将矩阵C展平成一个长向量,可以采用:直接使用numpy.reshape将矩阵C reshape成一个一维向量。例如:vector = numpy.reshape(C, (1,-1));使用numpy.ravel可以将矩阵C展平成一维向量:vector = C.ravel(·);使用双层for循环遍历矩阵C,将元素依次赋值给一个预先定义好的一维向量。使用列表推导式,可以一行代码实现展平:vector = [x for row in C for x in row];使用numpy.flatten函数展平:vector = numpy.flatten(C)。
具体地,Numpy是Python中科学计算的基础库,提供了多维数组和矩阵操作函数。hstack是Numpy中的水平栈叠(Horizontal Stack)函数,它可以实现将多个数组/矩阵按照水平方向(列方向)进行拼接。在本申请中,矩阵A表示用户时间偏好特征,向量B表示用户基础信息。使用numpy.hstack(·)函数,输入(A,B)。hstack会将A和B在水平方向上按列顺序拼接。如果A有m列,B有n列,则输出矩阵C会有m+n列。矩阵C综合反映了用户两方面特征,Dimensions为(num_rows,m+n),该矩阵C后续可展平为用户特征向量。
进一步地,预训练的LSTM网络为双向LSTM网络。具体地,在本申请中,收集并划分用户行为序列,按时间顺序排列。使用One-Hot Encoding将每个行为转换成向量表示。输入编码后的行为序列到预训练的双向LSTM中。对行为序列,双向LSTM分别在正反向各学习一次隐状态表示。输出最后时刻的正反向隐状态拼接,得到反映全序偏好的特征向量。对每个行为序列做此处理,最终输出用户的时间偏好特征矩阵A。同时生成基础特征向量B。利用numpy水平拼接A和B,生成用户综合特征矩阵C。将C展平得到最终用户特征向量。该向量综合学习了用户行为顺序偏好和基础特征。相比单向LSTM,双向LSTM可更全面学习用户复杂的行为模式,有助生成个性化特征。
具体地,在本申请中,matrix A表示基于LSTM获得的用户时间序列特征,vector B表示用户基础信息的one hot编码,使用numpy.hstack(·)函数,输入参数(A,B),它会按列的顺序,将A和B进行水平方向的拼接,生成一个更大的矩阵C,包含了A和B的所有列,矩阵C的列数就是A列数与B列数之和,这样numpy提供了方便高效的矩阵拼接功能,将不同来源的用户信息整合到一个矩阵中。
具体地,同质化问题导致用户接收到单一化的推荐内容。单向LSTM只能学习用户历史行为的顺序特征。双向LSTM可以同时学习前向和后向的上下文关联特征。更全面地建模用户行为模式,而不仅仅是频繁兴趣。可以识别出用户偶尔的微小兴趣爱好。从而挖掘用户的多样化兴趣诉求。生成的用户特征可以匹配更为个性化的推荐结果。用户将获得更丰富多样而不重复的推荐内容。有效缓解同质化问题,提升推荐满意度。
图6是根据本说明书一些实施例所示的计算用户和商品ID之间的匹配度的示例性流程图,计算用户和商品ID之间的匹配度,还包括:S553A将用户特征向量作为查询向量,输入基于Annoy的最近邻搜索索引;S553B将商品特征向量作为输入,通过Annoy构建商品特征向量的最近邻搜索索引;S553C在构建的商品特征向量的最近邻搜索索引中,利用余弦相似度作为距离度量,搜索与用户特征向量最相似的前K1个商品特征向量;S553D计算搜索到的前K1个商品特征向量和用户特征向量之间的余弦相似度,作为用户和商品ID之间的匹配度。
其中,将用户特征向量看作查询向量。将所有商品特征向量输入Annoy,构建商品的近似最近邻索引。在Annoy索引中,以用户特征向量为查询,使用余弦相似度作为距离度量。搜索出与用户向量最相似的前K1个近邻商品向量。计算这K1个商品向量与用户向量的余弦相似度作为匹配度。余弦相似度公式为:sim=cosθ=(A·B)/(|A||B|),其中A为用户特征向量,B为商品特征向量。sim值越大表示两者越相似。返回与用户Top K1相似的商品列表,作为推荐结果。Annoy索引让近邻搜索更加高效。
具体地,Annoy(Approximate Nearest Neighbors Oh Yeah)是一种高效的近似最近邻搜索算法和索引工具,在本申请中,以商品特征向量构建Annoy索引。对用户特征向量进行近似近邻查询。得到与用户兴趣最匹配的商品向量。其搜索速度明显快于线性扫描。当数据量级上亿时,也可以在毫秒级返回结果。大大提升了用户商品匹配的效率。
更具体地,在该方案中,使用余弦相似度和返回前K个最近邻,余弦相似度可以有效度量两个向量的方向一致性。商品向量与用户向量余弦值越大,表示兴趣偏好越一致。仅返回与用户最相似的前K1商品,过滤掉不相关商品。K1的值平衡推荐召回率和精确率。K1适当取大可以增加召回,覆盖更多用户潜在偏好。K1适当取小可以提高推荐精确度。计算具体的余弦相似度,而不是仅顺序,可以进行相似度优先级排名。有助后续根据匹配度进行加权排名、过滤。综上可以使推荐结果更加个性化和准确。
进一步地,将生成的商品ID集合与第一推荐列表进行拼接,生成第二推荐列表作为针对用户的商品ID推荐列表,还包括:从第一推荐列表中,按照商品的点击购买次数排名,提取前K2个商品ID;根据用户和商品ID之间的匹配度,选择匹配度最高的K3个商品ID;通过笛卡尔积,计算K2个商品ID和K3个商品ID的组合;对生成的组合,根据组合中每个商品ID对应的用户和商品ID之间的匹配度之和进行排序;按照排序结果,选择排名最高的W个组合作为第二推荐列表。
其中,从第一推荐列表中提取点击购买次数最高的前K2个热门商品。根据用户-商品匹配度,选择匹配度最高的K3个商品。将K2和K3进行笛卡尔积组合,生成K2xK3个商品组合。对每个组合,计算组合中每个商品的用户-商品匹配度之和,作为组合的匹配度。对所有组合根据匹配度总和进行排序。选择排序最高的前W个组合作为第二推荐列表。该列表同时考虑了商品热度和个性化匹配度。热门商品可以增加用户接受度,个性化商品增加满意度。两个列表融合可以平衡各因素,优化推荐效果。
具体地,从第一推荐列表提取热门商品的点击购买次数排名,在本申请中,统计每个商品在第一推荐列表中所有的用户的点击购买次数。直接按照点击购买总次数对商品进行降序排序。点击次数最高的商品购买热度越高。也可以计算每个商品的点击购买转化率。转化率=点击购买次数/曝光次数,根据转化率进行排序,转化率越高说明商品越热门。再取排序最高的K2个商品作为热门商品。K2的大小可以根据实际情况调节。这样可以通过商品的真实交互行为选择出热门商品。
具体地,笛卡尔积是指在数学中,两个集合X和Y的笛卡尔积表示形成一个新的集合,其中的元素是X和Y中元素的所有可能组合。在本申请中,有一个包含K2个元素的集合A,和一个包含K3个元素的集合B。计算A和B的笛卡尔积,可以产生一个新的集合C。C集合包含K2*K3个元素,是A和B中元素的所有组合。这样就可以通过组合生成更多的候选推荐列表。再从中按照匹配度选择较优组合。扩大了可能的推荐范围,产生更多样化的推荐结果。
具体地,在本申请中,第一推荐列表提取点击购买Top10热门商品A1到A10。根据用户兴趣取Top5匹配商品B1到B5。计算A集合和B集合的笛卡尔积,生成C集合。C集合有10x5=50个商品组合。对每个组合,计算组合中的每件商品与用户的匹配度之和。例如组合(A2,B3),匹配度为:A2商品匹配度(0.7)+B3商品匹配度(0.8)=1.5。对所有50个组合根据总匹配度排序。取排名最高的Top10组合作为第二推荐列表。该列表同时考虑了热门度和个性化匹配度。
Claims (10)
1.一种基于互联网的电商在线直播方法,包括:
采集用户在电商平台的行为数据;
建立MySQL数据库,存储采集的用户的行为数据;
利用监督学习算法,基于采集的用户的行为数据和商品ID数据,构建并训练用户的商品ID偏好模型,生成用户的多维画像;
基于TensorFlow机器学习框架,构建多层协同过滤的神经网络模型,利用生成的用户的多维画像训练构建的多层协同过滤的神经网络模型;
利用训练后的多层协同过滤的神经网络模型,根据用户的实时请求,生成针对用户的商品ID推荐列表。
2.根据权利要求1所述的基于互联网的电商在线直播方法,其特征在于:
生成针对用户的商品ID推荐列表,还包括:
利用构建的多层协同过滤的神经网络模型,根据用户的实时请求,生成针对用户的第一推荐列表;
在构建的多层协同过滤的神经网络模型的输出层后设置统计单元,统计单元包含多个计数器,通过商品ID映射的方式,统计各商品ID在多层协同过滤的神经网络模型中出现的总次数;
根据统计单元统计的各商品ID出现的总次数,计算商品ID分布信息熵作为新颖度指标;
当新颖度指标低于阈值时,构建基于Scikit learn的随机森林算法冷启动推荐生成器;
冷启动推荐生成器基于用户的多维画像,生成与用户的多维画像相匹配且未推荐的商品ID集合;
将生成的商品ID集合与第一推荐列表进行拼接,生成第二推荐列表作为针对用户的商品ID推荐列表。
3.根据权利要求2所述的基于互联网的电商在线直播方法,其特征在于:
生成与用户的多维画像相匹配且未推荐的商品ID集合,还包括:
对商品ID数据进行编码,生成商品特征向量;
利用基于Sklearn的One Hot Encoder对用户的行为数据进行编码,生成用户特征向量;
根据用户特征向量和商品特征向量,计算用户和商品ID之间的匹配度;
在冷启动生成器中构建基于Pybloom的布隆过滤器,布隆过滤器根据商品ID推荐列表,生成已推荐商品ID集S;
冷启动推荐生成器从MySQL数据库中随机抽取商品ID作为候选集;
布隆过滤器采用散列函数判断候选集中的商品ID是否在已推荐商品ID集S中;
将匹配度高于阈值且不在已推荐商品ID集S中的商品ID,作为与用户的多维画像相匹配且未推荐的商品ID集合。
4.根据权利要求3所述的基于互联网的电商在线直播方法,其特征在于:
对商品ID数据进行编码,生成商品特征向量,还包括:
商品ID数据包含商品标题和商品详情页面;
对商品标题和商品详情页面的文本内容,利用Text Rank算法提取关键词;
基于提取的关键词构建商品ID数据的TF IDF词频矩阵;
获取TF IDF词频矩阵中词频大于阈值的词汇,生成表示商品ID属性的词汇集合;
对词汇集合中的词语,通过预训练的BERT语言模型获取语义向量表示;
根据TF IDF词频矩阵中词汇对应的权重,对相应的语义向量进行加权平均,生成商品特征向量。
5.根据权利要求3所述的基于互联网的电商在线直播方法,其特征在于:
布隆过滤器设置两层;
第一层布隆过滤器的位数组大小设置为N1比特;
第二层布隆过滤器的位数组大小设置为N2比特,其中N2大于N1。
6.根据权利要求5所述的基于互联网的电商在线直播方法,其特征在于:
还包括:
设置M个不同的哈希函数,针对同一商品ID生成M个不同的哈希值;
将商品ID推荐列表中的每个商品ID利用M个哈希函数分别映射到两层布隆过滤器的位数组中;
输入的候选集中的商品ID,通过M个不同的哈希函数生成M个对应的哈希值;
第一层布隆过滤器中,若生成的M个对应的哈希值对应的位数组的位置均为零,则将对应的商品ID发送到第二层布隆过滤器;
仅当第一层布隆过滤器和第二层布隆过滤器对应的全部位数组的位置均为零时,判定对应的商品ID不在推荐列表中。
7.根据权利要求3所述的基于互联网的电商在线直播方法,其特征在于:
利用基于Sklearn的One Hot Encoder对用户的行为数据进行编码,生成用户特征向量,还包括:
根据时间戳,将采集的用户的行为数据分割为多个会话序列;
将获取的会话序列输入预训练的LSTM网络,输出反映用户时间偏好的特征矩阵A;
利用One Hot Encoder对用户的形式数据进行编码,生成表示用户基础特征的向量B;
通过numpy中的hstack函数,将矩阵A和向量B按列进行水平拼接,生成用户特征矩阵C;
将生成的用户特征矩阵平展为用户特征向量。
8.根据权利要求7所述的基于互联网的电商在线直播方法,其特征在于:
预训练的LSTM网络为双向LSTM网络。
9.根据权利要求7所述的基于互联网的电商在线直播方法,其特征在于:
计算用户和商品ID之间的匹配度,还包括:
将用户特征向量作为查询向量,输入基于Annoy的最近邻搜索索引;
将商品特征向量作为输入,通过Annoy构建商品特征向量的最近邻搜索索引;
在构建的商品特征向量的最近邻搜索索引中,利用余弦相似度作为距离度量,搜索与用户特征向量最相似的前K1个商品特征向量;
计算搜索到的前K1个商品特征向量和用户特征向量之间的余弦相似度,作为用户和商品ID之间的匹配度。
10.根据权利要求9所述的基于互联网的电商在线直播方法,其特征在于:
将生成的商品ID集合与第一推荐列表进行拼接,生成第二推荐列表作为针对用户的商品ID推荐列表,还包括:
从第一推荐列表中,按照商品的点击购买次数排名,提取前K2个商品ID;
根据用户和商品ID之间的匹配度,选择匹配度最高的K3个商品ID;
通过笛卡尔积,计算K2个商品ID和K3个商品ID的组合;
对生成的组合,根据组合中每个商品ID对应的用户和商品ID之间的匹配度之和进行排序;
按照排序结果,选择排名最高的W个组合作为第二推荐列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311793736.4A CN117788105A (zh) | 2023-12-25 | 2023-12-25 | 一种基于互联网的电商在线直播方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311793736.4A CN117788105A (zh) | 2023-12-25 | 2023-12-25 | 一种基于互联网的电商在线直播方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117788105A true CN117788105A (zh) | 2024-03-29 |
Family
ID=90380998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311793736.4A Pending CN117788105A (zh) | 2023-12-25 | 2023-12-25 | 一种基于互联网的电商在线直播方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117788105A (zh) |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106056427A (zh) * | 2016-05-25 | 2016-10-26 | 中南大学 | 一种基于Spark的大数据混合模型的移动推荐方法 |
CN107563867A (zh) * | 2017-09-06 | 2018-01-09 | 天津大学 | 一种基于多臂赌博机置信上限的推荐系统冷启动方法 |
WO2018160747A1 (en) * | 2017-02-28 | 2018-09-07 | Laserlike Inc. | Enhanced search to generate a feed based on a user's interests |
CN110232154A (zh) * | 2019-05-30 | 2019-09-13 | 平安科技(深圳)有限公司 | 基于随机森林的产品推荐方法、装置及介质 |
CN110490686A (zh) * | 2019-07-08 | 2019-11-22 | 西北大学 | 一种基于时间感知的商品评分模型构建、推荐方法及系统 |
CN111008278A (zh) * | 2019-11-22 | 2020-04-14 | 厦门美柚股份有限公司 | 内容推荐方法及装置 |
CN111967937A (zh) * | 2020-08-17 | 2020-11-20 | 深圳市泽科科技有限公司 | 一种基于时间序列分析的电商推荐系统及实现方法 |
CN112598462A (zh) * | 2020-12-19 | 2021-04-02 | 武汉大学 | 基于协同过滤和深度学习的个性化推荐方法及系统 |
CN112598438A (zh) * | 2020-12-18 | 2021-04-02 | 苏州壹佰伍拾亿智能科技有限公司 | 一种基于大规模用户画像的户外广告推荐系统及方法 |
US10970629B1 (en) * | 2017-02-24 | 2021-04-06 | Amazon Technologies, Inc. | Encodings for reversible sparse dimensionality reduction |
US20210110306A1 (en) * | 2019-10-14 | 2021-04-15 | Visa International Service Association | Meta-transfer learning via contextual invariants for cross-domain recommendation |
CN114399354A (zh) * | 2021-12-22 | 2022-04-26 | 中国电信股份有限公司 | 一种商品推荐方法、装置、终端设备和存储介质 |
CN114862511A (zh) * | 2022-04-29 | 2022-08-05 | 浙江工业大学 | 一种基于深度学习的短视频直播营销任务推荐方法 |
CN116071123A (zh) * | 2022-12-26 | 2023-05-05 | 唯品会(广州)软件有限公司 | 商品数据处理方法、系统、电子设备及存储介质 |
CN116703506A (zh) * | 2023-05-25 | 2023-09-05 | 天翼电子商务有限公司 | 一种基于多特征融合的电商商品推荐方法及系统 |
CN116738081A (zh) * | 2023-08-08 | 2023-09-12 | 贵州优特云科技有限公司 | 一种前端组件绑定方法、装置及存储介质 |
CN116862626A (zh) * | 2023-09-05 | 2023-10-10 | 广州数说故事信息科技有限公司 | 一种多模态商品对齐方法 |
-
2023
- 2023-12-25 CN CN202311793736.4A patent/CN117788105A/zh active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106056427A (zh) * | 2016-05-25 | 2016-10-26 | 中南大学 | 一种基于Spark的大数据混合模型的移动推荐方法 |
US10970629B1 (en) * | 2017-02-24 | 2021-04-06 | Amazon Technologies, Inc. | Encodings for reversible sparse dimensionality reduction |
WO2018160747A1 (en) * | 2017-02-28 | 2018-09-07 | Laserlike Inc. | Enhanced search to generate a feed based on a user's interests |
CN107563867A (zh) * | 2017-09-06 | 2018-01-09 | 天津大学 | 一种基于多臂赌博机置信上限的推荐系统冷启动方法 |
CN110232154A (zh) * | 2019-05-30 | 2019-09-13 | 平安科技(深圳)有限公司 | 基于随机森林的产品推荐方法、装置及介质 |
CN110490686A (zh) * | 2019-07-08 | 2019-11-22 | 西北大学 | 一种基于时间感知的商品评分模型构建、推荐方法及系统 |
US20210110306A1 (en) * | 2019-10-14 | 2021-04-15 | Visa International Service Association | Meta-transfer learning via contextual invariants for cross-domain recommendation |
CN111008278A (zh) * | 2019-11-22 | 2020-04-14 | 厦门美柚股份有限公司 | 内容推荐方法及装置 |
CN111967937A (zh) * | 2020-08-17 | 2020-11-20 | 深圳市泽科科技有限公司 | 一种基于时间序列分析的电商推荐系统及实现方法 |
CN112598438A (zh) * | 2020-12-18 | 2021-04-02 | 苏州壹佰伍拾亿智能科技有限公司 | 一种基于大规模用户画像的户外广告推荐系统及方法 |
CN112598462A (zh) * | 2020-12-19 | 2021-04-02 | 武汉大学 | 基于协同过滤和深度学习的个性化推荐方法及系统 |
CN114399354A (zh) * | 2021-12-22 | 2022-04-26 | 中国电信股份有限公司 | 一种商品推荐方法、装置、终端设备和存储介质 |
CN114862511A (zh) * | 2022-04-29 | 2022-08-05 | 浙江工业大学 | 一种基于深度学习的短视频直播营销任务推荐方法 |
CN116071123A (zh) * | 2022-12-26 | 2023-05-05 | 唯品会(广州)软件有限公司 | 商品数据处理方法、系统、电子设备及存储介质 |
CN116703506A (zh) * | 2023-05-25 | 2023-09-05 | 天翼电子商务有限公司 | 一种基于多特征融合的电商商品推荐方法及系统 |
CN116738081A (zh) * | 2023-08-08 | 2023-09-12 | 贵州优特云科技有限公司 | 一种前端组件绑定方法、装置及存储介质 |
CN116862626A (zh) * | 2023-09-05 | 2023-10-10 | 广州数说故事信息科技有限公司 | 一种多模态商品对齐方法 |
Non-Patent Citations (2)
Title |
---|
张宜浩;朱小飞;徐传运;董世都;: "基于用户评论的深度情感分析和多视图协同融合的混合推荐方法", 计算机学报, no. 06, 6 March 2019 (2019-03-06) * |
沈晶磊;虞慧群;范贵生;郭健美;: "基于随机森林算法的推荐系统的设计与实现", 计算机科学, no. 11, 15 November 2017 (2017-11-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210271975A1 (en) | User tag generation method and apparatus, storage medium, and computer device | |
CN110046304B (zh) | 一种用户推荐方法和装置 | |
CN109829104B (zh) | 基于语义相似度的伪相关反馈模型信息检索方法及系统 | |
CN111914054A (zh) | 用于大规模语义索引的系统和方法 | |
CN110532479A (zh) | 一种信息推荐方法、装置及设备 | |
CN101408897B (zh) | 一种基于协作过滤的个性化查询扩展方法 | |
CN103544216A (zh) | 一种结合图像内容和关键字的信息推荐方法及系统 | |
CN109918563A (zh) | 一种基于公开数据的图书推荐的方法 | |
Zhou et al. | Real-time context-aware social media recommendation | |
CN106250545A (zh) | 一种基于用户搜索内容的多媒体推荐方法及系统 | |
CN112100512A (zh) | 一种基于用户聚类和项目关联分析的协同过滤推荐方法 | |
Wang et al. | Personalized embedding-based e-commerce recommendations at ebay | |
Liu et al. | Fast recommendation on latent collaborative relations | |
CN115408605A (zh) | 基于边信息和注意力机制的神经网络推荐方法及系统 | |
CN116842267A (zh) | 基于深度学习的个性化装修方案推荐方法、系统及介质 | |
CN115600017A (zh) | 特征编码模型训练方法及装置、媒体对象推荐方法及装置 | |
Chen et al. | Multi-dimensional shared representation learning with graph fusion network for session-based recommendation | |
Cui et al. | Learning to rank images for complex queries in concept-based search | |
Bi et al. | Cubelsi: An effective and efficient method for searching resources in social tagging systems | |
CN116955818A (zh) | 一种基于深度学习的推荐系统 | |
CN117788105A (zh) | 一种基于互联网的电商在线直播方法 | |
CN114022233A (zh) | 一种新型的商品推荐方法 | |
JP7158870B2 (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
CN115344701A (zh) | 基于知识图谱的电商推荐方法 | |
Rawat et al. | An embedding-based deep learning approach for movie recommendation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |