推荐系统介绍

来源:互联网 发布:编程用什么系统好 编辑:程序博客网 时间:2024/04/29 11:40

一个好的推荐系统应该分成以下几个模块:

1.数据获取:日志收集,Sqoop,Flume,Kafka,爬虫。

2.数据计算:离线数据计算的HIVE,Spark,mapreduce以及实时数据计算的storm,spark,streaming。

3.数据存储:Hbase以及hdfs等。

4.数据挖掘:相关算法。

算法:给予用户的行为数据:系统过滤:给予邻近(用户,物品),隐语义模型,基于图的随机游走。

判断的方法:准确率,召回率,覆盖率(发觉长尾能力),新颖度。

冷启动分为用户,物品和系统的冷启动。其中解决办法主要有:非个性化推荐,利用热门排行榜,年龄性别的注册信息(基于人口统计学,在我们的数据库中存不同的表,特征越多,准确率越高),从其他网站导入相关信息。

第一推动力:利用ItemCF的思想,将物品随机展示,再利用UserItem扩散。

用户行为的统一标识:user id,item id,behavior type,context,behavior weight,behavior context.

长尾理论:只要存储和流通的渠道足够大,需求不旺或销售不佳的产品所共同占据的市场份额和那些少数的热销产品所占的市场份额相匹配甚至更大。

基本常识:

向量空间模型;d={(e1,w1),(e2,w2),...}

IF-TDF:IF是词频,改词在该文件出现的概率,IDF是log(总文件数/改词出现的文件数目)

unix:"\n"换行

Windows用"\r\n"换行

Mac用"\r"来换行

shell脚本中的字符串判断用"=",数字判断用"eq"