>首页> IT >

“推荐系统中的特征工程”02:推荐系统与特征工程

时间:2021-10-13 13:24:31       来源:腾讯新闻

作者 | gongyouliu

编辑 | auroral-L

全文共9020字,预计阅读时间60分钟。

大家好,我是强哥。一个热爱暴走、读书、写作的人!

本章目录

一、推荐系统简介

1. 什么是推荐系统?

2. 主流的4类推荐系统产品形态

1)个性化猜你喜欢

2)关联推荐

3)信息流推荐

4)排行榜推荐

二、推荐系统架构下的特征工程

三、推荐系统中特征的维度

1. 用户维度的特征

2. 物品维度的特征

3. 用户行为特征

4. 场景化特征

5. 交叉特征

四、推荐算法与特征工程

1. 个性化猜你喜欢下的样本与特征

2. 关联推荐下的样本与特征

五、推荐系统特征工程面临的挑战

1. 异构的数据

2. 实时推荐

3. 复杂场景下的推荐

4. 用户隐私与信息安全

六、推荐系统特征工程的未来发展

总结

我们在第一章中讲到,在机器学习任务中,我们需要事先通过特征工程将原始数据转化为机器学习可以直接使用的数据格式(一般是数值向量的形式),然后才能进行机器学习模型的训练、推断。

推荐系统作为机器学习的一个偏应用的子领域,当然也需要进行特征工程相关的工作。在推荐系统的业务流程中,特征工程所起的作用也是类似的,我们需要经过特征工程将推荐系统依赖的数据转化为可以被推荐算法直接使用的特征,然后进行模型训练、构建、评估、推断,具体流程见下面图1。

图1:特征工程在机器学习建模中所处的阶段

推荐系统作为机器学习应用子领域,有自身的特点。因此,推荐系统的特征工程工作有具体而特殊方法和思路。这一章我们就来讲解推荐系统中的特征工程相关的整体框架和基本概念,希望读者可以对推荐系统中的特征工程有一个比较清晰的了解。我们在第三、第四篇会从特征工程的具体实施原理、方法以及具体的行业应用案例等多个维度全方位地讲解推荐系统特征工程方面的知识。

第一章我们已经对特征工程的一些基础知识做了简单介绍,本章我们讲解与推荐系统相关的特征工程方面的其他知识点,也是为后续章节详细的介绍提供一些基础的准备。具体来说,本章我们会从推荐系统简介、推荐系统架构下的特征工程、推荐系统中特征的维度、推荐算法与特征工程、推荐系统特征工程面临的挑战、推荐系统特征工程的未来发展等6个方面来讲解,下面我们先简单介绍一下推荐系统,让没有经验的读者可以大致了解什么是推荐系统以及推荐系统主流的几种产品形态。

一、推荐系统简介

相信大家经常用淘宝、抖音、微信等日常生活中比较流行的APP,应该大致也体验过推荐系统带给我们的便利,对推荐大家多多少少是知道一些的,并不陌生。因此,这一节我们就简单介绍一下推荐系统,让读者有一个更整体、更直观的认知。这里我们只介绍什么是推荐系统以及主流的4类推荐产品形态。

1.什么是推荐系统?

推荐系统是机器学习中的一个偏业务应用的子领域,它通过利用用户、物品、用户行为等数据,构建一个算法模型,来预测用户对未知物品(这里的未知物品是指用户没有操作行为的物品,并不是代表用户不认识不知道这个物品)的兴趣偏好(是否点击、是否购买等)。

常用的推荐算法模型有两类:一类是基于内容的推荐,一类是协同过滤推荐。基于内容的推荐是基于用户相关数据、物品相关数据、该用户过去的操作行为(不依赖其他用户的行为),挖掘出用户的兴趣偏好进而为用户推荐他可能感兴趣的物品。基于协同过滤的推荐算法主要是利用所有的用户操作行为,挖掘出用户之间或者物品之间的内在关联关系,基于该关联关系将物品推荐给用户(比如挖掘出相似的用户,将相似用户喜欢的物品推荐给某个对该物品没有操作行为的用户)。

当前主流的手机APP(如微信、淘宝、抖音、美团等)都将推荐系统作为核心功能,他们通过推荐系统来提升用户体验,提高资源匹配效率,最终创造商业价值。下面对推荐系统的主流产品形态做一个说明,让大家更直观地了解推荐系统的应用。

2.主流的4类推荐系统产品形态

推荐系统最主要的四种产品形态是个性化猜你喜欢、关联推荐、信息流推荐、排行旁推荐。下面分别介绍。

1)个性化猜你喜欢

个性化猜你喜欢就是为某个用户推荐他感兴趣的物品的一种推荐形态,我们通常所说的推荐系统一般指的就是这种产品形态。下面图2是电视猫上电影频道的猜你喜欢,这个产品形态为每个用户推荐他感兴趣的电影。

图2:电视猫电影频道的猜你喜欢

2)关联推荐

