CN107451267B - 一种基于Spark平台的分布式推荐方法 - Google Patents

一种基于Spark平台的分布式推荐方法 Download PDF

Info

Publication number
CN107451267B
CN107451267B CN201710647317.8A CN201710647317A CN107451267B CN 107451267 B CN107451267 B CN 107451267B CN 201710647317 A CN201710647317 A CN 201710647317A CN 107451267 B CN107451267 B CN 107451267B
Authority
CN
China
Prior art keywords
user
article
list
recommendation
userid
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201710647317.8A
Other languages
English (en)
Other versions
CN107451267A (zh
Inventor
陈东明
胡阳
黄新宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University China
Original Assignee
Northeastern University China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University China filed Critical Northeastern University China
Priority to CN201710647317.8A priority Critical patent/CN107451267B/zh
Publication of CN107451267A publication Critical patent/CN107451267A/zh
Application granted granted Critical
Publication of CN107451267B publication Critical patent/CN107451267B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0255Targeted advertisements based on user history
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Probability & Statistics with Applications (AREA)
  • Game Theory and Decision Science (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种基于Spark平台的分布式推荐方法,当用户输入相关参数合法且用户点击历史行为数据不为空时,产生基于ItemBased协同过滤的推荐序列A;对基于以用户为顶点,用户与用户的共同点击数为边进行社团发现,产生基于UserBased协同过滤的推荐序列B;将A和B按照不同的权重进行合并,产生基于协同过滤的推荐序列C;在C的基础上,关注用户个人点击历史行为,利用因子分解机模型进行训练,产生训练模型进行预测,产生预测推荐序列结果P;按照合并规则对C和P进行合并,生成最终推荐序列F并排序,写入实时数据库。本发明能满足海量大数据的推荐需求,将集体智慧推荐与个人智慧推荐相结合,形成最终的推荐序列。

Description

一种基于Spark平台的分布式推荐方法
技术领域
本发明涉及一种分布式推荐系统,具体为基于Spark平台的分布式推荐方法。
背景技术
协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和推荐系统中一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似(兴趣)用户,综合这些相似用户对某一信息的评价,形成系统对该指定用户对此信息的喜好程度预测。传统基于item的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐;传统基于user的协同过滤,通过不同用户对item的评分来评测用户之间的相似性,基于用户之间的相似性做出推荐。
随着大数据时代的到来以及推荐系统的多元化发展,在现实的很多业务场景中,推荐给用户相关商品后,只有曝光后点击和曝光后未点击的历史数据记录,很难直接得到用户对某一商品的具体评分。
传统的协同过滤方法生成推荐序列以后,并不会结合用户的历史行为,对该推荐序列进行回归预测。
随着数据量的扩大,传统的协同过滤单机算法模型遇到了计算瓶颈,计算时间过长或者计算量太大而算不出结果。
目前,分布式大数据处理框架Hadoop提供了一套完整大数据解决方案。其中,MapReduce模型适用于批处理,HDFS(Hadoop Distributed File System)适用于海量数据存储。MapReduce会将计算的中间结果缓存到磁盘中进行复用,导致增加读写IO的开销,从而计算变慢。
Spark是基于MapReduce的分布式内存迭代计算框架,计算的中间结果直接缓存到内存当中复用,而且Spark可以直接访问HDFS上的数据,计算速度更快,能够很好地满足推荐系统的实效性要求。
目前,应用Spark分布式内存迭代计算框架实现商用推荐系统的技术方案较少。
发明内容
针对现有技术中分布式大数据处理框架会将计算的中间结果缓存到磁盘中进行复用,导致计算变慢等不足,本发明要解决的问题是提供一种计算速度更快、能够很好地满足推荐系统的实效性要求的基于Spark平台的分布式推荐方法。
为解决上述技术问题,本发明采用的技术方案是:
本发明一种基于Spark平台的分布式推荐方法,包括以下步骤:
1)用户输入相关参数,当参数合法且用户点击历史行为数据不为空时,通过ItemBased协同过滤算法,基于用户历史点击行为,采用共现矩阵计算文章的相似度,从而产生基于ItemBased协同过滤的推荐序列A;
2)当参数合法且用户点击历史行为数据不为空时,对基于以用户为顶点,用户与用户的共同点击数为边进行社团发现,使用用户的相似的兴趣对用户进行聚类,在此基础上,计算相似用户矩阵,并产生基于UserBased协同过滤的推荐序列B;
3)将推荐序列A和推荐序列B按照不同的权重进行合并,产生基于协同过滤的推荐序列C,做为推荐系统中使用集体智慧进行推荐的一种表现方式;
4)当参数合法且用户点击历史行为数据不为空时,对在已有协同过滤推荐序列C的基础上,关注用户个人点击历史行为,并对用户一段时间内曝光未点击的数据与曝光点击的数据利用因子分解机模型进行训练,产生训练模型T,并将该用户的协同过滤推荐序列C利用该训练模型进行预测,产生预测推荐序列结果P,做为个人点智慧进行推荐的一种表现方式;
5)按照合并规则对协同过滤推荐序列C和预测结果P进行合并,生成最终推荐序列F;
6)对推荐序列F进行排序,并写入实时数据库。
步骤1)中,采用ItemBased协同过滤算法为:
用户输入相关参数,包括用户输入历史点击记录天数和参与预测历史纪录阈值;用户输入文章相似度阈值和用户相似个数阈值;用户输入ItemBased推荐算法比率和UserBased推荐算法比率;用户输入CF推荐算法比率和因子分解机预测算法比率;
如果以上参数合法,则进行协同过滤推荐,即从分布式文件系统(HDFS)获得calculate_days的历史记录,筛选掉噪声数据,获得历史数据记录集即List[(userid,articleid,clicked_flag)],表示由(用户编号,文章编号,点击标志)构成的集合;
选择历史数据记录集中点击标志位为1的记录,生成点击历史记录集,即List[(userid,articleid,1)],表示由(用户编号,文章编号,点击标志为1)构成的集合;
选择历史数据记录集中点击标志位为0的记录,生成曝光未点击历史记录集,即List[(userid,articleid,0)],表示由(用户编号,文章编号,点击标志为0)构成的集合;
从分布式文件系统中获得文章标签记录,即List[(articleid,List[tag])],表示由(文章编号,文章标签列表)构成的集合;
从分布式文件系统获得用户兴趣标签记录即List[(userid,List[tags])],表示由(用户编号,用户兴趣列表)构成的集合。
步骤1)中,基于用户历史点击行为,采用共现矩阵计算商品的相似度,从而产生基于ItemBased协同过滤的推荐序列A为:
依据点击历史记录集计算文章被共同点击次数即List[(articleidi,articleidj,C(i,j)],表示由(文章i,文章j,文章i和文章j共同被点击次数)构成的集合,其中i≠j;
依据点击历史记录集计算文章总点击数即List[(articleidi,C(i))],表示文章i的总点击次数C(i);
依据点击历史记录集计算用户点击历史记录向量即将点击文章进行排序,如果点击过该文章,则该位置对应为1,否则为0;
计算文章相似度矩阵,计算公式(1)如下:
Figure GDA0002233254780000031
其中,C(i,j)表示文章i和文章j共同点击过的次数,C(i)和C(j)分别代表文章i和文章j被点击的总次数。该步骤生成文章相似度矩阵,即List[(articleidi,articleidj,simi,j)],表示由(文章i,文章j,文章i和文章j的相似度)构成的集合;
过滤掉文章相似度矩阵中相似度小于物品相似度阈值记录,得到筛选后的物品相似度矩阵;
通过筛选后的物品相似度矩阵和用户点击历史记录向量进行矩阵计算获得ItemBased原始推荐序列即List[(userid,articleid,ibr_score)],表示由(用户编号,文章编号,item_based算法评分)构成的集合;
过滤掉ItemBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列A,即List[(userid,articleid,ibr_score)]
步骤2)中,对基于以用户为顶点,用户与用户的共同点击数为边进行社团发现,对用户的历史点击行为对用户进行聚类,在此基础上,计算相似用户矩阵,并产生基于UserBased协同过滤的推荐序列B,具体为:
通过点击历史记录集计算用户共同点击文章次数集合即List[(useridi,useridj,U(i,j)],表示由(用户i,用户j,用户i和用户j共同点击的文章数目)构成的集合,其中i≠j;
通过点击历史记录集计算用户点击文章数目集合即List[(useridi,U(i)],表示(userid,点击文章数目)构成的集合;
将步骤1)的结果用于构成图G=(V,E),其中G的顶点V为userid,G的边E为userIDi与userIDj构成,边的属性为U(i,j),即用户i和用户j共同点击的文章的数目,其中i<j,该图是一个无向有权图;
对构造得到的图G利用FastUnfolding算法进行社团划分,社团用户列表即List[(communityid,List[用户编号])],表示某社团ID对应的用户列表集合;
对社团用户列表中的每一条社团记录进行处理,取出满足用户相似个数阈值的相似用户的历史点击文章记录,获得UserBased原始推荐序列;
过滤掉UserBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列B。
对上述构造得到的图G利用FastUnfolding算法进行社团划分,具体步骤如下:
初始化,将每个点划分在不同的社团中;
404B)对每个节点,将每个点划分到与其邻接的点所在的社团中,计算此时的模块度,判断划分前后的模块度的差值ΔQ是否为正数,若为正数,则接受本次的划分,若不为正数,则放弃本次的划分;
404C)重复以上的过程,直到不能再增大模块度为止;
404D)构造新图,继续执行步骤404B)和步骤404C),直到社团的结构不再改变为止。
对社团用户列表中的每一条社团记录进行如下处理:
计算社团用户之间的相似度矩阵,即List[(useridi,useridj,simi,j)],表示(用户i,用户j,用户i和j的相似度)构成的集合,计算公式如下所示:
式中,U(i,j)代表用户i和用户j共同点击的文章的数,U(i)、U(j)分别代表用户i和用户j点击的文章数目。该步骤计算得到用户相似矩阵,即List[(useridi,useridj,simi,j)],表示由(用户,用户j,用户i和用户j的相似度)构成的集合。
通过相似度矩阵计算得到相似用户列表,即List[useridi,List[userid]],表示(用户i,用户i的相似用户列表)构成的集合,其中,用户i的相似用户可能有0个或多个,如果相似用户个数大于用户相似个数阈值,则按照用户相似度由高到低取用户相似个数阈值个,否则按实际相似用户个数选择。
对于相似用户列表中的每一条记录,即(userid,List[userid]),推荐其相似用户列表中的相似用户点击过而该用户未点击过的文章,形成UserBased原始推荐序列,即List[(userid,articleid,ubr_score)],即(用户编号,文章编号,user_based算法评分)构成的集合。其中推荐过程中文章评分的计算如下公式所示:
Figure GDA0002233254780000042
式中,∑tot表示该文章在该社团中被点击的总次数,N表示该社团的总人数。
过滤掉UserBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列B,即List[(userid,articleid,ubr_score)]。
步骤3)中,将推荐序列A和推荐序列B按照不同的权重进行合并,规则如下:
推荐序列A和推荐序列B的数据结构均为List[(userid,articleid,score)].
根据item_ratio和user_ratio分别对ibr_score和ubr_score进行加权处理;
如果推荐序列A和推荐序列B中都存在相同的(userid,articleid)记录,则score计算方式为:score=item_ratio*ibr_score+user_ratio*ubr_score;
如果该(userid,articleid)记录只存在推荐序列中,则score的计算方式为:score=user_ratio*ubr_score;
如果该(userid,articleid)记录只存在推荐序列A中,则score的计算方式为:score=item_ratio*ibr_score;
将上一步骤的结果保存到推荐序列C中,即List[(userid,articleid,score)],表示由List[(用户编号,文章编号,cf算法评分)]构成的集合。
步骤4)中,对用户一段时间内曝光未点击的数据与曝光点击的数据利用因子分解机模型进行训练,产生训练模型包括:
从分布式文件系统(HDFS)获得参与预测历史纪录阈值的历史记录,筛选掉噪声数据,获得历史数据记录集即List[(userid,articleid,clicked_flag)],表示由(用户编号,文章编号,点击标志)构成的集合;
选择历史数据记录集中点击标志位为1的记录,生成点击历史记录集,即List[(userid,articleid,1)],表示由(用户编号,文章编号,点击标志为1)构成的集合;
选择历史数据记录集中点击标志位为0的记录,生成曝光未点击历史记录集,即List[(userid,articleid,0)],表示由(用户编号,文章编号,点击标志为0)构成的集合;
从分布式文件系统中获得文章标签记录,即List[(articleid,List[tag])],表示由(文章编号,文章标签列表)构成的集合;
从分布式文件系统获得用户兴趣标签记录即List[(userid,List[tags])],表示由(用户编号,用户兴趣列表)构成的集合;
选择点击历史记录集的数据作为Label为1的样本,曝光未点击历史记录集的数据作为Label为-1的样本;
将所有选择的文章和用户以及协同过滤算法中涉及的文章和用户进行one-hot编码,其中,文章的one-hot编码由文章标签进行one-hot编码后构成,用户的one-hot编码由用户的兴趣标签进行one-hot编码构成,用户的兴趣标签由该用户点击过的文章中提取出文章对应的标签构成;one-hot编码的思想是对于每一个特征,如果它有m个可能值,那么经过编码后,就变成了m个二元特征;
生成训练数据集,即List[(用户one-hot编码,文章one-hot编码,1|-1)],表示由(用户one-hot编码,文章one-hot编码,1|-1)构成的集合,其中,1代表的是曝光已点击,-1代表的是曝光未点击,每条记录与某个用户曝光点击或者曝光未点击某篇文章相对应。
步骤4)中,按照合并规则对协同过滤推荐序列C和预测结果P进行合并,具体为:
生成预测数据集,即List[(用户one-hot编码,文章one-hot编码,0)],表示由(用户one-hot编码,文章one-hot编码,0)构成的集合,其中,0表示尚不清楚用户是否会点击该篇文章,每条记录与推荐序列C相对应;
使用训练数据集对因子分解机(Spark Factorization Machine)算法进行训练,生成训练模型,内部采用k重交叉验证。将预测数据集作为输入,进行预测,生成预测结果P,其数据结构为List[(userid,articleid,fm_score)],即List[(用户编号,文章编号,预测评分)]
根据预测结果P以及推荐序列C,对这两个结果集进行合并,最终推荐序列F。
按照合并规则对协同过滤推荐序列C和预测结果P进行合并,生成最终推荐序列F:
推荐序列C和预测结果P中的(userid,articleid)记录,即(用户编号,文章编号),score计算方式为:score=cf_ratio*score+fm_ratio*fm_score;
最终推荐序列F,数据结构为List[(userid,articleid,score)],即List[(用户编号,文章编号,最终评分)];
将F按照用户编号和最终评分进行降序排列以后写入实时数据库。
本发明具有以下有益效果及优点:
1.本发明在基于Spark平台实现,能够很好地满足海量大数据的推荐需求,将集体智慧推荐与个人智慧推荐相结合,利用一定的规则将协同过滤推荐序列C和预测推荐序列结果P进行合并,形成最终的推荐序列F,排序最终推荐序列并写入实时数据库。
2.本发明适用于推荐系统中没有评分的业务场景,适用于海量数据,提供了一种提高点击转化率的方案,进一步完善了目前的商用推荐系统。
附图说明
图1为本发明的物理部署架构图;
图2为本发明方法的实施流程图。
具体实施方式
下面结合说明书附图对本发明作进一步阐述。
本发明为一种基于Spark平台的分布式推荐方法,适用于用户对点击过的商品没有评分的业务场景,属于推荐系统领域。采用主从架构,使用Hadoop集群的HDFS(HadoopDistributed File System,Hadoop分布式文件系统)作为存储,Spark集群作为计算引擎,结合用户曝光点击和曝光未点击的历史数据,商品标签和用户兴趣标签,应用ItemBasedCF(基于商品的协同过滤推荐算法)和UserBased CF(基于用户的协同过滤算法)协同作业,对用户进行商品推荐。进一步使用Factorization Machine(因子分解机)模型预测用户对该推荐商品的点击情况,从而得到最终推荐序列并写入实时数据库。该方法针对广告电商等平台的点击转化率较低而提出的一种推荐方案,能够处理海量数据,并且提高点击转化率。
本发明方法包括以下步骤:
1)用户输入相关参数,当参数合法且用户点击历史行为数据不为空时,通过ItemBased协同过滤算法,基于用户历史点击行为,采用共现矩阵计算文章的相似度,从而产生基于ItemBased协同过滤的推荐序列A;(输入参数为:ItemBased协同过滤算法比率(item_ratio),UserBased协同过滤算法比率(user_ratio),CF推荐算法比率(cf_ratio),因子分解机预测算法比率(fm_ratio),参与预测历史纪录阈值(prediction_threshhold),用户输入历史点击记录天数(calculate_days),物品相似度阈值(item_similarity_threshold),用户相似个数阈值(user_similarity_threshhold),其中需满足以下条件:item_ratio+user_ratio=1,cf_ratio+fm_ratio=1,prediction_threshhold>=3,calculate_days>=7,item_ratio、user_ratio、cf_ratio、fm_ratio、item_similarity_threshold分别位于(0,1)之间)
2)当参数合法且用户点击历史行为数据不为空时,对基于以用户为顶点,用户与用户的共同点击数(例如,用户A点击文章a和文章b,用户B点击了文章a、文章b和文章c,那么用户A和用户B共同点击的文章次数为2,因为用户A和用户B均点击了文章a和文章b)为边进行社团发现,使用用户的相似的兴趣对用户进行聚类,在此基础上,计算相似用户矩阵,并产生基于UserBased协同过滤的推荐序列B;
3)将推荐序列A和推荐序列B按照不同的权重进行合并,产生基于协同过滤的推荐序列C,做为推荐系统中使用集体智慧进行推荐的一种表现方式;
4)当参数合法且用户点击历史行为数据不为空时,对在已有协同过滤推荐序列C的基础上,关注用户个人点击历史行为,并对用户一段时间内曝光未点击的数据与曝光点击的数据利用因子分解机模型进行训练,产生训练模型T,并将该用户的协同过滤推荐序列利用该训练模型进行预测,产生预测推荐序列结果P,做为个人点智慧进行推荐的一种表现方式;
5)系统按照合并规则对协同过滤推荐序列C和预测结果P进行合并,生成最终推荐序列F;
6)系统对推荐序列F进行排序,并写入实时数据库。
本发明的运行环境由7台PC组成,(Intel(R)Core(TM)i7-4790@3.60GHZ,8G,1T)构成,由100M网互联。
各台PC的职责如表1所示:
Figure GDA0002233254780000081
其中,Hadoop为分布式文件存储集群,Spark集群为推荐计算集群,2个集群均采用主从架构,即1个主节点,2个从节点,分别部署在PC1、PC2、PC3、PC4、PC5、PC6三台机器上,而PC7则部署了Redis数据库。用户、集群与数据库之间的交互如图1所示。
步骤1)中,采用ItemBased协同过滤算法为:
用户输入相关参数,包括用户输入历史点击记录天数(calculate_days)和参与预测历史纪录阈值(prediction_threshhold);用户输入文章相似度阈值(item_similarity_threshhold)和用户相似个数阈值(user_similarity_threshhold);用户输入ItemBased推荐算法比率(item_ratio)和UserBased推荐算法比率(user_ratio);用户输入CF推荐算法比率(cf_ratio)和因子分解机预测算法比率(fm_ratio);
如果以上参数合法,则进行协同过滤推荐,即从分布式文件系统(HDFS)获得calculate_days的历史记录,筛选掉噪声数据,获得历史数据记录集即List[(userid,articleid,clicked_flag)],表示由(用户编号,文章编号,点击标志)构成的集合;
选择历史数据记录集中点击标志位为1的记录,生成点击历史记录集,即List[(userid,articleid,1)],表示由(用户编号,文章编号,点击标志为1)构成的集合;
选择历史数据记录集中点击标志位为0的记录,生成曝光未点击历史记录集,即List[(userid,articleid,0)],表示由(用户编号,文章编号,点击标志为0)构成的集合;
从分布式文件系统中获得文章标签记录,即List[(articleid,List[tag])],表示由(文章编号,文章标签列表)构成的集合;
从分布式文件系统获得用户兴趣标签记录即List[(userid,List[tags])],表示由(用户编号,用户兴趣列表)构成的集合。
如图2所示,步骤1)中,基于用户历史点击行为,采用共现矩阵计算商品的相似度,从而产生基于ItemBased协同过滤的推荐序列A为:
依据点击历史记录集计算文章被共同点击次数
Figure GDA0002233254780000082
即List[(articleidi,articleidj,C(i,j)],表示由(文章i,文章j,文章i和文章j共同被点击次数)构成的集合,其中i≠j;例如,用户A点击了文章a和文章b,用户b点击了文章a和文章b,用户c点击了文章a和c,那么文章a和文章b的共同点击次数则为2,文章a和文章c的共同点击次数为1,文章b和文章c的共同点击次数则为0。
依据点击历史记录集计算文章总点击数即List[(articleidi,C(i))],表示文章i的总点击次数C(i);例如,用户A点击了文章a和文章b,用户B点击了文章a和文章b,用户C点击了文章a和文章c,用户D点击了文章c和文章d,那么文章a的总点击次数为3,文章b的总点击次数为2,文章c的总点击次数为2,文章d的总点击次数为1。
依据点击历史记录集计算用户点击历史记录向量即是将点击文章进行排序,如果点击过该文章,则该位置对应为1,否则为0;例如,一共有5篇文章,分别为a,b,c,d,e,那么用户点击了文章a和文章c,那么该用户的UserHistoryRecordVector则为(1,0,1,0,0)。
计算文章相似度矩阵,计算公式(1)如下:
Figure GDA0002233254780000091
其中,C(i,j)表示文章i和文章j共同点击过的次数,C(i)和C(j)分别代表文章i和文章j被点击的总次数。该步骤生成文章相似度矩阵,即List[(articleidi,articleidj,simi,j)],表示由(文章i,文章j,文章i和文章j的相似度)构成的集合;
过滤掉文章相似度矩阵中相似度小于物品相似度阈值(item_similaity_threshhold)记录,得到筛选后的物品相似度矩阵;
通过筛选后的物品相似度矩阵和用户点击历史记录向量进行矩阵计算获得ItemBased原始推荐序列即List[(userid,articleid,ibr_score)],表示由(用户编号,文章编号,item_based算法评分)构成的集合;
过滤掉ItemBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列A,即List[(userid,articleid,ibr_score)]
步骤2)中,对基于以用户为顶点,用户与用户的共同点击数为边进行社团发现,使用用户的相似的兴趣对用户进行聚类,在此基础上,计算相似用户矩阵,并产生基于UserBased协同过滤的推荐序列B,具体为:
通过点击历史记录集计算用户共同点击文章次数集合即List[(useridi,useridj,U(i,j)],表示由(用户i,用户j,用户i和用户j共同点击的文章数目)构成的集合,其中i≠j;【例如,用户A点击了文章a和b,用户B点击了文章b和c,用户c点击了文章b和c,那么用户A和用户B的共同点击文章次数为1,用户A和用户C的共同点击文章次数为1,用户B和用户C共同点击文章的次数为2】
通过点击历史记录集计算用户点击共同文章数目集合即List[(useridi,U(i)],表示(userid,点击文章数目)构成的集合;【例如,用户A点击了文章a和文章b,用户B点击了文章c和文章d,那么用户A点击的文章数目为2,用户B点击的文章数目也为2】
将步骤1)的结果用于构成图G=(V,E),其中G的顶点V为userid,G的边E为userIDi与userIDj构成,边的属性为U(i,j),即用户i和用户j共同点击的文章的数目,其中i<j,该图是一个无向有权图;
对构造得到的图G利用FastUnfolding算法进行社团划分,社团用户列表即List[(communityid,List[用户编号])],表示某社团ID对应的用户列表集合;
对上述构造得到的图G利用FastUnfolding算法]进行社团划分,具体步骤如下:
初始化,将每个点划分在不同的社团中;
对每个节点,将每个点划分到与其邻接的点所在的社团中,计算此时的模块度,判断划分前后的模块度的差值ΔQ是否为正数,若为正数,则接受本次的划分,若不为正数,则放弃本次的划分;
重复以上的过程,直到不能再增大模块度为止;
构造新图,(新图中的每个点代表的是步骤404C)中划出来的每个社团,每条边为404C)社团之间的连接边数之和),继续执行步骤404B)和步骤404C),直到社团的结构不再改变为止。
对社团用户列表中的每一条社团记录进行如下处理:
计算社团用户之间的相似度矩阵,即List[(useridi,useridj,simi,j)],表示(用户i,用户j,用户i和j的相似度)构成的集合,计算公式如下所示:
Figure GDA0002233254780000101
式中,U(i,j)代表用户i和用户j共同点击的文章的数,U(i)、U(j)分别代表用户i和用户j点击的文章数目。该步骤计算得到用户相似矩阵,即List[(useridi,useridj,simi,j)],表示由(用户,用户j,用户i和用户j的相似度)构成的集合。
通过相似度矩阵计算得到相似用户列表,即List[useridi,List[userid]],表示(用户i,用户i的相似用户列表)构成的集合,其中,用户i的相似用户可能有0个或多个,如果相似用户个数大于用户相似个数阈值(user_similarity_threshhold),则按照用户相似度由高到低取用户相似个数阈值(user_similarity_threshhold)个,否则按实际相似用户个数选择。
对于相似用户列表中的每一条记录,即(userid,List[userid]),推荐其相似用户列表中的相似用户点击过而该用户未点击过的文章,形成UserBased原始推荐序列,即List[(userid,articleid,ubr_score)],即(用户编号,文章编号,user_based算法评分)构成的集合。其中推荐过程中文章评分的计算如下公式所示:
式中,∑tot表示该文章在该社团中被点击的总次数,N表示该社团的总人数。
过滤掉UserBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列B,即List[(userid,articleid,ubr_score)]。
步骤3)中,将推荐序列A和推荐序列B按照不同的权重进行合并,规则如下:
推荐序列A和推荐序列B的数据结构均为List[(userid,articleid,score)].
根据item_ratio和user_ratio分别对ibr_score和ubr_score进行加权处理;
如果推荐序列A和推荐序列B中都存在相同的(userid,articleid)记录,则score计算方式为:score=item_ratio*ibr_score+user_ratio*ubr_score;
如果该(userid,articleid)记录只存在推荐序列中,则score的计算方式为:score=user_ratio*ubr_score;
如果该(userid,articleid)记录只存在推荐序列A中,则score的计算方式为:score=item_ratio*ibr_score;
将上一步骤的结果保存到推荐序列C中,即List[(userid,articleid,score)],表示由List[(用户编号,文章编号,cf算法评分)]构成的集合。
步骤4)中,对用户一段时间内曝光未点击的数据与曝光点击的数据利用因子分解机模型进行训练,产生训练模型包括:
从分布式文件系统(HDFS)获得参与预测历史纪录阈值(prediction_threshhold)的历史记录,筛选掉噪声数据,获得历史数据记录集即List[(userid,articleid,clicked_flag)],表示由(用户编号,文章编号,点击标志)构成的集合;
选择历史数据记录集中点击标志位为1的记录,生成点击历史记录集,即List[(userid,articleid,1)],表示由(用户编号,文章编号,点击标志为1)构成的集合;
选择历史数据记录集中点击标志位为0的记录,生成曝光未点击历史记录集,即List[(userid,articleid,0)],表示由(用户编号,文章编号,点击标志为0)构成的集合;
从分布式文件系统中获得文章标签记录,即List[(articleid,List[tag])],表示由(文章编号,文章标签列表)构成的集合;
从分布式文件系统获得用户兴趣标签记录即List[(userid,List[tags])],表示由(用户编号,用户兴趣列表)构成的集合。
选择点击历史记录集的数据作为Label为1的样本,曝光未点击历史记录集的数据作为Label为-1的样本;
将所有选择的文章和用户以及协同过滤算法中涉及的文章和用户进行one-hot编码,其中,文章的one-hot编码由文章标签进行one-hot编码后构成,用户的one-hot编码由用户的兴趣标签进行one-hot编码构成,用户的兴趣标签由该用户点击过的文章中提取出文章对应的标签构成。one-hot编码的思想是对于每一个特征,如果它有m个可能值,那么经过编码后,就变成了m个二元特征。例如,对于所有文章来说,有动漫、科技、二次元、娱乐、周边这5个标签;对于文章a来说,有二次元、周边这两个标签,那么文章a的one-hot编码就为00101。
生成训练数据集,即List[(用户one-hot编码,文章one-hot编码,1|-1)],表示由(用户one-hot编码,文章one-hot编码,1|-1)构成的集合,其中,1代表的是曝光已点击,-1代表的是曝光未点击,每条记录与某个用户曝光点击或者曝光未点击某篇文章相对应。例如,用户A的one-hot编码为1000110000000,文章a的one-hot编码为10000100000000,用户A点击了文章a,则该条记录的one-hot编码为:1000110000000100001000000001。
步骤4)中,将该用户的协同过滤推荐序列利用该训练模型进行预测,产生预测推荐序列结果P,具体为:
生成预测数据集,即List[(用户one-hot编码,文章one-hot编码,0)],表示由(用户one-hot编码,文章one-hot编码,0)构成的集合,其中,0表示尚不清楚用户是否会点击该篇文章,每条记录与推荐序列C相对应;例如在推荐序列C中,如果对用户A推荐文章i的评分为0.605,那么如果A的one-hot编码为1000110000000,文章i的one-hot编码为10000000000001,那么该条记录的one-hot编码为100011000000010000000000000。
使用训练数据集对Spark Factorization Machine(因子分解机)算法进行训练,生成训练模型,内部采用k重交叉验证。将预测数据集作为输入,进行预测,生成预测结果P,其数据结构为List[(userid,articleid,fm_score)],即List[(用户编号,文章编号,预测评分)]
步骤5)中,根据预测结果P以及推荐序列C,对这两个结果集进行合并,最终推荐序列F。
按照合并规则对协同过滤推荐序列C和预测结果P进行合并,生成最终推荐序列F,合并规则如下:
推荐序列C和预测结果P中的(userid,articleid)记录,score计算方式为:score=cf_ratio*score+fm_ratio*fm_score;
故最终推荐序列F,数据结构为List[(userid,articleid,score)],即List[(用户编号,文章编号,最终评分)]
步骤6)中,将F按照用户编号和最终评分进行降序排列以后写入实时数据库。
本发明方法适用于用户对点击过的商品没有评分及非冷启动的业务场景,属于推荐系统领域。采用主从架构,使用Hadoop集群的HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)作为存储,Spark集群作为计算引擎,结合用户曝光点击和曝光未点击的历史数据,商品标签和用户兴趣标签,应用ItemBased CF(基于商品的协同过滤推荐算法)和UserBased CF(基于用户的协同过滤算法)协同作业,对用户进行商品推荐。进一步使用Factorization Machine(因子分解机)模型预测用户对该推荐商品的点击情况,从而得到最终推荐序列并写入实时数据库。该方法针对广告电商等平台的点击转化率较低而提出的一种推荐方案,能够处理海量数据,并且提高点击转化率。

