后端小白资讯推荐系统探索

 阅读约 7 分钟

架构

由基础到高层的层级(参考达观数据):

基础层:
    运算和存储    
组件:
    机器学习基础组件
模型层
    更像是业务的数据结构。
    比如用户画像就是对一个用户有全方位的刻画。
算法
    构建在模型和组件之上。更接近与推荐。
算法组合层
    把各种算法组合在一起
应用层
    更接近于产品的业务
    
这里主要给出一个解耦,分的比较细,中小公司实际的架构可能不用分这么细。

推荐系统搭建流程

内容数据处理

    以文本内容举例:需要内容分类、主题提取、关键词提取、打标签等。

内容标签的权重

一篇文本可以有多个标签,每个标签的权重是不同的,表示如下:
[{tag:tag1,weight:weight1},{tag:tag2,weight:weight2}.....]
    

用户数据处理

基础数据收集

    收集包括行为数据、位置数据、用户属性数据。
    用户特征挖掘,结合自己的业务,挖掘业务领域内需要的特征。
    还可以根据用户的所有数据挖掘用户的兴趣点。

兴趣数据更新

生成推荐数据

    根据内容数据和用户特征数据进行预测。

效果验证

    产品设计之初,就要有对比测试的思路(业界称为ABTest)。
    算法优化的过程是:“数据分析发现问题、合理假设、设计实验、实现、数据分析、得出结论或新的假设”,不断循环反复。
 

如何提取内容特征

算法

工具包

常规tdidf
Gensim  

如何应对大的数据集

当有非常非常多篇文章时,有些算法的效率很低。
所以必须考虑使用大数据的方式分布式计算或者算法做一些优化。

三层标签体系

    分类-主题-关键词  

用户画像

如何给用户打标签

我们可以根据用户行为(比如,点击),计算用户对分类、主题、关键词的兴趣。

用户标签的权重

我们可以根据用户行为的次数得到用户兴趣标签的权重。

最简单的计数方法是用户点击一篇新闻,就把用户对该篇新闻的所有标签在用户兴趣上加一。

可以用内容标签权重相同的表示方法。

用户标签如何生成

这里主要讨论用户行为产生的标签。

用户标签根据用户行为涉及的内容标签加权得出。

举例:用户阅读了包含标签tag1的某篇文章,则用户获得了该标签,用户tag1标签的权重则由用户行为包含tag1的次数,以及
tag1在内容中的权重同时决定。

用户兴趣衰减

根据次数衰减

引入次数衰减的必要性:
用户的兴趣累加是线性的,数值会非常大,老的兴趣权重会特别高;
用户的兴趣有很强的时效性,昨天的点击要比一个月之前的点击重要的多,线性叠加无法突出近期兴趣。

可以用衰减函数来控制次数不能无线线性增大,而是最大趋近于某个值。

根据时间衰减

时间衰减保证时间较早的兴趣会在一段时间以后变的非常弱,同时近期的兴趣会有更大的权重。

用户标签体系

标签的分类

第一类是**人口属性**,这一类标签比较稳定,一旦建立很长一段时间基本不用更新,标签体系也比较固定;

第二类是**兴趣属性**,这类标签随时间变化很快,标签有很强的时效性,标签体系也不固定;

第三类是**地理属性**,这一类标签的时效性跨度很大,如GPS轨迹标签需要做到实时更新,而常住地标签一般可以几个月不用更新,挖掘的方法和前面两类也大有不同

其它

冷启动

可以给出一些热门,大众普遍喜欢的内容。
用概率解决大多数新用户的问题。

如何做效果验证

对比测试A/B Test

召回率准确率

准确率: 在一次推荐过程中,表示用户点击数/推荐总数。
        如果计算全平台的准确率,需要所有过程的平均。
        
        例如我们给用户推荐了100条新闻,其中10条用户产生了点击,那么准确率为10/100 = 0.1

召回率: 某个用户在平台上一共点击了200条。我们某次推荐用户点击了3条。那么本次推荐召回率是3/200。


我们统计的维度可以发生变化,这个指标口径我们内部保持一致就可以,方便我们对比推荐算法的提升。








参考
    [如何成为一名推荐系统工程师(推荐系统需要掌握的知识体系)](https://cloud.tencent.com/developer/article/1143135)
   
    [如何搭建一套个性化推荐系统?(理论步骤,不包含实操)](https://blog.csdn.net/lsj960922/article/details/79229937)
    
    [文本聚类(特征提取)](https://www.jianshu.com/p/2aaf1a94b7d6)
    
    [文本标签提取算法](https://blog.csdn.net/lb521200200/article/details/53648879)
    
    [文本特征提取方法研究](https://cloud.tencent.com/developer/article/1057788)
    
    [如何设计用户画像的标签体系?](https://www.shujike.com/blog/2599)
    
    [如何从文本中构建用户画像](https://cloud.tencent.com/developer/article/1092075)
    
    [干货请收好:终于有人把用户画像的流程、方法讲明白了](https://mp.weixin.qq.com/s/dBrksCqoftlm0Zy_5ATvtg)
    
    [用户画像之标签权重算法](https://zhuanlan.zhihu.com/p/27828271)
    
    [推荐系统中的召回率与准确率](https://www.imooc.com/article/37726)
    
    [个性化推荐系统实践应用 (达观数据架构等)](https://www.jiqizhixin.com/articles/2019-02-11-6)
阅读 166更新于 12月13日

推荐阅读
目录