APP下载

一个资讯推荐系统评测方案的设计

2023-05-08袁宜霞

电脑知识与技术 2023年9期
关键词:推荐系统

袁宜霞

关键词:推荐系统;模型离线实验;A/B Test在线实验

0 引言

在互联网信息爆炸式增长的今天,人们通过多种渠道随时随地能接收到各种类型的新闻资讯信息,呈现给所有用户一样资讯内容的方式已经不适应于当前时代,发展个性化推荐是提升内容消费用户体验和业务指标的重要手段,面对浩如烟海的信息,如何更加精准地将用户感兴趣的资讯推荐给用户,提高用户黏度,做到“千人千面”的推荐,这就需要研发团队提高推荐系统的效果[1]。但是与传统评测有所不同,推荐系统采用的不是传统意义上的输入与输出,测试人员难以介入推荐系统的模型和算法等中间过程,这给评测带来了较大难度。

本文通过分析资讯推荐系统架构,制定了一套推荐系统评测方案,介绍了具体的测试方法和实践过程,并给出提升推荐系统研发效率的举措。

1 资讯推荐系统评测框架

如图1所示,用户通过手机进入资讯类软件查看资讯内容,资讯类软件会通过用户画像Profile和特征进行资讯内容推荐,同时在后台收集用户在软件内的各种操作行为,并进行日志存储,以便于优化推荐效果。

接下来本文将从如下几个方面阐述资讯类推荐系统的评测点和具体方法,其中1.1到1.4是资讯推荐系统的基础数据评测,1.5是推荐系统效果的评测。基础数据评测是推荐系统效果评测的基础,只有保证基础数据准确无误才能正确地评测推荐系统效果。在基础数据评测中会采用到众测、用户调研和竞争产品分析对比测试等测试手段。

众测是指将软件测试任务发布给一批真实的用户执行,这些用户来自不同行业,年龄不一,具有不同的软件使用习惯,呈现出用户信息的多样性,与雇佣的专业测试人员有很大区别[2]。用户在参与测试的过程中根据参与任务数量、反馈问题价值和配合度等获得相应的奖励积分,从而提高测试质量。研发团队利用众测在短时间内完成大量的产品体验,使软件在不同的真实场景下充分被测试,增强了软件的可靠性,也让研发团队能更快地收集到来自用户的意见和反馈,低成本地发现软件缺陷,这种方式在很大程度上缓解了用户数量不足,测试成本高等问题。目前流行的众测平台有百度众测、腾讯众测等。

用户调研是了解用户在特定场景下的要求与意愿,从而产生对应产品需求的活动。用户调研方法问卷法、观察法、实验法、单人访谈法、头脑风暴法、焦点小组和自我陈述法等[3],不同的方法有不同的优势,团队根据自身产品特点和调研对象去选择合适的调研方法。

竞争产品分析对比测试是指从各个维度将自身产品与其他竞争产品进行对比测试,并分析结果数据来优化自身产品,提高自身产品的品质和竞争力。不同角色的侧重点不一样,软件测试人员更关注竞争产品的主要功能和性能、架构、页面细节、交互流程、视觉表现、用户体验、用户反馈和特色功能等。竞争产品分析测试包括客观数据对比和主观用户流程模拟测试,列出竞争产品和自身产品的优势与不足。

1.1 用户画像Profile 评测

对于个性化推荐系统来说,用户画像是否准确,直接影响到推荐效果。如果用户画像Profile不准确,用户会收到很多不喜欢甚至是反感的资讯,进而带来用户的流失。

对用户画像Profile评测,主要分为两个部分。

1) 静态Profile

1) 静态Profile静态Profile包括性别、年龄、星座、居住地、家乡等,对于静态Profile,测试人员主要评估用戶信息的覆盖度、准确性。

①覆盖度评测的重点在于个人基本信息的覆盖是否全面,基于足够全面的用户信息才能提供更精准的内容推荐。除了年龄和性别等基本信息,还要尽量覆盖职业、收入、婚姻状态等信息。

②准确性评测的重点在于收集的用户信息是否准确,对有误的信息要进行追踪解决。

静态Profile评测可以采用用户调研的问卷方式进行,测试人员需要提前做好用户的选取,可以通过众测方式来进行用户招募、任务分发和数据收集。测试过程中采取交叉验证,混合已知正确答案等方式。

2) 动态特征

动态特征是用户积累的兴趣特征,每款软件都有各自的特征积累方法,对于资讯类软件,用户点击、滚动浏览、收藏、点赞、评论和分享文章等以及搜索某些关键字,都会积累相关特征到用户画像Profile里面。

对于动态特征,测试人员主要评估特征积累的及时性、准确性。

①及时性在于分析各个场景下上报特征是否及时。在线实时行为的特征需要立即上报,如近30分钟内的操作记录及时上报,离线中长期行为的特征在特定时间后确认特征是否上报,如近7天/30天的阅读类目等。

