推荐相关问题总结

基础

推荐过程中遇到的挑战或难点

挑战一:数据稀疏性问题

现在待处理的推荐系统规模越来越大,用户和商品(也包括其他物品,譬如音乐、网页、文献……)数目动辄百千万计,两个用户之间选择的重叠非常少。如果以用户和商品之间已有的选择关系占所有可能存在的选择关系的比例来衡量系统的稀疏性,那么我们平时研究最多的MovieLens数据集的稀疏度是4.5%,Netflix是1.2%,这些其实都是非常密的数据了,Bibsonomy是0.35%,Delicious是0.046%。想想淘宝上号称有8亿商品,平均而言一个用户能浏览800件吗,我估计不能,所以稀疏度应该在百万分之一或以下的量级。数据非常稀疏,使得绝大部分基于关联分析的算法(譬如协同过滤)效果都不好。这个问题本质上是无法完全克服的,为了解决这个问题,也有很多办法,譬如可以通过扩散的算法,从原来的一阶关联(两个用户有多少相似打分或者共同购买的商品)到二阶甚至更高阶的关联(假设关联性或者说相似性本身是可以传播的)[8],也可以添加一些缺省的打分[9],从而提高相似性的分辨率。数据规模越大,一般而言越稀疏,现在能够处理稀疏数据的算法被认为是更有前途的(譬如扩散[8]、迭代寻优[10],转移相似性[11]等等)。

挑战二:冷启动问题

新用户因为罕有可以利用的行为信息,很难给出精确的推荐。反过来,新商品由于被选择次数很少,也难以找到合适的办法推荐给用户。一种办法是利用文本信息进行辅助推荐,或者通过注册以及询问得知一些用户的属性信息,譬如年龄、居住城市、受教育程度、性别、职业等等[12,13]。最近标签系统(tagging systems)的广泛应用提供了解决冷启动问题的可能方案[14],因为标签既可以看作是商品内容的萃取,同时也反映了用户的个性化喜好——譬如对《桃姐》这部电影,有的人打上标签“伦理”,有的人打上标签“刘德华”,两个人看的电影一样,但是兴趣点可能不尽相同。当然,利用标签也只能是提高有少量行为的用户的推荐准确性,对于纯粹的冷启动用户,是没有帮助的,因为这些人还没有打过任何标签。有趣的是,最近的研究显示,新用户更容易选择特别流行的商品[15]——这无论如何是一个好消息,说明使用热销榜也能获得不错的结果。冷启动问题还可以通过多维数据的交叉推荐部分解决,其精确度和多样性又远胜于热销榜,这一点我们在后面会进一步介绍。

挑战三:大数据处理与增量计算问题

尽管数据很稀疏,大部分数据都拥有百千万计的用户和商品,因此,如何快速高效处理这些数据成为迫在眉睫的问题,而算法时间和空间的复杂性,尤其是前者,获得了空前重视。一个高效的算法,要么复杂性很低,要么能够很好并行化,要么两者兼具。局部扩散算法在这两个方面都具有明显优势[16]!另外一条可能的解决之道,是设计增量算法,也就是说当产生新用户,新商品以及新的连接关系时,算法的结果不需要在整个数据集上重新进行计算,而只需要考虑所增加节点和连边局部的信息,对原有的结果进行微扰,快速得到新结果[17]。一般而言,这种算法随着加入的信息量的增多,其误差会积累变大,最终每过一段时间还是需要利用全局数据重新进行计算。

一个特别困难的挑战,是如何设计一种算法,能够保证其误差不会累积,也就是说其结果与利用全部数据重新计算的结果之间的差异不会单调上升。我们把这种算法叫做自适应算法,它是增量算法的一个加强版本[18],其设计要求和难度更高。增量算法已经在业界有了应用,譬如百分点科技推荐引擎中的若干算法都采用了增量技术,使得用户每次新浏览收藏或者购买商品后其推荐列表立刻得到更新。当然,该引擎也只是部分算法实现了增量技术,更没有达到所有算法都能够自适应学习的程度,还有很长的路要走。

