克拉克拉(KilaKila):借力阿里云快速构建短视频推荐系统

本文涉及的产品
模型训练 PAI-DLC,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 一文读懂如何利用阿里云PAI平台搭建个性化智能推荐系统

作者:阿里云MVP田亮

一、产品背景
克拉克拉(KilaKila)是国内专注二次元、主打年轻用户的娱乐互动内容社区软件。KilaKila 推出互动语音直播、短视频、对话小说等功能,满足当下年轻用户个性化、碎片化的文娱需求。其中短视频每天都有海量的视频素材产生,这对用户造成了严重的信息过载,难以从中自主挑选感兴趣的内容。每一位视频内容的消费者同时也是生产者,期望自己的作品能够被更多的志同道合者所看到,获得最大的曝光度。
为解决以上矛盾,考虑构建个性化推荐系统,在不需要用户明确说明更多信息的情况下仅仅依靠分析用户的历史行为数据,为用户推荐他可能感兴趣的内容。同时,推荐系统能够有效挖掘长尾内容,使一些小众的主题作品能够获得尽可能多的展示机会。面对以上业务诉求,经技术调研后决定使用阿里云PAI平台搭建基于KilaKila二次元UGC的个性化智能推荐系统,即个性化和排序技术为基础的热门视频推荐服务。

二、整体架构:
推荐系统整体架构分为两个阶段,即召回阶段+排序阶段。召回阶段可以由若干召回通道组成,根据用户的历史兴趣和历史行为从千万级别的视频库中挑选出一个候选集,候选集远小于视频库但大于最后呈现给用户的推荐列表。
在推荐系统中采用协同过滤算法生成视频候选集,候选集中都是用户可能会感兴趣的内容。
排序阶段则是在召回的候选集上根据相应的指标,如覆盖率、满意度、新颖度等综合各个召回通道的结果对候选集中的内容进行更加精准的计算并排序,达到从候选集中进一步挑选出用户最可能的感兴趣的高质量内容,生成推荐列表,一般为1000左右。我们使用LR+GBDT算法模型对召回阶段的视频候选集进行打分排序,该模型首先被Facebook在2014年提出,模型集成了LR和GBDT的优点。GBDT发现有效的特征组合Feature Set,然后将Feature Set引入到LR模型中。该技术方案目前广泛使用在各大互联网公司推荐系统中。KilaKila推荐系统整体架构如下图1所示:
image
▲图1 KilaKila推荐系统整体架构

该视频推荐系统主要以阿里云机器学习平台(PAI)和MaxCompute
数加平台搭建的,如下图2所示:

image
▲图2 阿里云机器学习平台

三、日志采集
用户在使用KilaKila APP时会产生各类行为日志。针对行为日志采集环节,我们选择了阿里云日志服务(Log Service)。该组件首先在本地服务器部署Logtail服务,该服务将日志实时传输到LogHup所配置Log Store中(Topic)。在Log Store基础上通过投递服务将海量日志同步到MaxCompute数据仓库中供批处理离线计算。与此同时,该海量日志也会被storm集群用于实时消费,满足实时业务和模型实时反馈。 如下图3所示:

image
▲图3 阿里云日志采集

四、特征工程

  1. 特征正确性
    特征正确是保证模型训练有效性的前提,该过程需要注意平滑方式、值域上下限。
  2. 特征离散化
  3. 大规模组合
  4. 加强重要特征的作用
    由于模型的参数估计环节存在受多种因素影响的可能性,这种影响会导致重要特征作用不足。所以可以增强该特征与训练目标的相关性,例如个性化特征。
  5. 向量化 - embedding
    相关或相似的词可使用embedding表征用户和内容来做推荐,避免分别建模的损耗。如下图4所示:

image
▲图4 特征工程

五、召回阶段
1. 基于协同过滤的召回
这里使用基于物品的协同过滤算法,即为用户推荐与历史喜欢过物品所相似的物品,这个过程称之为基于物品的协同过滤算法(ItemCF)。但该过程不是利用物品内容属性计算物品之间的相似度而是通过分析用户行为来计算物品之间的相似度。如下图5所示
image
图5

该算法主要分为两步
1计算物品之间的相似度;
2根据物品的相似度和用户的历史行为生成推荐列表。
定义物品的相似度

image

其中 |𝑁(𝑖)|表示喜欢物品 i 的用户数。但该公式会造成任何物品都会和热门物品有很大的相似度,这不利于挖掘长尾信息。为了避免推荐出热门的物品,改进为:

image