Claims (10)

1.一种基于Spark平台的分布式推荐方法,其特征在于包括以下步骤:
1)用户输入相关参数,当参数合法且用户点击历史行为数据不为空时,通过ItemBased协同过滤算法,基于用户历史点击行为,采用共现矩阵计算文章的相似度,从而产生基于ItemBased协同过滤的推荐序列A;
2)当参数合法且用户点击历史行为数据不为空时,对基于以用户为顶点,用户与用户的共同点击数为边进行社团发现,使用用户的相似的兴趣对用户进行聚类,在此基础上,计算相似用户矩阵,并产生基于UserBased协同过滤的推荐序列B;
3)将推荐序列A和推荐序列B按照不同的权重进行合并,产生基于协同过滤的推荐序列C,做为推荐系统中使用集体智慧进行推荐的一种表现方式;
4)当参数合法且用户点击历史行为数据不为空时,对在已有协同过滤推荐序列C的基础上,关注用户个人点击历史行为,并对用户一段时间内曝光未点击的数据与曝光点击的数据利用因子分解机模型进行训练,产生训练模型T,并将该用户的协同过滤推荐序列C利用该训练模型进行预测,产生预测推荐序列结果P,做为个人点智慧进行推荐的一种表现方式;
5)按照合并规则对协同过滤推荐序列C和预测结果P进行合并,生成最终推荐序列F;
6)对推荐序列F进行排序,并写入实时数据库。
2.按权利要求1所述的基于Spark平台的分布式推荐方法,其特征在于:
步骤1)中,采用ItemBased协同过滤算法为:
用户输入相关参数,包括用户输入历史点击记录天数和参与预测历史纪录阈值;用户输入文章相似度阈值和用户相似个数阈值;用户输入ItemBased推荐算法比率和UserBased推荐算法比率;用户输入CF推荐算法比率和因子分解机预测算法比率;
如果以上参数合法,则进行协同过滤推荐,即从分布式文件系统(HDFS)获得calculate_days的历史记录,筛选掉噪声数据,获得历史数据记录集即List[(userid,articleid,clicked_flag)],表示由(用户编号,文章编号,点击标志)构成的集合;
选择历史数据记录集中点击标志位为1的记录,生成点击历史记录集,即List[(userid,articleid,1)],表示由(用户编号,文章编号,点击标志为1)构成的集合;
选择历史数据记录集中点击标志位为0的记录,生成曝光未点击历史记录集,即List[(userid,articleid,0)],表示由(用户编号,文章编号,点击标志为0)构成的集合;
从分布式文件系统中获得文章标签记录,即List[(articleid,List[tag])],表示由(文章编号,文章标签列表)构成的集合;
从分布式文件系统获得用户兴趣标签记录即List[(userid,List[tags])],表示由(用户编号,用户兴趣列表)构成的集合。
3.按权利要求1所述的基于Spark平台的分布式推荐方法,其特征在于:
步骤1)中,基于用户历史点击行为,采用共现矩阵计算商品的相似度,从而产生基于ItemBased协同过滤的推荐序列A为:
依据点击历史记录集计算文章被共同点击次数即List[(articleidi,articleidj,C(i,j)],表示由(文章i,文章j,文章i和文章j共同被点击次数)构成的集合,其中i≠j;
依据点击历史记录集计算文章总点击数即List[(articleidi,C(i))],表示文章i的总点击次数C(i);
依据点击历史记录集计算用户点击历史记录向量即将点击文章进行排序,如果点击过该文章,则该位置对应为1,否则为0;
计算文章相似度矩阵,计算公式(1)如下:
Figure FDA0002233254770000021
其中,C(i,j)表示文章i和文章j共同点击过的次数,C(i)和C(j)分别代表文章i和文章j被点击的总次数,该步骤生成文章相似度矩阵,即List[(articleidi,articleidj,simi,j)],表示由(文章i,文章j,文章i和文章j的相似度)构成的集合;
过滤掉文章相似度矩阵中相似度小于物品相似度阈值记录,得到筛选后的物品相似度矩阵;
通过筛选后的物品相似度矩阵和用户点击历史记录向量进行矩阵计算获得ItemBased原始推荐序列即List[(userid,articleid,ibr_score)],表示由(用户编号,文章编号,item_based算法评分)构成的集合;
过滤掉ItemBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列A,即List[(userid,articleid,ibr_score)]。
4.按权利要求1所述的基于Spark平台的分布式推荐方法,其特征在于:
步骤2)中,对基于以用户为顶点,用户与用户的共同点击数为边进行社团发现,对用户的历史点击行为对用户进行聚类,在此基础上,计算相似用户矩阵,并产生基于UserBased协同过滤的推荐序列B,具体为:
通过点击历史记录集计算用户共同点击文章次数集合即List[(useridi,useridj,U(i,j)],表示由(用户i,用户j,用户i和用户j共同点击的文章数目)构成的集合,其中i≠j;
通过点击历史记录集计算用户点击文章数目集合即List[(useridi,U(i)],表示(userid,点击文章数目)构成的集合;
将步骤1)的结果用于构成图G=(V,E),其中G的顶点V为userid,G的边E为userIDi与userIDj构成,边的属性为U(i,j),即用户i和用户j共同点击的文章的数目,其中i<j,该图是一个无向有权图;
对构造得到的图G利用FastUnfolding算法进行社团划分,社团用户列表即List[(communityid,List[用户编号])],表示某社团ID对应的用户列表集合;
对社团用户列表中的每一条社团记录进行处理,取出满足用户相似个数阈值的相似用户的历史点击文章记录,获得UserBased原始推荐序列;
过滤掉UserBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列B。
5.按权利要求4所述的基于Spark平台的分布式推荐方法,其特征在于:
对上述构造得到的图G利用FastUnfolding算法进行社团划分,具体步骤如下:
初始化,将每个点划分在不同的社团中;
404B)对每个节点,将每个点划分到与其邻接的点所在的社团中,计算此时的模块度,判断划分前后的模块度的差值ΔQ是否为正数,若为正数,则接受本次的划分,若不为正数,则放弃本次的划分;
404C)重复以上的过程,直到不能再增大模块度为止;
404D)构造新图,继续执行步骤404B)和步骤404C),直到社团的结构不再改变为止。
6.按权利要求4所述的基于Spark平台的分布式推荐方法,其特征在于:
对社团用户列表中的每一条社团记录进行如下处理:
计算社团用户之间的相似度矩阵,即List[(useridi,useridj,simi,j)],表示(用户i,用户j,用户i和j的相似度)构成的集合,计算公式如下所示:
Figure FDA0002233254770000031
式中,U(i,j)代表用户i和用户j共同点击的文章的数,U(i)、U(j)分别代表用户i和用户j点击的文章数目,该步骤计算得到用户相似矩阵,即List[(useridi,useridj,simi,j)],表示由(用户,用户j,用户i和用户j的相似度)构成的集合;
通过相似度矩阵计算得到相似用户列表,即List[useridi,List[userid]],表示(用户i,用户i的相似用户列表)构成的集合,其中,用户i的相似用户可能有0个或多个,如果相似用户个数大于用户相似个数阈值,则按照用户相似度由高到低取用户相似个数阈值个,否则按实际相似用户个数选择;
对于相似用户列表中的每一条记录,即(userid,List[userid]),推荐其相似用户列表中的相似用户点击过而该用户未点击过的文章,形成UserBased原始推荐序列,即List[(userid,articleid,ubr_score)],即(用户编号,文章编号,user_based算法评分)构成的集合,其中推荐过程中文章评分的计算如下公式所示:
式中,∑tot表示该文章在该社团中被点击的总次数,N表示该社团的总人数;
过滤掉UserBased原始推荐序列中已经给用户曝光过的数据记录,形成推荐序列B,即List[(userid,articleid,ubr_score)]。
7.按权利要求1所述的基于Spark平台的分布式推荐方法,其特征在于:
步骤3)中,将推荐序列A和推荐序列B按照不同的权重进行合并,规则如下:
推荐序列A和推荐序列B的数据结构均为List[(userid,articleid,score)].
根据item_ratio和user_ratio分别对ibr_score和ubr_score进行加权处理;
如果推荐序列A和推荐序列B中都存在相同的(userid,articleid)记录,则score计算方式为:score=item_ratio*ibr_score+user_ratio*ubr_score;
如果该(userid,articleid)记录只存在推荐序列中,则score的计算方式为:score=user_ratio*ubr_score;
如果该(userid,articleid)记录只存在推荐序列A中,则score的计算方式为:score=item_ratio*ibr_score;
将上一步骤的结果保存到推荐序列C中,即List[(userid,articleid,score)],表示由List[(用户编号,文章编号,cf算法评分)]构成的集合。
8.按权利要求1所述的基于Spark平台的分布式推荐方法,其特征在于:
步骤4)中,对用户一段时间内曝光未点击的数据与曝光点击的数据利用因子分解机模型进行训练,产生训练模型包括:
从分布式文件系统(HDFS)获得参与预测历史纪录阈值的历史记录,筛选掉噪声数据,获得历史数据记录集即List[(userid,articleid,clicked_flag)],表示由(用户编号,文章编号,点击标志)构成的集合;
选择历史数据记录集中点击标志位为1的记录,生成点击历史记录集,即List[(userid,articleid,1)],表示由(用户编号,文章编号,点击标志为1)构成的集合;
选择历史数据记录集中点击标志位为0的记录,生成曝光未点击历史记录集,即List[(userid,articleid,0)],表示由(用户编号,文章编号,点击标志为0)构成的集合;
从分布式文件系统中获得文章标签记录,即List[(articleid,List[tag])],表示由(文章编号,文章标签列表)构成的集合;
从分布式文件系统获得用户兴趣标签记录即List[(userid,List[tags])],表示由(用户编号,用户兴趣列表)构成的集合;
选择点击历史记录集的数据作为Label为1的样本,曝光未点击历史记录集的数据作为Label为-1的样本;
将所有选择的文章和用户以及协同过滤算法中涉及的文章和用户进行one-hot编码,其中,文章的one-hot编码由文章标签进行one-hot编码后构成,用户的one-hot编码由用户的兴趣标签进行one-hot编码构成,用户的兴趣标签由该用户点击过的文章中提取出文章对应的标签构成;one-hot编码的思想是对于每一个特征,如果它有m个可能值,那么经过编码后,就变成了m个二元特征;
生成训练数据集,即List[(用户one-hot编码,文章one-hot编码,1|-1)],表示由(用户one-hot编码,文章one-hot编码,1|-1)构成的集合,其中,1代表的是曝光已点击,-1代表的是曝光未点击,每条记录与某个用户曝光点击或者曝光未点击某篇文章相对应。
9.按权利要求1所述的基于Spark平台的分布式推荐方法,其特征在于:
步骤4)中,按照合并规则对协同过滤推荐序列C和预测结果P进行合并,具体为:
生成预测数据集,即List[(用户one-hot编码,文章one-hot编码,0)],表示由(用户one-hot编码,文章one-hot编码,0)构成的集合,其中,0表示尚不清楚用户是否会点击该篇文章,每条记录与推荐序列C相对应;
使用训练数据集对因子分解机(Spark Factorization Machine)算法进行训练,生成训练模型,内部采用k重交叉验证,将预测数据集作为输入,进行预测,生成预测结果P,其数据结构为List[(userid,articleid,fm_score)],即List[(用户编号,文章编号,预测评分)]
根据预测结果P以及推荐序列C,对这两个结果集进行合并,最终推荐序列F。
10.按权利要求1所述的基于Spark平台的分布式推荐方法,其特征在于:
按照合并规则对协同过滤推荐序列C和预测结果P进行合并,生成最终推荐序列F:
推荐序列C和预测结果P中的(userid,articleid)记录,即(用户编号,文章编号),score计算方式为:score=cf_ratio*score+fm_ratio*fm_score;
最终推荐序列F,数据结构为List[(userid,articleid,score)],即List[(用户编号,文章编号,最终评分)];
将F按照用户编号和最终评分进行降序排列以后写入实时数据库。
CN201710647317.8A 2017-08-01 2017-08-01 一种基于Spark平台的分布式推荐方法 Expired - Fee Related CN107451267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710647317.8A CN107451267B (zh) 2017-08-01 2017-08-01 一种基于Spark平台的分布式推荐方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710647317.8A CN107451267B (zh) 2017-08-01 2017-08-01 一种基于Spark平台的分布式推荐方法