挑战四:多样性与精确性的两难困境

如果要给用户推荐他喜欢的商品,最“保险”的方式就是给他特别流行或者得分特别高的商品,因为这些商品有更大的可能性被喜欢(至少贝叶斯会这么想),往坏了说,也很难特别被讨厌。但是,这样的推荐产生的用户体验并不一定好,因为用户很可能已经知道这些热销流行的产品,所以得到的信息量很少,并且用户不会认同这是一种“个性化的”推荐。事实上,Mcnee等人已经警告大家,盲目崇拜精确性指标可能会伤害推荐系统——因为这样可能会导致用户得到一些信息量为0的“精准推荐”并且视野变得越来越狭窄[19]。让用户视野变得狭窄也是协同过滤算法存在的一个比较主要的缺陷。与此同时,应用个性化推荐技术的商家,也希望推荐中有更多的品类出现,从而激发用户新的购物需求。遗憾的是,推荐多样的商品和新颖的商品与推荐的精确性之间存在矛盾,因为前者风险很大——一个没什么人看过或者打分较低的东西推荐出手,很可能被用户憎恶,从而效果更差。很多时候,这是一个两难的问题,只能通过牺牲多样性来提高精确性,或者牺牲精确性来提高多样性。一种可行之策是直接对推荐列表进行处理,从而提升其多样性[20-22]。目前百分点推荐引擎所使用的方法也是类似的。这种方法固然在应用上是有效的,但是没有任何理论的基础和优美性可言,只能算一种野蛮而实用的招数。我们发现,通过精巧混合精确性高和多样性好的两种算法,可以同时提高算法的多样性和精确性,不需要牺牲任何一方[23]。遗憾的是,我们还没有办法就这个结果提供清晰的解读和深刻的见解。多样性和精确性之间错综复杂的关系和隐匿其后的竞争,到目前为止还是一个很棘手的难题。

挑战五:推荐系统的脆弱性问题

受推荐系统在电子商务领域重大的经济利益的驱动,一些心怀不轨的用户通过提供一些虚假恶意的行为,故意增加或者压制某些商品被推荐的可能性[24]。因此,一个算法能否在一定程度上保持对恶意攻击的鲁棒性,成为需要认真考虑的一个特征。以最简单的关联规则挖掘算法为例,Apriori算法的鲁棒性就远胜于k近邻算法[25]。有一些技术已经被设计出来提高推荐系统面对恶意攻击的鲁棒性,譬如通过分析对比真实用户和疑似恶意用户之间打分行为模式的差异,提前对恶意行为进行判断,从而阻止其进入系统或赋予疑似恶意用户比较低的影响力[26-28]。总体来说,这方面的研究相对较少,系统性的分析还很缺乏,反而是攻击策略层出不穷,有一种“道高一尺,魔高一丈”的感觉。仅Burke等人2011年的研究报告中就分析了4大种类8种不同的攻击策略[29]。

挑战六:用户行为模式的挖掘和利用