②准确性在于特征的积累是否准确。例如用户阅读的文章具有“王者荣耀”的标签,那么需要确认在特征中“王者荣耀”的权重是否有相应的增加。

动态特征积累评测主要采用手工测试,根据场景的测试优先级进行排期,覆盖用户常用路径以及网络切换和快捷入口等特殊场景。

1.2 UI 交互评测

UI交互是指对软件的人机交互、操作逻辑和界面美观的整体设计,对资讯类用户体验产生的影响非常大。UI交互的评测更多是主观的用户感受,所以,评测主要是采用竞争产品分析对比测试,以及收集本产品真实用户反馈的方式,测试人员需要从如下两个方面进行评测:

1) UI方面

测试人员评估信息展现方式是否使用当下流行的方式,图文排版是否采用合理的展示方式,界面主色调是否符合与产品和品牌定位等。

2) 交互方面

测试人员评估资讯刷新方式是否好用,浏览信息方式是否合理,如视频类资讯是否在Wi-Fi下自动播放,播放结束后是否自动播放推荐的下一个视频等。

1.3 内容质量评测

对于资讯类软件而言,内容质量评测至关重要。内容质量主要包括文章质量好、时效性高、文章的分类准确和文章标签提取准确。

1) 文章质量

对于外部转载的文章,判断文章质量优劣的一个重要因素是来源,优质账号的文章质量较高,也很容易获得分享和点赞。对于原创的文章,优质的文章让读者读完后觉得有价值和意义,而低质的文章主要是标题党、错别字多、伪科学、夹带广告、低俗色情等,也很容易被人举报。文章质量可以结合真实用户行为来进行评测,测试人员在作评测时,把文章来源、用户的正面和负面反馈、用户评论等作为输入条件进行建模分析,进而对线上的文章质量进行评测。

2) 时效性

对于热点资讯,时效性高是至关重要的。在实际评测过程中,无法一直采用人工测试,所以进行自动化脚本监控是十分必要的。通过爬虫等手段实时监控几家头部资讯软件的热点新闻,如果热门新闻没在自身产品中推送,说明热点新闻更新不够及时,需要进行改进。

3) 文章分类

文章分类的准确性直接影响了推荐的准确性。在文章分类评测时,首先明确每个分类的含义以及边界,方便用户理解,然后抽样出热门分类的多篇文章通过众测平台发布任务给多个用户进行标注,最后对人工标注结果进行分析后得出评测结论。

4) 文章标签

文章标签是指关键词,系统根据标签来推荐文章给有兴趣阅读的用户。测试人员通过脚本抓取标签词,进行粗略分析,再由人工进行评测。

1.4 日志统计上报评测

任何产品都会进行日志统计上报,一方面可以通过上报数据观察当前产品的使用情况,另一方面,可以依据上报数据来关注产品的KPI指标,比如对于资讯产品,关键的指标有访问量PV、用户数UV、点击率CTR、浏览时长等。如果日志统计数据失真,那么研发团队基于这些用户数据所做的算法调整和产品策略优化等都将是无效的。

对于日志统计上报功能的测试,测试人员首先需要确定哪些场景应该要有日志上报,对于资讯产品,用户的曝光、点击、阅读时长、评论、分享、收藏等都是需要统计的,而且要细致地分入口进行统计;其次,除了测试正常场景的上报,还需要注意覆盖不同机型、不同网络切换场景、信号弱场景、地域相关场景等是否正常上报。在日志统计上报功能测试时,测试人员要重点关注的是上报数据是否全面、准确和及时可靠。

1.5 推荐系统效果评测

1) 模型离线实验

算法和模型是推荐系统的核心,直接决定了推荐效果的好坏。模型离线实验是指模型没有部署到生产环境之前从实际的日志统计上报系统提取数据集来训练一个模型,对训练好的模型进行离线评估来确定模型的效果。推荐系统中包含多种算法,以常见的推荐算法为例,此算法将用户静态Profile和用户资讯浏览的动态特征等作为输入数据,预测用户组对具有特定属性的资讯会感兴趣并进行召回和排序,最终推送给特定的用户组。推荐算法主要有协同过滤算法、流行度推荐算法、基于内容推荐算法和混合推荐算法等,不同的推荐任务需要不同的用户信息并采用不同的推荐算法。推荐算法的多样性导致推荐效果评测具有较大挑战性。当前对于推荐算法的评测方法是利用用户数据集对算法进行离线实验[4],即在给定用户数据集后,评测人员会将数据分成训练集和测试集,然后根据训练集建立资讯推荐模型来预测测试集中的用户行为。其中用户的数据集可以包含多种用户行为,例如用户点击CTR信息、点击信息、时长信息等。模型离线实验是推荐系统中包含算法评测的基石,它为算法迭代提供兜底依据,并且具有路径短,可以方便地完成闭环进行快速迭代、不会影响线上真实用户体验、效率高可快速验证大量算法的优势。

