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

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 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)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
目录
相关文章
|
2月前
|
弹性计算 人工智能 安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
432 0
|
2月前
|
Java Go Maven
阿里云云效问题之使用香港构建集群有审计要求如何解决
云效镜像是指存储在阿里云效服务中的容器镜像,它们可以用于持续集成和持续部署(CI/CD)流程中;本合集将介绍如何在云效平台上管理和使用镜像资源,以及常见的镜像问题和解决办法。
130 0
|
3月前
|
安全 网络虚拟化 云计算
阿里云转发路由器Transit Router:构建云上高效、灵活且安全的网络架构之利器
本评测报告围绕阿里云转发路由器Transit Router(TR)在跨地域跨VPC网络互通、企业云上网络架构规划和第三方SD-WAN设备对接三个场景的表现进行了详细评估。评测结果显示,TR凭借强大的路由控制能力和灵活的互通策略,在云上构建高效、灵活且安全的网络架构方面表现出色。同时,TR与第三方SD-WAN设备的良好兼容性也为企业提供了更多组网选择。本报告旨在为企业在云上网络架构规划和部署过程中提供参考和指导。
|
2月前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
478 0
|
2月前
|
机器学习/深度学习 搜索推荐 算法
构建推荐系统:Python 与机器学习
推荐系统是一种利用机器学习算法和用户的历史行为数据来预测用户可能感兴趣的内容的技术。在当今的数字化时代,推荐系统已经成为许多互联网应用的核心组件,如电子商务、社交媒体和在线娱乐等。在 Python 中,我们可以使用各种机器学习库和工具来构建和实现推荐系统。
|
12天前
|
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与后端通信。这种前后端分离的架构利于协作和系统扩展,助力打造定制化音乐体验。
|
1月前
|
弹性计算 网络协议 关系型数据库
网络技术基础阿里云实验——企业级云上网络构建实践
实验地址:<https://developer.aliyun.com/adc/scenario/65e54c7876324bbe9e1fb18665719179> 本文档指导在阿里云上构建跨地域的网络环境,涉及杭州和北京两个地域。任务包括创建VPC、交换机、ECS实例,配置VPC对等连接,以及设置安全组和网络ACL规则以实现特定服务间的互访。例如,允许北京的研发服务器ECS-DEV访问杭州的文件服务器ECS-FS的SSH服务,ECS-FS访问ECS-WEB01的SSH服务,ECS-WEB01访问ECS-DB01的MySQL服务,并确保ECS-WEB03对外提供HTTP服务。
|
1月前
|
人工智能 DataWorks 数据可视化
心动基于阿里云DataWorks构建游戏行业通用大数据模型
心动游戏在阿里云上构建云原生大数据平台,基于DataWorks构建行业通用大数据模型,如玩家、产品、SDK、事件、发行等,满足各种不同的分析型应用的要求,如AI场景、风控场景、数据分析场景等。
334 1
|
2月前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(1)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(1)
427 0
|
2月前
|
监控 容灾 安全
规划阿里云RDS跨区迁移并构建容灾与备份策略
规划阿里云RDS(Relational Database Service)跨区迁移并构建容灾与备份策略
111 2

热门文章

最新文章