《推荐系统实践》(一)——推荐系统评测

主要使用的推荐系统实验的方法

  • 离线实验

优点:

  • 不需要有对实际系统的控制权
  • 不需要用户参与实验
  • 速度快,可以测试大量算法

缺点:

  • 无法计算商业上关系的指标
  • 离线实验的指标和商业指标存在差距
  • 用户调查

由于离线实验不能对真实的环境进行准确的测评,最好的方法是将算法直接上线,但是在对算法会不会降低用户满意度不太有把握的情况下,上线测试具有较高的风险,所以在上线测试前一般需要做一次称为用户调查的测试。
优点

  • 可以获得很多体验用户主观感受的指标
  • 相对于在线测试风险低
  • 出现错误容易弥补
    缺点
  • 招募测试用户代价大
  • 测试范围有限制,双盲环境太过困难
  • 在线实验

在线实验通常会采用AB测试,将旧算法与新算法进行比较,对用户进行随机分组,来提高用户满意度。
主要的缺点:周期长,只有进行长期实验才能得到可靠的结果

对于一个新的推荐算法上线,通常要完成以上三个实验

一、预测准确度

<1>、评分预测

1.均方根误差(RMSE)

(1)均方根(RMS)也称为效值,公式: X r m s = ∑ i = 1 N X i 2 N X_{rms}=\frac{\sqrt{\sum_{i=1}^NX_i^2}}{N} Xrms=Ni=1NXi2
(2)均方根误差(RMSE)是衡量“平均误差”的一种较方便的方法。是参数估计值与参数真值之差的平方的期望值。在实际使用中通常真值只能用最可信赖的值。
公式: R M S E = ∑ u , i ∈ N ( X u i − Y u i ) N RMSE = \sqrt{\frac{\sum_{u,i\in{N}}(X_{ui}-Y_{ui})}{N}} RMSE=Nu,iN(XuiYui)
其中X表示实际值,Y表示预测值


2.平均绝对误差(MAE)

所有单个观测值与算术平均值的偏差的绝对值的平均。

公式: M A E = ∑ u , i ∈ N ∣ X u i − Y u i ∣ N MAE = \frac{\sum_{u,i\in{N}}|X_{ui}-Y_{ui}|}{N} MAE=Nu,iNXuiYui

<2>、TopN推荐

网站提供推荐服务时给用户的个性化推荐列表,这个列表被称为TopN推荐。
TopN推荐的准确率一般通过**准确率(Precision)或召回率(Recall)**进行度量。

令R(u)是训练集上给用户做出的推荐列表,T(u)是用户在测试集上的行为列表。

  1. 正确率 = 提取出的正确信息条数 / 提取出的信息条数

  2. 召回率 = 提取出的正确信息条数 / 样本中的信息条数

两者取值在0和1之间,数值越接近1,查准率或查全率就越高。

准确率定义: P r e c i s i o n = ∑ u ∈ U R ( u ) ⋂ T ( u ) ∑ u ∈ U ∣ R ( u ) ∣ Precision = \frac{\sum_{u\in{U}}R(u)\bigcap T(u)}{\sum_{u\in{U}}|R(u)|} Precision=uUR(u)uUR(u)T(u)
召回率定义: R e c a l l = ∑ u ∈ U R ( u ) ⋂ T ( u ) ∑ u ∈ U ∣ T ( u ) ∣ Recall= \frac{\sum_{u\in{U}}R(u)\bigcap T(u)}{\sum_{u\in{U}}|T(u)|} Recall=uUT(u)uUR(u)T(u)


二、覆盖率

作用:用于描述推荐系统对物品长尾的发掘能力。最简单的定义为推荐出来的物品占总物品集合的比例。 C o v e r a g e = ∣ ⋃ u ∈ U R ( u ) ∣ ∣ I ∣ Coverage = \frac{|\bigcup_{u\in U}R(u)|}{|I|} Coverage=IuUR(u)
实际上为了更详细的描述系统的发掘长尾的能力,需要统计推荐列表中不同物品出现次数的分布。如果所有物品都出现在推荐列表中,并且出现的次数差不多,那么推荐系统长尾发掘能力就较好

