热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

可解释性(入门)

    毕设的开题工作已经开始进行了,题目是“基于学术大数据分析的导师推荐系统”。之前和学长讨论了一下,觉得在进行推荐之后,如何得到用户反馈,如何了解推荐的效果是一个需要解决的问题

        毕设的开题工作已经开始进行了,题目是“基于学术大数据分析的导师推荐系统”。之前和学长讨论了一下,觉得在进行推荐之后,如何得到用户反馈,如何了解推荐的效果是一个需要解决的问题。基于这个问题,学姐给出了一个方向,就是将推荐系统设计成可解释推荐系统,一次得到交互和反馈。

        今天一大早,开始自学可解释性。主要参考和引用:http://www.sohu.com/a/279581943_133098?qq-pf-to=pcqq.c2c

        以下为正文。

    

目的:在给用户进行相关推荐的时候,添加解释和推荐原因是十分有必要的。通过提高系统的可解释性,构建可解释系统,为用户提供“推荐+解释”的组合,从而优化推荐结果,提高系统可信任度和透明度。

《可解释性(入门)》

        

流程:

《可解释性(入门)》

基于规则:是指由解释方法设计者事先给定一些简单模板(例如“N个微博用户都喜欢这个商品”),算法只负责对模板中涉及的内容根据规则进行填充。

基于检索的方法是由解释方法设计者规定解释集合,算法负责对解释集合进行排序,挑选排在最靠前的解释输出给用户。例如给用户推荐书时,解释集合规定为用户曾经看过的书,此时解释模板为“看过X的用户都很喜欢这本书”,算法只需要从集合中根据用户的兴趣及书的相似度挑选一本放入解释即可。

嵌入式的方法:把解释模块融入到推荐系统的构建中(如下图所示)。解释模块往往对物品的特征进行选择,将对推荐准确性影响最大的物品挑选出来作为解释。

嵌入式方法的大部分解释模块都是浅层的,能否构建一个深层的网络,每一层的特征和它们之间的关联都是可解释的呢?沿着这个思路研究,我们利用Microsoft Concept Graph构建了深度可解释网络的初始结构,并且利用Attentive Multi-View Learning对这个深度可解释网络中每层的参数进行优化,使它不仅可以提高推荐准确性、有用性,还可以通过无监督的方式自动对用户的层次兴趣进行建模。例如,我们可以知道用户是只对寿司(低层特征)感兴趣,还是对日料(高层特征)整体都比较感兴趣。

Microsoft Concept Graph:Microsoft Concept Graph是一个大型的概念知识图谱系统。其包含的知识来自于数以亿计的网页和数年积累的搜索日志,可以为机器提供文本理解的常识性知识。

Multi-View Learning:多视角学习。视角来自于多个源和多个特征子集。引入了一个函数去模型化一个特定的视角,并且利用相同输入的冗余视角去联合优化所有函数,最终提高学习效果。

封装式的方法:不需要改变现有的推荐系统,只是将解释模块和推荐系统放在相对平等的位置,解释模块通过与推荐系统交互生成模型相关的解释。这样既可以自由控制解释质量,又可以保证模型解释性,同时也不需要像嵌入式的方法一样针对不同的推荐模型设计不同的解释方法,是一种协调模型解释性与模型质量的很好的方法。封装式可解释方法是利用增强学习实现的。

封装式可解释方法是利用增强学习实现的。具体来说,就是利用下图所示的增强学习框架来对任何推荐模型进行解释,可以同时确保模型解释性以及解释质量。在这个框架中,被解释的推荐模型是环境(Environment)中的一部分。框架中有两个智能体 (Couple Agents),其中智能体1负责生成解释,智能体2负责利用解释预测被解释推荐模型的输出(用户对物品的打分)。这两个智能体把需要解释的模型当作黑盒子,通过与环境进行交互得到的奖励(Reward)决定优化方向。

这里,环境给予的奖励由两个方面决定。如果智能体可以利用解释准确预测(模仿)被解释推荐模型的结果,则被奖励,这体现的是对推荐模型的解释能力。如果智能体给出的解释精炼、有连贯性、可读性较高,也会被奖励,这是为了提高解释本身的质量。这样的框架适用于任何推荐模型,同时解释能力和解释质量都较高。

 

 


推荐阅读
  • 专业人士如何做自媒体 ... [详细]
  • 短暂的人生中,IT和技术只是其中的一部分。无论换工作还是换行业,最终的目标是成功、荣誉和收获。本文探讨了技术人员如何跳出纯技术的局限,实现更大的职业发展。 ... [详细]
  • 三角测量计算三维坐标的代码_双目三维重建——层次化重建思考
    双目三维重建——层次化重建思考FesianXu2020.7.22atANTFINANCIALintern前言本文是笔者阅读[1]第10章内容的笔记,本文从宏观的角度阐 ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 《大唐双龙传》第六十二卷第七章 宝库再探,讲述了主角们再次进入神秘宝库的冒险经历。本文来源于ITPUB博客,链接:http://blog.itpub.net/8591181/viewspace-894942/。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • Cookie学习小结
    Cookie学习小结 ... [详细]
  • 对于众多创业公司而言,选择小程序或小视频的发展方向至关重要。本文将深入分析小程序和小视频的特点、优势及局限,帮助创业者做出更明智的选择。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文介绍了家用计算机和计算器的基本功能和使用方法,通过具体的例子展示了如何利用计算器进行高效的数学计算。文章还探讨了计算工具的发展历史及其未来趋势。 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
author-avatar
飞航
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有