读书笔记《推荐系统实践》

利用用户行为数据

隐语义模型



基础算法:
    
    pLSA
    
    LDA
    
    隐含类别模型(latent class model)
    
    隐含主题模型(latent topic model)
    
    矩阵分解(matrix factorization)

LFM隐含语义分析技术

作用:
    在推荐系统中,LFM可以实现通过用户行为将物品聚类。
    

推导过程:
    用户u对物品i的兴趣公式(假设函数):

image.png

        pu,k 度量了用户u的兴趣和第k个隐类的关系(可以理解为喜欢的权重),
        qi,k 度量了第k个隐类和物品i之间的关系(可以理解为归属的权重)。
     
        二者相乘表示用户、隐类、物品三者之间的累计权重
        (用户喜欢这个类别,这个物品属于这个类别,所以用户喜欢这个物品,并且这种喜欢是带有“程度”的)。
        
        求和的意义:
            用户喜欢类别的每个权重,
            物品属于类别的权重,
            这样可以算出这个用户综合下来有多么喜欢该物品。
        
        何处体现分解:
            用户喜欢每个类别的程度,以及每个物品本身具有的类别属性。
            综合下来决定这个用户对这个物品有多喜欢。
            
        最终结果:
            每一个用户都有一个对类别的“喜欢”矩阵。
            
            每个物品有一个一个对类别的“归属”矩阵。
            
    损失函数:

image.png

    
    λ项是防止过拟合的正则化项。


参数与性能(准确率和召回率):
       负样本/正样本比例 ratio

       隐特征的个数F;

       学习速率alpha;

       正则化参数lambda; 
    
 

与协同过滤比较:

        数据集非常稀疏时,LFM的性能会明显下降,
        甚至不如UserCF和ItemCF。
    
    理论区别:
        LFM是一个学习的过程,有模型。
        
        协同过滤是基于邻域的统计,没有模型和学习过程。
    
    空间复杂度:
        协同过滤中用户相关表O(M*M)的空间。
        
        物品相关表,则需要O(N*N)的空间。
        
        LFM,F个隐类,那么它需要的存储空间是O(F*(M+N))
        
        相比协同过滤节省很多空间。
        
     在线实时推荐:
        用户有新行为时,比较协同过滤和LFM是否能及时推荐:
        
            LFM需要重新计算,重新缓存
            
            因为维护了用户和物品的相似度列表,
            协同过滤可以在推荐给用户其它物品的时候,
            可以快速更新待推荐列表。更新的时候带上本次的评分。
       

负反馈数据生成:

    对于一个用户,采样负反馈数据时,方法从好到坏:
    
    1、从没有过行为的物品中采样出一些物品作为负样本,
    但采样时,保证每个用户的正负样本数目相当。
    
    2、从他没有过行为的物品中均匀采样出一些物品作为负样本
    
    3、从他没有过行为的物品中采样出一些物品作为负样本,但采样时,偏重 

实际中负反馈数据生成的原则:
    对每个用户,要保证正负样本的平衡(数目相似)。
    
    对每个用户采样负样本时,要选取那些很热门,而用户却没有行为的物品。
    
负反馈数据生成原因:
        很热门而用户却没有行为更加代表用户对这个物品不感兴趣。
        因为对于冷门的物 品,用户可能是压根没在网站中发现这个物品,所以谈不上是否感兴趣
        
            
        


    
    

你可能感兴趣的:(推荐系统)