隐语义模型LFM(latent factor model)

对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品。总结一下,这个基于兴趣分类的方法大概需要解决3个问题。

  1. 如何给物品进行分类?
  2. 如何确定用户对哪些类的物品感兴趣,以及感兴趣的程度?
  3. 对于一个给定的类。选择哪些属于这个类的物品推荐给用户,以及如何确定这些物品在一个类中的权重?

隐含语义分析技术采用基于用户行为统计的自动聚类,较好地解决了上面提出的问题。

隐含语义分析技术的分类来自对用户行为的统计,代表了用户对物品分类的看法。隐含语义分析技术和ItemCF在物品分类方面的思想类似,如果两个物品被很多用户同时喜欢,那么这两个物品就很有可能属于同一个类。隐含语义分析技术允许指定最终有多少个分类,这个数字越大,分类的粒度就会越细,反之分类粒度就会越粗。隐含语义分析技术会计算出物品属于每个类的权重,因此每个物品都不是硬性地被分到某一个类中。隐含语义分析技术给出的每个分类都不是同一个维度的,它是基于用户的共同兴趣计算出来的,如果用户的共同兴趣是某一个维度,那么LFM给出的类也是相同的维度。隐含语义分析技术可以通过统计用户行为决定物品在每个类中的权重,如果喜欢某个类的用户都会喜欢某个物品,那么这个物品在这个类中的权重就可能比较高。

LFM通过如下公式计算用户u物品i的兴趣:

这个公式中是模型的参数,其中度量了用户的兴趣和第个隐类的关系,而度量了第个隐类和物品之间的关系。那么下面的问题就是如何计算这两个参数。

要计算这两个参数,需要一个训练集,对于每个用户,训练集里都包含了用户喜欢的物品和不感兴趣的物品,通过学习这个数据集,就可以获得上面的模型参数。

推荐系统的用户行为分为显性反馈和隐性反馈。LFM在显性反馈数据(也就是评分数据)上解决评分预测问题并达到了很好的精度。这里主要讨论的是隐性反馈数据集,这种数据集的特点是只有正样本(用户喜欢什么物品),而没有负样本(用户对什么物品不感兴趣)。

对负样本采样时应该遵循以下原则:

  • 对每个用户,要保证正负样本的平衡(数目相似)。
  • 对每个用户采样负样本时,要选取那些很热门,而用户却没有行为的物品。

一般认为,很热门而用户却没有行为更加代表用户对这个物品不感兴趣。因为对于冷门的物品,用户可能是压根没在网站中发现这个物品,所以谈不上是否感兴趣。

下面的python代码实现了负样本采样过程:

def RandomSelectNegativeSample(self, items):
    #items是一个dict,它维护了用户已经有过行为的物品的集合
    #在这个列表中,物品i出现的次数和物品i的流行度成正比
    ret = dict()
    for i in items.keys():
        ret[i] = 1
    n = 0
    #将范围上限设为len(items) * 3,主要是为保证正、负样本数量接近。
    for i in range(0, len(items) * 3):
        #items_pool维护了候选物品的列表
        item = items_pool[random.randint(0, len(items_pool) - 1)]
        if item in ret:
            continue
        ret[item] = 0
        n += 1
        if n > len(items):
            break
    return ret
 
时间: 2024-10-01 06:57:39

隐语义模型LFM(latent factor model)的相关文章

推荐系统--隐语义模型LFM

主要介绍 隐语义模型 LFM(latent factor model). 隐语义模型最早在文本挖掘领域被提出,用于找到文本的隐含语义,相关名词有 LSI.pLSA.LDA 等.在推荐领域,隐语义模型也有着举足轻重的地位.下述的实验设计见 推荐系统–用户行为和实验设计 基本思想 核心思想: 通过隐含特征(latent factor)联系用户兴趣和物品.具体来说,就是对于某个用户,首先得到他的兴趣分类,然后从分类中挑选他可能喜欢的物品.基于兴趣分类的方法需要解决3个问题: 如何对物品进行分类? 如何

推荐系统第5周--- 基于内容的推荐,隐语义模型LFM

基于内容的推荐 制定分类/属性的困难使用专业人员(编辑)对商品进行整理分类,但这样会产生成本和效率瓶颈受限于编辑的专业水平,编辑的意见未必能代表用户的意见分类的粒度难于控制如果商品有多个分类,很难考虑周全多维度,多规角分类编辑很难决定商品在类别里的权重 隐语义模型 LFM的前丕今生 隐语义模型的适用性 关于训练集 常见同类问题求解思路 梯度下降法的几何意义 LFM损失函数极值用梯度下降法求解 LFM中的重要参数 模型中隐特征个数梯度下降法中选取的学习速率损失凼数中的惩罚项系数lambda训练集的

