推荐系统三十六式
刑无刀
“贝壳找房”资深算法专家,8年推荐系统工程师
立即订阅
11436 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 用知识去对抗技术不平等
免费
第1章 概念篇 (3讲)
【概念篇】你真的需要个性化推荐系统吗?
【概念篇】个性化推荐系统那些绕不开的经典问题
【概念篇】这些你必须应该具备的思维模式
第2章 原理篇 (20讲)
【内容推荐】画鬼容易画人难:用户画像的“能”和“不能”
【内容推荐】从文本到用户画像有多远
【内容推荐】超越标签的内容推荐系统
【近邻推荐】人以群分,你是什么人就看到什么世界
【近邻推荐】解密“看了又看”和“买了又买”
【近邻推荐】协同过滤中的相似度计算方法有哪些
【矩阵分解】那些在Netflix Prize中大放异彩的推荐算法
【矩阵分解】Facebook是怎么为十亿人互相推荐好友的
【矩阵分解】如果关注排序效果,那么这个模型可以帮到你
【模型融合】经典模型融合办法:线性模型和树模型的组合拳
【模型融合】一网打尽协同过滤、矩阵分解和线性模型
【模型融合】深度和宽度兼具的融合模型 Wide and Deep
【MAB问题】简单却有效的Bandit算法
【MAB问题】结合上下文信息的Bandit算法
【MAB问题】如何将Bandit算法与协同过滤结合使用
【深度学习】深度学习在推荐系统中的应用有哪些?
【深度学习】用RNN构建个性化音乐播单
【其他应用算法】构建一个科学的排行榜体系
【其他应用算法】实用的加权采样算法
【其他应用算法】推荐候选池的去重策略
第3章 工程篇 (10讲)
【常见架构】典型的信息流架构是什么样的
【常见架构】Netflix个性化推荐架构
【常见架构】总览推荐架构和搜索、广告的关系
【关键模块】巧妇难为无米之炊:数据采集关键要素
【关键模块】让你的推荐系统反应更快:实时推荐
【关键模块】让数据驱动落地,你需要一个实验平台
【关键模块】 推荐系统服务化、存储选型及API设计
【效果保证】推荐系统的测试方法及常用指标介绍
【效果保证】道高一尺魔高一丈:推荐系统的攻防
【开源工具】和推荐系统有关的开源工具及框架介绍
第4章 产品篇 (3讲)
【产品篇】推荐系统在互联网产品商业链条中的地位
【产品篇】说说信息流的前世今生
【团队篇】组建推荐团队及工程师的学习路径
尾声与参考阅读 (2讲)
推荐系统的参考阅读
【尾声】遇“荐”之后,江湖再见
推荐系统三十六式
登录|注册

【内容推荐】从文本到用户画像有多远

刑无刀 2018-03-14
前面,我和你聊过了不要把用户画像当成银弹,也不要觉得一无是处。对于一个早期的推荐系统来说,基于内容推荐离不开为用户构建一个初级的画像,这种初级的画像一般叫做用户画像(User Profile),一些大厂内部还习惯叫做 UP,今天我就来讲一讲从大量文本数据中挖掘用户画像常常用到的一些算法。

从文本开始

用户这一端比如说有:
注册资料中的姓名、个人签名;
发表的评论、动态、日记等;
聊天记录(不要慌,我举个例子而已,你在微信上说的话还是安全的)。
物品这一端也有大量文本信息,可以用于构建物品画像( Item Profile ),并最终帮助丰富 用户画像(User Profile),这些数据举例来说有:
物品的标题、描述;
物品本身的内容(一般指新闻资讯类);
物品的其他基本属性的文本。
文本数据是互联网产品中最常见的信息表达形式,数量多、处理快、存储小,因为文本数据的特殊地位,所以今天我专门介绍一些建立用户画像过程中用到的文本挖掘算法。

构建用户画像

