推荐系统工程化复习

文章画像

全量

1、分词
		工程:结巴+spark
2、画像词提取
		工程:
     		 			pyspark.ml.feature.CountVectorizer 
     		 			pyspark.ml.feature.IDF 
     		 			 jieba.analyse.TextRank
		过程:
     		 	CountVectorizer按篇输入文章,按篇得到所有词的统计稀疏向量。
     		 	IDF对CountVectorizer的稀疏结果再次统计, 按照每篇文章每个词输出tfidf。           
     		 	训练上面两个模型需要花费很长时间。
     		   textrank 只输入一篇文章,输出主题词权重。
	 
	 输出:
	 	两个模型:
	 	    countVectorizerOfArticleWords.model
	 	    IDFOfArticleWords.model
	 	    存储到hdfs文件中。
			
		词语信息:
		  	存储到hdfs 表中		
	 		关键词:
	 			带权重的关键词 {word1:weight1}
	 		主题词:
	 			前20个tfidf词语前20个textrank共现词(小于等于20个)	[word1.....]  
         3、word2vec
         	工程:
         	 		org.apache.spark.mllib.feature.Word2Vec
	过程:
			计算完增量的用户画像后,得到词的权重,才能计算word2vec。
         	 		输入:
         	 			为全部文章,
			
	输出:
				词向量:
					每个词对应的向量embedding
				
				模型:
					训练需要很久
				文章向量:
					通过词向量与关键词权重相乘,求平均得到。		
         	 				维度与词向量维度相同。
4、文章相似度
		工程:
			pyspark.ml.feature.BucketedRandomProjectionLSH						
		过程:
			加载word2vec模型。
			输入所有文章向量,100维的文章向量
			两两求相似度
	    
	    输出:
	    	存入到hbase行: 某篇文章所有相似的文章,一个文章一列,值是相似度。

增量

		每小时更新一批新增的。
	 	1、分词
	 		  工程:	
	 		  		jieba
	 		  
    	2、关键词提取
    		 工程:
    		 	Model		
    		 过程:
    		 	加载全量中训练好的模型。
    		 	
			 
			 输出:
			 		
				词语信息:
				
        3、word2vec
        	 工程:
        	 		org.apache.spark.mllib.feature.Word2VecModel
			过程:
					加载全量的word2vec模型
					
			输出:
						文章向量:
							通过词向量与关键词权重相乘,求平均得到。		
        	 				维度与词向量维度相同。
        4、文章相似度
				工程:
					pyspark.ml.feature.BucketedRandomProjectionLSH						
				过程:
					加载word2vec模型。
					输入所有文章向量,100维的文章向量
					两两求相似度
					(求相似度是全量求的)
			    
			    输出:
			    	存入到hbase行:
			    			 某篇文章所有相似的文章,一个文章一列,值是相似度。

用户画像

全量

  1. 输入
    hive中所有日期的行为数据(按天分区)

  2. 过程
    按照用户和文章分组 取发生过的动作和最后时间
    (行为只要发生过一次就记为发生,忽略了行为的不同时间)
    用户动作与文章画像进行关联:
    关联后得到,user与article唯一的记录。

    	然后explode article的topic,得到 user article topic 的唯一记录。
    	
    	然后计算每一条记录的(user article topic)权重,( 行为类型权重之和) × 时间衰减
    	
    	然后按照 user topic 分组,对权重求和
    

3.输出
用户行为汇总,存到hive中

用户词语权重存到 hbase 和 hive中

增量

2小时更新一次

  1. 输入
    按天存到hdfs的行为日志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值