【产品经理第一课】产品经理一定要懂得算法(二)

自己负责的 app 也有热点新闻模块,也一直没搞清楚究竟如何进行个性化推荐,最近看到一篇腾讯 pm 写的文章,收获很多,根据记忆进行下复盘。

上篇文章讲了热度算法,链接:产品经理一定要懂得算法(一)

热度算法适用与产品的初期,且本身有缺陷,热度算法会导致用户的行为过度集中,当产品的日活月活达到一定的量级的时候,就需要考虑用户的个性化推荐,这样用户不仅可以看到当前的热点内容,也可以读到自己感兴趣的内容。个性化内容推荐,常用的有两种算法:
1)基于内容的相关推荐
2)基于用户的协同过滤
基于用户的协同过滤相对基于内容的相关推荐对用户的数量要求较高,并且前期要准备的工作会比较多,所以相比基于用户的协同过滤,基于内容的推荐使用场景更多、范围更广。

基于内容的相关推荐

这里需要引入一个概念叫做 “新闻特征向量” ,用它来表示新闻的相似度。即把新闻的关键词提取出来,关键词可以看成新闻的特征向量,当两篇新闻的关键词相似度较高时,可以认为这两篇新闻的相关性较高。下面说一下基于内容的相关推荐的实现过程。

1)分词

什么叫分词,简单的说就是把一片文章分成一个个的词语,望文生义就好

分词需要使用是用到两个词库,一个叫正常词库,一个叫停用词库,字如其名(是不是感觉有点废话)。停用词库就是那些常见但是没有任何意义的分词,比如:中文中的“的”,“了”,英文里的“that”,“are”之类的,这类词出现的频率会很高,但是本身对于分词没有任何帮助,所以需要放入停用词库中进行过滤。

常用的分词方法有(敲黑板)

按照分词顺序:正向匹配、逆向匹配
按照分词长度:最大匹配、最小匹配

那么常用的中文分词法是什么?常用的中文分词法既不是正向匹配、逆向匹配,也不是最大匹配、最小匹配,而是

a)正向最大匹配(从左到右)
b)逆向最大匹配(从右到左)
c)双向最大匹配(左右摇摆,忽左忽右·····算法怎么这不不严谨,其实是先正向(反向),再反向(正向)进行两次匹配)
d)最短路径法(每一句话的分词数最少)

【小贴士1】正向最大匹配:假设正常词库中最长的词有N个中文字符,则把待处理内容的前 N个字作为匹配字段,查找词库。若词库中存在这样的一个 N字词,则匹配成功,匹配字段被作为一个词切分出来。如果词库中找不到这样的一个 N字词,则匹配失败,按照从左到右,将匹配字段中的最后一个字去掉,对剩下的字串重新进行匹配处理,这是个循环,直到匹配成功,即切分出一个词或剩余字串的长度为零为止。

【小贴士2】词库需要不断的维护,否则你的算法看到完全没见过的词会很懵逼

2)特征向量指标

新闻关键词的集合就是新闻的特征向量,所以特征向量的第一个指标就是“关键词”,两篇新闻的内容是否相关就是比较两篇新闻特征向量的重合度。但是两篇新闻的新闻特征向量重合度较高是否两篇文章就一定相关?
既然这样问了,那答案肯定是不一定相关
原作者当时举了两个栗子,拿来复用
新闻一,“广州近期天气较好,..........,大家可以骑着摩拜单车去春游”
新闻二,“摩拜单车进驻广州,......,大家可以在天气好的时候骑着摩拜单车去春游”
两篇文章都可以分词出来“广州”,“天气”,“摩拜单车”,“春游”,两篇新闻的关键词虽然一样,但是两篇文章讲的完全是不同的事情,新闻一主要是是讲“广州天气”,新闻二主要是讲“摩拜单车”。
所以只看新闻的关键词是不够的,这里给特征向量引入第二个指标叫新闻内频率( TF:Term Frequency),即衡量每个关键词在新闻中出现的频率。
还是上面两个新闻,可以得出新闻一,“广州天气”是个高频词,新闻二,“摩拜单车”是个高频词,引入了TF后,可以一定程度的解决上面的问题,但是两篇文章的关键词一样,出现频率一样,那两篇新闻就一定是强关联么?





答案是肯定的,当两篇文章的关键词一样,出现频率一样,那两篇新闻就一定是强关联,意不意外,惊不惊喜。

【友情提示】引入TF以后,这个算法就可以去拿出去忽悠了

继续进阶