2. 基于内容的召回
从历史记录中推测用户的偏好——如果两个人所看的视频相似,那么这两个人就相似。如果两个视频被相同的群体消费,那么这两视频就相似。所以协同过滤的做法根本没有考虑推荐内容方面的知识结构,也可以说协同过滤算法是内容无关的,所以我们使用多路召回,也就是在协同过滤的基础上再加上基于内容的召回。
具体思路是将视频的图像和音频分别转换为图片的形式,基于图片数据训练一个深度学习卷积神经网络模型,该训练模型分别对每个视频提取图像embedding特征向量和音频embedding特征向量。最后合成基于图像和音频的视频内容embedding特征向量。根据特征向量的相似度对每个视频召回候选集合。如下图6所示:

image
▲图6 基于深度学习的视频内容理解模型

六、排序阶段
在召回阶段之后获得了视频候选集,但直接将候选集呈现给用户仍然太过庞大,需要对召回结果做进一步精细化的排序处理。这里采用流行的 GBDT+LR 模型,模型结构如图7所示:
GBDT 是基于 Boosting 思想的 ensemble 模型,由多颗决策树组成,具有以下优点:
(1)对输入特征的分布没有要求。
(2)根据熵增益自动进行特征转换、特征组合、特征选择和离散化,得到高维的组合特征,从而省去了人工转换的过程并且支持了多个特征的 Interaction。
(3)预测复杂度与特征个数无关。

image

▲图7 GBDT+LR 模型

七、模型评估
1. 准确率。
预测准确率是度量一个推荐系统的能力,是最重要的推荐系统离线评测指标。
计算方法:已知一个离线数据集,该数据集包含用户的历史行为数据。通过时间将该数据集分成训练集和测试集。在训练集上建立用户的行为与兴趣模型,而后将该模型用于预测用户在测试集上的行为表现并计算预测行为与测试集上实际行为的重合度,TopN 推荐的预测准确率会得到precision和recall两个度量指标。

image

3. 覆盖率
覆盖率(coverage)描述一个推荐系统对物品长尾的发掘能力,简单定义为推荐系统能够推荐出来的物品占总物品集合的比例。

image

其中,系统用户集合为 U,推荐系统给每个用户推荐一个长度为 N 的物品列表 R(u)。覆盖率也可以用信息熵和基尼系数定义。覆盖率为 100%的推荐系统会将每个物品推荐给至少一个用户。为了更细致描述推荐系统发掘长尾的能力,需要统计推荐列表中不同物品出现次数的分布,如果所有物品都出现在推荐列表中且出现的次数差不多,则推荐系统具有较好的发掘长尾能力。但是在视频推荐中视频质量参差不齐,如果单纯为追求覆盖率则会导致高质量视频被低质量视频稀释,因为在视频推荐中可以容忍较低的覆盖率。
推荐系统一般都具有马太效应。评测推荐系统是否具有马太效应,可以使用基尼系数,设 G1 是从初始用户行为中计算出的物品流行度的基尼系数,G2 是从推荐列表中计算出的物品流行度的基尼系数,如果 G1

八、 阿里云机器学习平台(PAI)应用
KilaKila视频智能推荐系统是基于阿里云机器学习 PAI 平台搭建的,主要处理流程包括数据预处理、特征提取、模型训练、模型评估、在线实时预测。如下图8所示:

image

▲图8 Kilakila模型训练流程

在数据预处理阶段,主要以阿里云日志服务(Log Hup)和MaxCompute为中心所构建数据处理系统。
在模型训练阶段,召回过程主要采用协同过滤算法,其根据热门视频、兴趣视频、qurey视频生成召回候选集合;在排序阶段使用LR+GBDT模型。在训练过程中,根据需求和目标不断的调整参数和融合。
模型评估阶段使用PAI平台二分类评估组件和混淆矩阵组件进行模型评估。通过生成可视化评估报告来查看模型的各种指标数据,例如AUC值,如图9所示。通过模型评估让推荐系统变得灵活可控。
在实时预测阶段通过用户行为实时反馈提升用户体验。此外,根据用户的实时反馈建立用户的长短期兴趣并且建立基于人类记忆遗忘模型来搭建内容基础质量打分体系。
模型上线后,我们使用ABTest接口系统来评判模型的好坏,主要的评判指标是人均消费视频个数和视频曝光点击转化率。

image

▲图9 模型auc

至此,整个推荐过程结束。通过阿里云所提供的丰富开发套件和算法库,大大缩短了克拉克拉(Kilakila)从想法到产品落地的研发周期。

