图片


分享嘉宾:刘志强 奇虎360 推荐算法架构师

编辑整理:周峰

内容来源:DataFun AI Talk机器学习与推荐系统实践

出品社区:DataFun

注:欢迎转载,转载请注明出处。


1. 摘要


本次分享内容为机器学习在推荐系统的应用。主要介绍推荐系统实践中遇到基本问题,以及基于机器学习技术的解决方案。过程中涉及到概率图模型、神经网络等等方法在解决用户冷启、精准兴趣与个性化、资源协同等问题中的取舍。最后指出如何对实际的推荐系统进行有效的评估等问题。

 

2. 推荐系统

 

2.1 推荐系统介绍


图片


推荐系统不仅仅是推荐算法,我们应当将其看成一个产品。或者说它是一种数据驱动的用以满足用户个性化需求的产品实现方式,有极强的领域依赖性。好的推荐系统要了解用户,理解用户, 尊重用户。


2.2 推荐系统问题


图片


推荐系统本质是将人和物品关联起来,而系统对用户的理解也是由浅入深,初来时彼此陌生,需要有一个冷启的过程,逐渐把握用户的喜好。随着用户行为的丰富,系统对用户兴趣的描述也越来越客观,此时便可能得到更准确的用户偏好,进而完成更精准的推荐。然而物极必反,用户对于一个平台的认知与期望也是一样。随着用户的深度使用,势必对推荐系统生出更高的期待和要求。这时,便可能需要系统在满足深度用户某种刁钻的口味,与大众用户的普遍期待中做出某种取舍。用户也就不可避免的出现了流失。因为系统的能力终归有限,而用户的期望无限。


此外资源也会经历类似的过程,新进场的资源虽然天然有某种内容的属性,但其被用户接受,仍然不可避免需要经历一个过程。过程中有些资源会被淘汰,有些则会成长为热门。在不断地引入新资源的过程中,再热门的资源都会有过期的一天。就好比,再会保养的人,也逃不过岁月的流逝。甚至,为了保持系统的实时性,热门的资源需要主动地让出在系统中的曝光份额。


在推荐系统的优化过程中,用户的取舍与资源的冷热,都是需要仔细设计以服务于系统的整体目标。

 

3.算法实践


3.1 用户冷启动


图片


如图,将用户和物品抽象成一个User-Item的矩阵,表达用户users对物品items的喜好程度。用户冷启动要解决的是当来了新的用户new users,如何得到新用户对物品items的喜好程度。一个常见的解决办法是能不能从其他维度或领域的数据来判断新用户对现存物品的喜好。具体解释就是某个用户可能在已有领域current domain和另一领域out domain都有相关行为,可对两个不同领域的行为建立一个mapping,当新用户来的时候,如果在另一领域有相关行为,可用该mapping作出prediction,得到新用户对item的喜好程度。


图片

图片

图片

图片

图片


3.2 精准兴趣


在推荐系统中,我们往往使用用户的点击行为来估计用户的喜好类型。然而用户的每次点击未必都是经过其深思熟虑之后的结果,因此行为本身会存在一个置信度的问题。而这个置信度是未知的。那我们如何建立模型表达用户的精准兴趣呢?

 

我们将用户点击的行为抽象为两种可能,一种是喜欢(深思熟虑置信度较高) , 另一种为随意 (偶然为之,置信度较低,或可理解为系统的bias)。我们建立如下图模型来模拟用户两种行为:


图片图片

图片

3.3 协同过滤


讲到推荐系统,一定少不了相似推荐或协同过滤。接下来我们就介绍一种根据用户点击行为序列(把不是用户因为喜欢的点击可以去掉)来构建资源之间的推荐转移关系,进而实现物品协同推荐的方案。如图所示:


图片

图片

图片


在或者,觉得不够深,则可以将模型变为如下形式:


图片


实际中,很多事情并不是“越深越好”,需要根据业务的需要做取舍。

 

4. 评估

 

4.1 离线评估


关于离线评估,这里不太想介绍具体指标和方法。更多的是我们在做推荐系统评估过程中的一些问题和思考。以及我们在做评估时需要注意的点:


1. 评估数据的选择?


是不是模型在评估数据上的表现越好,就能够代表,推荐策略或算法的表现越好?评估数据是怎么产生的,是否与系统的未来目标一致?评估数据是否存在bias? 


2. 训练数据的完备性?


你用来训练模型的数据是否客观、准确、全面?分布是否合理?


3. 策略可迭代性?


准确性越高的算法,可能对系统的伤害也会越大!策略是否未系统的未来留了足够的空间?会不会发生“竭泽而渔”的惨剧? 

 

图片


总之,初始策略的应用会限定用户的行为发生,决定了产生了什么类型的数据,进而决定了生成的模型描述的内容。而新的策略的应用又决定了下一次策略迭代所使用的数据生成过程。我们做机器学习都会追求模型的收敛。而某一次收敛性很好(过拟合)的策略,都可能导致系统未来不再具备继续迭代的可能性。而这种过拟合恰恰是我们所认为的策略泛化能力(对未来测试集数据的友好性)。

 

4.2 在线评估

 

主要是注意召回和Ranking的关系。


图片


举个例子,假设现有推荐列表平均CTR7%,召回方案一结果平均是10%,方案二平均是3%,通常来说10%的方案更好,如果方案一结果增加到推荐列表中,则原先推荐列表中必有一部分资源被挤掉,如果被挤掉部分的CTR大于10%(注意7%是平均值),则最终的CTR必然下降。换言之,将3%的方案增加到推荐结果中,如果被替换的部分之前CTR1%,则推荐效果会有所提升。因此,召回策略推荐效果的好坏并不完全取决于是否召回了用户点击率更高的资源,还取决与将其放在什么位置。


召回与ranking需要在系统当前能力范围内做匹配,一方超前或者落后,对系统来讲可能都是有害的。


作者介绍:


刘志强奇虎360 推荐算法架构师毕业于中国人民大学情报学系。长期(真滴是比较久了)从事机器学习与推荐系统相关工作。热衷于将从数据中挖掘到的蛛丝马迹用于产品和业务的优化中,并以此为乐。目前就职于奇虎科技(360),负责360信息流资讯推荐算法的设计及研发落地。致力于打造一款“丰富用户的信息获取、解决用户阅读需求、传递社会正能量、弘扬主旋律”的内容产品。

社区介绍:


DataFun定位于最“实用”的数据科学社区,主要形式为线下的深度沙龙、线上的内容整理。希望将工业界专家在各自场景下的实践经验,通过DataFun的平台传播和扩散,对即将或已经开始相关尝试的同学有启发和借鉴。DataFun的愿景是:为大数据、人工智能从业者和爱好者打造一个分享、交流、学习、成长的平台,让数据科学领域的知识和经验更好的传播和落地产生价值。


DataFun社区成立至今,已经成功在全国范围内举办数十场线下技术沙龙,有超过一百五十位的业内专家参与分享,聚集了万余大数据、算法相关领域从业者。


图片