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

minlonglin

作者简介:minlonglin,AI平台部Y项目组员工。2012年毕业于中国科学技术大学计算机科学与技术学院,读博期间主攻集成学习、类别不平衡分类等方向,期间曾在IEEE Transactions on Neural Networks and Learning Systems发表类别不平衡分类的相关论文。此前在TEG\内部搜索平台部(现改名为AI平台部)\智能算法组从事新闻推荐的点击率预估相关工作,现在AI平台部Y项目组,从事自然语言处理相关工作。

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

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

ItemCF算法的主要步骤如下:

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

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

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

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

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

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

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

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

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

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

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

UserCF算法的主要步骤如下:

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

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

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

余弦相似度为:

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

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

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

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

对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),那么分词间的相似度计算公式为:

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

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

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

原文发表时间:2016-11-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | Kaggle CTO Ben Hamner :机器学习的八个步骤

选自Kaggle 作者:Ben Hamner 机器之心编译 参与:黄小天 上个月,Kaggle 联合创始人兼 CTO Ben Hamner 在 Quora 上...

28050
来自专栏PPV课数据科学社区

我在面试机器学习、大数据岗位时遇到的各种问题

自己的专业方向是机器学习、数据挖掘,就业意向是互联网行业与本专业相关的工作岗位。各个企业对这类岗位的命名可能有所不同,比如数据挖掘/自然语言处理/机器学习算法工...

47260
来自专栏AI科技评论

学界 | NLP解决方案是如何被深度学习改写的?

AI 科技评论按:英特尔人工智能产品事业部,数据科学主任 Yinyin Liu 近日撰写了一篇文章,介绍了深度学习为自然语言处理带来的种种变化。有趣的大趋势是首...

12130
来自专栏机器之心

前沿 | 物理学家提出新算法:将量子机器学习扩展到无限维度

选自phys.org 作者:Lisa Zyga 机器之心编译 参与:吴攀、李亚洲 物理学家已经开发出了一种可以处理无限维度(infinite dimensio...

30280
来自专栏人工智能头条

推荐算法不够精准?让知识图谱来解决

48020
来自专栏PaddlePaddle

知名深度学习框架的典型应用案例一览

TensorFlow在谷歌系的产品中应用非常多,比如Gmail, Google Play Recommendation, Search, Translate, ...

16750
来自专栏专知

概念解析:深入理解人工智能和机器学习

【导读】本文是数据科学家Vijay Yadav的一篇帖子,主要内容是介绍机器学习和人工智能的概念。对于很多刚刚入门人工智能的读者,可能会有这么一个疑问:人工智能...

37860
来自专栏新智元

研究提出能够自我解释的 AI 算法,辅助理解机器决策过程

【新智元导读】加利福尼亚大学伯克利分校和马克斯普朗克信息学研究所的研究提出了一种能够自我解释的算法,有助于让人类理解机器学习的决策过程。这种被称为“指向和对齐”...

38390
来自专栏Golang语言社区

多维度融合赋能视频 AI 的实践

本文主要分享了七牛人工智能实验室在视频 AI 方面的一些工作,分别有两个关键词:一个是多维度融合,另外一个关键词是视频 AI 。

14120
来自专栏AI科技评论

开发 | Kaldi集成TensorFlow,两个开源社区终于要一起玩耍了

AI科技评论按:自动语音识别(Automatic speech recognition,ASR)领域被广泛使用的开源语音识别工具包 Kaldi 现在也集成了Te...

72860

扫码关注云+社区

领取腾讯云代金券