若是您有任何疑问,请在下面发表评论。
大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务
统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)
【服务场景】
科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。
【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询
欢迎选修咱们的R语言数据分析挖掘必知必会课程!
概要算法
拓端帮助国内母婴电商公司建立智能推荐引擎,由此打造精准、高效的购物体验,探索如何在大规模数据上实现各类推荐策略,进行策略优化,构建高效的推荐引擎的解决方案。微信
业务挑战网络
随着电商网站用户数量和商品数量的增长,数据成为影响推荐质量的重要因素。做为电子商务中一个热门领域,价值万亿的中国母婴市场随着二孩政策的全面放开已经进入高增速增加时代,母婴消费市场每一年可新增超300亿母婴消费,至少带来年均13%左右的新增加空间,巨大的市场必然蕴含着巨大的商机和强大的利润空间。app
众所周知,解决信息过载的方式主要有类目导航、搜索、推荐,还有目前大热的聊天机器人(chatbot),但其本质也是基于推荐系统和知识图谱实现的。推荐不一样于或者优于搜索的地方在于:搜索须要用户知道本身须要什么,而推荐则能够作到帮助用户发现本身须要什么或者让你须要的信息主动找到你,并且更加个性化,甚至能作到“比你本身更了解你本身”。dom
传统推荐机制主要有基于人口统计学的推荐机制的工做原理和基于内容推荐机制的基本原理。机器学习
基于人口统计学的推荐机制的工做原理分布式
豆瓣的推荐“豆瓣猜”post
基于内容推荐机制的基本原理性能
而母婴类的商品具备种类多、功能类似的特色,用户在购买时会出现“信息迷航”的问题,同时,因为母婴市场激烈的竞争,商品同质化愈来愈严重,传统的推荐机制能难知足业务需求。学习
对于本次合做而言,所面临的主要挑战就是如何设计智能推荐引擎从海量商品中准确找到用户所须要的商品。
混合IBCF算法的离线与实时的分布式设计实现
在现行的 Web 站点上的推荐每每都不是单纯只采用了某一种推荐的机制和策略,每每是将多个方法混合在一块儿,从而达到更好的推荐效果。结合业务痛点,咱们采用一种基于矩阵填充技术的混合IBCF算法。首先利用准确度指标找出SVD的最优参数和混合IBCF算法的最佳权重,而后使用SVD降维方法对原始的高维稀疏矩阵进行预测填充,最后使用IBCF在用户所属类中寻找目标用户最近邻并使用最佳权重合并结果产生推荐。该算法利用用户与商品之间的潜在关系克服了稀疏性问题,同时保留了可离线建模、可扩展性好等优势。
以母婴产品为例,经过分析母婴类产品,收集数据集构造母婴领域不一样类型产品的特征向量。提取母婴类偏好系数不为0的用户为目标用户,经过用户访问的时间偏好来肯定服务推荐的权重,计算其访问的母婴类与目标产品的特征向量的类似度来肯定推荐产品的类型。最后,在母婴之家购物平台上实践结果代表,该方法确实可提高用户的个性化推荐。
用户个性化需求解决方案设计
提升计算精度——优化k值,SVD和ItemCF的合并
因为母婴类商品的类似性较高,不一样商品具备比较固定的类似度,因此咱们使用基于物品的协同过滤算法(IBCF)来进行推荐,在推荐过程当中能够预先在线下计算好不一样商品之间的类似度结果,而后把结果存在类似度表中,当推荐时进行表的查询,预测用户可能的偏好值,从而进行推荐。同时,因为母婴商品类似度高,当推荐过程的运算量比较大的时候,使用物品的一个小部分子集也能够获得高质量的预测结果。
针对上述问题,使用SVD方法将用户评分分解为不一样的特征及这些特征对应的重要程度,利用用户与商品之间潜在的关系,用初始评分矩阵的奇异值分解去抽取一些本质的特征,下降数据维度来进行推荐,从而提升运算效率。
因为SVD算法中保留的维数k很重要,也不容易选取,k若是过小,容易失去原始数据中重要的信息,不能获得用户评分矩阵的重要结构,k若是选大了,达不到降维的目的,并且容易过拟合训练数据,所以测试数据时须要先对k的取值进行优化,选取最优的k值而后再进行实验。
更客观地评价用户对商品的兴趣——用户行为权重、用户遗忘曲线
首先根据用户的不一样行为(bhv)定义偏好权重,行为: "投诉" 、"下单"、 "商品浏览" 、"商品加入购物车" 、"评论"分别对应偏好分值-一、四、三、二、3。
然而传统的推荐基于用户兴趣是固定不变的假设,即用户兴趣不随时间的变化而改变,所以,这些方法不能反映用户兴趣的变化。同时,被推荐的资源(产品)每每具备时效性,用户的兴趣也每每随时间的不一样而变化。
针对以上问题,为了知足用户的个性化需求,咱们提出了基于时间加权的协同过滤算法,考虑了时间对推荐质量的影响,认为用户兴趣随时间的流逝而衰减,即某个用户感兴趣的资源最可能和他近期访问过的资源类似。
其中,艾宾浩斯遗忘曲线能够较好的描述用户浏览商品和遗忘的过程。它认为当用户浏览商品时,商品信息输入大脑后,遗忘也就随之开始了。遗忘率随时间的流逝而先快后慢,特别是在刚刚识记的短期里,遗忘最快。遵循艾宾浩斯遗忘曲线所揭示的记忆规律,对所浏览的商品及时进行推荐,能够提高用户的个性化推荐。
所以,咱们根据用户对商品行为距今的时间差对用户的偏好进行权重调整,其中时间权重的计算使用艾宾浩斯(H.Ebbinghaus)遗忘率 ,获得最终的用户行为偏好为。
用户购买周期性问题解决——惩罚上一周购买
然而,经常存在这样一种现象,用户每每在根据本身的兴趣爱好购买了商品以后,一段时间内会对所购买物品类似的物品产生“疲倦期”,会更加趋向于选择与之前购买过的商品较为相异的那些新商品进行购买。从本质上讲,这种状况每每发生在做为用户短时间兴趣的资源上,这样的用户兴趣会随时间的接近而衰减。所以,若是能有效识别出用户的短时间兴趣,在预测用户最感兴趣的资源时加以考虑,区分不一样时间对推荐的不一样影响,能够提高用户的个性化推荐。
所以,进一步清晰区分用户长期兴趣和短时间兴趣在预测评分时所起的不一样做用。认为预测资源的评分时,做为短时间兴趣的可进行衰减。
Item画像设计
变量 |
描述 |
变量类型 |
DeviceIdentity |
用户id |
名义变量 |
SKUId_All |
商品id |
名义变量 |
is_temai |
是否特卖商品 |
名义变量 |
bhv_type |
用户行为类型 |
名义变量 |
bhv_cnt |
行为数量 |
数值变量 |
bhv_datetime |
行为时间 |
日期变量 |
基于Item画像的类似度计算是Item间类似度计算中相当重要的一部分,也是增长Item间区分度的有效手段(由于同质化都比较严重),同时也经过这种方式将CB算法融入到了CF中。
SVD算法参数k的设定
SVD算法中保留的维数k很重要,也不容易选取,k若是过小,容易失去原始数据中重要的信息,不能获得用户评分矩阵的重要结构,k若是选大了,达不到降维的目的,并且容易过拟合训练数据,本节利用测试集数据先对k的取值进行优化,选取最优的k值而后再进行实验。
奇异值分解(SVD)中k值优化
性能比较
为了验证所提出的算法的性能,将传统的推荐算法和提出的基于SVD的协同过滤的算法(SVD approximation)进行TOP-N实验比对。其中,使用SVD对用户-商品评价矩阵下降稀疏程度时使用上述实验获得的45做为最佳维度。实验指标使用ROC曲线性能。在测试数据集上,这五种方法在不一样近邻个数上的ROC性能表现如图所示,其中横坐标为FPR,纵坐标是TPR值。
不一样算法准确度的比较
在图中,曲线random item表明随机推荐算法,曲线popular item表明热门物品推荐算法,曲线user-based cf表明基于用户的协同过滤算法,曲线item-based cf表明基于物品的协同过滤算法,曲线SVD approximation表明基于SVD矩阵分解的协同过滤算法。
能够看到基于SVD矩阵分解的协同过滤算法在ROC指标上要优于其余算法。
线上AB实验评估
主要采用的评价指标包括点击量、点击率等。算法效果简述以下:
商品推荐方面(原算法为基于点击行为的CF算法):
离线:PC商品详情页推荐点击率提高12%;
实时:PC商品详情页推荐点击率提高3%左右。该部分通过后续优化,效果略有提高。
后续可优化点
一、如何度量用户的社交信息。根据用户评分信息使用皮尔逊类似度来衡量社交网络中用户关系权重,标准单一,算法准确度受到必定影响。所以,利用社交网络中的信息更加准确地衡量用户关系是值得进一步研究的问题。
二、界定短时间偏好的时间阈值的自动调整。提出的算法在离线阶段结束后,时间阈值已经肯定,然而在实际应用中用户数目、用户行为、用户关系都是不断变化的。
大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务
统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)
【服务场景】
科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。
【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询
欢迎选修咱们的R语言数据分析挖掘必知必会课程!