1 推荐系统简单建设
1.1 基本原理
机器学习到现在本质上依然是一种统计学习,将对象一个或多个特征(变量)间关系(算数、集合、逻辑运算)通过一条拟合曲线(函数)来表达这种相关关系。要使得拟合曲线得到的预测/拟合值与样本中每一个点的观察值与之间差距通过距离(欧氏、绝对值、0-1等)相加最短或者两者总体上分布上相合性(交叉/相对熵)这个准则来获得既不过拟合也不欠拟合的曲线。机器学习还是深度学习、强化学习等事实上依然和我们熟悉的简单线性回归本质上是一样的,这也是当前AI 面临的一个范式转换瓶颈。
推荐系统形式化描述拟合用户对内容满意度函数,这个函数需要输入三个维度对象,分别是内容(Xi)、用户(Xu)、环境(Xc),),当然这三个对象有多个特点、特征,故描述它们都是一个多维向量。用一个隐函数来表达这个最通用模型:

结合三方面维度得到的模型用于预测,当前推荐内容在目前场景下对这个用户是否合适。
变量X及结构有了,现在是估计参数 θ 。

1.2 常见推荐算法有如下几种

1.2.1 协同过滤推荐算法
利用用户对物品的偏好数据集,计算出物品或者用户之间的相似度,然后再基于计算出的相似度得到用户对物品的预测评分,将预测评分最高的物品推荐给用户。
1.2.2 基于内容的推荐算法
向用户推荐和其过去喜欢项的内容(例如元数据、描述、话题等等)相似的项。
类型:信息检索(例如 tf-idf)
机器学习(例如朴素贝叶斯、支持向量机、决策树等等)
1.2.3 混合推荐算法
综合利用协同过滤推荐算法和基于内容的推荐算法各自的优点同时抵消各自的缺点。
类型:加权、交换、混合、特性组合、案列、特征增强、元层次
1.2.4 流行度推荐算法
一种推荐流行项的方法(例如最多下载、最多看过、最大影响的项)
1.2.5 关联规则推荐
关联规则:所有的事物么间都可能存在一定的关联性是基于关联规则的推荐的基本理念。
如何找出不同事物么间的关联度到底有多大是基于关联规则的推荐要研究的主要问题,我们主要可以利用数据挖掘技术找出它们的关联性并把这种关联度进行量化,最后把量化的关联度数值运用到推荐算法当中。
1.2.6 高级非传统的推荐算法
类型:深度学习、学习等级、Multi-armed bandits(探索/开发)、上下文感知推荐、张量分解、分解机、社会推荐
1.3 今日头条、抖音推荐算法
从以上分析可以看出,今日头条、抖音推荐算法属于高级非传统混合推荐算法。
2 推荐系统任务模式
从推荐系统的任务模式来看,主要还是可以认为是一种分类任务。
2.1 协同过滤算法
定义:通过在用户的一系列行为中寻找特定模式来产生用户个性化特殊推荐。
输入:仅仅依赖于惯用数据(例如评价、购买、下载等用户偏好行为)
类型:基于邻域的协同过滤(基于用户和基于项);基于模型的协同过滤(矩阵因子分解、受限玻尔兹曼机、贝叶斯网络等等)
优点:需要最小域,不需要用户和项,大部分场景中能够产生足够好的结果
缺点:冷启动问题,需要标准化产品,需要很高的用户和项的比例(1:10),流行度偏见(有长尾的时候表现不够好),难于提供解释
3 潜在因子/潜语义模型 (LFM)推荐方法
潜在因子模型是一种基于机器学习的方法,具有较好的理论基础:通过构建样本数据的低维潜在空间,讲高维原始数据映射到潜在空间中,获取样本点的潜在因子,从而捕捉数据的内隐特征和本质几何结构。在信息推荐系统的应用中,潜在因子模型一般用潜在因子表达用户和信息对象的潜在特征,其作为一种实现大数据处理与分析的有效工具,已在很多领域取得了广泛的应用,如应用于电影信息推荐领域的SVD++(singular value decomposition ++)模型、应用于数据挖掘领域的LDA(latent dirichlet allocation)模型以及应用于信息检索领域的PLSI(probabilistic latent semantic indexing)模型等。这些潜在因子模型在学习样本数据的潜在因子时多采用了经典矩阵分解算法,如主成分分析 (principle component analysis, PCA) 算法、奇异值分解(singular value decomposition, SVD)算法、非负矩阵分解(nonnegative matrix factorization, NMF)算法以及稀疏编码(sparse coding, SC)算法等。然后,模型通过在潜在空间中构建的潜在特征因子内积值来预测目标用户对潜在推荐对象的喜好程度,从而实现信息推荐。然而,潜在因子模型一般用于处理单领域内容的信息特征挖掘,并不适用于处理跨领域多源异结构信息建模及信息推荐。
对于单领域信息推荐系统,基于矩阵分解的LFM是当前效果最好的信息推荐算法。采取基于特征推荐算法,即对视频的兴趣进行分类,针对于一个用户,最先得到他的兴趣分类,再从兴趣分类中找到他可能会喜欢的视频。LFM直接从数据出发,自动找到那些隐类,并进行个性化推荐。
基本逻辑过程如下:
3.1 基本思路

3.2 实现原理

3.3 实现技术

3.4 结果

4 今日头条、抖音推荐算法优势
推荐效果要好,涉及到三个部分。数据预处理、模型选择、结果优化。头条在这三个方面都做了不少好的工作。
4.1 数据预处理
通过多年的积累,抖音对于内容和用户特征都有了大量积累,在什么样的环境中行为模式也有了经验,这个过程并不是仅仅靠算法进行特征学习(深度学习方法)或者特征工程(机器学习方法)来实现,而是充分利用了常识、社会学、心理学等相关研究成果,让这种相关具有理论基础或者符合事实逻辑,对于关系等建立具有非常好的效果。于是对象的那些特征是有用的,甚至都有了一定的关系确立。事实上,数据准备工作对于效果的影响占70%左右,这一块做好了,后续工作容易得多。
4.2 模型算法
利用广告点击率模型中常用的线性LR和深度学习DNN方法来训练模型,在广告上行之有效。DNN中可能使用的是CNN方法,在稀疏网络的隐藏层中进行特征学习是一个很成熟的过程,输出层的分类中应该是多因素分类,激活函数可能是 SoftMax。
4.3 结果优化
抖音使用来多种算法来进行多因素分类,最后的结果是使用了模型融合方法,这样让结果更有效。
4.4 解决了几个问题
冷启动是一个麻烦问题,协调过滤中就一直解决不了这个问题。头条通过对用户喜好预先打标签,对内容通过分词选择抽取文本特征,利用 NLP获得语义含意,得到显示或者隐式语义特征标注,这样让内容和用户对象匹配解决了冷启动这个问题。
在评估上有一套有效方法,如目标阶段性、生态系统优化、经济效益等。
海量数据、强大算力、获得认可,这个良好的正反馈会让这个公司发展更好。
5 问题
还是觉得有几个问题。一个是推荐窄化。会让一些人更偏执。一个可能存在的大数据杀熟应用。最后是一个非常严重问题,个人隐私保护中企业的责任与担当。
原文:https://mp.weixin.qq.com/s/NOLOm4VBohR2QlJVuCVnVw
今日头条、抖音推荐算法原理全文详解!
网友评论