深入挖掘用户的行为模式有望提高推荐的效果或在更复杂的场景下进行推荐。譬如说,新用户和老用户具有很不一样的选择模式:一般而言,新用户倾向于选择热门的商品,而老用户对于小众商品关注更多[15],新用户所选择的商品相似度更高,老用户所选择的商品多样性较高[30]。有些混合算法可以通过一个单参数调节推荐结果的多样性和热门程度[23],在这种情况下就可以考虑为给不同用户赋予不同参数(从算法结果的个性化到算法本身的个性化),甚至允许用户自己移动一个滑钮调节这个参数——当用户想看热门的时候,算法提供热门推荐;当用户想找点很酷的产品时,算法也可以提供冷门推荐。用户行为的时空统计特性也可以用于提高推荐或者设计针对特定场景的应用。用户的选择可能同时蕴含了长期的兴趣和短期的兴趣,通过将这两种效应分离出来,可以明显提高推荐的精确度[31-33]。事实上,简单假设用户兴趣随时间按照指数递减,也能够得到改进的推荐效果[34,35]。利用手机上网现在已经越来越普及,与此同时,嵌入GPS的手机越来越多,因此,基于位置的服务成为一个受到学术界和业界广泛关注的问题。基于位置信息的推荐可能会成为个性化推荐的一个研究热点和重要的应用场景,而这个问题的解决需要能够对用户的移动模式有深入理解[36,37](包括预测用户的移动轨迹和判断用户在当前位置是否有可能进行餐饮购物活动等),同时还要有定量的办法去定义用户之间以及地点之间的相似性[38,39]。另外,不同用户打分的模式也很不一样[40,41],用户针对不同商品的行为模式也不一样[42,43](想象你在网上下载一首歌和团购房子时的区别),这些都可以用来提高推荐的效果。

挑战七:推荐系统效果评估

推荐系统的概念提出已经有几十年了,但是怎么评价推荐系统,仍然是一个很大的问题。常见的评估指标可以分为四大类,分别是准确度、多样性、新颖性和覆盖率,每一类下辖很多不同的指标,譬如准确度指标又可以分为四大类,分别是预测评分准确度、预测评分关联、分类准确度、排序准确度四类。以分类准确度为例,又包括准确率、召回率、准确率提高率、召回率提高率、F1指标和AUC值。朱郁筱和吕琳媛总结了文献中曾经出现过的几乎所有的推荐系统指标[44],这些指标都是基于数据本身的指标,可以认为是第一层次。实际上,在真实应用时,更为重要的是另外两个层次的评价,第二个层次是商业应用上的关键表现指标,譬如受推荐影响的转化率,购买率,客单价,购买品类数等等,第三个层次是用户真实的体验。绝大部分研究只针对第一个层次的评价指标,而业界真正感兴趣的是第二个层次的评价(譬如到底是哪个指标或者哪些指标组合的结果能够提高用户购买的客单价),而第三个层细最难,没人能知道,只能通过第二层次来估计。如何建立第一层面和第二层面指标之间的关系,就成为了关键,这一步打通了,理论和应用之间的屏障就通了一大半了。

挑战八:用户界面与用户体验

这个问题更多地不是一个学术性质的问题,而是真实应用的问题。十年前就有学者指出[45,46],推荐结果的可解释性,对于用户体验有至关重要的影响——用户希望知道这个推荐是怎么来的。在这个意义上,协同过滤有明显的优势,譬如亚马逊基于商品的协同过滤在发送推荐的电子邮件时会告诉用户之所以向其推荐某书,是因为用户以前购买过某些书。相对地,矩阵分解或者集成学习算法就很难向用户解释推荐结果的起源。用户更喜欢来自自己朋友的推荐而不是系统的推荐,这一点在后面还会详细提到。另外,推荐列表往往含有很多项,这些推荐项最好能够区分成很多类别,不同类别往往来自于不同的推荐方法譬如看过还看过(浏览过本商品的客户还浏览过的商品)、买过还买过(购买过本商品的客户还购买过的商品)、看过最终购买(浏览过本商品的客户最终购买的商品)、个性化热销榜(个性化流行品推荐)、猜你喜欢(个性化冷门商品推荐)等等。当然,如何更好呈现推荐,是一个很难建立理论模型和进行量化的问题,对于不同被推荐品而言,用户界面设计的准则也可能大不相同。建立一个可以进行A/B测试的系统,或可积累重要的实验数据

挑战九:多维数据的交叉利用

目前网络科学研究一个广受关注的概念是具有相互作用的网络的结构和动力学。网络与网络之间的相互作用大体可以分成三类:

第一类是依存关系[47],譬如电力网络和Internet,如果发生了大规模停电事故,当地的自主系统和路由器也会受到影响,导致网络局部中断;

