大数据环境下的电商网站实时推荐系统与方法.pdf

上传人:三** 文档编号:6098986 上传时间:2019-04-11 格式:PDF 页数:17 大小:971.46KB
返回 下载 相关 举报
摘要
申请专利号:

CN201610710881.5

申请日:

2016.08.23

公开号:

CN106296305A

公开日:

2017.01.04

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06Q 30/02申请日:20160823|||公开

IPC分类号:

G06Q30/02(2012.01)I; G06F17/30

主分类号:

G06Q30/02

申请人:

上海海事大学

发明人:

岑凯伦; 韩志德; 毕坤; 王军

地址:

201306 上海市浦东新区临港新城海港大道1550号

优先权:

专利代理机构:

上海信好专利代理事务所(普通合伙) 31249

代理人:

周乃鑫;尹兵

PDF下载: PDF下载
内容摘要

本发明公开一种大数据环境下的电商网站实时推荐方法,该方法包含:用电商网站用户隐式行为日志信息训练离线推荐模型;在线采集用户隐式行为日志信息,并用分布式存储技术和分布式流处理技术对采集的海量用户隐式行为日志信息进行快速处理;将训练的离线推荐模型和经过分布式流处理的最新用户隐式行为信息融合起来,为用户提供最新的商品推荐列表。本发明能够在大数据流环境下分析实时用户行为并且做出实时推荐反馈,提高了用户推荐满意度和电商网站交易转化率。

权利要求书

1.一种大数据环境下的电商网站实时推荐方法,其特征在于,该方法包含:
用电商网站用户隐式行为日志信息训练离线推荐模型;
在线采集用户隐式行为日志信息,并用分布式存储技术和分布式流处理技术对采集的
海量用户隐式行为日志信息进行快速处理;
将训练离线推荐模型和经过分布式流处理的最新用户隐式行为信息融合起来,为用户
提供最新的商品推荐列表。
2.如权利要求1所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述用电
商网站用户隐式行为日志信息训练离线推荐模型包含:
S101、搜集电商网站用户隐式行为日志信息;
S102、建立用户对每种商品评分的权重,构建的用户-商品评分二维矩阵,得到用户隐
式行为反馈矩阵;
S103、分解用户隐式行为反馈矩阵的用户-商品评分二维矩阵为若干个子矩阵;
S104、将最优的子矩阵由串行处理变成并行处理,训练离线推荐模型。
3.如权利要求2所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述在线
采集用户隐式行为日志信息,并用分布式存储技术和分布式流处理技术对采集的海量用户
隐式行为日志信息进行快速处理包含:
S105、采集在线实时数据流中的用户隐式行为日志信息;
S106、过滤和处理在线用户隐式行为日志信息,得到对应的商品ID和用户ID。
4.如权利要求2或3所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述
将训练离线推荐模型和经过分布式流处理的最新用户隐式行为信息融合起来,为用户提供
最新的商品推荐列表包含:
S107、根据商品ID和用户ID在线生成用户实时商品推荐列表,并根据用户隐式行为对
实时推荐的结果进行评测;
S108、判断预测准确度是否大于等于门限值Q,若是则跳转到S109,若否则跳转到S104;
S109、生成实时推荐列表反馈给用户。
5.如权利要求2所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述S103
中,用户隐式行为反馈矩阵的分解包含:
设用户-商品评分二维矩阵为R,矩阵R中每一个元素rui表示用户u对物品i的评分,则由
矩阵奇异值分解原理可知,矩阵R可以分解为若干个矩阵相乘的形式,如式(1):
R=UTM (1)
式(1)中,用户矩阵UT表示用户的隐语义属性参数,物品矩阵M表示物品的隐语义属性参
数。
6.如权利要求5所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述用户
矩阵UT与物品矩阵M的求解方法包含:
构造损失函数f(U,M),如式(2);
<mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>U</mi> <mo>,</mo> <mi>M</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> <mo>&Element;</mo> <mi>I</mi> </mrow> </munder> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>-</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mi>T</mi> </msubsup> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <mi>&lambda;</mi> <mrow> <mo>(</mo> <munder> <mo>&Sigma;</mo> <mi>i</mi> </munder> <msub> <mi>n</mi> <msub> <mi>u</mi> <mi>i</mi> </msub> </msub> <mo>|</mo> <mo>|</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mi>j</mi> </munder> <msub> <mi>n</mi> <msub> <mi>m</mi> <mi>j</mi> </msub> </msub> <mo>|</mo> <mo>|</mo> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>
式(2)中,I表示表示用户物品评分集合,rij是矩阵R中元素,是所需求的矩阵UT的元
素,表示用户的所有物品集合,mj是所需求的矩阵M的元素,表示物品的所有拥有者集合;
采用交替最小二乘法最小化损失函数f(U,M),经过多次叠代得出最优的用户矩阵U与
最优的物品矩阵M。
7.如权利要求6所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述损失
函数f(U,M)采用交替最小二乘法进行最小化包含:
a)M为定值,计算每个用户的每个特征uki并更新,k表示用户任意一个特征。将式(2)对
uki求偏导,令偏导等于0求解:
<mrow> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mfrac> <mrow> <mo>&part;</mo> <mi>f</mi> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> </mfrac> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mo>&DoubleRightArrow;</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mi>T</mi> </msubsup> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>&lambda;n</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mo>&DoubleRightArrow;</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <msubsup> <mi>m</mi> <mi>j</mi> <mi>T</mi> </msubsup> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>&lambda;n</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mo>&DoubleRightArrow;</mo> <mrow> <mo>(</mo> <msub> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> </msub> <msubsup> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> <mi>T</mi> </msubsup> <mo>+</mo> <msub> <mi>&lambda;n</mi> <msub> <mi>u</mi> <mi>i</mi> </msub> </msub> <mi>E</mi> <mo>)</mo> </mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> </msub> <msup> <mi>R</mi> <mi>T</mi> </msup> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>
<mrow> <mo>&DoubleRightArrow;</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>=</mo> <msubsup> <mi>A</mi> <mi>i</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>V</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>
式(7)中其中E是nf×nf的单位矩阵,代表当列
j∈Ii被选择时矩阵M的子矩阵,R(i,Ii)代表当列j∈Ii被选中矩阵R的第i行的行向量;
b)U为定值,计算每个物品的每个特征mkj并更新,k表示物品的任意一个特征,对mkj求偏
导,令偏导等于0,采用式(3)的方法对于mj,可得式(8):
<mrow> <mo>&DoubleRightArrow;</mo> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>=</mo> <msubsup> <mi>A</mi> <mi>j</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>j</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>
式(8)中代表当列i∈Ij被选择时U的
子矩阵,R(Ij,j)代表当列i∈Ij被选中R的第j行的行向量;
c)根据式(7)和式(8)求出用户矩阵U和物品矩阵M,计算矩阵模型的均方根误差RMSE,
通过多次迭代求出最优的用户矩阵U与最优的物品矩阵M,即用户矩阵U与物品矩阵M的最优
模型。
8.如权利要求7所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述均方
根误差定义如式(9):
<mrow> <mi>R</mi> <mi>M</mi> <mi>S</mi> <mi>E</mi> <mo>=</mo> <mfrac> <msqrt> <mrow> <msub> <mi>&Sigma;</mi> <mrow> <mi>u</mi> <mo>,</mo> <mi>i</mi> <mo>&Element;</mo> <mi>T</mi> </mrow> </msub> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <mo>-</mo> <msub> <mover> <mi>r</mi> <mo>^</mo> </mover> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mn>2</mn> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>
式(9)中,u和i是测试数据集合中的用户和物品,是推荐系统得到的预测评分,rui是
用户u对物品i的真实评分。
9.如权利要求7或8所述的大数据环境下的电商网站实时推荐方法,其特征在于,所述
S108中,预测准确度使用均方根误差来判断,其定义如式(10)所示:

