从用户行为去理解内容-item2vec及其应用

相关性是对称的

在内容推荐系统里,一个常用的方法是通过理解内容(挖掘内容属性)去挖掘用户的兴趣点来构建推荐模型。从大多数业务的效果来看,这样的模型是有效的,也就是说用户行为与内容是相关的。不过有一点常被忽略的是:相关性是对称的!这意味着如果可以从内容属性去理解用户行为,预测用户行为,那么也可以通过理解用户行为去理解内容,预测内容属性。

利用行为数据生成内容向量

推荐系统里我们一直有基于用户行为去理解内容,典型的例子是基于用户行为构造内容特征,例如内容的点击率、内容的性别倾向,内容的年龄倾向等。这样的理解是浅层的,仅仅是一些简单的统计。我们其实有更好的办法可以构建内容特征,它的第一步是利用用户行为将内容转化为向量,下面会以应用宝业务为例讲解利用用户行为将app转化为向量的思路。 从直觉上来看,用户下载app的先后关系是相关的,以图1的行为数据为例,一个用户之前下载过街头篮球,那么他接下来会下载体育类app的概率会比他接下来下载时尚类app的概率更大。也就是说 P(腾讯体育|街头篮球)>P(唯品会|街头篮球)

到这里我们已经大致介绍了利用用户行为将内容转化为向量的方法,这里将这种技术称作item2vec。以应用宝为例,它的item是app,它的实际应用也可以称作app2vec。

内容向量聚类

基于应用宝已有的类别体系观察,可以明显区分开角色扮演类游戏app和理财app

也可以发现一些没有加入类别体系的特殊app群体

now直播业务也基于该方法进行了生成了主播向量并对主播进行了聚类,初步结果来看是聚类是可以明显区分开男女主播的,并且也发现了几个有趣的主播类型,例如直播玩王者的主播,直播电影电视剧的主播,直播农村生活的主播,其主播id及描述如下,感兴趣的同学可以下载now直播搜一下看看: 229094658 吃鸡 + 王者荣耀 214471564 王者荣耀 130552418 王者荣耀 130347855 王者荣耀 109760879 王者荣耀

129839027 直播电视剧 胡军版天龙八部 116206227 直播电影 李连杰版黄飞鸿 129842270 直播电视剧 士兵突击 129857689 直播电视剧 亮剑 116202620 直播电影 林青霞

93341095 户外(农村生活) 115982309 户外(农村生活) 71264701 户外(农村生活) 128859451 户外(农村生活) 115056840 户外(农村生活)

基于内容向量的分类模型(打标签模型)

内容向量在应用宝app分类打标签上的应用

应用宝的app分类(打标签)场景长期以来都存在这样的痛点: 1. 分类体系经常会面临变动 2. app的人工标注成本高,复杂标签体系下app的标注数据很少,大多数标签仅有几个标注数据 3. app属于复杂数据结构的内容,它的内在难以用已有的算法进行挖掘,过去只能通过它的描述和图片来挖掘其信息

这里我们可以先思考一个问题:为什么要给app做分类和打标签? 答:给app做分类和打标签实际上是为了让用户可以更方便的找到自己想要的app,为了让我们可以更容易地结合用户兴趣给用户推送app。 从问题和答案我们可以得出一个结论:给app做分类和打标签有意义的前提是用户的行为是和app的类别、标签相关的!例如下面的这个例子里,第一位用户喜欢下载纸牌类游戏,第二位用户喜欢下载跑酷类和儿童类游戏,第三位用户喜欢下载休闲类游戏。

上面的分析我们知道用户行为应该可以用于判断app的类别标签。因此在给应用宝的app进行分类和打标签时,我们引入了基于用户行为生成的app向量。具体框架可看下图:

通过增加app向量作为分类模型的特征,可以很大程度上提高app分类的准确度(可以参考聚类中的例子),在实际业务中,部分标签的分类准确度可由40%提高到90%,整体来说准确率和覆盖度都有大幅度提升。

基于京东商品类别数据的item2vec分类模型实验

这里贴一下基于京东商品类别数据做的小实验。

  1. 实验数据:京东商品一级类别,共33个类别,44776个商品,随机抽取其中80%作为训练,20%作为测试集
  2. 模型:one vs rest Logistic Regression
  3. 结果: 训练accuracy 0.879 测试accuracy 0.859

下图是将商品向量降维到3维后的商品空间分布图,不同颜色表示不同类别的商品,直观上看不同类别的商品在空间上的位置是不同的。

基于内容行为向量的推荐召回