Publications (2)

Publication Number Publication Date
CN107451267A CN107451267A (zh) 2017-12-08
CN107451267B true CN107451267B (zh) 2020-02-21

Family

ID=60490635

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710647317.8A Expired - Fee Related CN107451267B (zh) 2017-08-01 2017-08-01 一种基于Spark平台的分布式推荐方法

Country Status (1)

Country Link
CN (1) CN107451267B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107451267B (zh) * 2017-08-01 2020-02-21 东北大学 一种基于Spark平台的分布式推荐方法
CN108664564B (zh) * 2018-04-13 2021-12-21 东华大学 一种基于物品内容特征的改进协同过滤推荐方法
CN108595679B (zh) * 2018-05-02 2021-04-27 武汉斗鱼网络科技有限公司 一种标签确定方法、装置、终端和存储介质
CN108876508A (zh) * 2018-05-03 2018-11-23 上海海事大学 一种电商协同过滤推荐方法
CN108830680B (zh) * 2018-05-30 2021-03-23 山东大学 基于离散分解机的个性化推荐方法、系统及存储介质
CN109190027A (zh) * 2018-08-22 2019-01-11 玖富金科控股集团有限责任公司 多源推荐方法、终端、服务器、计算机设备、可读介质
CN109034981A (zh) * 2018-08-23 2018-12-18 上海海事大学 一种电商协同过滤推荐方法
CN109614507B (zh) * 2018-11-22 2020-08-04 浙江大学 一种基于频繁项挖掘的遥感图像推荐装置
CN109871958B (zh) * 2019-02-01 2023-07-28 东软医疗系统股份有限公司 训练模型的方法、装置及设备
CN110442977B (zh) * 2019-08-08 2023-09-29 广州华建工智慧科技有限公司 基于建筑施工工序网络推荐的移动端bim模型智能缓存方法
CN111966900A (zh) * 2020-08-17 2020-11-20 中国银行股份有限公司 基于局部敏感哈希的用户冷启动产品推荐方法及系统
CN113077326B (zh) * 2021-06-04 2021-10-08 中建电子商务有限责任公司 一种基于边界兴趣试探的建筑商品推荐方法、装置及设备
CN114372200A (zh) * 2022-01-11 2022-04-19 深圳证券信息有限公司 对象推荐方法以及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126641A (zh) * 2016-06-24 2016-11-16 中国科学技术大学 一种基于Spark的实时推荐系统及方法
CN107451267A (zh) * 2017-08-01 2017-12-08 东北大学 一种基于Spark平台的分布式推荐方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8316015B2 (en) * 2007-12-21 2012-11-20 Lemi Technology, Llc Tunersphere

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106126641A (zh) * 2016-06-24 2016-11-16 中国科学技术大学 一种基于Spark的实时推荐系统及方法
CN107451267A (zh) * 2017-08-01 2017-12-08 东北大学 一种基于Spark平台的分布式推荐方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
大数据下基于Spark的电商实时推荐系统的设计与实现;岑凯伦等;《现代计算机》;20160831;第61-69页 *

