协同过滤算法_协同过滤在新闻推荐CTR预估中的应用

article/2025/10/30 8:41:58

概述协同过滤算法是推荐系统中的最基本的算法,该算法不仅在学术界得到了深入的研究,而且在工业界也得到了广泛的应用。本文介绍最基本的基于物品的和基于用户的协同过滤算法,并结合新闻推荐的CTR预估,介绍基于物品的协同过滤算法在CTR预估的抽取数据特征中的应用。

基于物品的协同过滤算法基于物品的协同过滤算法(以下简称ItemCF)是目前工业界应用最多的算法。ItemCF的基本原理是给用户推荐那些和他们之前喜欢的物品相似的物品。例如,该算法会因为你购买过《机器学习导论》而向你推荐《数据挖掘:概念与技术》。ItemCF算法在评估物品间的相似度的时候,并不是使用物品的内容属性,而是通过分析用户对物品的共同行为来评估物品之间的相似度。该算法认为,物品A和物品B之间具有很大的相似度是因为喜欢物品A的用户大部分也都喜欢物品B。

ItemCF算法的主要步骤如下:

1. 根据反馈历史计算物品间的兴趣相似度2. 根据目标用户的历史记录,记录正反馈物品集合

3. 将与集合中的物品相似的物品推荐给目标用户

下图是ItemCF算法的一个简单的示意。

636eaff72f02cbe27e8865b823190a71.png

如何计算物品间的相似度呢?一个比较基本和直观的定义是Jaccard相似度:

7f55dcff3b79c3703a9842fa6bebac9e.png

其中,N(i)表示喜欢物品i的用户集合。另外一种比较常用的定义是余弦相似度:

cb250ba804c2f79346ba791caec832a1.png

从上面的定义可以看到,两个物品产生相似度是因为他们共同被很多用户喜欢。

在得到物品的相似度之后,ItemCF算法通过如下公式计算用户u对物品i的兴趣程度:

b962e47f4e786a12e3b90ccbc761b95d.png

其中,N(u)是用户u喜欢的物品集合,S(i,K)是与物品相似的TOP K个物品的集合,wij是物品i和物品j之间的相似度,ruj是用户u对物品j的兴趣度。这个公式的含义是,和用户历史上喜欢的物品越相似的物品,越有可能推荐给用户。给定用户u,给出推荐物品列表的步骤如下:for u喜欢的每一个物品i:

for 与i相似的每一个物品j:

272afc73a609fa23752a0081bb3ea906.png

对p排序,推荐Top N给用户u

基于用户的协同过滤算法基于用户的协同过滤算法(以下简称UserCF)可以算是推荐系统领域中最古老的算法。UserCF的基本原理是通过找到与目标用户相似的用户,把那些用户喜欢的而目标用户没有听说过的物品推荐给目标用户。与ItemCF类似,这里用户之间的相似度并不是通过用户之间的具体属性评估的,而是通过用户历史上对物品的反馈来评估的。

UserCF算法的主要步骤如下:

1.根据反馈历史计算用户间的兴趣相似度2.找到和目标用户兴趣相似的用户集合3.找到这个集合中用户喜欢的,且目标用户没有见过的物品推荐给目标用户

下图是UserCF算法的一个简单示意。

fe7e852e4f5bda597e09435adb584302.png

如何计算用户间的相似度呢?与ItemCF类似,两种基本的方式。记N(u)为用户u喜欢的物品集合,N(v)为用户v喜欢的物品集合,则用户u和v之间的Jaccard相似度为:

1c1003ab39c766531bc21e9ab1356265.png

余弦相似度为:

2d8008e05167d11b5ffff3840a09dfb9.png

同样的,用户u和v之间相似,是因为用户u和v共同喜欢了很多物品。

在得到用户的相似度之后,UserCF算法通过如下公式计算用户u对物品i的兴趣程度:

12fdf839e43588d1b9c45f90b0561267.png

其中,N(i)是喜欢物品i的用户集合,S(u,K)是与用户u相似的TOP K个用户集合,wuv是用户u和用户v之间的相似度,rvi是用户v对物品i的兴趣度。这个公式的含义是,和目标用户越相似的用户所喜欢的物品,越有可能推荐给目标用户。给定用户u,给出推荐物品列表的步骤如下:for 与u相似的每一个用户v:

for v喜欢的每一个物品i:

b976efbab3de6fe63aecdc3a00628be5.png

对p排序,推荐Top N给用户

协同过滤在新闻推荐CTR预估中的应用特别说明

新闻推荐一般的步骤为:

1.给定多种策略给出用户可能感兴趣的文章队列

2.每个用户和新闻对为一条数据,抽取相关的特征,用于做CTR预估

3.将数据输入到预先训练好的CTR预估模型,得到CTR

4.按照特定的展示策略和CTR排序展示出推荐的文章

协同过滤一般是在上述步骤的第一步中完成的,即用协同过滤的方法给出用户可能感兴趣的文章列表。但是,在做CTR预估的时候,由于缺少用户对新闻的兴趣度特征,使得新闻自身的特征(如新闻标题分词)会起到主导作用,而新闻自身的特征是和特定用户的兴趣关系不大的,因此有必要添加用户对新闻的兴趣度特征(这里称之为个性化特征)。本节介绍基于新闻标题分词的协同过滤的方式增加用户对新闻的个性化特征。

协同过滤增加个性化特征

在新闻推荐问题中,作为物品,新闻的更新速度远远大于新用户的加入速度,因此,一般情况下UserCF是比较常用的算法。但是,新用户的快速加入也使得在使用UserCF的时候,用户相似度表的更新也要非常频繁。这也给UserCF的实用性带来了一些局限。而如果将新闻标题的分词作为物品,就可以采用ItemCF的方法,维护一个分词间的相似度表(不需要很频繁更新),根据用户的历史反馈建立用户对分词的兴趣模型,这样,就可以在4.1中所述步骤的第2步中,增加用户对新闻标题分词的个性化特征。

接下来简单介绍这种方式的具体做法。

根据点击记录,将点击过分词ti的用户集合表示为U(ti),用户ui点击过的分词集合表示为T(Ui),那么分词间的相似度计算公式为:

77e65295d747b068c72e374b3d811d66.png

对每个有点击历史的用户u,u对分词ti的兴趣度为:

313ff8b1c0c6d5f827f90e3b08eedb9a.png

这样,就建立了一个用户对新闻标题分词的兴趣模型。在实验中,增加该类特征之后,AUC提升1%以上。

原文发布于微信公众号 - 腾讯技术工程官方号(Tencent_TEG)


http://chatgpt.dhexx.cn/article/D76KVq5A.shtml

相关文章

python协同过滤_协同过滤的python简易实现

原标题:协同过滤的python简易实现 了解推荐算法的人对协同过滤都不陌生,协同过滤就寻找和被推荐客户品味相似的客户,找出利用这些相似客户的偏好特征为用户推荐产品。下面就通过一个简单的示例将协同过滤加以实现。 关注我们公众号的粉丝都知…

python实现 基于邻域的算法之协同过滤(电影推荐实战)

1 介绍 1.1 用户行为数据 用户行为数据通常把包括:网页浏览、购买点击、评分和评论等。 用户行为在个性化推荐系统中一般分为两种: 显性反馈行为(explicit feedback) 包括:用户明确表示明确对物品喜好的行为&#…

协同过滤1

协同过滤 协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行推荐不同,协同过滤分析用户兴趣,在用户群中找到指定用户的相似&a…

推荐算法之协同过滤

一、协同过滤算法简介 所谓协同过滤算法,其基本思想就是根据用户之前的喜好及其他兴趣相近的用户的选择来给用户推荐物品(基于对用户历史行为数据的挖掘发现用户的喜好偏向, 并预测用户可能喜好的产品进行推荐)。 目前应用广泛的…

传统推荐模型——协同过滤

文章目录 UserCF:基于用户的协同过滤什么是CF用户相似度计算最终结果的排序 ItemCF:基于物品的协同过滤UserCF和ItemCF的适用场景CF存在的几个缺点代码实践数据集Python代码 协同过滤,Collaborative Filtering,CF,可以…

协同过滤

协同过滤 什么是协同过滤 协同过滤推荐(Collaborative Filtering recommendation)是在信息过滤和信息系 统中正迅速成为一项很受欢迎的技术。与传统的基于内容过滤直接分析内容进行 推荐不同,协同过滤分析用户兴趣,在用户群中找…