直观的例子是相关推荐,因为这一场景通常不会对召回结果做太多的加工。常见的召回结果生成方法是先计算item与item之间的相似度(一般使用cosine相似度),再取其中的top n相似item。参考文献【2】中Pinterest便使用了这种方法进行了相关推荐,其实际体验如下:

在应用宝两个场景中做了基于item行为向量的召回策略并进行了测试,相对于原模型有明显的效果提升(具体效果不便贴出,请读者谅解)。

基于内容行为向量的语义召回

在app搜索场景尝试基于行为数据生成搜索词向量来优化了语义召回,明显增强了词的模糊匹配能力。举一个更直观的例子,吃鸡游戏出来的时候,搜索吃鸡出来的都不是吃鸡游戏,但是对此感兴趣的用户后续还是会去找到正确的搜索词,例如之后搜索“荒野行动”,或是下载了“荒野行动”,基于这些行为,可以将“吃鸡”和“荒野行动”关联起来。下图是单纯基于用户行为的搜索词召回:

直接作为深度学习推荐模型的输入特征

大致的思路是通过对用户有过行为item向量求均值得到用户的固定维度user特征,然后作为输入层的输入。YouTube的论文里证明了这种方法的有效性,下图是YouTube的推荐系统方案,详情可看参考文献【3】。

参考文献

【1】《 word2vec Parameter Learning Explained 》 【2】《 Related Pins at Pinterest: The Evolution of a Real-World Recommender System 》 【3】《Deep Neural Networks for YouTube Recommendations 》

原文发布于微信公众号 - 腾讯文曲星(tencent_wisdom)

原文发表时间:2018-01-30

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器之心

教程 | 深度Q学习:一步步实现能玩《毁灭战士》的智能体

选自Medium 作者:Thomas Simonini 机器之心编译 参与:Panda 近年来,深度强化学习已经取得了有目共睹的成功。机器之心也曾发布过很多介绍...

2955
来自专栏灯塔大数据

每周学点大数据 | No.58协同过滤模型(上)

NO.58 协同过滤模型(上) Mr. 王:为了能够有效地利用其他用户的评价来进行更有效的推荐,人们提出了协同过滤的推荐模型。 小可:那什么是协同过滤模型呢?它...

3219
来自专栏数据科学与人工智能

【深度学习】深度学习入门资源索引

深度学习(Deep Learning)属于非常前沿的学科,没有现成的的综合型教材,主要是通过阅读大量论文和代码练习来学习。值得读的经典论文很多,下面介绍的一些教...

3048
来自专栏AI科技评论

学界 | François Chollet谈深度学习的局限性和未来(下)

AI 科技评论按:本篇是 Keras 作者 François Chollet 撰写的一篇博客,文中作者结合自己丰富的开发经验分享一些自己对深度学习未来发展方向的...

952
来自专栏达观数据

多模型融合推荐算法在达观数据的运用

多模型融合推荐算法在达观数据的运用 研发背景 互联网时代也是信息爆炸的时代,内容太多,而用户的时间太少,如何选择成了难题。电商平台里的商品、媒体网站里的新闻、小...

5236
来自专栏新智元

斯坦福新深度学习系统 NoScope:视频对象检测快1000倍

【新智元导读】 斯坦福大学的新研究构建一个名为 NoScope 的深度学习视频对象检测系统,利用视频的局部性对 CNN 模型进行优化,相比当前性能最好的 YOL...

3095
来自专栏AI研习社

视频 | 10行代码,用大脑重量预测体重!硅谷AI网红亲身示范

Siraj Raval 作为深度学习领域的自媒体人在欧美可以说是无人不知、无人不晓。 凭借在 Youtube 上的指导视频,Siraj Raval 在全世界吸...

4486
来自专栏新智元

【干货】如何评价谷歌深度学习速成课程

1753
来自专栏IT派

如何在机器学习竞赛中更胜一筹?

机器学习很复杂。你可能会遇到一个令你无从下手的数据集,特别是当你处于机器学习的初期。 在这篇文章中,你将学到一些基本的关于建立机器学习模型的技巧,大多数人都从中...

3557
来自专栏机器之心

懒人福利:不写代码调优深度模型,谷歌开源的「What-If」了解一下

构建有效的机器学习系统意味着要问许多问题。仅仅训练一个模型放在那儿是不够的。优秀的从业者就像侦探一样,总是试图更好地理解自己的模型:对数据点的改动对模型的预测能...

973

扫码关注云+社区

领取腾讯云代金券