相关实践学习
使用PAI-EAS一键部署ChatGLM及LangChain应用
本场景中主要介绍如何使用模型在线服务(PAI-EAS)部署ChatGLM的AI-Web应用以及启动WebUI进行模型推理,并通过LangChain集成自己的业务数据。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
6月前
|
机器学习/深度学习 搜索推荐 算法
构建推荐系统:Python 与机器学习
推荐系统是一种利用机器学习算法和用户的历史行为数据来预测用户可能感兴趣的内容的技术。在当今的数字化时代,推荐系统已经成为许多互联网应用的核心组件,如电子商务、社交媒体和在线娱乐等。在 Python 中,我们可以使用各种机器学习库和工具来构建和实现推荐系统。
|
1天前
|
机器学习/深度学习 数据采集 搜索推荐
利用Python和机器学习构建电影推荐系统
利用Python和机器学习构建电影推荐系统
10 1
|
6月前
|
机器学习/深度学习 数据采集 人工智能
构建一个基于AI的推荐系统的技术探索
【5月更文挑战第23天】本文探讨了构建基于AI的推荐系统的关键技术,包括数据收集、预处理、特征工程、推荐算法(如协同过滤、内容过滤、深度学习)及结果评估。通过理解用户行为和偏好,推荐系统能提供个性化建议。实现步骤涉及确定业务需求、设计数据方案、预处理、算法选择、评估优化及系统部署。随着技术进步,未来推荐系统将更加智能。
|
3月前
|
机器学习/深度学习 搜索推荐 数据可视化
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 建模及python代码详解 问题二
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛C题的解决方案,重点讲解了如何构建招聘与求职双向推荐系统的建模过程和Python代码实现,并对招聘信息和求职者信息进行了详细分析和画像构建。
73 1
|
3月前
|
存储 人工智能 搜索推荐
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 27页论文及实现代码
本文介绍了2023年第十一届泰迪杯数据挖掘挑战赛C题的解决方案,详细阐述了如何构建泰迪内推平台的招聘与求职双向推荐系统,包括数据收集、分析、画像构建、岗位匹配度和求职者满意度模型的建立,以及履约率最优化的推荐模型,提供了27页的论文和实现代码。
72 0
【2023年第十一届泰迪杯数据挖掘挑战赛】C题:泰迪内推平台招聘与求职双向推荐系统构建 27页论文及实现代码
|
4月前
|
存储 搜索推荐 算法
`surprise`是一个用于构建和分析推荐系统的Python库。
`surprise`是一个用于构建和分析推荐系统的Python库。
|
5月前
|
机器学习/深度学习 人工智能 搜索推荐
构建基于AI的个性化新闻推荐系统:技术探索与实践
【6月更文挑战第5天】构建基于AI的个性化新闻推荐系统,通过数据预处理、用户画像构建、特征提取、推荐算法设计及结果评估优化,解决信息爆炸时代用户筛选新闻的难题。系统关键点包括:数据清洗、用户兴趣分析、表示学习、内容及协同过滤推荐。实践案例证明,结合深度学习的推荐系统能提升用户体验,未来系统将更智能、个性化。
|
4月前
|
算法 搜索推荐
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流
推荐系统,推荐算法01,是首页频道推荐,一个是文章相似结果推荐,用户物品画像构建就是用户喜欢看什么样的文章,打标签,文章画像就是有那些重要的词,用权重和向量表示,推荐架构和业务流
|
6月前
|
存储 搜索推荐 算法
大模型开发:在构建推荐系统时,你会考虑哪些因素?
构建推荐系统涉及关键因素:用户行为数据(理解兴趣)、物品属性(相似性分析)、上下文信息(时间、地点)、冷启动问题(新用户/物品推荐)、可扩展性与性能(高效算法)、多样性(避免单一推荐)、可解释性(增强信任)和评估优化(准确性和用户满意度)。通过综合运用这些因素,打造精准且有效的推荐服务。
123 1
|
6月前
|
JavaScript 搜索推荐 前端开发
音乐发现平台:借助Python和Vue构建个性化音乐推荐系统
【4月更文挑战第11天】本文介绍了如何使用Python和Vue.js构建个性化音乐推荐系统。首先确保安装Python、Node.js、数据库系统和Git。后端可选择Flask或Django搭建RESTful API,处理歌曲数据。前端利用Vue.js创建用户界面,结合Vue CLI、Vuex和Vue Router实现功能丰富的SPA。通过Vuex管理状态,Axios与后端通信。这种前后端分离的架构利于协作和系统扩展,助力打造定制化音乐体验。
155 0
下一篇
无影云桌面