协同过滤(Collaborative Filtering)

协同过滤,顾名思义就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。 协同过滤是推荐系统的重要模型之一,推荐系统是用来向用户推荐物品的。协同过滤分为两种: 1.基于用…

数字签名的简单理解

数字签名的简单化理解TOC 数字签名的简单化理解! 对于数字签名,网上有很多大神解释的很详细了,我在这里解释的方法更加通俗易懂,更适用于入门级理解,已经尽可能的浅显,希望可以对大家有用! 评…

浅谈程序的数字签名

理论基础 数字签名它是基于非对称密钥加密技术与数字摘要算法技术的应用,它是一个包含电子文件信息以及发送者身份,并能够鉴别发送者身份以及发送信息是否被篡改的一段数字串。 一段数字签名数字串,它包含电子文件经过Hash编码后产生的数字…

数字签名及应用

内容介绍 常用加密方式数字签名颁发数字证书机构CA 常用加密方式 对称加密 对称加密也称为密钥加密或单向加密,就是使用同一套密钥来进行加密和解密。 常用算法:DES、3DES、AES 优点:算法公开、简单,加密解密容易,加密…

数字签名的过程详解

数字签名的过程详解 1. 数字证书的概念2. 数字签名的过程3. 加密的过程4. 数字签名两大特性5. 用到的部分名词解释 1. 数字证书的概念 数字证书又叫“数字身份证”、“网络身份证”,是由证书认证中心CA发放并经认证中心数字签名,包含公开密钥拥有者以及…

数字签名是什么?

今天,我读到一篇好文章。 它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么。 我对这些问题的理解,一直是模模糊糊…

数字签名技术及加密算法

最近由于需要使用数字签名,于是了解一下各种算法的利弊及实现 数字签名流程图: ---------BASE64----------- 常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过BASE64加密的。 BASE加密后产生的字节…

数字签名系列一:签名简介与RSA签名算法

数字签名系列一 写在前面数字签名作用数字签名发展史带属性的数字签名RSA数字签名方案 写在前面 学了一年的数字签名方案,一直都在一个点进行专研,虽然还是有所收获,总感觉还差点感觉,上了一年研究生,还没有对数字签名…

密码学---数字签名和认证协议---数字签名标准

数字签名标准 DSS的基本方式RSA签名过程DSS签名过程 数字签名算法DSA全局公钥用户私钥x用户公钥y用户为待签消息选取的秘密数k签名过程验证过程 数字签名标准(Digital Signature Standard,DSS)是美国公布的联邦信息处理标准,采用SHA和一种新的签名技术的…

数字签名与签名验证过程

1.1 生成数字签名 1 利用RSA算法生成公钥、私钥。私钥由密钥持有者自主保存,公钥可对外发布。 2 准备好待签名的文档。 3 利用哈希算法(HASH),生成待签名文档的摘要。(文档摘要) 4 利用签名者的私钥&am…

什么是数字签名?其安全性从何而来?

一、数字签名简介 数字签名是基于公钥密码体制(非对称密钥密码体制)的。 1.1.基本特征 数字签名必须保证以下三点: 报文鉴别——接收者能够核实发送者对报文的签名;报文的完整性——接收者不能伪造对报文的签名或更改报文内容。…

数字签名的工作原理

数字签名是公钥基础结构的基础部分。当我们说PKI时,一般想到的是数字证书,证书颁发机构(CA),银行使用的Key,以及SSL通信等等。 数字证书,一般都是成对存在的,包含证书的公钥,和证书…

网络安全之数据加密和数字签名技术

一、计算机网络面临的安全性威胁和解决办法 1、计算机网络上的通信面临以下两大类威胁:被动攻击和主动攻击,如下图所示: 2、解决办法,由上图可知: 对于主动攻击,可以采取适当措施加以检测。 对于被动攻击…

一文了解数字签名、数字证书、自签证书

参考 关于自签SSL证书的一些小知识汇总 对于ssl中的pem文件和key 文件的理解 openssl 生成证书 ca.pem client.pem server.pem SSL:证书文件 数字证书原理 数字签名是什么? 数字签名和数字证书的原理解读(图文) 数字签名和数字证书有哪些区别与联…