精华内容
下载资源
问答
  • 导读:今天分享一下Google在KDD 2020的一篇关于多目标优化的工作,在MMoE[2]多任务框架基础上引入LSTM显式建模用户行为序列提升多任务学习效果,推荐一读。论文:Multi...

    导读:今天分享一下Google在KDD 2020的一篇关于多目标优化的工作,在MMoE[2]多任务框架基础上引入LSTM显式建模用户行为序列提升多任务学习效果,推荐一读。

    论文:Multitask Mixture of Sequential Experts for User Activity Streams

    地址:https://research.google/pubs/pub49274/

    摘要

    工业级大规模推荐系统应用中经常需要同时优化多个目标,譬如用户满意度与参与度,因此多任务学习应运而生。然而,当前推荐系统中大多数的多任务学习模型架构只考虑了非序列化的特征输入(譬如query与context),没有特别考虑用户行为序列的建模。显式地针对用户行为序列的建模会帮助多任务模型引入时序依赖,从而更准确的预测用户将来的行为。另外,用户行为序列可能会包含多种异构的数据源,譬如搜索日志、浏览日志等,由于不同类型的数据稀疏性等方面的特性会有较大区别,因此在一起建模学习时也需要谨慎处理。

    本文主要研究了如何在多任务学习场景中针对用户行为序列进行建模,提出了一套新颖的模型框架MoSE(Mixture of Sequential Experts)。在当前最新的MMoE多任务学习框架中使用LSTM针对用户行为序列进行显式建模。同时,本文也通过离线实验以及GMail的线上实验证明了本文的有效性。

    背景

    多任务学习在多个任务之间紧密关联时是有明显效果的。首先,它允许知识和数据在多个相关任务之间的迁移共享从而提升效果;其次,多任务学习通过引入推导偏差可以扮演正则项的角色,因此辅助任务可以用来提升主任务的泛化能力。

    本文研究了多任务学习中针对用户行为序列数据进行建模的挑战

    • 数据稀疏性。用户行为可能是高度稀疏的,譬如购买行为相对于浏览行为来说就非常稀疏;

    • 数据异构性。用户行为数据包含了多种来源或者类型的数据,譬如用户画像包含了性别信息,同时用户日志则包含了点击信息等;从这样的异构数据中学习共享的表示会由于内在的冲突从而比较困难;

    • 复杂的多目标。多个目标之间时序上的联系,譬如点击和购买目标之间,可能会因为用户复杂的内在意图而变得更加复杂;

    因此,本文提出了MoSE模型结构用来解决上述的挑战,主要是由当前MMoE多任务学习模型和LSTM的创新性结合。本文通过丰富的离线实验和GMail的实际线上实验验证了MoSE模型的有效性。

    场景介绍

    如下图所示,当用户在GMail搜索框搜索的时候,搜索结果中除了邮件外,如果Google Drive中有匹配的文件结果也会显示出来。尤其是GMail搜索开启了实时搜索功能,GMail的超大规模的搜索请求量对Google Drive来说是一个很重的负担。也许对某些用户来说,在GMail搜索结果查看Google Drive的结果并不是那么的实用;但是对另外一些用户来说却非常实用。

    因此,我们需要机器学习的模型来学习是否针对特定的用户打开展示Drive搜索结果的功能。在实际场景中,我们按天来更新用户的这个特性开关。而且我们需要G家的数据上针对这两个任务进行建模和预测:

    • Drive搜索结果点击的数量;

    • 用户使用GMail搜索的按键次数;

    前者任务是为了判断用户是否需要真实需要Drive搜索结果的特性;后者任务则是对请求搜索Drive文件资源消耗的大致估计。最终是否打开Drive搜索结果特性的开关,则是这两个任务之间的平衡。这两个任务针对用户行为序列的建模有不少的挑战:

    1. 需要的变量是高度稀疏的。譬如Drive搜索结果点击数量;

    2. 除了GMail的行为记录,我们需要同时使用Drive的行为记录;

    3. 这两个任务的目标是错综复杂的。标准的非序列多任务模型很难处理好上面的一些问题。

    模型架构

    多任务学习框架在用户行为序列场景下有着特定的挑战:首先用户行为数据是稀疏而且异构的;其次多个目标之间的时序联系是复杂的。因此,我们认为需要有特定的模块来针对不同方面的复杂数据进行建模

    如下图所示,MoSE框架主要由以下的模块构成:

    • 共享底层的LSTM模块在接入序列输入数据;

    • 序列专家层,不同的专家网络用于建模每个任务的不同方面;

    • Gating网络,用于为不同的任务选择不同序列专家网络的输出;

    • Task塔网络;

    其中,我们应用LSTM进行多对多的序列学习如下图所示,也就是上图MoSE结构中的共享底层LSTM模块。

    实验结果

    本文的实验同时在合成数据集以及G家数据集上进行了充足的实验,实验结果由于引入了用户行为序列的建模当然比当前的多种多任务学习baseline要更好。下图是在GMail场景数据集上的训练结果,可以看到MoSE的离线训练指标在多个任务上都表现更好。

    正如之前场景介绍所述,针对特定的用户最终是否打开Drive搜索结果特性的开关,更多是这两个任务之间的平衡。本文也研究了在不同的平衡点,对于Drive搜索结果点击量效果的影响如下图所示。

    参考

    1. Multitask Mixture of Sequential Experts for User Activity Streams

    2. Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

    展开全文
  • 用户行为数据简介  1.用户行为在个性化推荐系统中分为两种:  (1)显式反馈行为:包括用户明确表示对物品喜好的行为。  (2)隐式反馈行为:不能明确反应用户喜好的行为。  (3)显式反馈行为和隐式反馈行为数据...

    一.用户行为数据简介

      1.用户行为在个性化推荐系统中分为两种:

          (1)显式反馈行为:包括用户明确表示对物品喜好的行为。

          (2)隐式反馈行为:不能明确反应用户喜好的行为。

          (3)显式反馈行为和隐式反馈行为数据比较 

          (4)反馈方向:

            正反馈:用户喜欢该物品;负反馈:用户不喜欢该物品

          (5)用户数据分为显性反馈和隐形反馈

          (6)用户行为的统一表示  

          (7)比较有代表性的数据集有以下的几个:

            无上下文信息的隐性反馈数据集:每一条行为记录仅仅包含用户的ID和物品ID

            无上下文信息的显性反馈数据集:每一条记录包含用户ID、物品ID以及用户对物品的评分

            有上下文信息的隐性反馈数据集:包含用户ID、物品ID以及用户对物品产生行为时的时间戳

            有上下文信息的显性反馈数据集,每一条记录包含用户ID,物品ID,用户对物品的评分和评分行为发生的时间戳。

    二、用户行为分析:

      1.用户活跃度和物品流行度分布。

        (1)长尾分布:

    、   (2):对k个物品产生过行为的用户数;:被k个物品产生过行为的物品数,这里两个值都满足长尾分布:

        

        (3)下图展示了物品流行度分布曲线,横坐标是是物品的流行度K,纵坐标是流行度为K的物品总数。物品流行度是指对物品产生过行为的用户总数。

        

        不管是物品流行度还是用户的活跃度,都近似于长尾分布

      2.用户活跃度和物品流行度的关系

        (1)协同过滤算法:仅仅基于用户行为数据设计的推荐算法称为协同过滤算法。

        (2)基于领域的方法包含两种算法:基于用户的协同过滤算法;基于物品的协同过滤算法

         (3)实验设计和算法测评

    三、实验设计和算法评测:

      1.评测推荐系统的方法:(1)离线实验、用户调查、在线实验

      2.本节介绍离线实验评测提到的算法。

      3.数据集:

        (1)本节研究隐反馈数据集中的TopN推荐问题,因此忽略数据集中的评分记录,topN的任务时预测用户会不会对某部电影评分,而不是预测用户在准备对某部电影平的前提下会给电影评价多少分

      4.实验设计:

        (1)将用户行为数据集按照均匀分布随机分成m份(本章M=8),挑选一份为测试集,剩下的m-1份作为训练集

        (2)在训练集上建立用户兴趣模型,在测试集上对用户行为进行测试,统计出相应的评测指标,为了保证评测指标并不是过拟合的结果,需要进行m次试验,并且每次将数据随机分成不同的测试集。将m次试验测出的评测指标的平均值作为最终的评测指标。

        (3)每次试验选择不同的k和相同的随机数种子,进行M此试验就可以得到M个不同的测试集和训练集,然后分别进行试验

        (4)用M此试验的平均值得到最后的测评指标是为了防止某次试验的结果是过拟合的结果,但是如果数据集足够大,模型足够简单,为了快速通过离线实验初步的选择算法,只能进行一次试验。

        (5)对用户u推荐N个物品(Ru),令用户u在测试集上喜欢的物品集合为T(u),然后通过准确率/召回率评测推荐算法的精度:

          (召回率:描述有多少比例的用户-物品评分记录包含在最终的推荐列表中)

     

         (精确率:描述最终的推荐列表中有多少比例是发生过的用户-物品评分记录)

      (覆盖度:最终推荐列表中包含多大比例的物品,反应了推荐算法挖掘长尾的能力,覆盖率越高,说明推荐算法越能将长尾中的物品推荐给用户)

      推荐的新颖度:推荐列表中的物品的平均流行度度量推荐结果的新颖度。如果推荐出的物品都很人们,说明推荐的新颖度很低,否则说明推荐度很新颖

    四、基于邻域的算法

       1.基于邻域的算法可以分为两个大类:(1)基于用户的协同过滤算法;(2)基于物品的协同过滤算法。

      2.基于用户的协同过滤算法:

        (1)基于用户的协同过滤算法:在一个在线推荐系统中,当一个用户A需要个性化推荐的时候,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有说过的物品推荐给A

        (2)基于用户的协同过滤算法主要包括两个步骤:

          (a)找到和目标用户相似兴趣的用户集合。

          (b)找到这个集合中用户喜欢的,而且目标用户没听说过的物品推荐给目标用户。

        (3)上述(a)中,关键是要计算两个用户的兴趣相似度,系统过滤算法主要通过行为的相似度计算兴趣的相似度:

          

          或者通过余弦相似度来进行计算:

          

          利用余弦相似度公式进行计算用户A和用户B的兴趣相似度:

          

          同时可以计算出用户A和用户C、D的相似度

          

        (4)在得到用户之间的兴趣相似度之后,UserCF算法会给用户推荐和他兴趣最相似的K个用户喜欢的物品。如下公式度量了UserCF算法中用户u对物品i的感兴趣程度:

        

        其中S(u,K)包含了和用户u兴趣最为接近的K个用户,N(i)是对物品i有过行为的用户的集合,Wuv是用户u对用户v的兴趣相似度,rvi代表了用户v对物品i的兴趣,因为使用了单一行为的隐反馈数据,所以rvi=1

      3.用户相似度的改进。

         (1)根据用户行为计算相似度:

        

        上式中,通过:惩罚了用户u和用户v的共同兴趣列表中人们物品对他们相似度的影响。UserCF-IIF算法在各项性能上都略优于UserCF。这说明在计算用户兴趣相似度的时候,物品流行程度对提升推荐结果的质量确实有帮助。

      4.基于物品的协同过滤算法

        (1)UserCF(基于用户的协同过滤算法)缺点:

          随着网站用户数量增大,计算用户兴趣相似度矩阵越来越困难,运算的时间复杂度和空间复杂度的增长和用户数目的增长近似于平方关系;其次基于用户的协同过滤算法很难对推荐结果做出解释。

        (2)ItemCF(基于物品的协同过滤算法):给用户推荐那些和他们之前喜欢的物品的相似物品。主要通过分析用户的行为记录来计算物品之间的相似度。

        (3)算法认为:物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都喜欢物品B。基基于物品的协同过滤算法可以利用用户的历史行为给推荐结果提供解释  

        (4)基于物品的协同过滤算法主要分为两步:

          计算物品之间的相似度

          根据物品的相似度和用户的历史行为给用户推荐生成推荐列表

        (5)物品相似度计算公式:分母|N(i)|是喜欢物品i的用户数,而分子|N(i)n N(j)|是同时喜欢物品i和物品j的用户数,因此下面公式可以理解为喜欢物品i的用户有多少比例的用户也喜欢物品j,Customers Who Bought This Item Also Bought,从这句话就可以定义相似度:

            

          为了避免推荐出热门的商品,可以用下面的公式进行计算:

          

          这个公式惩罚了物品j的权重,因此减轻了热门物品和许多物品相似的可能性。从定义中看出,在协同过滤中两个物品产生相似度是因为他们被很多用户所喜欢,也就是说每个用户通过他们的历史兴趣列表给物品贡献相似度。

          在得到物品之间的相似度后,ItemCF通过下面公式计算用户u对一个物品j的兴趣:

                  

          这里N(u)是用户喜欢的物品的集合,是和物品j最相似的K个物品的集合,wji是物品j和物品i的相似度,rw是用户u对物品i的兴趣。和用户历史上感兴趣的物品越相似的物品,越有可能在用户推荐的列表中获得较高的排名。

        (6)精度(准确率和召回率):可以看到ItemCF推荐结果精度也是不和K成正相关或者负相关的,因此选择合适的K对获得高精度非常重要

        (7)流行度。和UserCF不同,参数K对ItemCF推荐结果流行度的影响也不是完全正相关的。随着K的增加,结果流行度会逐渐提高,但当K增加到一定程度,流行度就不会再有明显变化

        (8)覆盖度:K增加会降低系统覆盖率

        (9)用户活跃度对物品相似度影响

        在协同过滤中,两个物品产生相似度是因为他们共同出现在很多用户的兴趣列表中。换句话数,每个用户的兴趣列表都对物品相似度产生贡献。

         (10)物品相似度的归一化

      5.物品相似度的归一化

        (1)如果将ItemCF的相似度矩阵按照最大值归一化,可以提高推荐的准确率。如果得到了物品相似度矩阵w,那么可以用如下公式得到归一化之后的相似度矩阵w:

             归一化不仅在于增加推荐的准确度,还可以提高推荐的覆盖率和多样性。一般来书,物品总是属于很多不同的类,每一类中物品联系比较紧密。相似度的归一化可以提高推荐的多样性。一般来说,人们类物品相似度一般比较大,如果不进行归一化,就会推荐比较热门类里面的物品,推荐的覆盖度比较低,相反如果进行相似度的归一化,则可以提高推荐系统的覆盖率。

      6.UserCF和ItemCF的综合比较

        (1)UserCF给用户推荐那些和他们有共同兴趣爱好的用户喜欢的物品;ItemCF给用户推荐那些和他们之前喜欢的物品的类似的物品。UserCF的推荐结果中着重反应和用户兴趣相似的小群体的热点,更加社会化,反应了用户所在的小型群体中物品的热门程度;而ItemCF的推荐结果着重于维护用户的历史兴趣,推荐更加个性化,反应了用户自己的兴趣传承。

        (2)在新闻网站中,用户的兴趣不是特别细化,绝大多数用户都喜欢看热门的新闻。即使是个性

    化,也是比较粗粒度的,比如有些用户喜欢体育新闻,有些喜欢社会新闻,而特别细粒度的个性
    化一般是不存在的。比方说,很少有用户只看某个话题的新闻,主要是因为这个话题不可能保证
    每天都有新的消息,而这个用户却是每天都要看新闻的。因此,个性化新闻推荐更加强调抓住
    新闻热点,热门程度和时效性是个性化新闻推荐的重点,而个性化相对于这两点略显次要。因
    此,UserCF可以给用户推荐和他有相似爱好的一群其他用户今天都在看的新闻,这样在抓住热
    点和时效性的同时,保证了一定程度的个性化。这是Digg在新闻推荐中使用UserCF的最重要
    原因。
      UserCF适合用于新闻推荐的另一个原因是从技术角度考量的。因为作为一种物品,新闻的更
    新非常快,每时每刻都有新内容出现,而ItemCF需要维护一张物品相关度的表,如果物品更新很
    快,那么这张表也需要很快更新,这在技术上很难实现。绝大多数物品相关度表都只能做到一天
    一次更新,这在新闻领域是不可以接受的。而UserCF只需要用户相似性表,虽然UserCF对于新
    用户也需要更新相似度表,但在新闻网站中,物品的更新速度远远快于新用户的加入速度,而且
    对于新用户,完全可以给他推荐最热门的新闻,因此UserCF显然是利大于弊。
    但是,在图书、电子商务和电影网站,比如亚马逊、豆瓣、Netflix中,ItemCF则能极大地发
    挥优势。首先,在这些网站中,用户的兴趣是比较固定和持久的。一个技术人员可能都是在购买
    技术方面的书,而且他们对书的热门程度并不是那么敏感,事实上越是资深的技术人员,他们看
    的书就越可能不热门。此外,这些系统中的用户大都不太需要流行度来辅助他们判断一个物品的
    好坏,而是可以通过自己熟悉领域的知识自己判断物品的质量。因此,这些网站中个性化推荐的
    任务是帮助用户发现和他研究领域相关的物品。因此,ItemCF算法成为了这些网站的首选算法。
    此外,这些网站的物品更新速度不会特别快,一天一次更新物品相似度矩阵对它们来说不会造成
    太大的损失,是可以接受的。
      同时,从技术上考虑,UserCF需要维护一个用户相似度的矩阵,而ItemCF需要维护一个物品
    相似度矩阵。从存储的角度说,如果用户很多,那么维护用户兴趣相似度矩阵需要很大的空间,
    同理,如果物品很多,那么维护物品相似度矩阵代价较大。
    在早期的研究中,大部分研究人员都是让少量的用户对大量的物品进行评价,然后研究用
    户兴趣的模式。那么,对于他们来说,因为用户很少,计算用户兴趣相似度是最快也是最简单
    的方法。但在实际的互联网中,用户数目往往非常庞大,而在图书、电子商务网站中,物品的
    数目则是比较少的。此外,物品的相似度相对于用户的兴趣一般比较稳定,因此使用ItemCF是
    比较好的选择。当然,新闻网站是个例外,在那儿,物品的相似度变化很快,物品数目庞大,
    相反用户兴趣则相对固定(都是喜欢看热门的),所以新闻网站的个性化推荐使用UserCF算法的
    更多

      

        (3)哈利波特问题。

          ItemCF计算物品相似度的经典公式:

          

          如果j非常的热门,那么上面公式得就会越来越接近。尽管上面公式得分母已经考虑了j的流行度,但是在实际应用中,热们的j仍然会获得比较大的相似度。

          哈利波特问题有几种解决办法:

          第一种是对分母上加大对热门物品的惩罚,比如采用下面的公式:

          

          这里通过提高a就可以提高j

    五、隐语义模型

      1.基础算法

        (1)核心思想:通过隐含特征联系用户兴趣和物品。

        (2)隐含语义分析技术采取基于用户行为统计自动聚类。 

      2.LFM隐含语义分析技术在推荐系统中的应用。

        (1)LFM通过如下的公式计算用户u对物品i的兴趣:

          

          其中 度量了用户u的兴趣和第k个隐类的关系,而

     

    度量了第k个隐类和物品i之间的关系。

        (2)负样本采样时应该遵循下面的原则。

           对于每个用户,要保证正负样本的平衡(数目相似)

           对于每个用户采样负样本时,要选取那些很热门的,但是用户却没有行为的物品。

           一般认为

        

      

          

     

        

     

     

        

     

     

      

     

        

     

       

    转载于:https://www.cnblogs.com/bigdata-stone/p/10334848.html

    展开全文
  • 1 用户大多具有懒惰性,不愿意对物品进行评级:例如大部分人对购买的物品不愿意给出评价,这体现了一种用户懒惰行为 2 用户可能撒谎或者只给出部分信息:如果某人克服了懒惰性,真的对物品进行评分,该用户也可能...

    显式评级:显式评级是指用户显式的给出物品的评价结果,例如直接打分

    显式评级存在的问题

        1 用户大多具有懒惰性,不愿意对物品进行评级:例如大部分人对购买的物品不愿意给出评价,这体现了一种用户懒惰行为

        2 用户可能撒谎或者只给出部分信息:如果某人克服了懒惰性,真的对物品进行评分,该用户也可能撒谎

        3 用户不会更新其评价结果:例如考虑一个大学生Mary,他喜欢评级,十年前他还是个小孩,它给她喜欢的唱片打了5星。基于最新的评价结果,它成了另一名大学生的近邻,但是如果将他小时候听的儿歌推荐给该大学生,将会感觉很奇怪。

    隐式评级:对于隐式评级而言,我们不要求用户给出任何评级得分,而是观察用户的行为来获得结果。例如某用户点击了iPhone广告,或许他对该产品感兴趣,用户点击广告用的术语是点击量或者点击率。另一种隐式评级来自用户实际的购买结果。

    隐式数据如下

         网页: 点击指向某网页的链接,浏览页面的时间,重复的访问,将一个网页指向其他网页,在网上观看的视频

         音乐播放器: 用户播放的歌曲,用户跳过的歌曲,某首歌曲播放的次数

     

    转载于:https://www.cnblogs.com/td15980891505/p/5990144.html

    展开全文
  • 这些函数称为特殊成员函数,它们使 C++ 中的简单用户定义类型的行为如同 C 中的结构。也就是说,可以创建、复制和销毁它们而无需任何额外编码工作。C++11 会将移动语义引入语言中,并将移动构造函数和移动
  • 一、项目背景UserBehavior是阿里巴巴提供的一个淘宝用户行为数据集,数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢),用以进行隐式反馈...

    一、项目背景
    UserBehavior是阿里巴巴提供的一个淘宝用户行为数据集,数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢),用以进行隐式反馈推荐问题的研究。注:隐式反馈推荐问题
    推荐系统中用户对物品的反馈分为显式和隐式反馈,显式反馈 (如评分、评级) 或单一的隐式反馈 (如浏览、点击、加入购物车)。 隐式反馈推荐是推荐系统通过对内容和用户行为的分析,建立适当的模型,帮助用户从海量的数据中找到自己感兴趣的内容。推荐系统中用户的行为反馈包括显式反馈和隐式反馈,隐式反馈信息在推荐系统算法中被广泛应用。隐式反馈体现着用户的兴趣爱好,对隐式反馈信息的挖掘有助于提高推荐系统的效果,以更好地设计推荐系统。二、项目目标1.分析目的:通过对2017年11月25日至2017年12月3日之间的用户行为数据分析,为客户提供更精准的隐式反馈推荐。从用户角度:提高用户忠诚度,帮助用户快速找到商品;从网站角度:提高网站交叉销售能力,提高成交转化率。注:数据来源为下面所示的天池数据集,但是由于数据量过大(约有1亿条用户行为),所以抽样约100000的用户行为进行分析。2.分析思路
    本次分析主要是根据分析目的,就以下四个维度进行分析和提出改进建议:

    • 用户行为间的转化情况分析:分析用户从浏览到购买整个过程中,常见的电商分析指标,确定各个环节的流失率,提出改善转化率的意见;
    • 用户的行为习惯分析:以PV、UV等指标,找出用户最活跃的日期以及每天活跃时间段。
    • 用户类目偏好分析:从商品的点击、收藏、加购、购买的频率,探索用户对商品的购买偏好,找到针对不同商品的营销策略(什么产品以及产品类目的购买率最高,找出最受欢迎的产品,优化产品推荐);
    • 用户价值分析:找出最具有价值的核心付费用户群,针对这些用户的购买偏好推送个性化的产品销售方案。

    以下为本次分析逻辑:

    三、数据收集与整理(一)数据准备:1.数据来源
    阿里巴巴天池:

    User Behavior Data from Taobao for Recommendation-数据集-阿里云天池tianchi.aliyun.com
    93297f3924b1a2fef5c46835804ba8c5.png

    2.将数据导入MySQL
    工具准备:工具:Navicat for MySQL,mysql 5.7,powerBI(或Excel)。下载的Excel数据很大,无法用Excel直接打开,所以需要用Navicat导入数据库中进行处理。
    1)创建数据库

    2)按下图选择“导入向导”。

    3)选择Excel文件数据源

    4)选择分隔符
    csv文件文本打开是“,”分割的,选择“,”,其他默认。

    5)为源定义一些附加选项
    这里我们导入100000行数据。

    6)选择往哪个表里导入数据

    7)定义源表(excel表)和目标表(数据库表)的对应关系
    若导入文件的字段栏位与数据库字段名匹配,会自动设置对应关系。若栏位字段不对应,可手工调整。设置好后,点击“下一步”。
    这次的Excel数据本身可能没有列名,第1行就是数据:

    导入数据后,再在navicat里使用可视化界面修改列名。本次分析的数据没有主键,所以不要设置。
    数据类型都选择varchar。虽然时间戳这一列是时间类型,但是为了避免导入后数据不正常。先设置为varchar,导入后再用sql来转换。
    8)选择导入模式

    9)点击“开始”按钮执行导入命令

    3.数据理解

    本数据集包含了2017年11月25日至2017年12月3日之间,有行为的约一百万随机用户的所有行为(行为包括点击、购买、加购、喜欢)。数据集的组织形式和MovieLens-20M类似,即数据集的每一行表示一条用户行为,由用户ID、商品ID、商品类目ID、行为类型和时间戳组成,并以逗号分隔。关于数据集中每一列的详细描述如下:

    注意到,用户行为类型共有四种,它们分别是:

    (二)数据清洗
    1)选择子集
    数据集的字段都有用
    2)字段名称修改:

    3)删除重复值

    SELECT

    ps:全字段去重

    DELETE FROM 表名 WHERE (字段1,字段2,字段3) 
    IN  
    (SELECT 字段1,字段2,字段3 FROM (SELECT 字段1,字段2,字段3 FROM 表名 GROUP BY 字段1,字段2,字段3
     HAVING COUNT(*)>1) s1) 
     AND 
    id NOT IN (SELECT id FROM (SELECT id FROM 表名 GROUP BY 字段1,字段2,字段3 
     HAVING COUNT(*)>1) s2);
    
    
    
    4)缺失字段
    
    SELECT count(User_ID),count(Item_ID),count(Category_ID),count(Behavior_type),count(Timestamp) 
    FROM userbehavior;
    
    
    对所有列进行计数查询,计数结果都为99999,不存在缺失值。
    
    5)一致化处理Timestamp列无法直接进行分析,需要对其列转化为三列,分别为时间,日期,小时


    6)异常值处理
    由于项目背景是要通过对2017年11月25日至2017年12月3日之间的淘宝用户行为数据集进行隐式反馈推荐问题的研究,所以要对这个时间段外的数据进行删除处理。

    清洗完的数据如下:

    最后,导入的数据集大小概览:

    四、数据分析
    这一环节的所有结果均为先使用sql分析数据,获得分析结果,然后将分析结果导出到excel或者power BI里进行可视化。

    (一)数据总体情况概览1.总体UV、PV、人均浏览次数、成交量

    select COUNT(DISTINCT User_ID) AS '独立访客数', 
    sum( case when Behavior_type='pv' then 1 else 0 END) as '点击数', 
    sum( case when Behavior_type='pv' then 1 else 0 END)/COUNT(DISTINCT User_ID) as '人均浏览次数', 
    sum(case when Behavior_type ='buy' then 1 else 0 END)as '成交量' 
    from userbehavior;

    2.日均UV、PV、人均浏览次数、成交量

    select Date,COUNT(DISTINCT User_ID) AS '日访客数',
    sum( case when Behavior_type='pv' then 1 else 0 END) as '日点击数',
    sum( case when Behavior_type='pv' then 1 else 0 END)/COUNT(DISTINCT User_ID) as '日人均浏览次数',
    sum(case when Behavior_type ='buy' then 1 else 0 END)as '日成交量'
    from userbehavior
    GROUP BY Date
    ORDER BY Date;


    (1)日访客数趋势线

    (2)日人均浏览次数趋势线

    (3)日成交量趋势线

    3.用户整体行为数据

    create view 用户行为数据 AS 
    select User_ID,COUNT(Behavior_type) as '用户行为数', 
    sum(case when Behavior_type ='pv' then 1 else 0 end ) as '点击',
    sum(case when Behavior_type ='fav' then 1 else 0 end) as '收藏',
    sum(case when Behavior_type ='cart' then 1 else 0 end) as '加购', 
    sum(case when Behavior_type ='buy' then 1 else 0 end) as '购买' 
    from userbehavior 
    GROUP BY User_ID 
    ORDER BY 用户行为数 DESC;
    

    4.用户的复购率和跳失率

    -- 复购用户、复购率 
    SELECT 
    sum(case when 购买>1 then 1 else 0 end ) as 复购次数, 
    sum(case when 购买>0 then 1 else 0 end ) as 购买次数, 
    CONCAT(ROUND(sum(case when 购买>1 then 1 else 0 end)*100/ sum(case when 购买>0 then 1 else 0 end),2),'%') as 复购率 
    from 用户行为数据;
    -- 跳失率=只浏览了一个页面的访客数/总访客数 
    select COUNT(*) from ( 
    SELECT User_ID from userbehavior  
    GROUP BY User_ID HAVING COUNT(Behavior_type)=1)as a;

    当统计时间为9天时,用户的复购率为且跳失率为0,说明淘宝拥有你足够的吸引力让用户停留且用户的忠诚度非常高。可以进一步培养用户的忠诚度,鼓励用户更高频次的消费。(二)用户行为转化情况分析1.用户行为转化及流失分析流量行为转化漏斗分析


    用户点击后,收藏或者加购物车的概率在左右,而最后真正的购买概率在,也就是说用户的行为在浏览商品详情页后出现了大量的流失。
    那么用户是否也是在点击后产生了大量的流失,只有极少部分产生了购买呢?
    用户行为转化漏斗分析

    -- 用户留存分析(漏斗转化) 
    select sum(case when 点击>0 then 1 else 0 end)as 点击用户数, 
    sum(case when 收藏>0 then 1 else 0 end) as 收藏用户数, 
    sum(case when 加购>0 then 1 else 0 end) as 加购用户数, 
    sum(case when 购买>0 then 1 else 0 end) as 购买用户数 
    from 用户行为数据;

    由上图可以看出,用户并未在点击后就大量流失,而且有的付费用户,用户的购买转化率还是很不错的。由此我们推测流量行为转化中用户的点击行为远远大于收藏和加购,最后仅有转化为购买的原因,可能是要对不同店铺的同种产品进行比较。
    所以针对大部分的用户行为还是对商品点击详情页访问的情况,研究如何提高用户点击后到其他行为的转化是一个重点。APP可以优化商品推荐以及筛选功能,使用户不用浏览那么多的网页,用更少的选择获得心怡的商品。
    那么,再回到用户转化漏斗图,从浏览到购买,每一个环节的转化率是多少呢?为什么收藏用户数远小于加购的用户数?
    因为加入购物车和收藏商品并没有行为的先后性,也就是说,购物路线可以有四条:

    • 点击——购买
    • 点击——加购——购买
    • 点击——收藏——购买
    • 点击——收藏——加购——购买
    -- 点击——购买的留存分析 
    select  
    sum(case when 购买>0 then 1 else 0 end) as 购买用户数 
    from 用户行为数据 
    where 收藏=0 and 加购=0; 
    -- 点击——加购——购买的留存分析 
    select  
    sum(case when 加购>0 then 1 else 0 end) as 加购用户数, 
    sum(case when 购买>0 then 1 else 0 end) as 购买用户数 
    from 用户行为数据 
    where 收藏=0 and 加购<>0;
     -- 点击——收藏——购买的留存分析 
    select  
    sum(case when 收藏>0 then 1 else 0 end) as 收藏用户数, 
    sum(case when 购买>0 then 1 else 0 end) as 购买用户数 
    from 用户行为数据 
    where 加购=0 and 收藏<>0; 
    -- 点击——收藏——加购——购买的留存分析 
    select  
    sum(case when 加购>0 then 1 else 0 end) as 加购用户数, 
    sum(case when 收藏>0 then 1 else 0 end) as 收藏用户数, 
    sum(case when 购买>0 then 1 else 0 end) as 购买用户数 
    from 用户行为数据 
    where 加购<>0 and 收藏<>0;

    从上图的用户四种购买行为的留存,可以看出用户点击之后,若有后续行为则主要行为是加入购物车,然后是收藏并加购,再接下来是收藏,除此之外还有部分用户是点击后直接购买的。可以着重研究各类路径用户购买的产品是什么以及用户的标签,通过对优化商品推荐及精准运营加强这部分的转化。
    推测点击后收藏的用户远小于点击后加购的用户,是因为加入购物车后可以直接下单购买,而加入收藏后并没有可以下单的页面,如果需要购买必须重新点击商品进入详情页才能下单,多了一个步骤。
    最后,对用户从收藏到购买、加购到购买及收藏和加购到购买的转化分析可以看出,用户收藏并加购后购买转化率是最高的,故可以通过引导用户进行收藏并加购来提高用户的购买转化率。
    2.新增用户及留存情况(需要有用户第一次登录时间,此处不做分析)。(三)用户行为习惯分析
    这里分别以天和时段为单位,分析用户的购买行为分布,找出用户活跃时段分布规律。年11月25日至12月3日间的用户行为习惯分布

    create view  用户行为习惯分布(天) AS 
    select Date,COUNT(Behavior_type) as '用户行为数', 
    sum(case when Behavior_type ='pv' then 1 else 0 end ) as '点击', 
    sum(case when Behavior_type ='fav' then 1 else 0 end) as '收藏', 
    sum(case when Behavior_type ='cart' then 1 else 0 end) as '加购', 
    sum(case when Behavior_type ='buy' then 1 else 0 end) as '购买' 
    from userbehavior 
    GROUP BY Date 
    ORDER BY Date;

    由上图可以看出,在研究日期范围内用户的活跃度都比较平稳,仅在12月2日及12月3日有相对明显的增幅,由于该日期与11月25及26日同为周末,故由于周末的原因导致用户活跃度提升的原因较小,而且12月2日及3日点击、收藏及加购都有较明显增长,但购买并未有明显增幅,故推测最可能原因是由于双十二预热活动导致的流量上升,用户开始大量浏览商品,加入购物车及收藏是双十二批量购买时的前置动作。故收藏和加购的行为同样出现了增长,这也符合常规预期。
    2.一天中的用户行为习惯分布

    -- 用户行为习惯分布(时) 
    create view  用户行为习惯分布(时) AS 
    select Time,COUNT(Behavior_type) as '用户行为数', 
    sum(case when Behavior_type ='pv' then 1 else 0 end ) as '点击', 
    sum(case when Behavior_type ='fav' then 1 else 0 end) as '收藏', 
    sum(case when Behavior_type ='cart' then 1 else 0 end) as '加购', 
    sum(case when Behavior_type ='buy' then 1 else 0 end) as '购买' 
    from userbehavior 
    GROUP BY Time 
    ORDER BY Time;

    经过对一天中用户行为分布的可视化,可以发现每日0点至3点用户活跃度快速降低,降到一天中活跃度最低值,4点至10点用户活跃度快速上升,10点至18点用户活跃度较平稳,但分别在12点及17点略有下降,18点后用户活跃度开始快速上升,并在20-22时达到一天中用户活跃度的最高值,这也符合大部分人的作息规律。所以,可以考虑在20-22点这个时间段进行一些促销活动和商品推荐以提高转化率。
    此外,可以看出晚上7点到凌晨一点的晚间时间段,用户的操作行为偏向于浏览。用户在白天特别是在商务10点和下午1点,购买行为比率达到最高,可见,在这一时间段的用户使用淘宝下单购买商品的意向是最高的。
    (四)用户类目偏好分析
    统计所有商品的购买次数,同时找到购买次数、浏览次数、收藏次数和加入购物车次数最多的商品。
    1.商品销售情况分析

    -- 商品销售情况 
    create view  
    商品销售情况 AS 
    select a.购买次数,COUNT() as 商品数 
    FROM 
    (select  Item_ID,COUNT(User_ID) as 购买次数 
    from userbehavior  
    where Behavior_type='buy' 
    GROUP BY Item_ID) as a 
    GROUP BY 购买次数 
    ORDER BY 购买次数 DESC; 
    -- 商品销售整体情况 
    select COUNT(DISTINCT Item_ID) 
    from userbehavior; 
    select  COUNT(DISTINCT Item_ID) 
    from userbehavior  
    where Behavior_type='buy';

    本次分析涉及到的商品共有64440,用户购买的商品共有1984种,却没有出现购买数量非常集中的商品;在本次统计数据中,只购买一次的商品有1881种,占用户购买商品数的,说明商品售卖主要是依靠商品的长尾效应,而非爆款商品的带动。2.商品品类浏览top20

    -- 商品品类点击数据 
    select Category_ID, 
    sum(case when Behavior_type ='buy' then 1 else 0 end) as '点击' 
    from userbehavior 
    GROUP BY Category_ID 
    ORDER BY 点击 DESC 
    limit 20;

    我们看到点击数最高的商品品类是4756105,为4509次,那么是否点击次数最高的商品购买的次数也是最高呢?3.商品品类收藏top20

    通过上图我们可以看到排在收藏前20名中的16种商品在点击top20中也有出现,说明收藏和点击同步的几率很大。4.商品品类加购top20

    再加购top20的商品品类中的15种商品在点击top20中,14种商品出现在收藏中,说明这些商品都是能够很好地吸引用户注意力的,那么这些商品的销量又如何呢?5.商品品类购买top20

    通过以上四个图对比我们可以发现,点击top20中前5名的商品在购买top20中排名分别为7、8、3、12、18名,点击、收藏、加购top20的商品品类分别在购买top20中出现了12、12、14类,说明在点击、收藏、加购环节吸引用户更多注意力的商品没有很好的转化为实际销量,这是销量增长的一个突破点,此外我们也可以看出相比于收藏,加购与购买的关系更为直接。
    而且,单纯的看商品品类购买top20,可以发现商品类目销售有较为明显的集中趋势,所以可以根据畅销商品品类优化商品展示,进而提高销量。(五)用户价值分析(RFM模型)
    在本次分析中由于没有提供金额,所以这次分析从R、F两个维度对客户群进行分析。
    首先,我们来定义一下本次分析用户群的分类标准:

    由于数据集的时间仅有9天,所以我们设置一下规则,对每个用户最近一次购买时间和12月03日之间的时间间隔设立等级:

    • 间隔>7天为1
    • 间隔在5-7天设为2
    • 间隔在3-4天设为3
    • 间隔在0-2天设为4
    -- 最近一次购买 
    select User_ID, 
    (case when Rtime >7 then 1 
    when Rtime between 5 and 7 then 2 
    when Rtime BETWEEN 3 and 4 then 3 
    when Rtime between 0 and 2 then 4 else null end ) as 最近一次购买 
    FROM(select  User_ID,DATEDIFF('2017-12-03',max(Date)) as Rtime 
    from userbehavior 
    where Behavior_type='buy' 
    GROUP BY User_ID) as 购买时间 
    ORDER BY 最近一次购买 DESC;
    select User_ID,
    count(Behavior_type)as 购买次数 
    from userbehavior 
    where Behavior_type='buy' 
    group by User_ID 
    ORDER BY 购买次数 DESC;

    对用户的购买次数进行排名后,发现购买次数范围在1-43之间,故我们按照以下规则设立等级:

    • 购买次数在1-10之间设为1
    • 购买次数在11-20之间设为2
    • 购买次数在21-30之间设为3
    • 购买次数>30次设为4
    -- 购买频率 
    SELECT User_ID, 
    (case when 购买次数 between 1 and 10 then 1 
    when 购买次数 between 11 and 20 then 1 
    when 购买次数 between 21 and 30 then 2 
    when 购买次数 >=31 then 4  
    else null end ) as 购买频率等级 
    FROM( 
    select User_ID,count(Behavior_type)as 购买次数 
    from userbehavior 
    where Behavior_type='buy' 
    group by User_ID) as 购买频率 
    ORDER BY 购买频率等级 DESC;

    根据上面的用户群等级设定规则,用四象限法划分出来的用户群如下:

    通过用户群划分可以了解每位顾客的特性,从而实现差异化营销。
    五、结论
    1.通过对用户行为的转化分析,可以看出用户从点击到购买的转化率还是比较高的,目前来看可以通过引导用户收藏并加购来提高用户从收藏/加购到购买的转化率。而流量行为从点击到购买的转化率仅有,故从点击到购买的行为转化是一个提高的重点。针对这一环节的建议有:

    • 优化电商平台的搜索匹配度和推荐策略,提高筛选精确度,并对搜索和筛选的结果排序的优先级进行优化;
    • 可以给客户提供同类产品比较的功能,让用户不需要多次返回搜索结果进行点击查看,方便用户确定心仪产品,增加点击到后续行为的转化;
    • 优化收藏到购买的操作过程,增加用户收藏并加购的频率,以提高购买转化率。

    2.通过对用户行为的分析

    • 可以看出用户的活跃时间高峰期主要在20-22点,此时使用人数最多,活动最容易触达用户,所以可以将营销活动安排在这个时间段内,来进行引流并转化。
    • 在研究的9天内共有两个周末,第一个周末用户活跃度并没有明显变化,而第二个周末推测是因为有双十二的预热,导致用户点击和加购出现明显增加。故可以扩大研究时间范围对推测进行验证,若推测正确,则可以通过在周末推出营销活动来挖掘用户周末购物的欲望。

    3.通过对用户的商品偏好分析,可以看出商品销量主要是依靠长尾效应,而非爆款商品的带动。但是通过对商品品类的分析可以看出能吸引用户注意力的商品购买转化率并不高,是一个提高销量的突破口。针对用户关注度高但销量不高的这部分产品,可以从以下几个方面着手:

    • 商家在详情页上的展示突出用户重点关注的信息,优化信息的呈现方式,减少用户的时间成本;
    • 增加这些产品的质量管控力度,加强对用户反馈建议如评论的管理,认真采纳并根据自身的优劣势进行商品优化。

    此外,对于购买top20的商品,可以在电商首页对这些品类的商品优先进行展现,以满足用户的购买需求。
    4.通过RFM模型对客户群进行划分,可以对不同的用户群体采用不同的管理策略,达到对不同的客户群进行精准营销的目的:

    • 对于重要价值用户,需要重点关注并保持, 应该提高满意度,增加留存;
    • 对于重要发展客户和重要保持用户,可以适当给点折扣或捆绑销售来增加用户的购买频率;
    • 对于重要挽留客户,需要关注他们的购物习性做精准化营销,以唤醒他们的购买意愿。
    展开全文
  • 所谓隐式转换,是指不需要用户干预,编译器私下进行的类型转换行为。 例如: short a=2000; int b; b=a; 在这里,a在没有任何显示操作符的干预下,由short类型转换为int类型。这就是标准转换,标准转换将影响...
  • 根据用户是否主动参与分为显式与隐式两种挖掘模式,因为显式的动静比较大,有很大局限性,所以为了保证结果准确性以及提高用户接受度,一般都采用隐式。 用户的日常交互行为会产生四类关键数据:鼠标移动轨迹、...
  • 关于隐式挖掘网站用户行为的分析[@more@] 如何了解用户和需求 如何了解用户需求?根据用户是否主动参与分为显式与隐式两种挖掘模式,因为显式的动静比较大,有很大局限性,所以为了保证结果准确性以及提高用户接受度...
  • 针对在多用户、多Web站点的网络访问环境下存在的数据采集...实验结果表明,该方法可以有效地采集浏览行为数据并清除大量的附带请求,抽取出能够反映用户显式点击的页面基请求,为用户浏览行为建模提供准确的数据源。
  • 推荐系统中的用户偏好

    万次阅读 2017-05-31 17:22:03
    如何根据已有的用户行为和信息,准确地对用户偏好进行预测是一个很重要的问题。用户偏好模型如图所示,我们可以利用用户的行为信息对其偏好进行建模。可以把这些信息分为显式(explicit)行为和隐式(implict)行为。...
  • 用户兴趣模型

    2019-12-17 08:36:10
    用户在使用某APP时,所表现的行为倾向性,APP会根据用户的一系列行为表现来确实用户的兴趣。 2)兴趣模型的分类 按时间:长期兴趣,短期兴趣;长期兴趣指不容易随着时间而变化的兴趣,相对稳定;短期兴趣指变化...
  • 用户兴趣的模型 浅析

    2018-08-13 22:08:00
     指用户在使用某APP时,所表现的行为倾向性,APP会根据用户的一系列行为表现来确实用户的兴趣。 2)兴趣模型的分类  按时间:长期兴趣,短期兴趣;长期兴趣指不容易随着时间而变化的兴趣,相对稳定;短期兴趣指...
  • 主要利用情境感知、用户行为等多维因素建立一种M-C-W用户兴趣模型,提出结合用户显式和隐式兴趣度的计算,挖掘出用户显式兴趣和隐式兴趣的关联性,实现多维动态情境兴趣的结合。通过多角度综合计算用户的兴趣度,...
  • iOS 用户通知

    2020-05-20 13:26:35
    应用要能够接收系统的通知,需要用户对该应用接收通知的行为进行授权。授权包括:是否出现提示框、是否有声音和是否在应用图标上显式标记。UNUserNotification框架中这些授权类型被定义在一个枚举类型...
  • 如何挖掘用户需求

    2012-04-18 22:01:02
    根据用户是否主动参与分为显式与隐式两种挖掘模式,显示挖掘主要通过问卷调查,客户访谈等方式,但因为显式的动静比较大,有很大局限性,所以为了保证结果准确性以及提高用户接受度,一般都采用隐式。 用户的日常...
  • 中介者使各个对象之间不需要显式地相互引用,从而使耦合性降低,而且可以独立地改变它们之间的交互行为。 中介者模式的结构  从生活中例子自然知道,中介者模式设计两个具体对象,一个是用户类,另一个是中介...
  • 微信有一个群聊功能,群聊中的信息你不需要加别人为好友就可以接收的到信息,因为群的机制,极大的减少了用户之间的两两通信,在软件设计中,也有类似于微信用户之间的关系,我们也可以借鉴微信群的模式,来降低对象...
  • 1. 意图 ...例如,用户界面工具箱包括按钮和菜单这样的对象,它们执行请求响应用户输入。但工具箱不能显式的在按钮或菜单中实现该请求,因为只有使用工具箱的应用知道该由哪个对象做哪个操作。而工具箱
  • 1、意图 ...例如,用户界面工具箱包括按钮和菜单这样的对象,它们执行请求响应用户输入。但工具箱不能显式的在按钮或菜单中实现该请求,因为只有使用工具箱的应用知道该由那个对象做那个操作。而工具
  • 基于用户行为推荐的主要思想是利用已有用户的历史行为数据(显式反馈或隐式反馈),预测当前用户可能感兴趣的物品,其中显式反馈主要为用户评分,隐式反馈主要包括浏览、搜索等。 基于用户行为的推荐算法也称为协同...
  • 1.显式数据和隐式数据MF用到的用户行为数据分为显式数据和隐式数据两种。显式数据是指用户对item的显式打分,比如用户对电影、商品的评分,通常有5分制和10分制。隐式数据是指用户对item的浏览、点击、购买、收藏、...
  • 提出了一种灵活适应不同业务的个性化推荐系统设计方案,采集并分析用户的所有显式行为和隐式行为,结合用户行为配置文件和熵值法分析用户对物品的兴趣度,并引入时间遗忘函数,解决用户兴趣漂移问题,然后基于协同...
  • 允许显式行为(使用paths和active={false} )或允许视图自行处理用户输入。 道具 active:boolean启用/禁用视图的绘图功能(禁用以controlled使用) strokeColor:number将画布笔触设置为给定的本机兼容颜色 ...
  • 没有外部依赖关系,线程安全,根本不分配内存,几乎可以在任何环境下工作(我们在两个Windows上的用户,内核,管理程序内部都使用它)和Linux环境),并且它提供了许多有关已解码指令的信息,例如:操作数(显式和...
  • 隐式反馈

    2019-11-04 09:36:51
    隐式反馈:不直接表示用户倾向的用户行为,如转发微博、浏览网站时长或购买物品 隐式反馈的特性 1、没有负反馈。隐式反馈无法判断是否不喜欢,而显式反馈,明显区分是喜欢还是不喜欢。 2、先天性具有噪声 3、现实...
  • ​ 隐式反馈:用户行为,如点击、浏览等 ​ 1、数据比显式反馈更加稠密。诚然,评分数据总体来说是很稀疏的。 ​ 2、隐式反馈更代表用户的真实想法,比如你不是很赞成川普的观点,但还是想经常看到他的内容(以便吐...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 167
精华内容 66
关键字:

显式用户行为