在信息论和经济学中有两个著名的指标信息熵基尼系数可以用来定义覆盖率。

第一个指标——信息熵

信息熵是消除不确定性所需信息量的度量,也即未知事件可能含有的信息量。
H = − ∑ i = 1 n p ( i ) log ⁡ p ( i ) H = -\sum_{i=1}^np(i)\log p(i) H=i=1np(i)logp(i)
其中p(i)是物品i的流行度除以所有物品流行度之和。

第二个指标——基尼系数

马太效应:如果一个系统会增大热门物品和非热门物品的流行度差距,让热门的物品更加热门,不热门的物品更加不热门,那这个系统就存在马太效应。
推荐系统的初衷就是消除马太效应,基尼系数就是评测推荐系统是否具有马太效应的简单办法。

G = 1 n − 1 ∑ j = 1 n ( 2 j − n − 1 ) p ( i j ) G = \frac{1}{n-1}\sum_{j=1}^n(2j-n-1)p(i_j) G=n11j=1n(2jn1)p(ij)
其中 i j i_j ij是按照物品流行度p从小到大排序的物品列表中第j个物品。

def GiniIndex(p):
    j = 1
    n = len(p)
    G = 0
    for item, weight in sorted(p.items(), key=itemgetter(1)):
        G += (2 * j - n - 1) * weight
    return G/float(n - 1)

三、多样性

用户的兴趣是广泛的,比如有的用户即喜欢看动漫又喜欢看喜剧,往往用户的兴趣点会随着时间变化,如果推荐列表只能够覆盖用户的一个兴趣点,而这个兴趣点不是用户时刻的兴趣点,用户就不会对推荐列表满意。因此推荐列表需要尽量满足用户广泛的兴趣,即多样性。

假设 s ( i , j ) ∈ [ 0 , 1 ] s(i, j)\in [0, 1] s(i,j)[0,1]定义了物品 i 和 j 的 相 似 度 , 那 么 用 户 u 的 推 荐 列 表 R ( u ) 的 多 样 性 定 义 如 下 : i和j的相似度,那么用户u的推荐列表R(u)的多样性定义如下: ijuR(u)
D i v e r s i t y ( R ( u ) ) = 1 − ∑ i , j ∈ R ( u ) s ( i , j ) 1 2 ∣ R ( u ) ∣ ( ∣ R ( u ) − 1 ∣ ) Diversity(R(u))=1-\frac{\sum_{i,j \in R(u)}s(i,j)}{\frac{1}{2}|R(u)|(|R(u)-1|)} Diversity(R(u))=121R(u)(R(u)1)i,jR(u)s(i,j)
系统整体多样性定义为所有用户推荐列表多样性的平均值:
D i v e r s i t y = 1 ∣ U ∣ ∑ u ∈ U D i v e r s i t y ( R ( u ) ) Diversity = \frac{1}{|U|\sum_{u\in U}Diversity(R(u))} Diversity=UuUDiversity(R(u))1


