爱吧机器人网 » 技术 > 大数据 > 正文

关于推荐系统中的特征工程

在多数数据和机器学习的blog里,特征工程 Feature Engineering 都很少被提到。做模型的或者搞Kaggle比赛的人认为这些搞feature工作繁琐又不重要不如多堆几个模型,想入手实际问题的小朋友又不知道怎么提取feature来建模型。我就用个性化推荐系统做个例子,简单说说特征工程在实际的问题里是怎么做。

定义

特征工程 Feature Engineering 在一篇Kaggle blog上有很好的定义:

By feature engineering, I mean using domain specific knowledge or automatic methods for generating, extracting, removing or altering features in the data set.

基本上说是,用目标问题所在的特定领域知识或者自动化的方法来生成、提娶删减或者组合变化得到特征。这些特征可能是显而易见比如说商品的品牌,也有可能需要复杂的模型计算,比如Facebook上用户A和用户B之间关系的紧密程度(FB使用了一个决策树来生成一个描述这个程度的向量,这个向量决定了他们News Feed推荐内容。)。这篇blog覆盖了一些用领域知识的方法,自动化方法在这里没有提及。

推荐系统

背景

个性化推荐系统 Personalized recommender system 比其他的机器学习方法更依赖特征工程,所以我拿它来当作问题的背景,结合我之前做过的一个推荐系统里相关经验来说说特征工程具体是个什么东西。

关于推荐系统和个性化推荐系统,可以参看wikipedia具体不赘述,以下的要点也尽量点到为止,否则这篇又成了“收藏了Mark了”但是不会读的冗余长文。以下如果不特别指出,我就用推荐系统作为“个性化商品推荐系统”的简称。简单来说,推荐系统就是你买了商品A,我们给你算出来个推荐列表 B C D E 等等。商业上来说个性化的推荐比一般化的推荐更能吸引顾客点击或购买,所以利用特征功能提取这些“个性化”的特征放到推荐模型里就很重要,比如在我们的推荐系统里,把“品牌”的特征加进去,相对于 baseline 提高了20%左右的nDCG。推荐系统可以是机器学习的模型也可以是基于关联或者统计规则的模型,对后者来说特征对推荐效果的提升占的比重更大。

利用领域知识生成和提取特征

这几乎是特征工程里占大半时间的工作了:如何描述个性化并且用变量表示成特征。一般方法就是,想想你就是该商品的目标用户,你会想要什么样的个性化。

比如说我们做一个女性衣服类的推荐引擎,这个网站卖各种牌子颜色尺寸等。我们列出可能相关的一些特征,然后在实际购买数据里面检查他们是否对购买结果产生影响和关联性。比如,从购买数据里可以看出,女性对衣服的品牌多数有固定偏好,比如我太太就很喜欢LOFT的衣服。这些能对购买产生影响的因素都可以成为特征。

这部分工作需要很多领域知识,一般需要一组的研究人员讨论,要认真的思考这个特定问题有些什么和别的问题不同的特征,也建议和市场部销售部等有领域知识的专家讨论。经验上来说,这些特征提取的越多越好,并不用担心特征过多,因为推荐系统的数据量都比较大,并且基于一些规则可以很好的筛选特征。

很多机器学习的方法也可以拿来提取一些比较不容易得到的直接特征,比如说原始数据里面没有人工标记过商品的颜色,这些颜色可以通过图像识别得到。统计规则也可以从销售数据里得到一些特征,比如该商品的流行程度。

注意,这些特征可能是固定不变的,比如颜色,品牌等。它也有可能随着时间变化,比如商品的销售排名。实际经验来说,时间变化采样的颗粒度要按照实际推荐效果来决定,很可能过去三个月的销售排名对推荐效果来说可以很稳定,也或许昨天的排名对今天的推荐效果比三个月平均更好。

特征的表达

大家都知道特征可以是“红”“绿”“蓝”这些离散特征,也可以是1.57这样的连续值特征。一个特征具体如何表达,要看在它在具体模型上怎么用。某些特定问题更倾向于离散特征,因为像推荐系统这样数据很大的情况可以利用模型训练这些特征得到比连续值表达更好的效果。

比如说,商品的流行度可以是一个特征,因为对于某些流行的商品大家都抢着买,喜欢跟风买热门商品这一特性可以作为推荐的特征。我们可以按照销量排名然后归一化得到每个商品的流行度值,但是直接用这个连续值会有一些问题,比如说用户甲买了流行度分数为 0.75 0.5 0.2 0.1的四个商品,用户乙买了流行度为0.7的一个商品,他们两个怎么比?

如果还记得算法书上说的,定义几个桶buckets,把流行度分到这几个buckets里面,可以解决这个问题。比如定义三个桶:很流行1-0。95,较流行0.95-0.75,普通0.75-0.4。这样用户甲的特征就是[0,1,1]用户乙的特征就是[0,1,0],这样你的推荐模型就可以做一些对比他们俩的相似度或者其他推荐计算了。