其中,k是比例系数。
10.一种大数据环境下的电商网站实时推荐系统,其特征在于,该系统包含:
电商网站用户隐式行为搜集模块,其搜集电商网站用户隐式行为日志信息;
用户隐式行为反馈矩阵建立模块,其根据用户隐式行为,建立用户对每种商品评分的
权重,构建的用户-商品评分二维矩阵,得到用户隐式行为反馈矩阵;
用户隐式行为反馈矩阵分解模块,其分解用户隐式行为反馈矩阵的用户-商品评分二
维矩阵为若干个子矩阵;
并行化模块,其将矩阵最优模型由串行处理变成并行处理,离线推荐模型训练;
用户隐式行为在线采集模块,其采集在线实时数据流的用户隐式行为日志信息;
在线用户隐式行为处理模块,其过滤和处理在线用户隐式行为日志信息,得到对应的
商品ID和用户ID;
实时推荐结果测评模块,其根据商品ID和用户ID在线生成用户实时商品推荐列表,并
根据用户隐式行为对实时推荐的结果进行评测;
预测准确度判断模块,其判断预测准确度是否大于等于门限值Q;
实时推荐列表生成模块,其根据预测准确度判断结果生成实时推荐列表反馈给用户。

说明书

大数据环境下的电商网站实时推荐系统与方法

技术领域

本发明涉及网络技术领域,具体涉及一种大数据环境下的电商网站实时推荐系统
与方法。

背景技术