关联推荐就是将跟某个物品相关的物品作为推荐结果展示给用户,当用户在浏览该物品的详情页时,为用户推荐相关或者相似的其他物品,提升用户体验,增加物品的曝光和转化。关联推荐可以以两种方式实现:一种是非个性化的,即所有用户在同一个物品的详情页看到的关联推荐是一样的;另一种是个性化的,也就是每个用户在同一个物品的详情页中看到的关联推荐是不一样的,关联的是跟该用户兴趣匹配的物品。这种个性化的实现在技术要求及算法难度上会更高一些,我们在本书讲到的关联推荐都是指非个性化的关联推荐。

图3:电视猫视频的关联推荐

3)信息流推荐

信息流推荐是今日头条最先独创的一种推荐产品形态,它也是一种个性化的推荐算法,只不过是根据用户的实时反馈及时调整用户的推荐结果,给用户所见即所得的体验。信息流推荐可以大大提升物品的曝光频率,提升用户体验,更具有商业价值。下面图4是电视猫音乐MV的信息流推荐,由于是在智能电视场景,操作使用遥控器,这个产品是通过左右滑动来更新的,跟手机上的触屏上下滑动不一样。

图4:电视猫音乐MV信息流推荐

4)排行旁推荐

排行榜推荐是将平台上比较热门(通过用户操作行为来计算是否热门)的物品展示给用户,一般每个人展示的物品是一样的,它是一种非个性化的推荐形式。因为人作为一个群体是有共性的,大多数人喜欢的你喜欢的概率也很大,同时人是有从众心理的,大家喜欢的,你也可能喜欢。排行榜推荐是符合人类自身规律的,因此效果是很不错的。排行榜推荐也可以作为个性化推荐的冷启动方案。一般排行榜推荐利用用户行为数据进行统计就可以获得,不需要复杂的算法模型。下面图5是微鲸电视上的排行榜推荐,有最新榜、最热榜、明星榜、收藏榜等4类榜单。

图5:微鲸电视上的排行榜推荐

这里只讲解这4个主要的推荐产品形态,其他更多的产品形态可以从这几个进行延伸和拓展。我们对推荐系统就介绍到这里了,如果想深入学习推荐系统的读者,可以购买我之前出版的专著《构建企业级推荐系统:算法、工程实现与案例分析》。下面我们讲解一下企业级推荐系统架构与特征工程之间的关系。

二、推荐系统架构下的特征工程

由于本书是一本企业级推荐系统的入门读物。我们讲解的推荐系统架构也是按照当前主流的企业级推荐系统架构来讲解的。在企业级推荐系统中,一般推荐过程采用pipeline架构,完整的推荐算法核心流程可以分解为召回、排序、业务调控这三个阶段(有的公司还将排序分为粗排和精排,我们这里统一为排序),具体流程可以参考下面图6。

图6:企业级推荐系统pipeline架构

下面我们对这3个阶段涉及到的具体工作及与特征工程相关的事项进行说明,让读者从整体上对推荐中的特征工程有一个初步了解。

召回阶段一般是采用不同的方法和策略(可以是机器学习算法,也可以是人工规则或者策略)将用户可能喜欢的物品筛选出来。不同的方法选择物品的维度及侧重点不一样,这样多种召回方法可以更全面地覆盖用户可能喜欢的物品的范围,避免漏选用户喜欢的。下面图7给出了一组可行的召回策略。

图7:企业级推荐系统召回策略

从上面图中大致可以知道,有些召回是基于一些规则和策略的(比如基于地理位置的召回、基于新热的召回),这就不需要复杂的算法,基本只需要进行选择过滤就够了,因此就不需要特征工程。有些复杂的召回算法,比如矩阵分解、深度学习、LDA等是需要进行特征工程的。

每一个召回算法会获得一个推荐物品的候选集,排序阶段是对所有的召回候选集进行重新打分,获得所有待推荐物品的最终排序。一般来说,排序阶段可以用一个统一的模型对候选集进行打分,这个模型可以是简单的模型(如logistic回归、分解机、树模型等)也可以是复杂的深度学习模型,不管怎样都是需要构建特征的。

在排序之后,我们还需要基于具体的业务规则对排序后的结果进行微调,这个过程一般是基于业务上或者运营中的具体活动或者场景进行的,这个过程一般是基于人工策略的,一般不需要进行特征工程。

因此,在推荐系统召回和排序中都是需要进行特征工程的。有了上面的介绍,下面我们来说说在推荐系统中可以从哪些维度去构建特征。

三、推荐系统中特征的维度

一般来说,在推荐系统中,我们至少可以收集到3个维度的数据,用户维度的,物品维度的,用户行为维度的,因此这3个维度都可以构建相关的特征。另外,推荐系统是一类偏业务的应用,推荐服务一般是在具体的场景中进行的(比如推荐餐厅,在家庭场景中做视频推荐等),因此场景化相关的特征也是非常重要的。最后,前面讲到的4个维度的特征还可以进行交叉,因此我们可以从如下5个维度来构建推荐系统的特征。

1.用户维度的特征

用户相关的信息对推荐算法是非常关键的,用户的年龄、性别、地域、学历、工作、收入等信息关系到推荐的精准度,这些相关信息都可以构建成特征供推荐算法模型使用,我们会在第8章详尽介绍用户维度的特征的提取方法。