顺道提一下就是,为什么在这里直接把0.4之后的丢掉了以及为什么取了三个buckets。这个要看具体问题里面具体特征的用处。

  1. 如果这个模型是学习训练出来的,可以用一些feature selection的办法自动去掉一些不需要的bucket。对于那些不是学习出来的模型比如是简单的相似性模型,按照实际推荐效果思考一下用户的行为特征,需要丢弃一些特征。我之前包含过0.4以下的部分但是实际测试的时候发现推荐结果会恶化,也就是说对于我们的问题,用户喜欢跟风买热门的,但是不喜欢一直买冷门的。
  2. 特征需要按照实际购买数据进行修正和理解。三个buckets是我们系统里效果最好的。

一个比较高级的例子是 Facebook 在他们的 Machine Learning meetup 上提到的推荐News feed的特征。每个用户对于其他用户的 news 的点赞和留言以及其他的动作都会得到一个评价值,这是一系列的连续值,直接拿来训练模型效果不好。他们的做法是做了一个简单的决策树,训练的输入是这些连续值,训练目标是看对于用户A是否应该显示用户B的 news 。这个决策树显然很粗糙,但是树的每个叶子节点可以成为一个特征,那么这些叶子节点就可以当作用户A的特征向量,拿来训练其他模型比如Logistic Regression,效果不错。

上一页12下一页

上一篇:中移动31.72亿元设苏州研发中心 着眼云计算和大数据
下一篇:做大数据过程中遇到的13个问题
精选推荐
谷歌宣布搜索算法重大升级,用BERT模型理解用户搜索意图
谷歌宣布搜索算法重大升级,用BERT模型理解用户搜索意图

[2019-10-26]  谷歌刚刚宣布,其搜索引擎的核心算法正在进行一项重大升级,这项升级可能会改变10%的搜索结果排序。此项升级应用了自然语言处理技术(BERT ...

麻省理工最新机器人“装配工”未来可建造太空基地
麻省理工最新机器人“装配工”未来可建造太空基地

[2019-10-17]  两个机器人原型把一系列小单元组装成大结构体麻省理工学院科研人员最近提出一种新型机器人技术,即一种小型机器人系统,能够自主地用统一规 ...

美国人工智能公司Skymind进入福建全面开展业务
美国人工智能公司Skymind进入福建全面开展业务

[2017-12-11]  人工智能在当今这个时代对大家来说想必是非常熟悉的,这也是我国近十几年来一直追求的目标,未来的时间里这也将是全人类追求的目标。就目前来看,近年来,人工智能或在我国迎......

Waymo:人性和行为心理学才是无人驾驶最大的挑战
Waymo:人性和行为心理学才是无人驾驶最大的挑战

[2019-11-03]  自动驾驶汽车作为AI领域内最大的挑战之一,谷歌致力于其研发已有十余载,现在他们逐渐意识到,最困难的是如何让人们享受驾驶的乐趣。这是一 ...

MIT用深度学习处理3D点云数据 应用于无人汽车等领域
MIT用深度学习处理3D点云数据 应用于无人汽车等领域

[2019-10-23]  如果你见过自动驾驶汽车,也许会对车顶上那个一直在旋转的圆柱体感到好奇。这是一个雷达传感器,无人驾驶汽车依靠它在现实世界中进行导航。 ...

南加州大学机器人学家:机器人更适合粗暴的爱
南加州大学机器人学家:机器人更适合粗暴的爱

[2019-11-07]  图片来自JOHN MADERE GETTY IMAGES打是疼骂是爱,当人类粗暴的将物体从机器人手中敲掉,看似残忍,实际上却能帮助机器人找到最好的握持物 ...

2018年企业数字化转型的五大趋势
2018年企业数字化转型的五大趋势

[2017-12-16]  据2016年哈佛商学院研究表明,选择进行数字化转型的企业在3年内表现出了55%的平均毛利润提升,相比之下其他企业毛利润同期降低了37%。数字化转型企业的领头羊,也曾是收入处于......

研究人员融合人类与AI的创造力 显著提高了深度学习的表现
研究人员融合人类与AI的创造力 显著提高了深度学习的表现

[2019-10-12]  由加拿大人工智能领域研究主席、滑铁卢大学系统设计工程教授Alexander Wong领导的一个团队开发了一种新型紧凑型神经网络家族,可以在智能 ...

本周栏目热点

[2016-08-07]     著名物理学家霍金教授说,忘了黑洞吧,女人才是宇宙最大的谜。但,未来这个最大的谜题因为大数据分析的出现而揭开谜底。人工智能是大数 ...

网友在什么时候发朋友圈可以看出贫富差距?

[2016-08-30]   收入不平等、教育不平等这些名词你都不会陌生。现在有人希望通过分析Instagram上图片分享的地理定位数据来告诉你什么叫做——社交 ...

[2018-07-23]  随着信息技术在各个领域的全面应用,数据的种类、数量、速度和价值都出现了显著变化,一个大规模生产、分享和应用数据的时代已经开启。...

个人征信机构静待发令枪响 业内:大数据并不便宜

[1970-01-01]   个人征信牌照发放在即。近日,《每日经济新闻》记者从多家机构获悉,央行对征信机构的验收工作已经收尾 ...

数据开放的经济学分析

[1970-01-01]   2009年美国启动开放政府计划,开启了国际政府机构以数据开放展开数据与信息分享的重要议题,在世界范围 ...