LFM 隐语义模型

隐语义模型: 物品       表示为长度为k的向量q(每个分量都表示  物品具有某个特征的程度) 用户兴趣 表示为长度为k的向量p(每个分量都表示  用户对某个特征的喜好程度) 用户u对物品i的兴趣可以表示为 其损失函数定义为- 使用随机梯度下降,获得参数p,q 负样本生成: 对于只有正反馈信息(用户收藏了,关注了xxx)的数据集,需要生成负样本,原则如下 1.生成的负样本要和正样本数量相当 2.物品越热门(用户没有收藏该物品),越有可能是负样本 实现: # coding=gbk ''' 实现

(7)个性化推荐中的隐语义模型

协同过滤是一种非常流行的推荐算法,通常协同过滤可以分为两种类型:邻域模型和矩阵分解模型.基于邻域的协同过滤算法包括基于用户的协同过滤算法和基于物品的协同过滤算法.隐语义模型是对矩阵分解的改进,通过矩阵分解建立了用户和隐类之间的关系,物品和隐类之间的关系 ,最终得到用户对物品的偏好关系.隐语义模型问世之后,诞生了若干对于隐语义模型的改进算法,包括基于标签的隐语义模型推荐算法,基于社交的隐语义模型推荐算法和基于时间的隐语义模型推荐算法等.为了推动基于隐语义模型的发展,下一步的主流研究趋势有标签,社交

潜类别模型(Latent Class Modeling)

1.潜类别模型概述 潜在类别模型(Latent Class Model, LCM; Lazarsfeld & Henry, 1968)或潜在类别分析(Latent Class Analysis, LCA)是通过间断的潜变量即潜在类别(Class)变量来解释外显指标间的关联,使外显指标间的关联通过潜在类别变量来估计,进而维持其局部独立性的统计方法(见图1-1).其基本假设是,外显变量各种反应的概率分布可以由少数互斥的潜在类别变量来解释,每种类别对各外显变量的反应选择都有特定的倾向(邱皓政,2008

理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM)

理论沉淀:隐马尔可夫模型(Hidden Markov Model, HMM) 参考链接:http://www.zhihu.com/question/20962240 参考链接:http://blog.csdn.net/ppn029012/article/details/8923501 本博文链接:http://www.cnblogs.com/dzyBK/p/5011727.html 1 题设 假设有n个骰子(从1~n编号),每个骰子有m面,每面标有一个数字且不重复,数字取值限制在[1,m].(1

NLP —— 图模型(一)隐马尔可夫模型(Hidden Markov model,HMM)

本文简单整理了以下内容: (一)贝叶斯网(Bayesian networks,有向图模型)简单回顾 (二)隐马尔可夫模型(Hidden Markov model,HMM) 写着写着还是写成了很规整的样子,因为比较常用的例子比如掷骰子.天气变化什么的都觉得太toy.以后会修改. (一)贝叶斯网简单回顾 图模型(PGM)根据边是否有向,可以分为有向图模型和无向图模型. 待补充-- (二)隐马尔可夫模型 隐马尔可夫模型(Hidden Markov model,HMM)属于生成式模型,被广泛用于序列标注

向量空间模型(Vector Space Model)

搜索结果排序是搜索引擎最核心的构成部分,很大程度上决定了搜索引擎的质量好坏.虽然搜索引擎在实际结果排序时考虑了上百个相关因子,但最重要的因素还是用户查询与网页内容的相关性.(ps:百度最臭名朝著的“竞价排名”策略,就是在搜索结果排序时,把广告客户给钱最多的排在前列,而不是从内容质量考虑,从而严重影响了用户体验).这里要讲的就是:给定用户搜索词,如何从内容相关性的角度对网页进行排序.判断网页内容是否与用户查询相关,这依赖于搜索引擎所采用的检索模型,常见的检索模型有:布尔模型.向量空间模型.概率模型

三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO

当 Office 用户需要针对文档自定义新功能时,可以求助于 VBA 或者 VSTO 两种方式.Office 2013 富客户端以后,微软为 Office 平台上的开发者提供了一种新模型 --- Office Add-In Model,它允许在 Office 应用程序中创建一片区域,并在这片区域中展现网页与文档的交互.开发者可以将高度定制化的 Web 应用或服务集成在 Office 中,使之在整个 Office 平台上可用. 应用程序实际上并没有安装在运行 Office 的计算机上,而是托管在开