模型离线实验的评测指标包括预测准确度、覆盖率、多样性和新颖性、惊喜度、信任度、实时性和健壮性等。模型离线实验的目标是需要在覆盖率、多样性和新颖性不低于团队设定的基准值的情况下,尽可能地提高预测准确率。预测准确度是评价推荐算法最基本的指标,在推荐系统中常用的准确度指标为评分预测和Top-N推荐,其中评分预测中通常使用均方根误差RMSE或者平均绝对误差MAE等评测指标,而Top-N推荐更多地使用标准化折扣累积收益NDCG或者平均精度均值MAP的衡量方法[5];覆盖率指标是指算法向用户推荐的文章占全部符合条件文章的比例,也就是能否将所有文章推送到适合的用户,而不是对于所有用户只推荐全局热点文章,增大推荐范围的局限性,其可以被分为预测覆盖率、推荐覆盖率及准确覆盖率,在资讯推荐中最为关键的是预测覆盖率,其表示系统可以预测评分的文章占所有符合露出条件文章的比例;多样性和新颖性重要性在于推薦系统中常见的问题是用户如果大量长时间地点击同一个主题或者是分类,其后推荐的资讯会呈现漏斗状,限制了用户的阅读,这时候就需要推荐系统进行猎奇的多样、新颖推荐以弥补这些缺陷。信任度、实时性和健壮性等指标目前大多数还是采用用户调研打分的方式进行评分。

综上,模型离线实验依赖于提前给定的用户数据集,并不能展示出算法对线上真实环境下产品关键性指标的影响,所以离线实验只能作为衡量算法效果的辅助指标。

2) A/B Test在线实验

为了解决模型离线实验不能展示出算法对线上真实环境下产品关键性指标影响的缺点,推荐系统效果评测引入A/B Test在线实验。A/B Test在线实验的评测指标是线上真实用户数据指标,例如活跃用户数量、用户点击率、访问量PV、用户数UV、评论量、负反馈率和浏览时长等。A/B Test可以用来测试产品的新功能特性和算法,通过在真实线上生产环境设置两组相同数量的用户进行实验,其中一组用户为对照组,应用的是当前产品的功能特性或算法,另一组用户为实验组,应用产品的新功能特性或算法,然后统计分析实验数据,确认实验组数据是否更好。如果实验组数据更好则可以在线上生产环境中逐渐全量发布新功能特性或算法,否则,调整新功能特性或者优化算法后再重新开始实验。对于资讯推荐系统,A/B Test能支持基于用户画像Profile下发会事半功倍。

在进行A/B Test在线实验时,选取样本量是最重要的一步。如果选取的样本量太小,那么实验结果会有很大的波动,不可信。如果选取的样本量太大,对真实用户的影响面也就越大,对于一些有可能带来负面影响的探索性实验,把过多的真实用户纳入实验范围是不合理的,而且样本量过大也会带来资源和流量的浪费。在参考文献[6]中给出了实验所需最小样本量和比例类数值所需最小样本量的计算公式,测试人员可以利用Python 的科学计算库来计算出最小样本量。

2 总结

一个优秀的推荐系统是数据、UI交互、架构和算法等环节的有机结合,推荐系统的质量依赖于各个组成环节的质量以及环节间配合的顺畅度。从评测的角度提升推荐系统效果,测试人员不仅需要提供各个环节相关评测指标、发现产品缺陷,还应该关注竞争产品的对比分析、真实用户行为观察以及产品缺陷的快速追查,从而保证整体推荐系统的可用、高效、准确。

1) 竞争产品分析对比测试从文章来源、分类到文章标签提取质量,都可以通过自动化抓取竞争产品的数据进行对比评测,评测过程中不仅可以评估系统效果,同时也可以反馈产品缺陷、获取较好的训练数据集,从而推动推荐系统不断优化。

2) 在大数据的评测中由于推荐系统实现链路较长,对于缺陷的追查过程较为烦琐,所以可以开发缺陷追查系统,将资讯推荐路径日志自动化过滤出来以方便研发团队定位问题和进行排查。

3) 真实用户行为观察旨在弥补用户调研中可能存在的用户不了解自身真实兴趣或行为的情况,通过观察真实用户行为可以了解用户点击模型和浏览习惯,进一步增加推荐算法的参数维度,提高推荐点击率。

综上,推荐系统的评测需要深入到每一个环节,才能更好地提升推荐系统效果,将用户真正感兴趣的资讯精准地推送到用户。

猜你喜欢

推荐系统
基于用户偏好的信任网络随机游走推荐模型
基于Mahout分布式协同过滤推荐算法分析与实现
基于Baseline SVD主动学习算法的推荐系统