第二类是合作关系[48],譬如人的一次出行,可以看作航空网络、铁路网络和公路网络的一次合作;

第三类是交叠关系[49],主要针对社会网络,这也是我们最关注的。我们几乎每一个人,都参与了不止一个大型的社会网络中,譬如你可能既有新浪微博的帐号,又是人人网的注册用户,还是用手机,那么你已经同时在三个巨大的社会网络中了。与此同时,你可能还经常在淘宝、京东、麦包包、1号店、库巴网……这些地方进行网购,那么你也是一张巨大的用户-商品二部分图中的一员。想象如果能够把这些网络数据整合起来,特别是知道每个节点身份的对应关系(不需要知道你真实身份,只需要知道不同网络中存在的一些节点是同一个人),其中有特别巨大的社会经济价值。举个例子,你可能已经在新浪微博上关注了很多数据挖掘达人的微博,并且分享了很多算法学习的心得和问题,当你第一次上当当网购书的时候,如果主页向你推荐数据挖掘的最新专著并附有折扣,你会心动吗?

交叠社会关系中的数据挖掘,或称多维数据挖掘,是真正有望解决系统内部冷启动问题的终极法宝——只要用户在系统外部的其他系统有过活动。单纯从个性化商品推荐来讲,可以利用用户在其他电商的浏览购买历史来提高在目标电商推荐的精确度——当然,每一个电商既是付出者,也是获利者,总体而言,大家能够通过提高用户体验和点击深度实现共赢。与此同时,可以利用微博和其他社会网络的活动提高商品推荐的精度,还可以反过来利用商品浏览历史提高微博关注对象推荐的精度。给一个经常购买专业羽毛球和浏览各种专业羽毛球设备的用户推荐关注羽毛球的专业选手和业余教练成功率应该很高,而且不会陷入“总在一个圈子里面来回推荐”的毛病中。 从机器学习的角度,杨强等人提出的“迁移学习”算法有望移植来解决这种跨邻域的推荐[50]。我们分析了百分点科技服务客户的真实数据,发现有相当比例的用户都具有交叉购物的习惯(在多个独立B2C电商有浏览和购买行为)[51,52]。即便只考虑两个点上,例如利用麦包包的浏览购买数据为名鞋库的用户进行个性化推荐(这些用户在名鞋库上是没有任何历史记录的新用户,但是在麦包包上有浏览购买行为),就可以明显提高推荐的准确度[51](比完全冷启动的随机推荐高数十倍),而如果利用3家或以上的外部电商的数据,其推荐的精确度可以明显高于热销榜(注意,热销榜一点个性化都没有),特别在团购类网站上表现非常好[52]。虽然针对多维数据挖掘的研究刚刚起步,但是我完全相信这在学术和应用上都将是一个焦点和难点。

挑战十:社会推荐

很早以前,研究人员就发现,用户更喜欢来自朋友的推荐而不是被系统“算出来的推荐”[53]。社会影响力被认为比历史行为的相似性更加重要[54,55],例如通过社会关系的分析,可以大幅度提高从科研文献[56]到网购商品[57]推荐的精确度。来自朋友的社会推荐有两方面的效果:一是增加销售(含下载、阅读……)[58],二是在销售后提高用户的评价[59]。社会推荐的效果也不完全是正面的,譬如Leskovec等人[58]在同一篇论文中也报导了一个反例:朋友推荐对书的销售增长几乎没有帮助,有时候还会起到负面作用。国内业界做得最出色的是豆瓣网,其朋友推荐被接受被高度评价的比例非常高,我们的研究也主要是基于豆瓣网的数据[59]。最近有证据显示,朋友推荐也是淘宝商品销售一个非常重要的驱动力量[60]。

在社会推荐方向存在的挑战主要可以分为三类:

一是如何利用社会关系提高推荐的精确度[55];

二是如何建立更好的机制以促进社会推荐[61,62];

