基于流行度的推荐模型算法

        什么是基于流行度(Popularity-based)?通俗地说,就是什么内容吸引用户,就给用户推荐什么内容。

        这里面其实有一个隐含的假设,那就是物品本身的质量好坏和流行度有一定的正比关系。什么意思呢?就是说好的东西,关注的人自然就多,自然就会有更多的谈论。当然,这是一个主观的假设,并不是所有质量高的物品都会有很高的流行度。然而,在不需要过多其他信息和假设的情况下,流行度可以算是衡量物品质量好坏的一个最简单的测度。

        那么,如果我们能够在每一个时间点上准确地估计到一个物品的流行度,就只需要按照流行度的数值从高到低排序显示所有的物品就可以了。

        然而,这里牵涉到一个问题,那就是如何判断一个物品在任何时间点上的流行度呢?有两个重要的因素影响着物品流行度的估计,那就是时间和位置。

        我们先来说一下时间因素。很显然,用户访问每一个应用或者服务都有一定的规律,这种规律导致每一个应用的流量规律也不一样。比如,人们可能更倾向于在早上或者傍晚打开新闻网站,看一看一天都发生了什么事情。因此,任何文章投放到这两个时段自然就会有比较高的关注度。这并不代表这些文章就要好于其他的文章,可能仅仅是由于时间的关系。因此,我们在对流行度建模的时候就需要考虑时间的因素。

        另外一个重要的因素是位置。这个“位置”并不是真正的地理位置,而是在一个服务或者网站的什么位置显示你的物品。因为用户心理对于不同位置的感受,在很多类型的服务中常常都有隐含的“位置偏差”(Position Bias)。

        这些偏差给我们估计某个物品的流行度带来了很大的困难。比如说,在绝大多数的搜索引擎服务中,排名第一的物品所受到的关注度很可能大大高于排名第二和之后的物品。因此,一个物品只要放到第一的位置,关注度自然就会升高。当然,这并不能完全代表这个物品本身的属性。

        因此,我们在估计物品的流行度时就需要考虑上面所说的这两个重要因素。

        要解决刚才说的两个问题,我们就不能使用绝对数值来对流行度建模。比如我们使用在单位时间内点击的数目,购买的数目,或者点赞的数目,都会受到刚才所说的两种偏差的影响。假设一篇文章在 9 点到 10 点这个时段被点击了 100 次,在 10 点到 11 点这个时段被点击了 50 次,这并不能代表这个文章在 10 点到 11 点这个时段就变得不受欢迎了,很可能是这个时段的总的用户量比较多。

        因此,对于流行度的衡量,我们往往使用的是一个“比值”(Ratio),或者是计算某种“可能性”(Probability)。也就是说,我们计算在总的用户数是 N 的情况下,点击了某个文章的人数。这个比值,取决于不同的含义,如果是点击,往往叫作点击率;如果是购买,叫作购买率。为了方便讨论,我们在下面的例子中都使用点击率。

        然而,点击率本身虽然解决了一部分时间和位置偏差所带来的影响,但是点击率的估计所需要的数据依然会受到偏差的影响。因此,我们往往希望能够建立无偏差的数据。

        关于如何能够无偏差地估计,这是一个研究课题,我们今天不详细展开。不过,有一种比较经济的方法可以收集没有偏差的数据,那就是把服务的流量分成两个部分。

        一个部分,利用现在已有的对物品流行度的估计来显示推荐结果。另外一个部分,则随机显示物品。这种方法是一种特殊的 EE 算法(Exploitation & Exploration),叫“epsilon 贪心”(epsilon-Greedy)。

        根据这样的方式搜集的数据可以认为是没有位置偏差的。我们从随机显示物品的这部分流量中去估计流行度,然后在另外一个部分的流量里去显示物品。

        如果从数学上对点击率建模,其实可以把一个物品在显示之后是否被点击看成是一个“伯努利随机变量”,于是对点击率的估计,就变成了对一个伯努利分布参数估计的过程。

        有一种参数估计的方法叫作“最大似然估计法”(Maximum Likelihood Estimation)。简而言之,就是说,希望找到参数的取值可以最大限度地解释当前的数据。我们利用最大似然法就可以求出在某一段时间内的点击率所代表的伯努利分布的参数估计。这个估计的数值就是某个物品当前的点击总数除以被显示的次数。通俗地讲,如果我们显示某个物品 10 次,被点击了 5 次,那么在最大似然估计的情况下,点击率的估计值就是 0.5。

        很显然,这样的估计有一定的局限性。如果我们并没有显示当前的物品,那么,最大似然估计的分母就是 0;如果当前的物品没有被点击过,那么分子就是 0。在这两种情况下,最大似然估计都无法真正体现出物品的流行度。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 关系抽取(Relation Extraction) 2. 关系分类(Relation Classification) 3. 关系聚合(Relation Aggregation) 4. 关系预测(Relation Prediction) 5. 关系推理(Relation Inference) 6. 关系推断(Relation Deduction) 7. 关系推荐(Relation Recommendation) 8. 关系检索(Relation Retrieval) 9. 实体识别(Entity Recognition) 10. 实体消歧(Entity Disambiguation) 11. 实体关系链接(Entity Relation Linking) 12. 实体聚类(Entity Clustering) 13. 实体推理(Entity Inference) 14. 实体分类(Entity Classification) 15. 属性抽取(Attribute Extraction) 16. 属性预测(Attribute Prediction) 17. 属性推理(Attribute Inference) 18. 属性分类(Attribute Classification) 19. 属性推荐(Attribute Recommendation) 20. 属性推断(Attribute Deduction) ### 回答2: 1. TransE(Translation-based Embedding Model): 一种基于翻译关系的模型,用于学习实体和关系之间的嵌入表示。 2. TransH(Translation-based Embedding Model with Heterogeneous Spaces): TransE的改进版本,引入了关系特定的超平面,以更准确地建模实体和关系之间的语义关联。 3. TransR(Translation-based Embedding Model with Relation-specific Embeddings): TransE的进一步改进,通过引入关系特定的嵌入空间来处理原始模型中存在的一对多和多对一关系问题。 4. TransD(Translation-based Embedding Model with Relational Dependencies): TransE的另一种扩展,通过引入关系特定的变换矩阵来建模实体和关系之间的依赖关系。 5. RESCAL(RElational model with Semi-Continuous Embeddings and Compositional Logic): 一种基于矩阵分解的模型,通过分解关系张量来学习实体和关系之间的表示。 6. DistMult(Distributed Multi-relationships model): 一种基于张量分解的模型,通过特征向量间的点积来判断事实的置信。 7. ComplEx(Complex Embeddings): 一种基于复数嵌入的模型,将实体和关系都表示为复数向量,通过复数运算来进行语义推理。 8. ConvE(Convolutional 2D Knowledge Graph Embeddings): 一种基于卷积神经网络的模型,通过卷积操作将嵌入向量转化为二维图像,以捕捉实体和关系之间的局部模式。 9. RotatE(Rotation-based Embedding): 一种基于旋转变换的模型,通过将关系嵌入向量进行旋转操作,来建模实体和关系之间的多种语义关系。 10. HolE(Holographic Embeddings): 一种基于张量张量分解的模型,通过张量外积操作来计算实体和关系之间的匹配。 11. KG2E(Knowledge Graph Embedding with Entity Descriptions): 一种基于图神经网络的模型,通过结合实体描述和关系属性来学习实体和关系之间的嵌入表示。 12. ConvKB(Convolutional Neural Networks for Knowledge Base Completion): 一种基于卷积神经网络的模型,通过卷积操作来学习实体和关系之间的表示。 13. SimplE(Simplifying Knowledge Graphs into Simple Embeddings): 一种基于正交约束的模型,通过引入正交变换来简化知识图谱的表示。 14. SSP(Semantic Space Projection): 一种基于语义空间投影的模型,通过学习实体和关系之间的线性变换来建模知识图谱。 15. NTN(Neural Tensor Networks): 一种基于神经张量网络的模型,通过张量运算来建模实体和关系之间的复杂关系。 16. RDIG(Relational Deep Intelligence Group): 一种基于深学习的模型,通过多层神经网络来学习实体和关系之间的嵌入表示。 17. NSC(Neural Semantic Composition): 一种基于神经网络的模型,通过组合实体和关系之间的嵌入向量来生成知识图谱的语义表示。 18. IPTransE(Improved Path-based TransE): TransE的进一步改进版本,通过加入路径信息来改善实体和关系之间的嵌入学习。 19. GPE(Graph Pattern Extractor): 一种基于图模式提取的算法,通过分析知识图谱中的子图来挖掘实体和关系之间的高阶关系。 20. RDF2Vec(RDF to Vector): 一种基于Word2Vec的算法,通过将RDF图谱数据转化为连续向量,来学习实体和关系之间的表示。 ### 回答3: 以下为20个比较流行的知识图谱算法模型: 1. TransE:基于关系三元组的知识图谱表示学习模型,通过学习实体和关系的向量表示来捕捉关系的语义。 2. TransH:在TransE的基础上引入超平面来建模关系,以更好地表示实体之间的关系。 3. TransR:通过学习实体和关系的映射矩阵来进行关系的建模,提高了关系的表示能力。 4. TransD:在TransR的基础上引入动态实体描述向量,通过描述实体在不同关系下的特征来学习知识图谱表示。 5. RESCAL:通过建模关系张量来进行知识图谱表示学习,能够捕捉实体和关系之间的复杂非线性关系。 6. ComplEx:基于复数张量分解的知识图谱表示学习模型,能够更好地处理关系的对称性和传递性。 7. HolE:通过利用对称性和循环性质,将关系表示为低维的向量,提高了知识图谱表示的效果。 8. ConvE:将知识图谱表示学习问题转化为卷积神经网络的学习问题,能够在保证语义表示的情况下减少参数量。 9. STransE:通过引入关系路径信息,改进了TransE模型,提高了关系的表示能力。 10. R-GCN:在图卷积网络的基础上,利用关系的传播能力对知识图谱进行表示学习。 11. KG2E:通过引入关系属性向量,捕捉实体和关系之间的语义信息,提高了知识图谱的表示能力。 12. TransGAN:将生成对抗网络应用于知识图谱表示学习,能够生成更真实的知识图谱实体和关系。 13. ComplexE:基于复数表示的知识图谱嵌入模型,能够更好地处理复杂关系和多对一关系。 14. PTransE:通过引入关系路径信息和预训练的实体向量,改进了TransE模型,提高了知识图谱的表示能力。 15. ConvKB:将知识图谱表示学习问题转化为卷积神经网络的二分类问题,提高了知识图谱表示的效果。 16. TuckER:利用张量分解技术进行知识图谱表示学习,提高了关系的建模能力。 17. BootEA:利用知识图谱中的边缘实体(bridge entity)进行表示学习,提高了知识图谱表示的效果。 18. SimplE:将知识图谱表示问题转化为线性关系预测问题,提高了表示学习的效率和准确性。 19. KALE:综合考虑知识图谱中的拓扑结构和语义信息,进行表示学习和关系预测。 20. ProjE:通过投影矩阵的方式学习知识图谱表示,提高了关系的表示能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值