在日常新闻中还存在一种情况,对于地域性新闻,新闻关联程度本身就会很高,比如上海日报(瞎编的),掐指一算,它的新闻关键词无非是“东方明珠”,“陆家嘴”,“人广”,“世纪大道”,“浦东新区”,但是上海日报的每一篇文章都一样么?肯定不是,每一篇文章的侧重点肯定都是不一样的,那如何在关联度很高的新闻里区分出每篇新闻究竟侧重点是什么???

这里需要引入特征向量的第三个指标相反值(IDF:Inverse Document Frequency),即关键词在所有文档中出现的频率的相反值。

为什么要引入相反值,(敲黑板,重点)当一个关键词在某条新闻出现的频率最大,在所有文档中出现的频率越小,该关键词对这条新闻的特征标识作用越大(多读两遍,再来一遍,理解了吧),这是一点很容易被忽略的重点。

结合上面的几点,我们就可以把每个关键词对新闻的作用就能被衡量出来即 TFIDF=TF * IDF,这也就是著名的 TF-IDF 模型。

3)相关性算法
讲过前两步的分词和确定指标后,可以的出新闻的特征向量:

其中word0,word1...为新闻的关键词,TFIDF0,TFIDF1...为关键词的指标
考察知识面的时候到了,根据高中的知识,几何中夹角余弦可以用来衡量两个向量的方向的差异性,因此在我们的算法中使用夹角余弦来计算新闻关键词的相似度。夹角越小,相似度越高。

举个栗子:

可以看到两条新闻有 3个重合的关键词:上海,摩拜,学生,因此两条新闻的相关性由这 3个关键词决定,计算方式如下:

得出两条新闻的相关性最终值;用同样的方法能得出一条新闻与新闻库里面所有内容的相关性。

4)用户特征
得到新闻特征以后,还需要得到用户特征才能对两者进行匹配和推荐,那怎么获得用户特征呢?

需要通过用户的行为来获得,用户通过阅读,点赞,评论,分享来表达自己对新闻内容的喜爱;跟热度排名类似,我们对用户的各种行为赋予一定的 “喜爱分”,例如阅读 1 分,点赞 2 分,评论 5 分等,这样新闻特征跟用户行为结合后,就能得到用户的特征分。

计算公式:

而随着用户阅读的新闻数越来越多,该用户的标签也越来越多,并且越发精准。

从而当我们拿到新闻的特征后,就能与用户的关键词列表做匹配,得出新闻与用户阅读特征的匹配度,做出个性化推荐。

5)其他运用

除了个性化推荐,基于内容的相关性算法能精准地给出一篇新闻的相关推荐列表,对相关阅读的实现非常有意义。此外,标签系统对新闻分类的实现和提升准确性,也有重要的意义。

6)优缺点

基于内容的推荐算法有几个明显优点:

对用户数量没有要求,无论日活几千或是几百万,均可以采用;因此个性化推荐早期一般采用这种方式。

每个用户的特征都是由自己的行为来决定的,是独立存在的,不会有互相干扰,因此恶意刷阅读等新闻不会影响到推荐算法。

而最主要的缺点就是确定性太强了,所有推荐的内容都是由用户的阅读历史决定,所以没办法挖掘用户的潜在兴趣;也就是由于这一点,基于内容的推荐一般与其他推荐算法同时存在。

下一篇文章会复盘 基于用户的协同过滤 敬请期待

微信公众号-不知名的工程师
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • 常用概念: 自然语言处理(NLP) 数据挖掘 推荐算法 用户画像 知识图谱 信息检索 文本分类 常用技术: 词级别...
    御风之星阅读 9,003评论 1 24
  • 前面的文章主要从理论的角度介绍了自然语言人机对话系统所可能涉及到的多个领域的经典模型和基础知识。这篇文章,甚至之后...
    我偏笑_NSNirvana阅读 13,648评论 2 64
  • 转载请注明:终小南 » 中文分词算法总结 什么是中文分词众所周知,英文是以 词为单位的,词和词之间是靠空格隔开,而...
    kirai阅读 9,701评论 3 24
  • 概述及标签体系搭建 1 概述 随着信息技术的迅速发展和信息内容的日益增长,“信息过载”问题愈来愈严重,愈发带来很大...
    JinkeyAI阅读 22,641评论 10 240
  • 三点多突然惊醒! 有东西故意要逼我逃离贵阳? 昨天一天非常莫名其妙又不顺利的一天, 让我对这座空城的阴...
    高蔷lucky阅读 298评论 0 0