三是如何将社会信任关系引入到推荐系统中[63,64]。

社会推荐的效果可能来自于类似口碑传播的社会影响力,也可能是因为朋友之间本来就具有相似的兴趣或者兴趣相投更易成为朋友,对这些不同的潜在因素进行量化区别,也属学术研究的热点之一[65]。

参考:

召回

排序

DeepFM过拟合或欠拟合分别如何处理

欠拟合:增加deep部分的层数,增加epoch的轮数,增加learningrate,减少正则 化力度
过拟合:在deep层直接增加dropout的率,减少epoch轮数,增加更多的数据,增 加正则化力度,shuffle 数据

参考文章:

业务场景相关

CVR相比CTR的区别和特点

概念定义

在广告和推荐场景中,用户首先会看到平台给他生成的推荐结果,称为曝光(impression),用户会有一定的概率作点击(click),进入详情页,若果满意的话会购买产品,称为转化(conversion)。

CTR(Click Through Rate,点击率): p C T R = p ( c l i c k ∣ i m p r e s s i o n ) pCTR=p(click∣impression) pCTR=p(clickimpression)
CVR(Click Value Rate,转化率): p C V R = p ( c o n v e r s i o n ∣ c l i c k , i m p r e s s i o n ) pCVR=p(conversion∣click,impression) pCVR=p(conversionclick,impression)
另外, p C T C V R = p ( c l i c k , c o n v e r s i o n ∣ i m p r e s s i o n ) = p C T R ∗ p C V R pCTCVR=p(click,conversion∣impression)=pCTR∗pCVR pCTCVR=p(click,conversionimpression)=pCTRpCVR

区别和特点

更加稀疏

参考文章

广告、搜索和推荐的区别

1. 根本问题上的区别

广告:一个公司要搭建广告系统,它的商业目的非常直接,就是要解决公司的收入问题。所以广告算法的目标就是为了直接增加公司收入

推荐:推荐算法虽然本质上也是为了增加公司收入,但其直接目标是为了增加用户的参与度。只有用户的参与度高了,才能让广告系统有更多的inventory,进而增加公司营收。

搜索:搜索要解决的关键问题全部是围绕着用户输入的搜索词展开的。虽然现在搜索越来越强调个性化的结果,但是一定要清楚的是,推荐算法强调的个性化永远只是搜索算法的补充。“围绕着搜索词的信息高效获取问题“才是搜索算法想解决的根本问题。

2. 优化目标的区别

广告:各大公司广告算法的预估目标非常统一,就是预估CTR和CVR。这是跟当前效果类广告的产品形态密切相关的。因为CPC和CPA计价仍是效果类广告系统的主流计价方式。所以只有预估出CTR和CVR,才能反向推导出流量的价值,并进一步给出合理的出价。所以针对这样的目标,广告算法非常看重把预估偏差当作首要的评价指标。

推荐:推荐算法的预估目标就不尽相同,视频类更多倾向于预测观看时长,新闻类预测CTR,电商类预估客单价等等这些跟用户参与度最相关的业务指标。而且由于推荐系统的推荐场景是生成一个列表,所以更加关注item间的相对位置,因此评估阶段更倾向于用AUC,gAUC,MAP这些指标作为评价标准。

搜索:搜索的预估目标又有所不同,因为相比广告和推荐,搜索某种意义上说是存在着“正确答案”的。所以搜索非常看重能否把这些正确答案给召回回来(广告和推荐也关注召回率,但重要性完全不同)。所以搜索系统往往会针对召回率,MAP,NDCG这些指标进行优化。

总的来说,广告算法是要“估得更准”,推荐算法是要整体上“排的更好”,搜索算法是要“搜的更全”

更多对比参考排得更好VS估得更准VS搜的更全「推荐、广告、搜索」算法间到底有什么区别?这篇文章。

参考文章

什么时候用策略规则,什么时候用模型