国内最大的电商平台淘宝网每日访问用户达6000万,每日在线商品数目已经超过
了8亿件。面对急速增长的数据规模,用户正面临着“信息超载问题”,如果不借助于搜索引
擎、推荐系统或者信息分类等辅助技术,用户从海量的互联网资源中找到自己真正感兴趣
的信息是一件非常困难的事情,使得信息的有效利用率反而降低了。搜索引擎和个性化推
荐系统是解决“信息超载”问题的两种手段。搜索引擎,如Google,Baidu和Bing根据用户输
入的关键字反馈给用户查询的结果,由于搜索引擎根据的是所有人的行为规律返回搜索结
果,无法根据每个用户提供个性化服务,使得可能用户真正感兴趣的内容被海量的搜索结
果所掩盖。个性化推荐在此问题上弥补了搜索引擎的不足,即代替用户评估其所有未看过
的产品,并通过分析用户的兴趣爱好和历史行为,主动推荐符合用户喜好的项目。

在大数据时代下的推荐系统会面临海量的训练规模,传统单机环境下的推荐系统
不能满足大数据时代推荐的需求。因此以分布式计算平台作为模型计算平台的推荐系统渐
次诞生。早期的分布式推荐系统基于Hadoop构建,能承载的训练规模更大,并且成本更低。
但由于Hadoop采用MapReduce框架处理中间结果时,需要将中间结果存储在硬盘上以备下
次调用,因此在处理需要多次迭代的推荐任务时,处理效率低下。伴随着新的类MapReduce
计算框架Spark的诞生,由于其基于内存的计算方式,其从处理速度在需要多次迭代的推荐
任务中明显优于MapReduce。

进入Web2.0时代后,实时推荐的需求越来越多,而基于Hadoop构建的传统推荐系
统,都是定期对数据进行分析,然后对模型进行更新,进而使用新的模型进行个性化推荐,
训练效率低下,同时因为没有完善的机制配合对实时用户做出反馈,因此存在着推荐满意
度以及交易转化率低下的问题。因此构建基于新型分布式流并行处理技术,能够分析实时
用户行为并且做出实时推荐反馈的系统是非常有研究意义的。

发明内容

本发明提供一种大数据环境下的电商网站实时推荐系统与方法,能够在数据流环
境下分析实时用户行为并且做出实时推荐反馈,提高用户推荐满意度和电商网站交易转化
率。

为实现上述目的,本发明提供一种大数据环境下的电商网站实时推荐方法,其特
点是,该方法包含:

用电商网站用户隐式行为日志信息训练离线推荐模型;

在线采集用户隐式行为日志信息,并用分布式存储技术和分布式流处理技术对采
集的海量用户隐式行为日志信息进行快速处理;

将训练离线推荐模型和经过分布式流处理的最新用户隐式行为信息融合起来,为
用户提供最新的商品推荐列表。

上述用电商网站用户隐式行为日志信息训练离线推荐模型包含:

S101、搜集电商网站用户隐式行为日志信息;

S102、建立用户对每种商品评分的权重,构建的用户-商品评分二维矩阵,得到用
户隐式行为反馈矩阵;

S103、分解用户隐式行为反馈矩阵的用户-商品评分二维矩阵为若干个子矩阵;

S104、将最优的子矩阵由串行处理变成并行处理,训练离线推荐模型。

上述在线采集用户隐式行为信息,并用分布式存储技术和分布式流处理技术对采
集的海量信息进行快速处理包含:

S105、采集在线实时数据流中的用户隐式行为日志信息;

S106、过滤和处理在线用户隐式行为日志信息,得到对应的商品ID和用户ID。

上述将训练离线推荐模型和经过分布式流处理的最新用户隐式行为信息融合起
来,为用户提供最新的商品推荐列表包含:

S107、根据商品ID和用户ID在线生成用户实时商品推荐列表,并根据用户隐式行
为对实时推荐的结果进行评测;

S108、判断预测准确度是否大于等于门限值Q,若是则跳转到S109,若否则跳转到
S104;

S109、生成实时推荐列表反馈给用户。

上述S103中,用户隐式行为反馈矩阵的分解包含:

设用户-商品评分二维矩阵为R,矩阵R中每一个元素rui表示用户u对物品i的评分,
则由矩阵奇异值分解原理可知,矩阵R可以分解为若干个矩阵相乘的形式,如式(1):

R=UTM (1)

式(1)中,用户矩阵UT表示用户的隐语义属性参数,物品矩阵M表示物品的隐语义
属性参数。

上述用户矩阵UT与物品矩阵M的求解方法包含:

构造损失函数f(U,M),如式(2);

<mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>U</mi> <mo>,</mo> <mi>M</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> <mo>&Element;</mo> <mi>I</mi> </mrow> </munder> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>-</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mi>T</mi> </msubsup> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <mi>&lambda;</mi> <mrow> <mo>(</mo> <munder> <mo>&Sigma;</mo> <mi>i</mi> </munder> <msub> <mi>n</mi> <msub> <mi>u</mi> <mi>i</mi> </msub> </msub> <mo>|</mo> <mo>|</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mi>j</mi> </munder> <msub> <mi>n</mi> <msub> <mi>m</mi> <mi>j</mi> </msub> </msub> <mo>|</mo> <mo>|</mo> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

式(2)中,I表示表示用户物品评分集合,rij是矩阵R中元素,是所需求的矩阵UT
的元素,表示用户的所有物品集合,mj是所需求的矩阵M的元素,表示物品的所有拥有者集
合;

采用交替最小二乘法最小化损失函数f(U,M),经过多次叠代得出最优的用户矩阵
U与最优的物品矩阵M。

上述损失函数f(U,M)采用交替最小二乘法进行最小化包含:

a)M为定值,计算每个用户的每个特征uki并更新,k表示用户任意一个特征。将式
(2)对uki求偏导,令偏导等于0求解:

<mrow> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mfrac> <mrow> <mo>&part;</mo> <mi>f</mi> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> </mfrac> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mi>T</mi> </msubsup> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>&lambda;n</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <msubsup> <mi>m</mi> <mi>j</mi> <mi>T</mi> </msubsup> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>&lambda;n</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <mrow> <mo>(</mo> <msub> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> </msub> <msubsup> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> <mi>T</mi> </msubsup> <mo>+</mo> <msub> <mi>&lambda;n</mi> <msub> <mi>u</mi> <mi>i</mi> </msub> </msub> <mi>E</mi> <mo>)</mo> </mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> </msub> <msup> <mi>R</mi> <mi>T</mi> </msup> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>=</mo> <msubsup> <mi>A</mi> <mi>i</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>V</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式(7)中其中E是nf×nf的单位矩阵,代表
当列j∈Ii被选择时矩阵M的子矩阵,R(i,Ii)代表当列j∈Ii被选中矩阵R的第i行的行向量;

b)U为定值,计算每个物品的每个特征mkj并更新,k表示物品的任意一个特征,对
mkj求偏导,令偏导等于0,采用式(3)的方法对于mj,可得式(8):

<mrow> <mo>&DoubleRightArrow;</mo> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>=</mo> <msubsup> <mi>A</mi> <mi>j</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>j</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

式(8)中代表当列i∈Ij被选择时
U的子矩阵,R(Ij,j)代表当列i∈Ij被选中R的第j行的行向量;

c)根据式(7)和式(8)求出用户矩阵U和物品矩阵M,计算矩阵模型的均方根误差
RMSE,通过多次迭代求出最优的用户矩阵U与最优的物品矩阵M,即用户矩阵U与物品矩阵M
的最优模型。

上述均方根误差定义如式(9):

<mrow> <mi>R</mi> <mi>M</mi> <mi>S</mi> <mi>E</mi> <mo>=</mo> <mfrac> <msqrt> <mrow> <msub> <mo>&Sigma;</mo> <mrow> <mi>u</mi> <mo>,</mo> <mi>i</mi> <mo>&Element;</mo> <mi>T</mi> </mrow> </msub> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <mo>-</mo> <msub> <mover> <mi>r</mi> <mo>^</mo> </mover> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mn>2</mn> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

式(9)中,u和i是测试数据集合中的用户和物品,是推荐系统得到的预测评分,
rui是用户u对物品i的真实评分。

上述S108中,预测准确度使用均方根误差来判断,其定义如式(10)所示:


其中,k是比例系数。

一种大数据环境下的电商网站实时推荐系统,其特点是,该系统包含:

电商网站用户隐式行为搜集模块,其搜集电商网站用户隐式行为日志信息;

用户隐式行为反馈矩阵建立模块,其根据用户隐式行为,建立用户对每种商品评
分的权重,构建的用户-商品评分二维矩阵,得到用户隐式行为反馈矩阵;

用户隐式行为反馈矩阵分解模块,其分解用户隐式行为反馈矩阵的用户-商品评
分二维矩阵为若干个子矩阵;

并行化模块,其将矩阵最优模型由串行处理变成并行处理,离线推荐模型训练;

用户隐式行为在线采集模块,其采集在线实时数据流的用户隐式行为日志信息;

在线用户隐式行为处理模块,其过滤和处理在线用户隐式行为日志信息,得到对
应的商品ID和用户ID;

实时推荐结果测评模块,其根据商品ID和用户ID在线生成用户实时商品推荐列
表,并根据用户隐式行为对实时推荐的结果进行评测;

预测准确度判断模块,其判断预测准确度是否大于等于门限值Q;

实时推荐列表生成模块,其根据预测准确度判断结果生成实时推荐列表反馈给用
户。

