《Scala机器学习》一一2.1 影响图-阿里云开发者社区

开发者社区> 华章出版社> 正文

《Scala机器学习》一一2.1 影响图

简介: 本节书摘来自华章出版社《Scala机器学习》一 书中的第2章,第2.1节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov)著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.1 影响图
决策过程会涉及多个方面,但通常关于不确定条件下做决策的书都会介绍影响图(Influence Diagrams for Team Decision Analysis, Decision Analysis 2 (4): 207–228)。
影响图可以帮助分析和理解决策过程。决策可以很简单,比如在个性化环境中选择要展示给用户的下一篇新闻文章;也可以很复杂,比如检测企业网络中的恶意软件或者决定下一个研究项目内容。
假设要根据天气来决定一个人是否要乘船旅行。可以将决策过程描述为一个图表。图2-1展示了决定她是否在俄勒冈州的波特兰期间能参加一次划船旅行:image

图2-1表示是否参加活动的决策是通过某种潜在满意度所驱动,它是决策本身以及在活动当时的天气的函数。然而,做划船旅行计划时,实际的天气条件是不确定的,因此,天气和天气预报节点之间用边连接起来,这表示天气预报和实际旅行时的天气有一定的相关性。假期活动节点是决策节点。该决策只基于天气预报,所以只有一个父节点。图中的最终节点满意度是一个旅行计划决策和实际天气的函数。显然,去+好天气和不去+坏天气会得到最高分(满意度最高)。而去+坏天气和不去+好天气则是一个不好的结果,后一种情况可能只是错失一个机会,但不一定是一个错误的决定,因为最终的结果取决于天气预报的准确度。
假设节点相互独立,则它们之间不存在边。比如,满意度不应该依赖于天气预报,因为只要人上了船,天气预报和满意度就变得不相关了。而一旦决定旅行,那么坐船旅行期间的实际天气就不再影响决策了。因为当初的决策完全是基于天气预报决定的,至少在这个简单模型中是这样,这里没有涉及购买旅行保险的情况。
影响图展示了做决策的不同阶段和信息流(第7章会给出一个用Scala实现的具体图)。在这个简化图中,决策唯一需要的信息就是天气预报。虽然在旅行中可以得到实际天气的信息,但若做出决策,就不会再改变了。天气和决策的数据可以用来对人们做出决策的满意度建模。
现在要将这个方法映射到广告问题上,即最终目标是用户对投放广告的满意度,这可能会让广告商投入更多的费用。满意度是用户特定环境状态的函数,广告商在做决策时并不知道。但是使用机器学习算法,通过用户最近访问网络的记录以及其他能收集到的信息(如地理位置、浏览器代理信息、访问时间、广告类别等(见图2-2)),就可预测用户的状态。image

虽然不太可能测量到用户大脑中多巴胺(dopamine)的水平(这种方式肯定能用一定的指标来度量,并有可能减少不确定性),但也可以通过用户的活动来间接度量用户的满意度,这些活动要么是用户对广告的反应,要么是用户从点击开始到浏览完相关信息所花的时间。它们都可以用来估计模型和算法的有效性。下图为影响图,它与之前那个“假期”的影响图相似,只是针对广告决策过程做了一些调整。
实际的处理过程可能更加复杂,可以用一个决策链来表示,它的每一个节点都跟前几个时间点有关。比如,著名的马尔可夫决策过程(Markov Chain Decision Process)。这种情况的图可能会在多个时间点上重复。
另外还有一个例子是企业互联网中的恶意软件分析系统,这种情况下,可通过命令控制(C2)、横向移动或者通过分析企业交换机上包的数据泄露情况来检测网络连接。其目标是最小化这种突发情况对运作系统所带来的潜在影响。
其中一种可能的决策是重新映像节点的子集(至少要分开它们)。收集的数据可能具有不确定性,许多正常的软件可能也会以可疑的方式发送数据包,模型能基于风险和潜在的影响来区分它们。这种特定情形下的决策可能需要收集额外的信息。
本书将这个案例以及其他潜在的商业案例留给读者去做成相应的图。下面会考虑一个更复杂的优化问题。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

华章出版社

官方博客
官网链接