四、新颖性

  给用户推荐那些他们以前没有听说过的物品。最简单的办法是,把用户之前在网站中对其有过行为的物品从推荐列表中过滤掉。但是这些信息也有可能用户从其他渠道已经得知,并不能完全实现新颖性。
  对于这个指标最重要的是如何可以不损失精度的来提高多样性和新颖性。


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本书是以使读者熟悉微软产品、微软工程师、微软测试人员、测试的作用和对软件工程的通常做法作为开始。书的第二部分讨论许多在微软常用的测试实践和工具。 书的第三部分探讨某些我们工 作中使用过的工具和系统。书的最后一部分探讨在微软测试和质量的未来方向,以及我们打算怎么创造未来。 本书结构清晰,内容详实,可作为广大软件测试人员的参考用书。 本书内容:   本书是以使读者熟悉微软产品、微软工程师、微软测试人员、测试的作用和对软件工程的通常做法作为开始。书的第二部分讨论许多在微软常用的测试实践和工具。 书的第三部分探讨某些我们工 作中使用过的工具和系统。书的最后一部分探讨在微软测试和质量的未来方向,以及我们打算怎么创造未来。 本书结构清晰,内容详实,可作为广大软件测试人员的参考用书。 事实上,软件的“缺陷”是不可避免的,只能通过编程人员和测试人员的共同合作,把“缺陷”降低到最小的程度。现代的软件工程管理方法,就是边开发边测试,及时把“缺陷”降低到最小程度。本书是 实用性很强、实践经验很丰富的一本好书,对我们软件企业和软件工程师来说都具有十分重要的指导意义。 ——中国软件行业协会秘书长胡崑山 软件工程人员为了做好测试工作,认真学习测试的理论和方法是十分必要的,但还应该积累软件测试的经验,通过阅读本书可以吸取知名优秀软件企业的最佳实践。 ——中国软件行业协会系统与软件过程改进分会(CSPIN)常务副会长、 清华大学教授郑人杰 本书是我一直在寻找的关于软件测试最佳实践的书籍,我很愿意向我的学员们推荐此书,作为软件测试实践的有效补充。 ——国际软件测试认证委员会ISTQB中国分会专家组组长、ISTQB 软件测试培训师周震漪 本书为业界吹来一阵清新的实践之风。全书通过翔实的案例描述了这个世界著名的软件企业为了保证快速和可靠交付,是如何毫不留情地与那些狡猾的缺陷进行顽强斗争的系列故事;此外,仔细介绍如 何通过质量保证生产出世界一流软件的基本原则是本书的另外一个亮点;与此同时,随处可见令人惊讶的创新,则是本书强大的作者团队,在分享他们的微软最佳实践方面的宝贵经验 ——国际外包管理协会(IIOM)主席Jerry E Durant 软件测试是软件工程中一个不可或缺的重要步骤,是一项需要高度智慧和极具挑战性的工作,又是一项需要实战经验积累的工作。“他山之石,可以攻玉”,此书的出版将为我们借鉴微软的先进测试经 验;培训中国软件测试人才;推动中国测试服务业的发展做出重要贡献。 ——中国软件测试机构联盟常务副理事长 上海计算机软件技术开发中心首席知识官杨根兴 软件测试技术和它在软件开发中的重要作用得到了业内越来越多的重视和研究。微软公司无疑的是软件测试技术的领引者。本书将给在这个行业工作的和准备加入这个行业的人以启迪,揭秘软件测试的 真谛。 ——软通动力信息技术有限公司董事长兼首席执行官刘天文 作为一位拥有数百测试工程师团队的外包企业的管理人员,我看到了大量测试微软产品的过程中所遇到的问题和工程师们设计出的各种解决方法。本书则把微软软件测试的方方面面的理念、方法、技术 、工具、流程等介绍给我们,不仅可以使测试工程师系统地学习测试技术,还可以让我们的管理团队开拓思路,少走弯路。我强烈推荐在各个企业的同仁们花时间读本书,从而起到事半功倍的作用。 ——文思创新软件技术有限公司执行副总裁及首席全球化官吴建 现代软件测试从方法、技术和工具层面已远远突破了“寻找缺损”和“验证功能”范畴。软件测试已成为软件开发和软件工程管理不可缺少的一部分。微软在这一领域的实践是划时代的,它将软件的规 模、工程的复杂性带到了前所未有的高度,其解决的问题的难度,以及为此而付出的代价都是无与伦比的。因此,多年以来,微软软件测试的理念、方法、技术、工具、流程,及其与其他角色的协作等 诸多方面,都一直是业界研究、探讨和借鉴的中心。本书第一次由微软的权威人士从内部系统地揭示这一奥秘。本书应该成为中国同行们的必备经典。 ——美国一通公司(iConnect Inc.)总裁王志峰 本书作者中有我的前同事Bj Rollison,他是微软公司中最有资历的测试专家之一。译者中也有我多年的好朋友张奭,她一直致力于把微软先进的公司文化、产品理念带给中国国内的企业和个人。感谢 他们的执着和付出,本书把神秘软件王国——微软如何进行软件测试揭露给了大家。本书必将成为国内软件测试人员的参考宝典,也将会彻底改变国内对软件测试的偏见,让大家充分理解,软件测试绝 对不是一件简单、低级的事情,而是一件极具复杂性,需要极高综合素质的人员才能做好的事情,这也将有助于更多的毕业生去选择从事软件测试,从而改善软件测试行业中人才缺乏的问题,特别是高 端人才。 ——海辉软件(国际)集团公司副总裁汪建兵 这是我所见过的测试方面的经典!它精薄而全面,言简意赅,结合实际,深入浅出,使读者快速理解软件测试流程和核心技术。 ——上海越通软件有限公司董事长周晓冬 我在天津市软件测试中心工作了7年,一直都在寻找不同软件的测试方法、测试工具的使用、测试流程及管理。所以,一直都非常关注软件测试方面的书,以便用它来指导我们测试业务的开展,同时对 于软件开发企业控制软件质量,也有指导意义。本书汇集了微软极其丰富的软件测试实践经验,从理论和实践的结合上,让软件测试界有了一个信赖和学习的榜样。这将有力的推动中国软件测试技术 的发展,从而保证软件产品的开发质量,缩短软件开发的时间。谢谢你们把软件测试的经验和我们分享,谢谢你们对软件测试领域的贡献。 ——中国天津市软件评测中心主任周文禾 微软拥有着伟大的产品,这离不开强大的测试团队和卓越的测试技术,本书将带你发现微软是如何展开测试的,以及在测试方面的最佳实践,这是软件测试领域的骄傲,我推荐更多的测试经理、测试骨 干人员阅读本书。 ——麦思博(msup)有限公司首席运营官刘付强 对于大多数国内软件公司来说,不缺少高水平的技术人员,而在如何做好软件测试,如何保证产品质量方面却面临着巨大挑战,能否突破这个挑战是软件产业持续发展的条件之一。值得高兴的是,最近 几年软件测试得到越来越多的重视和关注。但是,国内关于软件测试实用技术方面的书籍相对较少,本书深入浅出地介绍了微软软件测试实践,包括相关测试技术与管理方法,这正是我们广大软件质 量人员所需要的,相信每位读者都能从本书中汲取到值得借鉴的经验。 ——浪潮集团山东通用软件有限公司研发管理部经理刘俊红微软内部专家的评论 在全球化的深刻变革中,信息技术所发挥的力量是毋庸置疑的。微软用软件的力量推动了全球化的进程,而软件测试理念和实践的革新带来了更加“智慧”和接近“完美”的软件产品。这本书完整地呈 现了走向“智慧与完美”的方法与实践。 ——微软公司全球资深副总裁张亚勤 以用户为中心的测试是专业软件开发流程中不可或缺且至关重要的一环。作为一名拥有十年软件测试经验的微软员工,我非常高兴能向国内软件开发人员和爱好者们推荐本书。它解析了微软公司的软件 测试体系,并在某种程度上揭示了微软的一个成功“奥秘”,即高度重视软件测试工作,并借此为全世界的用户和专业人员提供高性价比、高可用性的应用软件和开发平台。我诚挚地祝愿并期待这本以 微软“实战经验”为亮点的著作能够成为中国软件行业管理者和从业人士必读的经典书籍。 ——微软大中华区开发工具及平台事业部总经理谢恩伟 与大多数讲述软件测试理论的书不同,本书最大的特色之一是其实用性。所有的方法,流程,技术和工具都是基于实际开发需要而建立或实施,应用于微软产品的开发并经过多次的检验。作者在阐述中 ,也用了很大的篇幅讲述,强调如何在实际中运用这些知识。这在很大程度上取决于他们的背景和经历。本书作者都是在有过多年软件产品测试经验之后,专门在微软从事软件测试技术推广和测试人员 培训的资深专家。很多微软的工程师都是通过他们的培训来学习并理解软件测试的。而本书的出版,则给更多的人提供了这样一个机会。 ——微软全球产品开发部测试总监杨永生 本书详尽地阐述了微软各个产品部门间通用的软件测试的组织架构、方法、工具和实践。这本书总结了微软数十年来在软件测试上的经验,可以提供国内在软件开发与测试管理以及人才培养方向上宝贵 的参考非常值得一读。 ——微软中国Protocol部门首席测试经理黃镇铭 本书是我在微软公司过去13年从事软件工作以来读到的对微软公司的软件测试的过程、方法、理念和文化诠释得最为全面的一本书。阅读它带给我一种怀旧的感觉,更启发了新的感受和灵感。我相信微 软公司的这些经验也能为在学校和行业界的读者带来收获。 ——微软总部SQLServer首席测试经理张力
云安全解决方案和实践集合,共60份资料,供大家学习参考。 云环境下的应用和数据安全实践 云时代的数据安全建设 云时代企业安全建设 云上攻防的实践与思考 5G时代网络安全产业机会 基于AI的云安全治理 “云”网络空间的威胁对抗与实战 云安全技术趋势探讨 安全设备虚拟化 创新云数据中心安全中台保证云上工作负载安全 初探云安全 从云安全感知网络空间安全的新威胁 打造面向应用的云安全体系架构 弹性计算云与DDoS 电子认证服务在云安全与数据安全领域的研究与实践 混合云架构下的技术挑战与安全创新 云原生安全理念助力云上安全建设变革 混合多云业务.构建开放集成的“原生安全”策略 混合云场景数据备份技术发展趋势 机器学习在云安全中的实践 基于威胁情报的云安全检测技术 斗象科技云上攻防 企业上云后的安全建设思考 零信任安全在精准云网场景应用的实践与思考 数据中心云基础设施资源安全防护 再看云虚拟化安全.QEMU通用漏洞挖掘新思路 上汽云中心全场景安全建设 数字化转型下软件定义广域网络如何实现业务安全高效在线访问 数字新基建时代的云数一体化安全防护 无限防护下的“云安全” 深入浅出云计算安全 信创云安全建设实践 信息等级保护体系在云安全中的应用 疫情期间系列讲座——新形势下政府和企业网络的“云安全”防护 于波《基于云资产渗透测试案例分享》 云安全护航后疫情时代的组织变革与云桌面新形态 云安全威胁2020榜单解读 云安全未来发展趋势 云安全与物联网安全实践 云安全智能反钓鱼在网络钓鱼犯罪追踪的探索 云工作负载安全平台助力央企安全上云 云环境的安全建设思考 云环境下服务集群的渗透与防护 云计算测评实践与案例分享 云计算大潮中的关键信息技术设施防护 云安全2.0时代.深融合的云安全 信息系统云化迁移的安全风险与应对建议 Pandemic&Resilience 云平台的安全响应机制 云上攻防 云数据中心安全 云溪科技——面向实战的云安全体系构建与实践 云原生场景下的攻防思路转换 云原生下安全方法的重新构建———有云原生安全的未来思考 运营商云安全解决方案新思路 针对云端AI服务的攻击和防护 云安全自动化 等保2.0论坛-云租户等保合规探索 企业上云安全建设思路 SASE让云端更SAFE

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值