您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > 杭电暑期数学建模集训3商品用户行为数据处理中的数学问题
1杭电通信工程hotyouthy数模学习交流论文题目:商品用户行为数据处理中的数学问题摘要随着科学技术的不断发展,互联网成为信息的重要载体,而海量的数据成为困扰人们无法正确选择自己感兴趣的事物的障碍。用户不能够从中取有效的信息,并且现有的搜索工具也很难满组用户的需要,所以兴趣推荐就成为了解决这一问题的有效方式。用户在浏览过淘宝商品后就会发生一系列操作痕迹,比如收藏,加入购物车,购买等。在淘宝后台我们可以提取出这些数据,然后进行大数据分析,分析出这些用户的兴趣爱好,从而以后将更符合用户需求的商品推荐给用户。这样就可以避免用户在繁杂的商品里面选中自己钟爱的商品而浪费时间。本文就基于以上目的采用协同过滤的算法和改进的Pearson相关系数算法建立了商品推荐模型。针对问题建立模型I:首先建立模糊综合评价指标f:如果用户i购买了商品j,则f=5;如果用户i将商品j加入购物车,则f=4;如果用户i将商品j加人收藏夹,则f=3;如果用户i对商品j的浏览次数为2次以上,则f=2;若点击次数为1次,则f=1。通过不断模拟f的取值发现这个现在f的值计算出来的结果是比较好的。然后建立一个用户-商品评分矩阵,最后根据改进的Pearson相关系数求解出用户对每一件商品的评价得分取出最大的几个作为预测12月19日的购买结果。由于所给商品没有具体说明是什么类型的商品(食品,生活用品还是家电),所以利用推荐算法推荐出来的商品有可能是用户在这一个月已经购买过的商品(比如食品,生活用品类)。由于我们的电脑计算不出将近1G的数据,只好随机选取了15位用户的浏览记录进行验证F1的值是1.593%,这个结果比较低的原因是我们只选取了15个用户的将近8953条交互记录,所以准确率也是非常低的,如果将全部数据计算了准确率应该会提高。针对问题建立模型II:首先在模型I的基础上我们剔除了一些数据进行优化处理:去除该月总的交互次数低于3的用户和商品;去除最后10天没有发生交互的用户和商品。然后将以下4个指标与模型I进行加权混合:最后的4天用户对商品的购买量、最后的4天用户对商品的点击量、最后的4天用户的点击量,最后的4天商品的被点击量。这个加权系数通过模拟结果得到分别为模型I(0.6),0.15,0.15,0.05,0.05.利用F1检验得到的值是1.652%,对比模型I来说稍微精确了些,当然限制仍然是我们的电脑计算不出将近1G的数据,只是随机选取了15位用户的浏览记录进行验证。关键词:协同过滤推荐模糊综合评价艾宾浩斯遗忘曲线改进的Pearson相关系数2一、问题的重述在真实的业务场景下,我们往往需要对所有商品的一个子集构建个性化推荐模型。在完成这件任务的过程中,我们不仅需要利用用户在这个商品子集上的行为数据,往往还需要利用更丰富的用户行为数据。定义如下的符号:U——用户集合I——商品全集P——商品子集,P⊆ID——用户对商品全集的行为数据集合我们的目标是利用D来构造U中用户对P中商品的推荐模型。选手要使用训练数据建立推荐模型,并输出用户在接下来一天对商品子集购买行为的预测结果。数据说明本问题提供20000用户的完整行为数据以及百万级的商品信息。题目数据包含两个部分。(具体数据见电子表格)第一部分是用户在商品全集上的移动端行为数据(D),表名为train_user_2w,包含如下字段:字段字段说明提取说明user_id用户标识抽样&字段脱敏item_id商品标识字段脱敏behavior_type用户对商品的行为类型包括浏览、收藏、加购物车、购买,对应取值分别是1、2、3、4。user_geohash用户位置的空间标识,可以为空由经纬度通过保密的算法生成item_category商品分类标识字段脱敏time行为时间精确到小时级别第二个部分是商品子集(P),表名为train_item_2w,包含如下字段:字段字段说明提取说明item_id商品标识抽样&字段脱敏item_geohash商品位置的空间标识,可以为空由经纬度通过保密的算法生成item_category商品分类标识字段脱敏训练数据包含了抽样出来的一定量用户在一个月时间(11.18~12.18)之内的移动端行为数据(D),评分数据是这些用户在这个一个月之后的一天(12.19)对商品子集(P)的购买数据。评分数据格式具体计算公式如下:完成用户对商品子集的购买预测之后,需要将结果放入指定格式的数据表(非分区表)中,要求结果表名为:mobile_recommendation_predict.csv,且以utf-8格式编码;包含user_id和item_id两列(均为string类型),要求去除重复。例如:3评估指标采用经典的精确度(precision)、召回率(recall)和F1值作为评估指标。具体计算公式如下:其中PredictionSet为算法预测的购买数据集合,ReferenceSet为真实的答案购买数据集合。我们以F1值作为最终的唯一评测标准。二、问题的分析针对题目问题:分析题目后发现这是一个二分类问题,利用用户前一个月与商品发生的交互行为(浏览,收藏,加入购物车,购买)预测12月19日用户的购买行为。于是我们可以根据商品的共有特点为每一位用户对每一件商品进行打分,那么这里联想到的方法就是协同过滤推荐的算法:根据所有用户对物品或者信息的偏好,发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K-NearestNeighbor最近邻居”的算法;然后,基于这K个邻居的历史偏好信息,为当前用户进行推荐。三、模型的假设1、商品供不应求导致用户不能买进而转买其他商品;2、不考虑用户看到别人对他将要买的商品的评价;3、由于数据量太大,不采用云服务器计算不出来所以允许随机抽取数据检验;4、遗忘曲线的时间t是最近一次交互的时间与12月19日12时的时间差。4四、符号说明𝑓综合评价指标𝑚商品数,1,2,3...一共m个𝑛用户数,a,b,c...一共n个Y用户-商品评分矩阵𝑡行为记录距离12月19日12时的时间𝐼𝑎𝑏表示用户a和用户b共同评分过的商品集合𝑓(𝑡)为遗忘函数U相关系数sim大于0.9的用户作为它的最近邻居集合c代表邻居用户𝑝𝑎𝑗用户a对商品j的评分𝑝𝑏𝑗用户b对商品j的评分𝑝𝑎̅̅̅用户a对评分过的商品集合的平均得分𝑝𝑏̅̅̅用户b对评分过的商品集合的平均得分𝑝𝑠(𝑎,𝑗)代表目标用户的预测评分𝑞1𝑗商品1对用户j的评分𝑞2𝑗商品2对用户j的评分𝑈12表示商品1,2共有的用户集合𝑥1̅̅̅商品1在对它评过分的所有用户中的平均得分𝑥2̅̅̅商品2在对它评过分的所有用户中的平均得分𝑆12商品1,2的相关性αβ分别都表示权重系数Pj综合评分5五、模型建立与及求解5.1.1协同过滤模型的建立(模型I)从题目所得到的数据可以得知,我们不知道商品具体为哪些种类,也不知道购买者是哪些人群,我们只知道给定的用户购买了哪些商品,这个非常符合协同过滤模型的方式:从数据库里获取他之前喜欢的东西,然后从剩下的物品中找到和他历史兴趣近似的物品推荐给他,核心是要计算两个物品的相似度。所以我们分别计算用户与用户的相似度以及商品与商品之间的相似度取最大的值推荐给学要买的同一类相似用户,也就是建立协同过滤模型。(1)艾宾浩斯(H.Ebbinghaus)遗忘曲线用户的兴趣是动态变化的,用户近期访问和评分的商品更能反应用户当前的兴趣爱好,更能影响用户当前的购买决策。而早期访问的商品对于用户当前可能产生兴趣的商品的影响作用较小,即用户的访问行为和评分的重要性会随着时间不断衰减。用户的消费行为可以认为是一种心理行为,遵循遗忘曲线的规律。对于这一个月中用户可能对同一件商品进行多次浏览,我们假设t是最近一次交互的时间与12月19日12时的时间差。图1然而,对于不同类别的事物,遗忘曲线的具体表达式会不同,通过论文的查阅可以知道为了提高对商品的推荐质量,遗忘曲线公式修改成了:𝑓(𝑡)=𝑒𝑏(𝑡+𝑡0)𝑐0𝑐00,𝑡00,𝑏0(1)根据查阅的论文中的实验得知:𝑐0=0.0225,𝑡0=0.00255,𝑏=0.426(2)基于用户的协同过滤模型的原理图:图2上图示意出基于用户的协同过滤推荐机制的基本原理,假设用户A喜欢物品A,物品C,用户B喜欢物品B,用户C喜欢物品A,物品C和物品D;从这些用户的历史喜好信息中,我们可以发现用户A和用户C的口味和偏好是比较类似的,同时用户C还喜欢物品D,那么我们可以推断用户A可能也喜欢物品D,因此可以将物品D推荐给用户A。我们给出加入遗忘时间的改进Pearson相关系数如公式(2),那么用户a,b的相似性:𝑠𝑖𝑚(𝑎,𝑏)=∑(𝑝𝑎𝑗×𝑓(𝑡)−𝑝𝑎̅̅̅̅)(𝑝𝑏𝑗×𝑓(𝑡)−𝑝𝑏̅̅̅̅)𝑗∈𝐼𝑎𝑏√∑(𝑝𝑎𝑗×𝑓(𝑡)−𝑝𝑎̅̅̅̅)2𝑗∈𝐼𝑎𝑏√∑(𝑝𝑏𝑗×𝑓(𝑡)−𝑝𝑏̅̅̅̅)2𝑗∈𝐼𝑎𝑏(2)将和用户a相似度大于0.9的用户作为它的最近邻居集合U。综合邻居用户对商品j的评价并预测用户a对商品j的评分。则预测评分的公式如下:𝑝𝑠(𝑎,𝑗)=∑(𝑝𝑐𝑗−𝑝𝑐̅̅̅)𝑠𝑖𝑚(𝑎,𝑐)𝑐∈𝑈∑𝑠𝑖𝑚(𝑎,𝑐)𝑐∈𝑈+𝑝𝑎̅̅̅(3)(3)基于商品的协同过滤模型的原理图:图37假设用户A喜欢物品A和物品C,用户B喜欢物品A,物品B和物品C,用户C喜欢物品A,从这些用户的历史喜好可以分析出物品A和物品C时比较类似的,喜欢物品A的人都喜欢物品C,基于这个数据可以推断用户C很有可能也喜欢物品C,所以系统会将物品C推荐给用户C。我们给出加入遗忘时间的改进Pearson相关系数如公式(3),那么商品1,2的相似性:𝑠𝑖𝑚(1,2)=(1−α)∑(𝑞1𝑗×𝑓(𝑡)−𝑥1̅̅̅̅)(𝑞2𝑗×𝑓(𝑡)−𝑥2̅̅̅̅)𝑗∈𝑈12√∑(𝑞1𝑗×𝑓(𝑡)−𝑥1̅̅̅̅)2𝑗∈𝑈12√∑(𝑞2𝑗×𝑓(𝑡)−𝑥2̅̅̅̅)2𝑗∈𝑈12+α𝑆12(4)𝑆12=∑(𝑞1𝑗−𝑥1̅̅̅̅)(𝑞2𝑗−𝑥2̅̅̅̅)𝑗∈𝑈12√∑(𝑞1𝑗−𝑥1̅̅̅̅)2𝑗∈𝑈12√∑(𝑞2𝑗−𝑥2̅̅̅̅)2𝑗∈𝑈12(5)同理也可以得到评分公式(5)𝑝𝑠(1,𝑗)=∑(𝑝𝑐𝑗−𝑝𝑐̅̅̅)𝑠𝑖𝑚(1,𝑐)𝑐∈𝑈∑𝑠𝑖𝑚(1,𝑐)𝑐∈𝑈+𝑝1̅̅̅(6)将和商品1相似度大于0.9的作为它的最近邻集合U。对目标用户未评分的商品根据公式(5)进行预测评分。(4)混合综合评分最后,我们将用户与用户相似性得分与商品与商品的相似性得分进行加权求和,通过分别取值β=0.3−0.7发现β=0.5时效果最好,综合评分如公式(4),将得分最高的商品推荐给用户。𝑝𝑗=(1−β)𝑝𝑠(𝑎,𝑗)+β𝑝𝑠(1,𝑗)(7)85.1.2协同过滤模型的求解根据用户(纵轴)-商品(横轴)评分矩阵图4(横轴再后面些是不全为0):图4利用公式(3)求的用户与用户之间的相似矩阵如图5:图59再利用公式(4)求的用户(纵轴)-商品(横轴)评分矩阵如图6:图6然后根据公式(5)计算商品与商品之间的相关性如图7:图710接着根据公式(6)计算商品对人的评分矩阵如图7(横轴为商品,纵轴为用户):图8最后根据公式7进行加权计算结果如图(横轴为商品,纵轴为用户):第一个表格表示的就是用户1对商品1的评分,对用户预测的购买商品就是取第一排分数最高的。图911推荐个数user_id最终得出分别对15个用户的推荐商品如表1推荐商品1推荐商品2100010822752216862205865511000297752859495440100068031250636264010007649128462638010008781013
本文标题:杭电暑期数学建模集训3商品用户行为数据处理中的数学问题
链接地址:https://www.777doc.com/doc-4198618 .html