由于行业限制或者隐私关系,不是所有用户信息都是可以收集到的,有些敏感信息也需要谨慎对待。一些支付场景是可以收集到用户的身份信息等比较详细的信息的,而一些不需要录入用户核心信息就可以使用的APP(比如新闻资讯、短视频等)可能获得的信息是有限的。

如果某个公司有多个产品,那么在一个产品中获得的用户信息是可以迁移到另一个产品使用的,比如盒马鲜生在刚开始做推荐时,是可以使用淘宝上的用户信息的,因为绝大多数盒马的用户也是淘宝的用户,而他们又都是阿里旗下的公司,信息是可以共享使用的。

在家庭场景中,由于家里有多个人,我们不知道在电视机前面看电视的人是谁,所以怎么挖掘用户维度的信息也是非常有挑战的。

2.物品维度的特征

推荐的物品也是包含很多信息的,比如商品的价格、产地、品类、颜色、大小等等,这些维度的信息都可以作为模型的特征。物品维度的特征对于推荐效果是非常重要的。

不同的产品获取物品维度特征的难易程度是不一样的。在长视频领域,一般会有结构化的视频metadata信息,物品维度的特征比较完整。而在新闻资讯领域,由于内容一般是UGC的,没有完整的物品维度信息,需要我们从新闻文本中取提取相关信息构建特征。

物品相关的信息一般有文本、音频、图片、视频等几大类,针对不同类别的数据构建特征的方式也是不一样的,我们会在第9章会详细介绍不同类别物品构建特征的方法,这里不赘述。

3.用户行为特征

用户在产品上的操作行为(比如点击、购买、播放、收藏、转发、点赞等)代表了用户强烈的兴趣偏好。用户行为数据是最容易获取的数据,也是数据量最多的数据,因此在构建推荐系统特征中至关重要。

行为特征可以从多个维度构建。可以从单个用户维度构建,如用户最近一次操作时间、用户最近一次操作的物品、用户平均一周登录次数、用户平均单次使用时长、用户客单价等;可以从群体维度构建,比如平均停留时长、平均客单价等;也可以基于行为进行embedding表示等等。具体怎么构建行为特征我们在第10章详细讲解,这里不细说。

4.场景化特征

推荐系统是一个偏业务的应用领域,具体的应用场景对推荐算法是非常重要的,也直接影响算法的具体部署和实施。因此与场景相关的特征对推荐系统是很关键的,甚至是决定性的。场景特征主要有地理位置、时间(早中晚、周末周中、是否是节假日、季节等)、上下文、产品上的路径阶段、用户使用的软硬件相关的信息(比如手机品牌、价位、系统版本等)、甚至用户操作习惯(按键的轻重)、用户的心情、天气等都可以是场景化的特征。

这里举几个例子来说明一下场景化特征的重要性。比如在外卖场景,用户当前的位置是决定性的,这涉及到餐厅的选择、配送路径等等。在家庭互联网场景,时间是非常重要的,白天晚上在家看电视的用户是不一样的(白天可能是老人,晚上是下班的年轻父母)。场景化特征的构建方法我们在第11章详细介绍。

5.交叉特征

不同特征(上面4类特征内部之间或跨类别)之间可以通过笛卡尔积(或者笛卡尔积的一个子集)生成新的特征,通过特征交叉有时可以捕捉细致的信息,对模型预测起到很重要的作用。这里举个例子,比如用用户地域与视频语言做交叉,大家肯定知道广东人一般更喜欢看粤语剧,那么这个交叉特征对预测粤语视频的点击是非常有帮助的。类别交叉一般需要对业务有较好的理解,需要足够多的领域知识,才可以构建好的交叉特征。我们会在第12章详细介绍交叉特征相关的知识。

上面讲完了5个维度的特征,读者应该也知道构建推荐系统特征的具体思考方向了,我们会在第三篇中详细介绍各个维度怎么去构建特征。下面我们来讲解一下针对主流的推荐产品形态,我们是怎么确定样本进而构建上述五类特征的。

四、推荐算法与特征工程

推荐算法是一个机器学习问题,因而也是一个数学问题。我们可以用一个简单的数学公式来定义推荐问题:,这里 F 是我们要学习的模型,是模型的参数(包括超参数),S是样本,f是样本到模型特征的映射,这个过程可以看作特征工程的过程,就是样本S对应的特征,记为:,这里 是 k 个特征。y是最终的预测值,一般可以是一个实数值,可以理解为预测评分或者用户点击、喜欢的概率(具体怎么理解,需要根据选择的模型而定)。

有了上面的简单定义,下面我们分别从个性化猜你喜欢和关联推荐来说明样本选择与特征构建之间的关系。这两类推荐算法也是业界最重要的两种推荐算法,当前比较主流的信息流推荐也是个性化推荐在实时场景下的特例,思考的思路也是一样的,这里不赘述。排行榜推荐只需要用计数统计就可以获得,也不需要复杂的模型,这里也不讲。

关键词: 推荐 系统 特征 工程