规则能保证下限,而模型可以提高上限。工业界不可能用下限很低的东西,也不能全部上模型,一般是规则模型搭配使用(在模型上加一些业务规则)。

规则的好处就是可控性强,但是写多了就变成业务累赘。为什么要加规则呢,其实就是现有的模型并不能cover住所有的情况,需要靠业务规则。而模型好的好处能够自动学习到数据中的规律,方便业务迭代和迁移。

参考文章

线上如何生成最终的排序得分

最简单的做法就是将用户最近的点击序列中的实体Embedding向量做加权平均,再和候选集中的实体做cosine距离计算,用于排序。

参考文章

如何构造负样本

1. 负样本构造

多场景多产品形态样本处理方案

1.1 沉浸流(或其它自动播放)视频产品

沉浸流是类似抖音首页、快手精选页那种无限下滑、一屏一视频的产品形态,特点是自动播放、用户对下一个item无感知、无晒选,曝光即播放,样本无明显正、负倾向。

Trick1
1)播放时长>阈值为正样本,否则为负样本,配合按观看时长长度分布以一定比例采样或调整样本权重
2)适合沉浸流产品上线初期,以提升下滑数(与信息流广告潜力相关)和用户停留时长(场景用户留存相关)为主业务目标。

Trick2
1)按不同视频时长(或类目)做样本划分,在每个划分窗口内以播放完成率(play complete rate)为阈值切分正负样本,配合不同时长(类目)样本数比例进行采样或调权。
2)适合沉浸流产品上线中后期,以场景多元生态构建、兴趣拓展探索同时保证用户停留时长和广告收入为主目标。

2. 瀑布流等点击跳转式产品

item以卡片形式存在,需要点击跳转到另一个页面消费。

Trick1
1)点击行为正样本以客户端为准
2)由于产品形态特性,用户浏览速度快,点击行为难预测,一般节省资源不进行预加载。因此弱网环境下(如地铁、电梯)信号丢失导致跳转或加载失败,服务端可能缺失请求日志。但用户是对这个item感兴趣才会有点击行为,所以要以客户端缓存的行为日志为准,和服务端日志对齐互补。

Trick2
1)无点击session过滤
2)用户一次会话中,一次点击行为都没发生的会话,并不适合作为负样本。曝光样本一般都是场景高热度或系统推荐的兴趣较为相关的样本,直接判定为负样本容易造成模型对用户兴趣捕捉的漂移。

Trick3
1)假曝光过滤
2)用户会话结束位置的未完全曝光卡片、用户快速划过的卡片,可以不作为负样本。

Trick4
1)样本去重去噪
2)客户端多次上报的同一卡片曝光、消费,可能是客户端缓存造成,而不是真实的多次消费。可以通过与服务端请求的时间戳对齐等方式去噪

Trick5
1)按曝光位置、卡片大小反向采样、调权
2)曝光位置靠前的天然点击率高,卡片大的比小的天然高。

3. 通用样本处理策略

产品形态不同的时候,也有通用的样本处理策略。

Trick1
1)按用户活跃度筛选样本
2)高活用户行为丰富,低活、回归、新用户行为稀疏,同一套特征体系无法对两者都友好。高活用户样本应该单独建模,低活用户应该配合用户增长策略、生态建设联动优化。
3)高活用户可以通过多个场景、产品相关的重要统计类特征的覆盖率来区分。

Trick2
1)调权优于采样
2)调整样本权重产生不同的梯度贡献,本质上和采样的期望效果一致。但采样对用户的长尾兴趣、item库内长尾类目不友好。没有计算资源压力的前提下不建议采样。

Trick3
1)focal loss解决hard sample mining
2)hard sample mining对推荐系统同样重要。如果不知道怎么找准对应场景的困难样本,同时暂时也还在用交叉熵做二分类loss的话,可以无脑迁移focal loss。

2. 正负样本比例(规模)控制多少合适

根据负样本中有效样本比率添加个权重,采用交叉验证选择合适的比例数值。

参考文章

