"""
referrence:推荐系统实践
@author: Ethan
"""

'''
#2-利用用户行为数据

1用户行为数据分类：显性反馈+隐性反馈 正反馈和负反馈

2用户行为的统一表示，在不同的场景中使用不同的方式
 用户标示+物品标示+行为种类(购买/浏览)+行为上下文(时间/地点)+行为权重+行为内容(评论/标签)

3用户活跃度：用户产生过行为的物品总数 物品流行度：对物品产生过行为的用户数
 用户活跃度和物品流行度均服从幂率分布(长尾分布)

4基于邻域的推荐技术：

 评价指标->召回率 准确率 覆盖率(值越大对于商品挖掘越充分) 新颖度(平均流行度越低)

 基于用户的协同过滤技术UserCF->
 1)寻找与目标用户兴趣相同的用户
 2)从TOPK个用户中选择目标用户不清楚的商品进行推荐
 3)对于冷门的相同物品更能体现不同用户的相同兴趣,优化用户的相似程度

 基于物体的协同过滤技术ItemCF->
 1)计算物品之间的相似程度
 2)根据物品的相似程度和用户的历史行为给用户生成推荐列表
 3)活跃用户对物品相似度的降低小于不活跃的用户
 4)对物品的相似度进行归一化

5隐语义模型LFM

 1)采取基于用户行为统计的自动聚类,解决物品分类问题
 2)负样本的生成
   每个用户保证正负样本的均衡 + 用户采取负样本时,选取很热门但是用户没有行为的样本
 3)利用随机梯度下降方法优化损失函数确定参数

'''

'''
#3-推荐系统冷启动问题
 
 利用用户注册信息->
 1)获取用户的注册信息
 2)根据用户的注册信息对用户进行分类
 3)给用户推荐他所属分类中用户喜欢的物品
 4)利用用户人口统计越多,越能准确预测用户兴趣
 
 合适物品启动用户兴趣->
 1)计算对于用户区分度最高的物品,将用户进行分类
 2)依次进行分类,从根节点到叶子结点
 3)新用户注册时,从根节点到叶子结点,对用户进行有效的区分
 
 利用物品的内容信息->
 1)通过向量空间模型生成物品内容的关键词向量
 2)通过向量之间的余弦相似度计算物品的相似度

'''