本发明大数据环境下的电商网站实时推荐系统与方法和现有技术相比,其优点在
于,本发明设计并构建基于LogStash和Kafka的分布式日志采集及分布式日志传输模块,利
用植入在应用网关的软件,获取所有外部用户调用系统接口所产生的访问日志,并输送至
Kafka集群统一传送,解决跨系统日志采集及传输问题,减少了系统集群庞大时,采集及传
输各种业务日志的人力成本;

本发明利用Spark Streaming实时流处理技术,统一处理Kafka集群传递的用户行
为日志,进行实时数据过滤,对各类用户行为进行分类,并写入Hive,统一推荐系统数据源,
使其能很好应用到大数据的应用场景。

本发明提供一种实时推荐系统,利用Spark Sql统一从Hive中读取用户行为日志,
并做惩罚以及归一化处理,之后使用基于Spark并行化的矩阵分解模型训练数据源,将结果
写入Redis缓存系统中,优化网站性能,同时使用Spark Streaming实时流技术对实时的用
户访问日志做实时推荐处理,并更新Redis,将实时与离线的结果进行融合,提升电商网站
用户体验度的正向作用以及增加电商网站交易量的能力。

附图说明

图1为本发明一种大数据环境下的电商网站实时推荐方法的方法流程图;

图2为推荐引擎示意图;

图3为基于Spark并行化的离线推荐模型计算的流程图;

图4为基于Spark的实时推荐系统的架构图。

具体实施方式

以下结合附图,进一步说明本发明的具体实施例。

本发明提供一种大数据环境下的电商网站实时推荐方法,该方法包含以下步骤:

步骤1、首先用电商网站用户隐式行为日志信息训练离线推荐模型。

离线推荐模型训练包含:通过搜集电商网站的大量用户隐式行为信息构成用户隐
式行为矩阵,并通过用户隐式行为矩阵的分解训练最佳离线推荐模型

步骤2、在线采集用户隐式行为日志信息,并用分布式存储技术和分布式流处理技
术对采集的海量用户隐式行为日志信息进行快速处理。

在线用户隐式行为日志信息的采集和处理,是指在电商网站前端网关处在线采集
用户隐式行为日志信息并进行过滤处理,为在线实时推荐提供数据源。

步骤3、将训练离线推荐模型和经过分布式流处理的最新用户隐式行为信息融合
起来,为用户提供最新的商品推荐列表,实现实时在线推荐。

如图1所示,为一种大数据环境下的电商网站实时推荐方法的实施例,该方法包含
以下步骤:

S101、搜集电商网站用户隐式行为日志信息。

电商网站有海量的用户,包括注册用户和非注册用户。大数据环境下的电商网站:
(1)包括数以10万计以上的用户,这些用户包括注册用户和非注册用户;(2)包括万种以上
的商品可供用户选择浏览或在线购买,这些商品可以是原来已有的商品,也可以是新添加
的商品。

电商网站用户的数量与电商网络推荐系统的推荐质量有密切关系,直接影响电商
网站的经济和社会效益。

用户隐式行为包含:用户浏览商品、用户添加商品至购物车、用户从购物车删除商
品、用户支付订单、用户取消订单以及用户收藏商品等行为。通过对这些用户行为进行权重
分类,可以得到用户对于电商网站中每个商品的评分。

S102、建立用户对每种商品评分的权重,构建的用户-商品评分二维矩阵,得到用
户隐式行为反馈矩阵。

由于用户自身的兴趣爱好及购买力有一定的局限性,用户能够产生行为的商品数
占整个商品的百分比很低,使得用户-商品评分权重矩阵的稀疏度很低。并且,随着电商网
站的扩大,用户隐式行为反馈矩阵规模也越来越大。

S103、分解用户隐式行为反馈矩阵的用户-商品评分二维矩阵为若干个子矩阵,降
低计算离线推荐的复杂度。

S103中,用户隐式行为反馈矩阵的分解包含:

设用户-商品评分二维矩阵为R,矩阵R中每一个元素rui表示用户u对物品i的评分,
则由矩阵奇异值分解原理可知,矩阵R可以分解为若干个矩阵相乘的形式,如式(1):

R=UTM (1)

式(1)中,用户矩阵UT表示用户的隐语义属性参数(隐藏的用户特性参数),物品矩
阵M表示物品的隐语义属性参数(隐藏的物品特性参数)。

式(1)中,用户矩阵UT与物品矩阵M的求解方法包含:

1)构造损失函数f(U,M),如式(2);

<mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>U</mi> <mo>,</mo> <mi>M</mi> <mo>)</mo> </mrow> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>j</mi> <mo>)</mo> <mo>&Element;</mo> <mi>I</mi> </mrow> </munder> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>-</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mi>T</mi> </msubsup> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>+</mo> <mi>&lambda;</mi> <mrow> <mo>(</mo> <munder> <mo>&Sigma;</mo> <mi>i</mi> </munder> <msub> <mi>n</mi> <msub> <mi>u</mi> <mi>i</mi> </msub> </msub> <mo>|</mo> <mo>|</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>+</mo> <munder> <mo>&Sigma;</mo> <mi>j</mi> </munder> <msub> <mi>n</mi> <msub> <mi>m</mi> <mi>j</mi> </msub> </msub> <mo>|</mo> <mo>|</mo> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>|</mo> <msup> <mo>|</mo> <mn>2</mn> </msup> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

式(2)中,I表示表示用户物品评分集合,rij是矩阵R中元素,是所需求的矩阵UT
的元素(行),表示用户的所有物品集合,mj是所需求的矩阵M的元素(列),表示物品的所有
拥有者集合。损失函数中加号右边是为了在求解过程中出现过拟合现象。

2)采用交替最小二乘法(ALS,Alternating Least Square)最小化损失函数f(U,
M)。

即,输入:用户评分矩阵R;输出:矩阵U和M。初始时,生成代表用户的矩阵U和代表
物品的矩阵M,经过多次叠代得出最优的用户矩阵U与最优的物品矩阵M。

其中,最小二乘法(ALS)又称最小平方法,是一种数学优化技术。它通过最小化误
差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使
得这些求得的数据与实际数据之间误差的平方和为最小。

上述损失函数f(U,M)采用交替最小二乘法进行最小化的具体方法包含:

a)M为定值,计算每个用户的每个特征uki并更新,k表示用户任意一个特征。将式
(2)对uki求偏导,令偏导等于0求解:

<mrow> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mfrac> <mrow> <mo>&part;</mo> <mi>f</mi> </mrow> <mrow> <mo>&part;</mo> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> </mrow> </mfrac> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <mrow> <mo>(</mo> <msubsup> <mi>u</mi> <mi>i</mi> <mi>T</mi> </msubsup> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>-</mo> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>)</mo> </mrow> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <mo>+</mo> <msub> <mi>&lambda;n</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mn>0</mn> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <msubsup> <mi>m</mi> <mi>j</mi> <mi>T</mi> </msubsup> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>+</mo> <msub> <mi>&lambda;n</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <msub> <mi>u</mi> <mrow> <mi>k</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <munder> <mo>&Sigma;</mo> <mrow> <mi>j</mi> <mo>&Element;</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> </mrow> </munder> <msub> <mi>m</mi> <mrow> <mi>k</mi> <mi>j</mi> </mrow> </msub> <msub> <mi>r</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>,</mo> <mi>k</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>5</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <mrow> <mo>(</mo> <msub> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> </msub> <msubsup> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> <mi>T</mi> </msubsup> <mo>+</mo> <msub> <mi>&lambda;n</mi> <msub> <mi>u</mi> <mi>i</mi> </msub> </msub> <mi>E</mi> <mo>)</mo> </mrow> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>=</mo> <msub> <mi>M</mi> <msub> <mi>I</mi> <mi>i</mi> </msub> </msub> <msup> <mi>R</mi> <mi>T</mi> </msup> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <msub> <mi>I</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>6</mn> <mo>)</mo> </mrow> </mrow>

<mrow> <mo>&DoubleRightArrow;</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>=</mo> <msubsup> <mi>A</mi> <mi>i</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>V</mi> <mi>i</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>7</mn> <mo>)</mo> </mrow> </mrow>

式(7)中其中E是nf×nf的单位矩阵,代表
当列j∈Ii被选择时矩阵M的子矩阵,R(i,Ii)代表当列j∈Ii被选中矩阵R的第i行的行向量。

b)U为定值,计算每个物品的每个特征mkj并更新,k表示物品的任意一个特征,对
mkj求偏导,令偏导等于0,采用式(3)的方法对于mj,可得式(8):

<mrow> <mo>&DoubleRightArrow;</mo> <msub> <mi>m</mi> <mi>j</mi> </msub> <mo>=</mo> <msubsup> <mi>A</mi> <mi>j</mi> <mrow> <mo>-</mo> <mn>1</mn> </mrow> </msubsup> <msub> <mi>V</mi> <mi>j</mi> </msub> <mo>,</mo> <mo>&ForAll;</mo> <mi>j</mi> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>8</mn> <mo>)</mo> </mrow> </mrow>

式(8)中代表当列i∈Ij被选择
时U的子矩阵,R(Ij,j)代表当列i∈Ij被选中R的第j行的行向量。

c)根据式(7)和式(8)求出用户矩阵U和物品矩阵M,计算矩阵模型的均方根误差
RMSE,通过多次迭代求出的最优的用户矩阵U与最优的物品矩阵M,即用户矩阵U与物品矩阵
M的最优模型。由于基于隐式反馈的矩阵分解模型大大降低了用户-商品评分矩阵的维度,
使得计算效率获得提升。