Also Published As

Publication number Publication date
CN107451267A (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
CN107451267B (zh) 一种基于Spark平台的分布式推荐方法
CN110162703B (zh) 内容推荐方法、训练方法、装置、设备及存储介质
CN111339415B (zh) 一种基于多交互式注意力网络的点击率预测方法与装置
CN111339433B (zh) 基于人工智能的信息推荐方法、装置、电子设备
CN111177575A (zh) 一种内容推荐方法、装置、电子设备和存储介质
CN108427708B (zh) 数据处理方法、装置、存储介质和电子装置
CN106599226B (zh) 一种内容推荐方法及内容推荐系统
CN108108821A (zh) 模型训练方法及装置
CN113592609B (zh) 一种利用时间因素的个性化服饰搭配推荐方法与系统
CN102262647A (zh) 信息处理装置、信息处理方法和程序
CN111611488A (zh) 基于人工智能的信息推荐方法、装置、电子设备
CN107247753B (zh) 一种相似用户选取方法及装置
CN110147882A (zh) 神经网络模型的训练方法、人群扩散方法、装置及设备
CN111340121A (zh) 目标特征的确定方法及装置
CN113515690A (zh) 内容召回模型的训练方法、内容召回方法、装置及设备
CN112364184A (zh) 多媒体数据的排序方法、装置、服务器及存储介质
CN112561599A (zh) 一种融合域特征交互的基于注意力网络学习的点击率预测方法
CN112148994A (zh) 信息推送效果评估方法、装置、电子设备及存储介质
CN115495654A (zh) 基于子空间投影神经网络的点击率预估方法和装置
CN115186085A (zh) 回复内容处理方法以及媒体内容互动内容的交互方法
CN116150470A (zh) 内容推荐方法、装置、设备、存储介质及程序产品
CN115858911A (zh) 信息推荐方法、装置、电子设备及计算机可读存储介质
CN113591881A (zh) 基于模型融合的意图识别方法、装置、电子设备及介质
CN115439770A (zh) 一种内容召回方法、装置、设备及存储介质
CN112989182A (zh) 信息处理方法、装置、信息处理设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171208

Assignee: HUNAN STEERING INFORMATION TECHNOLOGY Co.,Ltd.

Assignor: Northeastern University

Contract record no.: X2021210000043

Denomination of invention: A distributed recommendation method based on spark platform

Granted publication date: 20200221

License type: Common License

Record date: 20210914

EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20171208

Assignee: Liaoning Amy Network Technology Co.,Ltd.

Assignor: Northeastern University

Contract record no.: X2023210000002

Denomination of invention: A Distributed Recommendation Method Based on Spark Platform

Granted publication date: 20200221

License type: Common License

Record date: 20230105

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200221