冷启动问题解决办法有哪些

1. 冷启动问题定义

冷启动问题是推荐系统必须面对的问题。任何推荐系统都要经历数据从无到有、从简单到丰富的过程。那么,在缺乏有价值数据的时候,如何进行有效的推荐被称为“冷启动问题”。

2. 冷启动问题的分类

用户冷启动:即如何给新用户做个性化推荐
物品冷启动:即如何将新的物品推荐给可能对它感兴趣的用户
系统冷启动:即如何在一个新开发的网站(没有用户,没有用户行为,只有部分物品信息)上设计个性化推荐系统,从而在网站刚发布时就让用户体会到个性化推荐

3. 冷启动问题的解决方案

3.1 基于规则的冷启动

基于规则的冷启动方法更多依赖的是领域专家对业务的洞察,在制定冷启动规则时,要充分了解公司的业务特点,充分利用已有数据,才能让冷启动规则合理且高效。

  • 在用户冷启动场景下,可以使用热门排行榜、最近流行趋势、最高评分等榜单作为默认的推荐列表(提供非个性化的推荐)。最简单的例子就是提供热门排行榜,可以给用户推荐热门排行榜,等到用户数据收集到一定的时候,再切换为个性化推荐。
  • 更进一步,可以参考专家意见建立一些个性化物品列表,根据用户有限的信息,例如注册时填写的年龄、性别、基于IP推断出的地址等信息做粗粒度的推荐。例如,利用点击率等目标构建一个用户属性的决策树,在每个决策树的叶节点建立冷启动榜单,在新用户完成注册后,根据用户有限的注册信息,寻找决策树上对应的叶节点榜单,完成用户冷启动过程。
  • 在物品冷启动场景下,可以根据一些规则找出该物品的相似物品,利用相似物品的推荐逻辑完成物品的冷启动过程。当然,寻找相似物品的过程是与业务强相关的。以Airbnb(全球最大的短租房中介平台)为例。在新上线短租房时,Airbnb会根据该房屋的属性对短租房指定一个聚类,位于聚类中的房屋会有相似的推荐规则。比如依靠的规则:1)同样的价格范围;2)相似的房屋属性(面积、房间数等);距目标房源的距离在10公里以内。那么,找到最符合上述规则的3个相似短租房,根据这3个已有短租房的聚类定位冷启动短租房的聚类即可。

3.2 丰富冷启动过程中可以获得的用户和物品特征

基于规则的冷启动过程在大多数情况下是有效的,是非常实用的冷启动方法。但该过程与推荐系统的“主模型”是割裂的。有没有可能通过改进推荐模型达到冷启动的目的呢?当然是有的,改进的主要方法就是在模型中加入更多用户或物品的属性特征,而非历史数据特征

在历史数据特征缺乏的情况下,推荐系统仍然可以凭借用户和物品的属性特征完成粗粒度的推荐。这类属性特征主要包括以下几类。

  1. 用户的注册信息。包括用户的人口属性特征(年龄、性别、学历、职业等)和通过IP地址、GPS信息等推断出的地理信息。
  2. 第三方DMP(Data Management Platform,数据管理平台)提供的用户信息。国外的BlueKai、Nielsen,国内的Talking Data等公司都提供匹配率非常高的数据服务,可以极大地丰富用户的属性特征。这些第三方数据管理平台不仅可以提供基本的人口属性特征,通过大量应用、网站的数据交换,甚至可以提供脱敏的用户兴趣、收入水平、广告倾向等一系列的高级特征。
  3. 物品的内容特征。在推荐系统中引入物品的内容相关特征是有效地解决“物品冷启动”的方法。物品的内容特征可以包括物品的分类、标签、描述文字等。具体到不同的业务领域,还可以有更丰富的领域相关内容太特征。例如,在视频推荐领域,视频的内容特征还包括,该视频的演员、年代、风格等等。
  4. 引导用户输入的冷启动特征。有些应用会再用户第一次登录时引导用户输入一些冷启动特征。例如,一些音乐类应用会引导用户选择“音乐风格”;一些视频类应用会引导用户选择几部喜欢的电影。这些都是通过引导页面来完成丰富冷启动特征的工作。