这里,均方根误差定义如式(9):

<mrow> <mi>R</mi> <mi>M</mi> <mi>S</mi> <mi>E</mi> <mo>=</mo> <mfrac> <msqrt> <mrow> <msub> <mo>&Sigma;</mo> <mrow> <mi>u</mi> <mo>,</mo> <mi>i</mi> <mo>&Element;</mo> <mi>T</mi> </mrow> </msub> <msup> <mrow> <mo>(</mo> <msub> <mi>r</mi> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <mo>-</mo> <msub> <mover> <mi>r</mi> <mo>^</mo> </mover> <mrow> <mi>u</mi> <mi>i</mi> </mrow> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </msqrt> <mn>2</mn> </mfrac> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>9</mn> <mo>)</mo> </mrow> </mrow>

式(9)中,u和i是测试数据集合中的用户和物品,是推荐系统得到的预测评分,
rui是用户u对物品i的真实评分。

S104、将数据由串行处理变成并行处理,离线推荐模型训练。

其中并行化离线推荐模型训练包含:将最优的用户矩阵UT与最优的物品矩阵M由
串行处理变成并行处理,提高最优的用户矩阵UT与最优的物品矩阵M的训练速度,提高大数
据环境下的数据处理效率。

S105、采集在线实时数据流的用户隐式行为日志信息。

其中,在线实时数据流,是指电商网站在正常工作时到达或离开前端服务器的各
种数据流。

用户隐式行为日志,记录用户在电商网站相对物品的各种隐式行为。

S106、过滤和处理在线用户隐式行为日志信息,从在线实时采集的用户隐式行为
日志信息中去掉各种干扰信息,从日志中抽取出对应的商品ID和用户ID,供实时推荐系统
使用。

S107、根据S106得到的商品ID和用户ID,在线生成用户实时商品推荐列表,并根据
用户隐式行为对实时推荐的结果进行评测。

这里,实时推荐是指根据电商网站在线实时采集的用户隐式行为日志数据,并融
合离线推荐模型生成用户推荐商品列表。

S108、判断预测准确度是否大于等于门限值Q,若是则跳转到S109,若否则跳转到
S104。预设门限值Q是指电商网站预测准确度被接受的最低标准。

其中,预测准确度使用均方根误差来判断,其定义如式(10)所示:


其中,k是比例系数。

S109、生成实时推荐列表反馈给用户。

本发明还公开了一种大数据环境下的电商网站实时推荐系统,该系统包含:

电商网站用户隐式行为搜集模块,其搜集电商网站用户隐式行为日志信息;

用户隐式行为反馈矩阵建立模块,其根据用户隐式行为,建立用户对每种商品评
分的权重,构建的用户-商品评分二维矩阵,得到用户隐式行为反馈矩阵;

用户隐式行为反馈矩阵分解模块,其分解用户隐式行为反馈矩阵的用户-商品评
分二维矩阵为若干个子矩阵;

并行化模块,其将矩阵最优模型由串行处理变成并行处理,离线推荐模型训练;

用户隐式行为在线采集模块,其采集在线实时数据流的用户隐式行为日志信息;

在线用户隐式行为处理模块,其过滤和处理在线用户隐式行为日志信息,得到对
应的商品ID和用户ID;

实时推荐结果测评模块,其根据商品ID和用户ID在线生成用户实时商品推荐列
表,并根据用户隐式行为对实时推荐的结果进行评测;

预测准确度判断模块,其判断预测准确度是否大于等于门限值Q;

实时推荐列表生成模块,其根据预测准确度判断结果生成实时推荐列表反馈给用
户。

如图2所示,为推荐引擎示意图,推荐引擎相当于一个黑盒,上层是采集的数据源,
下层给每个用户的结果。推荐系统接收的数据源种类繁多,以电商网站为例,会接收物品基
本信息,包括商品的名称,价格,规格等信息,会接收用户的基本信息,如用户的性别,年龄,
兴趣爱好,以及通过一些技术手段收集用户的爱好,建立用户画像。在用户行为偏好上,主
要分为两个大类,用户显式行为以及用户隐式行为。用户显式行为来自用户对于商品的直
接打分以及用户的评论,能够比较直观地显示用户的行为偏好,但有额外的操作成本,采集
的数据量相比隐式行为比较小。用户隐式行为来自于用户表达自身行为偏好时自发进行的
用户操作,如用户访问商品详情页、添加商品至购物车、从购物车中删除商品、支付订单、关
注商品品牌等行为均可作为用户隐式行为,通过建立正向及负向的用户隐式行为,能够很
好地推断出用户的行为偏好。

如图3所示,是基于Spark并行化的离线推荐模型计算的方法流程,其具体步骤包
含:

S301、获取用户评分数据RDD(Resilient Distributed Datasets)。RDD是一种分
布式内存的抽象概念,是一个容错的、并行的数据结构,可以将大规模的数据集拆分给小的
数据块,存储在集群的一个或者多个节点上,并且可以让用户显示地控制数据存储的位置
以及分区情况。

S302、生成用户矩阵U和物品矩阵M,即用户矩阵U的RDD以及物品矩阵M的RDD。

S303、固定U求解M,对应着上述公式(8),同时对原来的M进行更新,并将M在Spark
进行广播,因为在并行环境中,M的数据分布在不同的节点上,需要让其他节点知道M更新
了。

S304、固定M求解U,对应着上述公式(7),同时对原来的U进行更新,并将U在Spark
中进行广播,因为在并行环境中,U的数据分布在不同的节点上,需要让其他节点知道M更新
了。

S305、根据设定的迭代次数,观察RMSE的变化,选出最佳的训练参数。

基于Spark的离线推荐模型的基础是基于ALS(Alternating Least Squares)的矩
阵分解模型,在电商网站的处理过程中,需要根据电商网站的销售策略对推荐系统进行调
整。

如图4所示,是一种基于Spark的实时推荐系统的架构,共分三个层次:离线处理
层、服务层和实时处理层。

在服务层,在应用网关服务器上安装分布式日志采集代理Agent,采集访问各个业
务系统的日志信息。由于电商网站的日志产出量巨大,需要可靠的消息传送中间件作为模
型训练与数据源采集之间的纽带,系统构建了基于Kafka集群的消息分发中间件,实现日志
数据的统一下发。由于日志数据中包含着各个业务系统的日志以及用户点击流的日志,在
进入离线或实时推荐阶段前,需经过统一的数据清洗。采用Spark平台的Spark Streaming
技术实现日志的实时处理,Spark Streaming技术可以按照时间分片,对固定时间间隔内收
到的数据进行统一批处理,能达到实时处理的效果,并具有很高的吞吐量。

在离线处理层,作为实时推荐的数据源收集完毕后,对数据源中的用户行为进行
权重的分级,得到用户对于某商品的基本评分,并输入推荐模型训练。传统的方案是使用
Hadoop平台的离线推荐模型训练,但Hadoop平台存在三个问题:一是抽象层次低,需要编写
很冗余的代码完成操作;二是Hadoop平台只提供Map和Reduce两个操作,表达能力欠缺;三
是处理中间结果存储在HDFS文件系统中,使得计算迭代式任务速度缓慢(中间数据要经过
硬盘缓存)。本发明采用的Spark平台利用RDD进行抽象,实现的数据逻辑相比Hadoop平台更
简短,同时提供多种转换和操作,具有很强的表达力。同时,相对于Hadoop平台,Spark平台
的中间计算结果可以缓存在内存中,对于需要很多迭代计算的推荐任务,提高了计算效率。

实时处理层,是根据当天或当天每个时间段的用户隐式行为,提取用户的行为偏
好隐式行为数据并实时更新离线推荐模型为用户提供的实时商品推荐列表,从而达到为用
户提供实时推荐的目的。

下面用一个实施例来阐述本方法。

某电商网站采用基于Spark平台的电商实时推荐系统搭建了3台云服务器,托管在
阿里云上,承担每日最高达1600万用户访问。在2015年11月至2015年12月该电商采用
Hadoop离线推荐系统,从2016年1月到2016年4月采用基于Spark平台的实时推荐系统,其购
物车的转化如表1所示,其订单转化率如表2所示。从表1可知,购物车的转化提高了约3.5
倍,从表可以看出订单转化率提高了约2.5倍。



表1购物车转化率



表2订单转化率

尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的
描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的
多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

大数据环境下的电商网站实时推荐系统与方法.pdf_第1页
第1页 / 共17页
大数据环境下的电商网站实时推荐系统与方法.pdf_第2页
第2页 / 共17页
大数据环境下的电商网站实时推荐系统与方法.pdf_第3页
第3页 / 共17页
点击查看更多>>
资源描述

《大数据环境下的电商网站实时推荐系统与方法.pdf》由会员分享,可在线阅读,更多相关《大数据环境下的电商网站实时推荐系统与方法.pdf(17页珍藏版)》请在专利查询网上搜索。

本发明公开一种大数据环境下的电商网站实时推荐方法,该方法包含:用电商网站用户隐式行为日志信息训练离线推荐模型;在线采集用户隐式行为日志信息,并用分布式存储技术和分布式流处理技术对采集的海量用户隐式行为日志信息进行快速处理;将训练的离线推荐模型和经过分布式流处理的最新用户隐式行为信息融合起来,为用户提供最新的商品推荐列表。本发明能够在大数据流环境下分析实时用户行为并且做出实时推荐反馈,提高了用户推荐。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1