推荐系统之业务架构总览
前言
前一篇介绍了推荐系统冷启动的问题,既然已经cold start了,这一节就大致讲下新闻推荐系统的业务架构,也就是新闻推荐系统需要有哪些模块组成,每一个模块的职责是什么。
首先看下整个新闻推荐系统大图,今天这篇文章就是为大家讲解这张图的具体含义和相互关系,今天主要是介绍大概最为开篇,接下来会有一系列文章介绍图中每一部分的策略。
(画图不容易版权相关,转载请注明出处~)
图中红色相关的形状是两个输入,分别是用户和内容,分别代表两个路径,表示的是当推荐系统进入一个用户或一个内容的行为轨迹。本文把整个推荐系统按照业务路径分成3个部分,分别是用户数据轨迹、内容数据轨迹以及推荐列表生成,接下来分别介绍下每个环节的作用。
01
用户轨迹
用户轨迹方面,每次进来一名用户首先要判断这名用户是否是新用户,一旦发现是新用户将启动冷启动策略,这个策略在之前的文章已经介绍过。如果用户不涉及到冷启动问题,则进入用户画像的构建流程。
用户画像的构建分为两种,分别是用户注册标签特征(用户注册的时候获取的特征),还有一种是平台行为特征(用户过去在平台的一些操作日志)
用户注册标签特征
这部分特征是原始生成的,不需要每次用户登录都重新计算并修改。
账号注册信息:注册的时候可以让用户填写年龄、性别等内容、手机号等内容,同时也可以通过LBS信息了解用户的活动区域。针对这些信息可以给用户兴趣做一个初步判断,比如年轻的都市女性,往往有较高的消费能力,在推荐策略上可以推荐高规格的一些内容
身份证信息:现在很多系统都需要实名认证,身份证号其实可以带来很多有用的信息,比如前两位是省级代码,34位是市级代码,7-14位是生日代码,第17位是性别代码(奇数代表男性、偶数代表女性)
社交账号登录:如果系统可以设计成支持淘宝、微信等账号登录,也可以通过这些系统拿到部分用户画像信息
预采集:现在很多APP,当用户初次进入都有一个兴趣爱好勾选的按钮,这个就是为了解决冷启动的一个手段,在推荐之前先通过用户标记获取用户信息
数据交换:注册的时候其实可以拿到用户的手机号码,现在有很多卖数据的公司都提供用户画像数据的交易,只要提供手机号就能获取特别全的用户数据(这个貌似是个黑产业)
平台行为特征
需要每次用户登录都记录的特征
用户历史的浏览记录,比如用户关注了哪些类目的新闻,比如体育新闻或者娱乐新闻
用户在平台上的一些反馈,评论、点赞、收藏都信息
用户的LBS变化信息,比如用户经常往返于北京和杭州,这些信息需要实时抓取
获取了以上用户的特征信息,做汇总就可以入“用户总库”,这个用户行为数据库将对接下来的模型训练起到重要作用。
02
内容轨迹
内容轨迹指的是每次平台新增新闻内容时的操作。新闻内容不同于其它推荐场景,对于内容的安全审查是非常重要的。如果出现不健康内容,对于平台会有很大的伤害,具体策略日后详细讲解。执行完内容审查,要开始对内容进行打标,标签分两种,分别是内容自身特征以及平台行为特征。
注:新闻推荐的更多是倾向于文章标题推荐,而安全审查更多地针对文章内容
内容自身特征
内容自身的属性,不需要频繁更新
内容所属类别,可以分多个级别标记,比如可以标为体育,体育下一级还可以标为篮球,这个标注是依靠算法实现。比如关键词提取或者主题模型
内容主体识别,标记出文章包含哪些主体,比如下面这句话“费德勒是个出色的网球运动员”。可以找出“网球”、“运动员”、“费德勒”这3个主体
文章的发布时间、发布者等信息,以及是否有地理相关性的特征
平台行为特征
平台行为特征指的是新闻内容在平台上历史被点击、点赞、收藏、转发等信息。
03
推荐候选集生成轨迹
当收集了内容以及用户特征后,就组成了所有平台上的内容总库以及用户总库,可以将这两个组件合并构建出模型训练集。训练集汇总了所有平台上的某某文章被某某阅读点击过的全部行为日志,这样就可以通过算法训练一个模型用来新闻推荐。
算法有很多形式可以选择,这个在未来的章节详细介绍
有了内容推荐模型后,要进行的操作就比较简单了,为用户预测出他感兴趣的模型。有的同学会说,既然有了模型那么对每个用户在全网所有文章的兴趣点预测一次,取topN不就可以了?通常推荐系统不会这么做,因为每个用户对每个文章都算一下兴趣度计算量非常大,而且很难在用户进入新闻终端时快速拿到预测结果。
通常的做法是先通过召回策略筛选出部分推荐候选集,再通过内容推荐模型对候选集进行预测并排序,这样就可以大大减少计算量。
召回策略候选集可以通过用户画像标签从内容总库中快速查询获得。
通过内容推荐模型对召回候选集数据进行预测,拿到用户感兴趣的文章排序列表,就可以推送给用户。以上是本文的介绍,略过了中间的很多策略,待后续文章补充。
参考文献:http://lusongsong.com/info/post/9829.html
推荐系统之业务架构总览相关推荐
- 程序员新手 0年份等级 指导(一) 开发人员IT架构总览
程序员新手 0年份等级 指导(一) 开发人员IT架构总览 程序员新手 0年份等级 指导(一) 开发人员相关IT架构总览之职能分解 开发人员IT架构总览 一.职能分解 软件项目的主要组成大体上按照一个项 ...
- Python黑马头条推荐系统第一天 架构介绍和离线计算更新Item画像
Python黑马头条推荐系统项目课程定位.目标 定位 课程是机器学习(包含推荐算法)算法原理在推荐系统的实践 深入推荐系统的业务流场景.工具使用 作为人工智能的数据挖掘(推荐系统)方向应用项目 目标 ...
- 核心银行系统 之二十 业务架构
核心银行系统 之二十 业务架构 业务架构 image.png image.png 客户体系设计 image.png image.png 客户索引层:以全行统一客户编号作为唯一键建立全行客户索引,记录全 ...
- 【华为云原生入门级认证】第 1 章 云原生架构总览
云原生 第1章 云原生架构总览 1.1 云技术发展历程 1.2 云原生的定义 云原生出现的背景 如今企业大都处于下图中黄色和红色的板块,所以将软件迁移到云上就成为了极大的趋势. 云原生定义 - Piv ...
- 京东数科业务架构全披露,陈生强发布城市操作系统和京东钼媒
11 月 20 日,在 JDD-2018 京东数字全球探索者大会上,陈生强宣布,京东数字科技(JD Digits)正式成为京东金融的母品牌,这也意味着它的业务架构逐渐明晰,主要下设了京东金融.京东城市 ...
- 迁移到MySQL的业务架构演进实战
来自:DBAplus社群 作者介绍 杨建荣,dbaplus社群联合发起人,竞技世界资深DBA,前搜狐畅游数据库专家,Oracle ACE,腾讯云TVP.具有十多年数据库开发和运维经验,目前专注于开源技 ...
- 全局性业务架构建模工作步骤
执行业务建模以设计自己的业务时才增值.如果只是构造现有组织的图以得到系统需求,则没有必要定义业务体系结构. 全局性业务架构建模的主要步骤如下: 1.生成业务体系结构的预览 业务体系结构概述 ...
- 中台之上(十一):企业级业务架构设计的“五难”
我们简单回顾一下,以业务架构的发展过程和对业务模型基本介绍作为开始,结合笔者的工作经验和自身一些不成熟的理解,在业务架构设计方面陆续讲到了企业战略解读.企业组织结构的影响.如何划分业务领域和流程.与流 ...
- 架构师之路 — 业务架构 — Overview
目录 文章目录 目录 业务架构 TOGAF 设计的业务架构 业务架构 OMG 的业务架构工作组(BAWG)给了如下定义: 业务架构明确定义企业的治理结构.业务能力.业务流程.业务数据.其中,业务能力定 ...
最新文章
- docker私有仓库harbor配置helm chart仓库(安装helm chart插件)
- Java 在指定目录中创建文件
- 动态规划 —— 背包问题 P09 —— 背包问题的变化
- 浅析Kubernetes Pod重启策略和健康检查
- 可配置语法分析器开发纪事(二)——构造符号表
- 数据结构课程设计c语言运动会管理系统
- libaio.so.1 is needed by MySQL-server-5.5.48-1.linux2.6.i386
- 试论有关收买被拐卖妇女行为的刑法规制
- MSDC 4.3 接口规范(22)
- 【20210910】【机器/深度学习】lightGBM模型训练中报错:“Cannot set reference after freed raw data“
- 【分享】SBO初始化的过程及内容
- 基于VOIP的SIP协议分析
- 未来人工智能技术的应用领域有哪些?
- 正路走得慢,但是走得远
- uni-app 封装组件
- 【原创】谈一个数学教育专业的IT职业生涯
- ucenter php版本,PHP优秀系统UCenter的MVC架构
- 老网站后台管理密码找出
- android音乐播放器开发在线加载歌词,android自定义view面试
- 2019 CCPC Final K - Russian Dolls on the Christmas Tree
热门文章
- PAT甲级1004 Counting Leaves (30分):[C++题解]树、邻接表存储树、dfs遍历树
- # 日期待t_2020最值得期待的几款新车
- 《剑指offer》c++版本 9. 用两个栈来实现一个队列
- Linux视频切片m3u8,使用ffmpeg+nginx使用视频切片播放
- ajax异步请求验证ua的网页,ajax 异步请求数据
- 计算机英语语言学考研真题,考研类试卷英语专业语言学历年真题试卷汇编14
- php 图像 处理,PHP 处理图像步骤解析
- android 之Activity的五种传值方式 (在从当前Activity跳转到目标Activity时的传值方式)
- python矩阵分解
- 跑步app保活_android判断不同手机厂商,打开允许后台运行APP弹窗