基于用户历史行为序列的电商个性化推荐系统
2021-11-25刘丰维
刘丰维
(上海飞机制造有限公司,上海201324)
无论在学术界还是在工业界,个性化推荐系统的研究越来越受到重视。一方面来说,个性化推荐系统在电子商务领域落地情况很好,积累了大量真实的数据,这能够推动学术界对于推荐系统的研究。另一方面来说,个性化推荐系统能够在海量商品中,给用户展示其最有购买意向的商品,极大地改善了用户的购物体验,提高了用户的购买率。
在大数据技术初步用于电商推荐系统时,猜你喜欢、看了又看等推荐形式给用户带来了全新体验,可以在一定程度上捕捉到消费者的兴趣点。但是由于用户兴趣点在长期和短期内都会发生变化,滞后或不变的推荐结果会造成用户疲劳。随着大数据、云计算、人工智能算法技术的发展,各电商平台都在研究开发个性化实时推荐系统,做到根据用户的行为为每个用户实时地、精准地推送感兴趣商品,从而达到比用户更了解自己的效果。本文设计了包含数据层、模型层、融合层、应用层的个性化实时推荐系统架构。数据层基于Spark Streaming实现了用户行为实时采集。模型层包含协同过滤、相似商品、热度等多路召回模型。融合层根据用户实时行为对召回结果重排。应用层展示推荐结果,并埋点记录用户反馈,用于推荐效果评估。
1 系统架构设计
本文设计基于用户历史行为序列的电商个性化推荐系统包括数据层、模型层、融合层、应用层4个部分,基于用户实时行为(包括浏览、收藏、分享、购买、不喜欢等),实现了实时召回+精排的主流推荐流程。系统架构如图1所示。
图1 基于用户历史行为序列的电商个性化推荐系统架构
1.1 数据层
数 据 层 包 括Spark Streaming、HBase、MySQL和Hive。
Spark Streaming流式计算实时处理应用层埋点获取的用户行为,包括正向行为(浏览、收藏、分享、购买)和负向行为(不喜欢、不再推荐)。Spark Streaming将用户行为数据写入HBase和Hive。
HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,能够支持大量字段的随机写入和读取。本系统采用HBase的这个特性,实现用户行为的实时写入和快速查询。根据实时查询到的用户行为,在融合层实时计算用户类目偏好权重。
MySQL是一种关系型数据库管理系统。本系统使用MySQL存储商品及用户信息,这些信息用于生成相似商品、相关商品模型以及用户类目偏好权重计算。
Hive是基于Hadoop的一个数据仓库工具,用来进行大数据的提取、转化、加载。本系统利用Hadoop大数据存储及并行计算能力,来存储用户历史行为数据,以及用这些数据来计算商品推荐效果指标,比如商品曝光点击率CTR等。
1.2 模型层
模型层主要包含4个召回模型,分别是协同过滤模型、相似商品模型、热度统计模型和相关商品模型。
协同过滤模型主要采用矩阵分解方法,从用户和商品交互行为数据中,挖掘出相似用户和相似商品,并得到为每个用户推荐的商品集合。
相似商品模型通过计算商品特征向量间的内积得到商品间的相似度,为每个商品推荐最为相似的前100个商品集合。当用户对某个商品存在显示的正向行为(比如浏览、收藏、分享等)时,根据这个商品的属性,可为用户推荐相似商品。
热度统计模型根据平台一段时间内全部用户行为,统计类目及商品热度(浏览量、购买量),选取最热门的100个类目,每个类目下选择最热门的100个商品。当一个新用户进入平台后,由于缺少该用户行为,所以难以捕捉到用户兴趣,可以尝试为其推荐热门类目商品。
相关商品模型以商品类目和商品标题信息来计算相关商品集合。相关商品指具有一定相关性的不同商品,比如同品牌下的不同类型商品、在类似场景下使用的不同商品等。当用户已购买了某一类商品,短期内不可能再次购买时,推送相关商品会更加合适。
1.3 融合层
融合层包括用户类目偏好权重计算、精排两个部分。
用户类目偏好权重计算根据用户的社会统计学信息(性别和年龄)和用户的历史行为来计算用户对各商品类目的偏好程度,以权重来表示。不推荐的类目权重为0,最优先推荐的类目权重为2。
精排部分使用精排模型,综合用户对商品类目偏好权重,对从模型层的4个召回源召回候选商品,进行重新排序,选取前20个作为最终推荐结果推送给应用层展示。
1.4 应用层
应用层包括用户行为反馈埋点、推荐商品展示以及推荐结果评价指标计算。
用户行为反馈埋点用于记录用户对推荐商品的反馈行为,包括前文中提到的正向和负向行为。这些行为数据通过Spark Streaming流式计算实时写入HBase和Hive。
推荐商品展示向用户展示实时商品推荐结果。
推荐结果评价指标计算主要为推荐商品曝光点击通过率CTR。CTR越高说明用户对推荐的商品感兴趣的可能性越大。
2 系统实现
本系统的关键技术点为模型层和融合层的算法实现,这里对模型层中的协同过滤模型、相似商品模型、相关商品模型以及融合层中的用户类目偏好权重计算、精排进行详细论述。
2.1 模型层
2.1.1 协同过滤模型
协同过滤是推荐系统最为流行的算法之一,简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度地回应(如评分)并记录下来以达到过滤的目的,进而帮助别人筛选信息。
交替最小二乘法ALS(Alternative Least Square)算法是一种基于隐语义模型的协同过滤推荐,其核心思想是对稀疏的用户-物品评分矩阵进行模型分解。
在这种方法中,一个U×I的用户-物品评分矩阵R(矩阵秩为n)可近似表示为PQT,其中P是一个和基于邻域的协同过滤类似,对用户-物品评分矩阵分解,可看作在U×k用户因子矩阵,Q是一个k×I物品因子矩阵。这样矩阵P的第u行表示用户u在向量空间k上的映射向量。同样矩阵Q的第j行表示物品j在向量空间k上的映射向量。
这里向量空间k可以解释成物品集合存在k个类别,每个物品属于k个类别的评分就是矩阵Q的第j行,每个用户对k个类别的兴趣评分就是矩阵P的第u行。
用户和商品的特征向量间的内积可看作用户对商品的感兴趣程度,即用户对物品的评分,那么就可以依据此评分来为用户推荐物品。主要思路如下:
(1)针对每个用户,计算用户特征向量和所有商品特征向量内积。
(2)将上一步骤的计算结果进行排序。
(3)返回分值最大的前N个商品,作为当前用户的协同过滤推荐结果。
2.1.2 相似商品模型
ALS算法获得商品的特征向量,而两个商品特征向量的内积可以看作两个商品的相似度。
式中,p和q为商品的特征向量。
任意两个商品间相似度都可以由公式计算得到,商品与商品之间的相似度在一段时间内基本是固定值。
2.1.3 相关商品模型
经过总结,相关商品的定义为标题里包含多个相同的特定词语,且不属于同一类目的商品。例如商品A的类目为口红,标题为“迪奥烈艳蓝金唇哑光999口红经典正红唇膏”,商品B的类目为香水,标题为“迪奥小姐花漾淡香氛女士淡香水”,商品A和B不属于同类商品,但是标题中包含“迪奥”特定词语,可看作同品牌的相关商品。
相关商品模型计算需要进行以下步骤:
(1)获取商品标题中的特定词语。对所有商品标题进行中文分词,统计各分词出现的总次数以及在各商品类目中出现的次数,保留出现总次数大于20,且最多在5个类目下出现的分词作为特定分词。
过滤掉标题中不含有特定分词的商品。
(2)对于某个商品,在其余属于不同类目的商品中,按照包含相同特定词语数多少倒排,取前20个作为该商品的相关商品。
2.2 融合层
2.2.1 类目偏好权重计算
类目偏好权重计算基于用户的社会统计学信息(性别和年龄)和用户的历史行为。
用户的年龄、性别作为默认的过滤条件,在用户无正向行为情况下,过滤掉不合适推荐的目录。例如男士刮胡刀一般不适合推荐给女性用户,对于女性用户来说,男士刮胡刀类目权重默认为0,即不推荐展示;但是如果某位女性用户主动浏览、收藏过男士刮胡刀,则男士刮胡刀类目对于该用户权重大于0(具体值由该用户的历史行为序列决定),可进行展示。
基于用户的历史行为的实时类目权重计算过程:
(1)从HBase中实时获取用户最近30天的购买行为、最近15天的浏览、收藏、分享行为以及最近7天内的曝光不点击、不喜欢行为。
(2)获取上述所有行为涉及商品的类目。
(3)对每一种行为涉及的商品类目进行打分,最近30天内购买行为打-2分,最近15天正向行为打1分,最近7天的负向行为打-5分。
(4)对上述类目的打分进行合并计算,得到用户对历史行为涉及类目的偏好权重,并缩放至(0,1)之间。
(5)用户行为未涉及的类目,如果为社会统计学信息过滤的类目,则权重为0,否则权重为0.5。
2.2.2精排
精排部分中的精排模型采用逻辑回归LR(Logistic Regression)算法,计算用户浏览商品的可能性。该算法是机器学习中的一种分类模型,由于算法的简单和高效,在实际中应用非常广泛。逻辑回归模型的思想来源于线性回归,为了解决线性回归的量纲敏感问题,逻辑回归在线性回归的基础上套用了一个Logistic函数,从而将线性回归的结果映射为(0,1)上的概率值。概率值越大,则该样本为正样本(用户浏览该商品)的可能性越大。
精排模型样本为Hive中的用户历史行为,正样本为商品曝光且用户浏览,负样本为商品曝光且用户未浏览,样本特征包括用户社会统计学信息、商品类目、商品价格、时间等。
获得召回的候选商品及用户信息之后,使用精排模型可计算用户浏览商品的概率。根据用户类目偏好权重,对用户浏览商品概率进行修正。对候选商品以修正后的结果按大小倒排,取前20作为最终推荐结果展示给用户。
这里使用用户类目偏好权重对精排模型修正的原因是精排模型体现的是用户中长期的兴趣,而用户类目偏好权重计算基于用户短期行为,体现了用户实时的兴趣。
3 推荐结果
本系统设计开发完成之后在某移动电商平台首页为你推荐tab页上线,如图2所示。
图2 推荐商品展示
经过线上A/B对比测试,本推荐系统与人工配置推荐商品曝光点击率指标CTR的对比结果如图3所示。
图3 推荐系统与人工配置CTR对比
4 结束语
本文设计并开发了电商平台基于用户历史行为的个性化实时推荐系统。采用大数据、云计算、人工智能技术,实现了用户行为的实时采集、用户兴趣偏好的实时计算以及商品推荐结果的实时更新。最终线上A/B对比测试表明,电商平台中用户正向和负向行为能够明显地表达出用户的兴趣偏好,实时获取用户行为,并融入推荐系统,根据用户历史行为进行个性化实时推荐,能够取得较好的推荐效果。