要用物品和用户的文本信息构建出一个基础版本的用户画像,大致需要做这些事:
1. 把所有非结构化的文本结构化,去粗取精,保留关键信息;
2. 根据用户行为数据把物品的结构化结果传递给用户,与用户自己的结构化信息合并。
第一步最关键也最基础,其准确性、粒度、覆盖面都决定了用户画像的质量。仿佛如果真的要绘制一个用户的模样,要提前给他拍照,这个拍照技术决定了后面的描绘情况,无论是采用素描、油画、工笔还是写意。这一步要用到很多文本挖掘算法,稍后会详细介绍。
第二步会把物品的文本分析结果,按照用户历史行为把物品画像( Item Profile )传递给用户。你也许会问:传递是什么意思?没关系,这个稍后我会介绍。

一、结构化文本

我们拿到的文本,常常是自然语言描述的,用行话说,就是“非结构化”的,但是计算机在处理时,只能使用结构化的数据索引,检索,然后向量化后再计算;所以分析文本,就是为了将非结构化的数据结构化,好比是将模拟信号数字化一样,只有这样才能送入计算机,继续计算。这个很好理解,不多解释。
从物品端的文本信息,我们可以利用成熟的 NLP 算法分析得到的信息有下面几种。
关键词提取:最基础的标签来源,也为其他文本分析提供基础数据,常用 TF-IDF 和 TextRank。
实体识别:人物、位置和地点、著作、影视剧、历史事件和热点事件等,常用基于词典的方法结合 CRF 模型。
内容分类:将文本按照分类体系分类,用分类来表达较粗粒度的结构化信息。
文本 :在无人制定分类体系的前提下,无监督地将文本划分成多个类簇也很常见,别看不是标签,类簇编号也是用户画像的常见构成。
主题模型:从大量已有文本中学习主题向量,然后再预测新的文本在各个主题上的概率分布情况,也很实用,其实这也是一种聚类思想,主题向量也不是标签形式,也是用户画像的常用构成。
嵌入:“嵌入”也叫作 Embedding,从词到篇章,无不可以学习这种嵌入表达。嵌入表达是为了挖掘出字面意思之下的语义信息,并且用有限的维度表达出来。
下面我来介绍几种常用的文本结构化算法。
1 TF-IDF
TF 全称就是 Term Frequency,是词频的意思,IDF 就是 Inverse Document Frequency 是逆文档频率的意思。TF-IDF 提取关键词的思想来自信息检索领域,其实思想很朴素,包括了两点:在一篇文字中反复出现的词会更重要,在所有文本中都出现的词更不重要。非常符合我们的直觉,这两点就分别量化成 TF 和 IDF 两个指标:
TF,就是词频,在要提取关键词的文本中出现的次数;
IDF,是提前统计好的,在已有的所有文本中,统计每一个词出现在了多少文本中,记为 n,也就是文档频率,一共有多少文本,记为 N。
IDF 就是这样计算:
计算过程为:词出现的文档数加 1,再除总文档数,最后结果再取对数。
IDF 的计算公式有这么几个特点:
所有词的 N 都是一样的,因此出现文本数越少 (n) 的词,它的 IDF 值越大;
如果一个词的文档频率为 0,为防止计算出无穷大的 IDF,所以分母中有一个 1;
对于新词,本身应该 n 是 0,但也可以默认赋值为所有词的平均文档频率。
计算出 TF 和 IDF 后,将两个值相乘,就得到每一个词的权重。根据该权重筛选关键词的方式有:
给定一个 K,取 Top K 个词,这样做简单直接,但也有一点,如果总共得到的词个数少于 K,那么所有词都是关键词了,显然这样做不合理;
计算所有词权重的平均值,取在权重在平均值之上的词作为关键词;
另外,在某些场景下,还会加入以下其他的过滤措施,如:只提取动词和名词作为关键词。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《推荐系统三十六式》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(44)

  • 张哲
    这一期信息量好大……

    作者回复: 慢慢享用,嚼碎了再吞。

    2018-03-14
    18
  • 林彦
    谢谢刑无刀老师的分享。建议各种步骤和场景的工业化工具及其性能和便利,对我们读者提供了不小的价值。

    1. 词嵌入里面提到学习到的包含更多语义信息的(新)词向量可以“用于聚类,会得到比使用词向量聚类更好的语义聚类效果”。这里的聚类是指文中之前提到的LDA等聚类模型来找出文章的主题吗?

    2. “主题模型:从大量已有文本中学习主题向量,然后再预测新的文本在各个主题上的概率分布情况,也很实用,其实这也是一种聚类思想,主题向量也不是标签形式,也是用户画像的常用构成。”请问这里已有文中的主题向量中的主题词如果是通过LDA提取是不是需要有个停用词表排除那些所有文档中词频都很高的词?它不像TF-IDF会自动排除所有文档中词频高的词。 这种场景的聚类就是判别新的文本和哪些主题的文本比较相似(”距离“接近或主题”概率“较大),然后判别新的文本的主题?

    3. ”向量中各个维度上的值大小代表了词包含各个语义的多少“ 有这句说明挺好的。我第一次阅读不太理解,后来查了一些文章,有一个解释我觉得比较直观,Word2Vec生成的向量值可以看成是N维语义空间(N个语义词)中的坐标值(每个坐标轴对应一个语义)。当2个词在同一个N维语义空间中的距离接近时,说明2个词的含义接近。

    作者回复: 你一定是个学霸,向你致敬。

    1. 这里的聚类是指的传统数据挖掘中的聚类。基于距离或者密度等。如kmeans。
    2. 停用词要去掉。lda在预测阶段也要迭代的,而不是计算相似度。
    3. 你若理解了,就是晴天。

    2018-03-14
    8
  • Drxan
    无刀老师,能否建立个微信群啊,大家可以对您每期的课程内容一起学习讨论

    作者回复: 知识星球(原来叫小密圈)搜ResysChina。

    2018-03-15
    7
  • jt120
    针对embedding,我不太理解,之前理解就是一种映射关系,但文里为什么说结果是稠密的,这是怎么保证的

    作者回复: 用Word2vec跑出一个结果你就明白了,设定k维的话,你会得到一个k维向量,每个维度上都有值的。

    2018-03-14
    1
    5
  • 行行行
    老师,关于word2vec,有几个疑问
    1 工业上如果通过word2vec得到文档的向量呢,是用累加一个文档中各个词的词向量得到的稠密向量表示吗
    2 用于聚类,是用上面得到的文档向量来做吗
    3 到底是如何通过计算词和词之间的相似度,扩充标签的呢

    作者回复: 1.是
    2.是
    3.用你文本中出现的词,去查询通过word2vec计算得到的相似词,从而实现了“扩展”,原来只有两个词,现在增加了几个相似词,变成了4个词。

    2018-03-23
    1
    2
  • 漂泊的小飘
    幸亏学过人工智能,不然这一章够我喝一壶了
    2019-07-01
    1
  • wjj
    老师,TF—IDF中的Top K 排序,实际工作中超参数K值一般取多少?

    作者回复: 看情况。

    2019-05-31
    1
  • Kendal
    邢老师你好,我是初学者,第二部分把物品的结构化信息传递给用户这里,您把他看成是一个特征选取的问题。这里没太看懂,还望能够详细解释下。
    假设用户A和我们给他展现的100个物品有了2类操作(消费10,没消费90)。我的理解是这边每个被消费的物品(10个)都有自己的特征向量(假设n维),我们的任务是找到这n维里面到底哪m维是用户真正关心的。这个理解对吗?然后如何选取到这m维,并把它们融合到用户自己原来的向量中又是如何具体实现的?
    谢谢指点!

    作者回复: 文中有详细介绍。后续图书中有例子。

    2019-02-11
    1
  • 预见
    我来补充林彦同学的第三点,”向量中各个维度上的值大小代表了词包含各个语义的多少“ 。第一遍看到这句话的时候我没有看懂,查阅资料后才明白。比如使用word embedding,一个单词“北京”,用5维向量“首都,中国,大城市,南方,没雾霾”来表示的话,他的向量形式就是[1, 1, 1, 0, 0],各个维度的值的大小代表了词包含各个语义的多少。老师要是讲的再细致一点,给出示例就更好了

    作者回复: 谢谢你的建议,采纳到图书中。

    2018-12-01
    1
  • 我有一个比较困扰我的问题就是信息增益和WOE、IV之间的区别,我不明白为什么金融欺诈中选取重要性特征都用WOE和IV 方法,而其它领域很少看见用这两个方法进行筛选特征的,谢谢!
    2018-09-25
    1
  • top savor
    老师您好,我是初学者,感觉学到很多,但还是有些疑问:请问用户画像如果是用户本身的特征(比如个性签名的文本向量化)+物品端的特征,那在做匹配计算相似度的时候,两者的向量维度岂不是不一样?
    2018-04-18
    1
  • 三竹先生
    真的好难啊,邢老师能多结合一下例子吗?方便理解😂😂😂
    2018-03-29
    1
  • jt120
    上面提到的都是主流的推荐系统方法,例如电影,图书,新闻这些经典场景。
    但对于特殊商品,例如房子,明显和上面不同,低频,高价,并且房子的特征基本都是分类特征,针对这种场景,如何选择特征,如何推荐了?

    作者回复: 这种场景下,用户也更有耐心一些,可以多向用户询问他的诉求,更像一个辅助决策系统,而不是一个纯粹的推荐系统。

    2018-03-14
    1
  • 夜雨声烦
    挺好的 了解了好多

    作者回复: 谢谢。

    2019-11-20
  • 🐱无限大人🐱
    这篇好干,得好好啃一下
    2019-11-03
  • 赖春苹
    感觉还是有一些地方理解不了,看了两三遍还是理解不了:
    1. 上一节提到的用户画像,是这样用的:<i1,i2,i3...> 点积<u1,u2,u3...>,即用户向量和物品向量做点积,得分高的话说明适合推荐;
    2. 这一节讲的,先分别对用户内容和物品内容做文本挖掘,得到物品向量后再对物品向量进行特征选择?(特征选择时需要用到用户的行为标签),我理解的特征选择,就是从物品向量里选择一部分和用户行为结果关联度高的特征,可是,这些特征怎么反映到用户侧呢?这里一直搞不懂,因为从物品里挖出来的重要特征,在用户侧向量里不一定有对应的那一项啊,没有对应的项就没办法进行第1步里的点积计算呀……还请明白人帮忙解答下,真的困扰好久啊~
    2019-09-25
  • 韩懿留
    看完这期课程第一遍的感觉就是😵,只能多刷几遍了
    2019-09-04
  • 张苗
    这一节都是自然语言处理的基本知识,幸好毕业是做的这块,不然够我喝一壶~😂
    2019-07-17
  • nananana
    老师您好,我想问一下,用户挑选画像标签看成是特征选择问题,选择的时候,比如使用卡方验证选择,对每一个用户的数据量有什么要求吗?
    2019-07-16
  • 夜白
    刑老师您好,看完这一篇文章收获很多。首先我来谈谈自己的理解,以往我们知道某一个用户喜欢女装或球类物品其实就是从这个用户看过的物品组成的文档集合中使用比如信息增益的特征选择算法选出用户关心的东西,那么为什么说信息增益可以寻找到用户关心的东西呢?信息增益等于由于特征A而使得训练数据的分类不确定性减少的程度,在推荐系统中特征就是关键词,训练数据就是物品文档,那么信息增益在这里就是由于关键词A而使得物品消费不确定性减少的程度,自然这个关键词A就是用户关心的东西了,还有我觉得把标签选择这个标题改成物品画像标签选择更清楚一点。
    2019-06-10
收起评论
44
返回
顶部