3.3 利用主动学习、迁移学习和探索与利用机制

除了规则推荐、特征工程,还有诸多能够帮助我们完成“系统冷启动”的机器学习利器,主要包括主动学习、迁移学习、探索与利用机制。

  1. 主动学习。主动学习是相比被动学习而言的。被动学习是在已有的数据集上建模,学习过程中不对数据集进行更改,也不会加入新的数据,学习过程是被动的。而主动学习不仅利用已有的数据进行建模,而且可以主动发现哪些数据的急需的,主动向外界发出询问,获得反馈,从而加速整个学习的过程,生成更全面的模型。主动学习和强化学习一脉相承。主动学习的过程完全遵循“行动-反馈-状态更新”的强化学习循环。它的学习目的就是在一次又一次的循环迭代中,让推荐系统尽量快速的度过冷启动状态,为用户提供更个性化的推荐结果
  2. 迁移学习。迁移学习是在某领域的知识不足的情况下,迁移其它领域的数据或知识,用于本领域的学习。迁移学习的思路在推荐系统领域非常常见。如ESMM模型中,阿里巴巴利用CTR数据生成了用户和物品的Embedding,然后共享给CVR模型,这本身就是迁移学习的思路。这就使得CVR模型在没有转化数据时能够用CTR模型的“知识“”完成冷启动过程。该方法的局限性要求领域A和领域B所用的特征必须基本一致
  3. 探索与利用机制。探索与利用是解决冷启动问题的另一个有效思路。简单的讲,探索与利用是在“探索新数据”和“利用旧数据”之间进行平衡,使系统既能利用旧数据进行推荐,达到推荐系统的商业目标,又能高效的探索冷启动物品是否是优质物品,使冷启动获取曝光的倾向,快速搜集冷启动数据

补充,解决探索与利用问题目前主要有三大类方法:

  1. 传统的探索与利用方法:这类方法将问题简化为多臂老虎机问题。主要的算法有 ϵ − G r e e d y \epsilon-Greedy ϵGreedy ϵ \epsilon ϵ 贪婪)、Thompson Sampling(汤普森采样)和UCB。该类解决方法着重解决物品的探索与利用,方法中并不考虑用户、上下文等因素,因此是非个性化的探索与利用
  2. 个性化的探索与利用方法:该类方法有效的结合了个性化推荐特点和探索与利用的思想,在考虑用户、上下文等因素的基础上进行探索与利用的权衡
  3. 基于模型的探索与利用方法:该类方法将探索与利用的思想融入推荐模型之中,将深度学习模型和探索与利用的思想有效结合,是近年来的热点方向。

参考

低活用户特征稀疏如何解决

  • 对于新用户冷启,top priority肯定还是尽力收集用户的数据

  • 但是仅靠收集数据也是不够的。比如:在一个成熟的app中,老用户的样本碾压新用户样本,主导了模型。徒增了几个new user friendly的特征,模型也不会重视。因此,也还需要一些算法上的技巧,让收集到的新用户信息,能够真正发挥作用。

  • 技巧1:加强重要区分性特征。要把new user friendly特征加到合适的位置,比如加得离loss更近一些,再比如作为gate的输入,衡量其他特征的重要性。

  • 技巧2:将新老用户看成两个domain,借鉴multi-domain learning的经验,让老用户模型能够助力新用户,又不至于过分主导。

  • 技巧3:新用户的初值非常重要,可以尝试获得对新用户友好的初值。这种方法的思路是,新用户训练困难是因为数据少。但是,如果新用户的初始值并非随机,而是已经非常靠谱了,通过少量数据+几次迭代,就能收敛到不错的用户表示,岂不妙哉!

参考文章

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值