深度|Netflix大屏交互设计分析系列(5):构建个性化页面
时间:2019-10-29 09:59:01 热度:37.1℃ 作者:网络
前言:本文来源于微信公众号“流媒体网”,为流媒体网版权所有,转载文章请注明来源。
本文将对Netflix如何构建个性化推荐页面的设计思路及算法选择进行讨论,这是其在数据应用方面最广为人知的特色能力,其目标是让用户在任何设备上登录Netflix时都能够轻松找到自己喜欢的内容。
Netflix在实施过程中遇到的挑战在于:内容库中节目的数量远超单个页面的展现能力,而且每个用户都有着自己独特的兴趣点,这绝不是一个普通的算法就能解决的问题。
当然,这个问题并不是Netflix独有的。任何新闻网站、搜索引擎、在线商城等都会面临同样的困境:如何从海量的可用内容中选择用户可能感兴趣的部分,以连贯的、易于导航的方式来呈现,并最终引发用户点击或购买。
在大多数设备上,Netflix都采用行列二维导航的方式来呈现视频内容,用户可以采用水平或垂直滚动的方式来查看这些内容。
基于这样的展现方式,面向用户的个性化推荐的关键在于:如何保证单页上显示内容与用户兴趣的相关性,如何在有限的展示空间中进行排布,从而简化用户的操作。
行分组:能快速跳过的内容分类展现方式
这种在一行中集中展现某一分类节目集合的方式被Netflix成为AltGenre或“微分类”,因为表达其单行的特点,本文将统一称为“行分组“。
对视频进行分组的一种简单方法是按类型或其他视频元数据维度(例如发布日期)等进行分类。当然,组内视频的关系也可不必依赖于元数据,而是来自于其他用户的行为信息,比如通过协作过滤算法推荐朋友观看过的视频。
通过行分组的标题及组内海报,用户可以快速决定该行分组是否与他们的兴趣点一致,可以通过选择在分组内的水平滑动查看更多的内容,也可以跳过该行寻找下一个感兴趣的行。
因此,从行分组中内容集组织及展现方式来看,每一行都应该是对内容独立的、唯一的、个性化的切分,以满足用户不同维度的需求。
行分组可以采用预先创建的方式来作为页面可选素材库,一旦需要为某个用户创建个性化主页,Netflix会根据用户画像或某些特征(例如,用户以前观看过某种节目类型),来圈定可能的候选行分组。
接下来,根据某些特定条件(例如,内容分级要求或用户之前已经观看过一些内容)将候选分组中不应该展现的内容过滤掉。剩下的内容则会采用行内排序算法进行排序,以保证将该组中最可能引发用户观看兴趣的内容被排在前面。
最后,应用行分组排名算法来完成整个页面的组装,删除各行分组之间重复的数据,并设置行分组格式适合用户的显示设备。
个性化页面:准确、有效、及时、稳定、多样
采用算法创建一个优秀的个性化首页意味着:根据用户特征以及浏览设备设备的不同,从用户相关的视频(用户本人或朋友曾看过)以及成千上万个可用候选行(每行拥有可变数量的内容)中,选择最适合该用户的行分组进行分组间及组内显示排序。
最终,在受限于设备显示区域的情况下选择有限数量的行分组及组内视频数量,以确保在充分利用屏幕显示区域的同时依旧能为用户带来良好的交互体验。
Netflix将个性化推荐算法的重点集中在“帮用户找到值得关注的新内容”,充分考虑以下因素来完成用户可能感兴趣内容的选择及展现:
从准确性的角度来看,这是个性化推荐的关键目标之一,与用户的观看口味紧密相关。用户的兴趣点从来都不会只有一个,因此需要确定用户多样化的兴趣范围。
从有效性的角度来看,推荐结果是兼具深度和广度的:既能体现对用户诸多兴趣点的深度挖掘,也能够帮助用户在更广的范围内探索并发现新的兴趣点。
从及时性的角度来看,推荐结果应该能够及时根据用户的操作做出相应的改变,例如观看节目、添加到列表、评分等动作。
从稳定性的角度来看,推荐结果的展示方式应该保持稳定,以便用户能在自己熟悉的主页风格、熟悉的位置轻松找到最近向他们推荐的视频,频繁的更换界面风格只会增加用户找到内容的难度。
从功能性的角度来看,面向任务的行分组(例如,“我的列表”)也应该作为页面的一部分嵌入到面向内容推荐的行分组中。类似“我的列表”这样的行分组是用户的自主选择的兴趣点,从结果上来说它与系统推荐并没有太多的不同。
从交互性的角度来看,由于用户所使用的不同设备的可显示区域范围并不相同,因此在一屏中可显示内容的行数量、行内视频数量以及整个页面的大小产生约束。在页面创建过程中就必须充分考虑行数、行内视频内容的最小和最大长度、页面可见部分大小、某些行是否必须在某些设备上显示/不显示等因素。
但是,即便充分考虑以上因素构建完善的推荐系统,也可能会出现用户真正感兴趣的内容与无关内容混杂的情况,进而最终导致被推荐的整个行分组呈现出“无效”的状态。
此时,采用行列二维导航布局的意义就真正体现出来了:用户可以采用垂直滚动轻易跳过那些与其兴趣点无关的内容行分组,直至看到某个相符的集合,然后用户就可以采用水平滚动的方式查看更多的推荐建议。
这样的交互设计方式,保证了个性化推荐首页在保证视觉上的连贯性(多个内容行分组间采用水平移动快速定位)同时,有效呈现出推荐内容多样性(单个内容行分组中可水平移动的节目内容),以满足用户对关联性和多样性的需求。
算法选择:从用户主动参与到机器学习
有很多算法可以用于构建个性化推荐页面。在不同的发展阶段Netflix尝试了不同的方法,并采用A/B测试的方法进行持续的改进。
- 初期:用户参与的规则化模板
Netflix在很长一段时间内采用的策略是基于规则构建模板。用户自行从模板中选择设置所需要展现的行分组,决定在页面的哪些位置可以浏览那种类型的内容。例如,默认规则在第一行显示 “继续观看”(如果有),第二行是“热门精选”(如果有),第三行是“在Netflix上流行”,然后是5个个性化类型行。用户也可以自行将第二行设置为“因为您观看了<某个影片>” 行(根据其观看历史及影片的类型来获得更多的推荐内容。)
Netflix采用简单的采样和试探法从成千上万的不同类型的行分组中筛选出有限数量的、可供用户选择候选行分组,并采用A/B测试的方法进一步了解用户设置行分组的顺序。
在不确定用户喜好的情况下采用“规则化模板”能有效解决可能存在的推荐不准确的问题,但它的缺陷在于忽略了页面显示质量中很多至关重要的部分,例如:分组中内容推荐的质量、页面内容的多样性、特定类型对用户的吸引力、对单个行分组内重点推荐视频质量的控制力等。
随着对行分组类型的不断丰富以及用户个性化选择的不同,会导致构建模板的规则日趋复杂,增加用户选择和设置个性化推荐页的难度,进而降低用户交互体验。
另一方面,在用户已经习惯于原有选择的情况下,也很难在用户已经熟悉的推荐界面中调整或新增行分组,来完成更准确的向用户推荐合适内容的目标,在体验上缺乏进一步优化的空间。
- 改进:依据节目评分调整行分组显示顺序
Netflix重新考虑了个性化主页上如何设置行分组顺序的方式,将用户的选择和自主排序的过程简化为行分组间自动排序的问题。
通过在节目中添加 “评分”功能作为行分组生成的依据,并自动优先显示包含较多高评分内容的行分组。
这种做法的好处在于能够有效的解决向不同用户展现更多类型的行分组的问题,通过简单的评分选择也能简化用户对不同类型行分组的的选择操作。
但其缺点也是显而易见的:所有的行组都是基于用户的评分操作完成的,因此最终页面中所产生的个性化推荐结果将会缺乏多样性。
也就是说,页面会根据用户的选择大量展现与用户兴趣点一致的行分组,而各个行分组间在节目类型上的差别又很小。例如,每行都可能是喜剧分类下的变体:深夜喜剧、家庭喜剧、浪漫喜剧、动作喜剧等等。
另一方面,采用“评分”的方式对行分组进行排序也会造成用户认知和操作上的困扰,用户必须经过思考才能决定到底应该是给五星还是一星,这会造成用户在行为认知上的负担,并最终导致两种结果:用户放弃或随意评分。
无论哪种结果都会造成内容推荐的不准确,因此Netflix之后将其改为最简单的“喜欢/不喜欢”并且取消了评论的功能。
- 再次改进:以页为单位实现视觉范围内的局部最优
对于推荐内容缺乏多样性的问题,可以采用贪婪算法寻求推荐内容的局部最优解。虽然得到的页面并不一定是完整的、最好的结果,但至少在局部范围内(比如单页面中)解决了多样性的问题。
具体的方法是:以行为单位再进行一次分组形成“行区域”,将某个已经纳入选择的行分组中的视频内容作为基础,将贪婪算法应用在该行下N行的所有行分组中,以寻求N+1行中的最优解。需要注意的是,如果应用贪婪算法的行数过多会产生额外额计算成本,进而影响页面加载的速度。
这种方法虽然在N+1行范围内的推荐内容是最优的,却没有办法保证用户更感兴趣的内容是否会在当前页最显眼的位置呈现,或者是干脆就被隐藏到了行分组水平显示区域之外。这会引起用户额外的操作成本,也会降低了推荐内容有效访问率。
再进一步优化的方式是:考虑到用户在显示区域范围内是以“页”为单位进行内容浏览,可以通过对整页内容进行自动评分,通过选择适当的行分组及视频内容逐页进行排序优化。
考虑到Netflix丰富的内容库来说,如果采用无限瀑布流的方式来展现,那么在确保个性化推荐质量的情况下,即便将内容库按显示页为单位,在技术实现上也是几乎没有可能的,更不用说还得考虑重复数据删除、内容分级过滤、设备显示区域等各类约束条件。
因此,在单页面内根据用户行为认知的特点进行内容显示排布就显得十分重要,要在用户注意力及交互操作可能集中的区域内,更多地推荐用户可能更感兴趣的内容。
根据A/B测试及眼动跟踪观察的结果,将最相关的视频放在最可能出现的位置(通常是左侧偏中部的位置)上,可以减少用户找到与兴趣点相关的内容的时间。
考虑到不同用户使用习惯的差异性、针对不同类型设备的交互设计的差异性以及内容本身的相关性等因素,很显然不同界面交互设计将会使个性化推荐的方案产生极大的变化。
因此,Netflix宁可坚持采用看似简单的行列二维模型进行页面布局,以保证能够在简单的导航交互模型下为用户提供更为准确的、多样化的推荐结果,以提升内容的推荐有效性。
- 终极方案:使用机器学习生成页面
建立个性化页面的核心是引入“评分”功能来评估行分组或页面的推荐质量。
虽然可以采用试探法或直觉甚至是用户参操作来构建这种评分,并使用A / B测试对其进行调整,但Netflix更喜欢从实际的数据中来获取评分的结果,以便减轻运营人员的工作,减少用户的操作及认知成本。
基于用户初期如何参与创建自己的个性化主页、实际观看的内容、交互操作过程等一系列历史信息,采用机器学习的方法对这些信息进行训练,以自动化的方式完成整个评分的过程。
在行分组级别,可以基于该行中包含视频节目的元数据或其他评估模型,在行内进行汇总或按其显示位置编制索引,根据用户的交互结果来实现行内的优化。
在页面级别,则可以基于行分组级别信息考察行分组与其他行的相似度、分组中的视频与其他分组视频的相似度,实现页面级别的推荐效果优化。这些信息可以包括:页面中展现了多少用户感兴趣类型的内容;每行中有多少视频内容;各行分组及其类似的分组过去是否有被用户使用过;页面上某行的位置或过去显示该行的频率等。
尽管机器学习在个性化推荐中的应用空间很大,但依然会面临一些挑战:
交互设计及行为认知的挑战。例如,页面上行分组的位置会极大地影响用户实际是否会看到该行,然后再选择其中的内容进行播放。为了处理由于表达形式及显示位置所造成的偏差,需要特别注意为算法选择合适的训练数据;
在训练模型中归因确定的挑战。例如,虽然某个视频过去可能曾在某行播放过,但如果这个视频放在其他类型的第一个位置上,用户仍然仍然会选择播放?也许当初用户之所以会选择播放仅仅是因为行标题是“广受好评的纪录片”,但无法证明如果把节目放在“新发行”行中用户依然会选择播放这个节目,哪怕它占据了该行的第一个位置。
但是,即便采用机器学习的方法进行个人推荐的优化,在个性化首页的设计仍然还存在很多挑战。如何在找到最佳页面和计算成本之间找到适当的取舍?当用户刚开始使用业务、系统掌握信息较少时该如何生成首页?
这些都是Netflix在个性化推荐上持续不断思考并尝试的。
本文所描述的“内容展现排序问题”只是Netflix基于数据驱动、采用工程化手段实现个性化推荐的一部分。在显示区域、用户心智有限的情况下,对海量内容进行个性化推荐始终是一个极其困难、需要持续优化的过程。
在本系列的最后一篇文章中,将结合《Netflix大屏交互设计分析系列(4):中所得到的节目素材库,讲述Netflix如何更进一步的实现推荐海报的个性化以及A/B测试的实施方案,敬请期待。