物联网中的推荐系统

来源:北京物联网智能技术应用协会

作者 | Alexander Felfernig, Seda Polat Erdeniz

编译 | CDA数据科学研究院

Recommender systems in the Internet of Things

1、背景介绍

  物联网是一种联网的基础架构,是物联网、互联网和语义学领域之间融合的结果,为随时随地连接不同设备提供了基础。在物联网场景中,开发了大量的服务和应用程序,这使识别相关的服务和应用程序成为用户的一项复杂任务。在这种情况下,推荐系统便成了一项关键的技术,这些技术使大部分服务和应用程序的识别变得可行。比如在物联网等场景下可以在网关上安装一些应用程序,附加设备由网关部署和管理,同时在公共显示器上显示的信息文本,会被用于在网关上完成特定任务相关的数据传输协议,并应包括IoT相关场景中相关的硬件和软件组件。

  推荐技术在IoT上下文中的进一步应用包括工作流程的推荐(例如,应将哪些软件功能包含在IoT应用程序的工作流程定义中),食品的推荐(例如,根据食品的状况,可以调整提供条件),在个性化店内购物场景中进行推荐(例如,根据实体店中顾客的位置,应推荐哪些商品)以及健康监控(例如,根据一个人当前的饮食行为和身体状况,推荐食物和体育锻炼)。在许多情况下,灵活的物联网网关基础设施都扮演着核心角色。

  IoT网关是基于硬件和软件的解决方案,其主要作用是实现设备到设备中心/或设备到云的通信。它是一个平台,用于支持不同数据源(具有各种通信协议的传感器)与目的地(本地或远程数据管理实体以及各种执行器)之间的连接。物联网网关位于设备的边缘和附近,也可能在服务执行中发挥关键作用。典型的物联网网关平台由设备管理器,通信/数据协议管理器,应用程序管理器和数据管理器组成(请参见下图)。先进的IoT网关包含其他功能,其中可以包括配置器和推荐器引擎,以帮助用户配置网关或基于给定的网关设置和用户交互协议推荐有用的应用程序。

  如图1所示,可以使用5G,BLE,LORA和ZigBee等各种连接协议将IoT传感器连接到IoT网关。网关用户可以通过WAN / LAN连接其网关,以管理或监视其数据和服务。他们还可以通过将云应用程序与其IoT网关链接来管理或监视收集的数据。

2、基本技术和应用场景

  推荐技术可用于多种目的,以支持不同的物联网场景。在本节中,我们将会介绍协同过滤,基于内容的过滤,基于知识的推荐和组合推荐这四项基本推荐技术,如何根据不同场景去实现推荐的功能。

2.1 协作过滤

  基于“口口相传”的想法,即朋友(最近邻居– NN)对物品的意见或看法被用作计算推荐算法的主要信息来源。然后,使用k个最近邻居的偏好(等级)来推断当前用户的偏好。例如,将安装在与当前用户具有类似应用程序库的用户的网关上的应用程序,安装在当前用户的网关上。物联网环境中协同过滤的其他应用示例是物联网环境提升中的设备推荐和组件部分推荐。支持协同过滤的不同场景的推荐库的示例是Apache Mahout。

表1:根据其他网关的安装信息,基于协同筛选的设备(d1..d4)和应用程序(app1..app4)推荐。与本地网关相比,网关1的配置文件是最相似的配置文件。由于app3未安装在本地网关上,因此可以将其解释为推荐候选。推荐的应用程序用√表示。

2.2 基于内容的过滤

  基于稳定的首选项的想法,即过去的首选项在将来不会发生重大变化。使用基于内容的过滤时,有关物品的基于关键字的信息与从当前用户过去已经消费过的项目中提取的关键字匹配。例如,如果用户安装了特定的应用程序,则可以在可用时推荐类似的应用程序或对现有应用程序的更新。在IoT上下文中应用基于内容筛选的其他示例是设备和工作流程的推荐。支持基于内容过滤的不同场景的推荐库示例是Apache Lucene。

表2:使用本地网关上已安装的应用程序的关键字(key)对应用程序进行基于内容过滤的推荐。与本地网关的配置文件相比,app1的关键字是最相似的关键字。由于app1未安装在本地网关上(假设),因此可以将其选择为推荐候选。推荐的应用程序用√表示。

2.3 基于知识的推荐

  基于使用以显式方式(即在规则约束方面)定义的推荐知识的思想。使用基于知识的推荐时,当前用户明确定义的首选项将转发到知识库,该知识库用于确定推荐(搜索问题的解决方案)。例如,如果IoT网关解决方案的用户更喜欢节电的网关配置,则与其他协议相比,将首选使用特定的通信协议。在物联网环境中,应用基于知识的推荐技术的其他示例包括整个网关配置的推荐,以及野生动物监测中数据收集策略的推荐。

2.4 基于组的推荐系统

  基于组的推荐系统,是基于对用户小组的偏好,使用不同算法的汇总结果去推荐。在基于算法集成的推荐中,基本算法(例如协同过滤,基于内容的过滤和基于知识的推荐)用于确定针对单个用户的推荐。然后将这些建议汇总为该组的最终推荐(基于汇总预测的方法)。相关聚合函数的示例是平均值(推荐用户评分平均值最高的商品)和风险最少(推荐所有最低评分指标最高的商品)。另外,小组资料可以从小组成员的个人偏好中得出(*基于聚合模型的方法,根据小组资料,可以使用上述基本方法确定推荐。团体推荐系统的实现通常基于单用户推荐系统的库,也就是上述提到的Apache Mahout、Apache Lucene等。

3、何时应用哪种推荐技术?

  本文讨论的推荐方法使用了不同的知识来源,并且还具有不同的优点,这些优点使它们(或更少)适用于特定的推荐方案。在下文中,我们将简单讨论推荐算法选择的主要标准,并针对这些标准分析所讨论的每种算法。

3.1 原理简单

  基于内容的筛选和基于协同的筛选的原理都比较简单,实现方式也比较快,只需获得有关评分方面的用户偏好的知识(在基于内容的过滤中,自动提取的关键字)就可以得出推荐。由于基于组的推荐系统大部分是使用这些基本算法,所以基于组的推荐系统的实现也比较容易。相比之下,基于知识的推荐方法需要更多的设置投资,由于领域专家和知识工程师之间的通信开销,知识库的构建通常是一个容易出错且繁琐的过程。

3.2 会话推荐方法

  在推荐复杂的产品和服务时,主要支持在用户和系统之间进行对话的会话方法。在这种情况下,使用基于知识的推荐器,即在基于知识的推荐的上下文中支持对话方法。协同过滤和基于内容的过滤不支持推荐对话框。在小组推荐系统的背景下,由于部分小组推荐系统是基于知识的推荐,因此可以支持会话过程。

3.3 适应性

  协同过滤和基于内容的推荐有较好的适应性,因为每一个新的等级更高程度的适应性可以改变推荐的项目清单。如果将协同过滤或基于内容的推荐用作基础推荐,这也适用于组推荐方案方法。基于知识的推荐方法显示出较低的适应性,因为知识库是比较稳定的,因为单个用户的偏好习惯不会一时间去改变。

3.4 惊喜度

  如果用户喜欢某项推荐,并同时对此推荐感到完全出乎意料,就会产生惊喜度,一般这种效果主要可以通过协同推荐方法来实现。基于内容的推荐一般会假定其偏好保持稳定,并在已经购买的商品列表中提供建议。因此,这种方法提供了非常低的偶然性。同时,基于知识的推荐算法中的偶然性程度取决于编码的偶然性程度。基于小组推荐中的偶然性程度取决于所选择的基础基本推荐方法。

3.5 冷启动问题

  协同过滤和基于内容的过滤都存在冷启动问题:如果在协同过滤中没有特定用户的用户评级,或者到目前为止,当使用基于内容的推荐系统时用户没有购买任何商品时,也就是无法获取相似的推荐。此外,如果某个商品没有获得评级,则协同过滤系统很难将其考虑在内。由于基于内容的过滤基于商品的关键字,因此即使没有商品的评级也可以进行推荐。基于知识的推荐不存在冷启动问题,因为推荐知识被编码在一个知识库中,且假定该知识库在可以开始推荐会话之前就已经存在。

3.6 透明度

  透明度可以视为推荐结果可解释的程度。协同过滤和基于内容的过滤中的结果具有较低的解释性,因为如果要解释的话,只能基于内容的推荐中的相似邻居和相似关键字。在基于知识的推荐中,可以更细化解释。相关说明可以考虑推荐的原因(由用户偏好列表表示),但也可以考虑为什么找不到解决方案以及哪些偏好矛盾的原因。在小组推荐系统中,可解释性取决于所选的基本推荐方法。

3.7 高参与度商品

  由于次优决策的负面影响很大,因此在大多数情况下,此类商品非常复杂,并且需要做出相关决策。其示例是选择特定的服务器基础结构或智能家居解决方案。相反,低参与度商品的例子是低价应用程序或传感器。在大多数情况下,基于知识的方法用于推荐高参与度的商品,而基于内容的协作过滤则用于推荐低参与度的商品。按照先前的论点,如果选择的基本推荐方法是基于知识的,则可以将小组推荐系统用于高度参与的商品。

4、结论与下一步工作

  在本文中,我们提供了对现有推荐方法的简短概述,并讨论了它们在物联网场景中的应用的不同方面。在这种情况下,我们还针对可用于选择推荐算法的一组标准讨论了不同方法的优缺点。同时,也有一些与推荐技术在物联网场景中的应用有关的开放研究问题需要我们关注,尤其是在推荐复杂的IoT配置的情况下,必须开发搜索机制,以便在面对庞大而复杂的配置知识库时也可以进行高效且个性化的解决方案搜索。此外,必须以有效的方式测试和更新有关产品可变性的知识。这项要求与软件工程的当前发展相吻合,后者在开发,测试,部署和生产使用之间相继实现了强大的耦合。


未来智能实验室是人工智能学家与科学院相关机构联合成立的人工智能,互联网和脑科学交叉研究机构。

未来智能实验室的主要工作包括:建立AI智能系统智商评测体系,开展世界人工智能智商评测;开展互联网(城市)云脑研究计划,构建互联网(城市)云脑技术和企业图谱,为提升企业,行业与城市的智能水平服务。

  如果您对实验室的研究感兴趣,欢迎加入未来智能实验室线上平台。扫描以下二维码或点击本文左下角“阅读原文”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489074.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pwm控制的基本原理_单片机PWM控制基本原理详解~

PWM是Pulse Width Modulation的缩写,它的中文名字是脉冲宽度调制,一种说法是它利用微处理器的数字输出来对模拟电路进行控制的一种有效的技术,其实就是使用数字信号达到一个模拟信号的效果。这是个什么概念呢?我们一步步来介绍。首…

关上Deepfake的潘多拉魔盒,RealAI推出深度伪造视频检测工具

诞生之初,Deepfake是一项有趣的图像处理技术,仅仅带来搞笑和娱乐视频,但殊不知,潘多拉魔盒就此被打开,催生出色情黑产、恶搞政客“操纵”民意,Deepfake正逐步进化为一种新型“病毒”,人类伦理道…

java 解析 csv_在Java中将数据从CSV解析到数组

我正在尝试将CS​​V文件导入到可以在Java程序中使用的数组中. CSV文件已成功导入自身,输出显示在终端上,但它会引发错误:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1at CompareCSV.main(CompareCSV.java:19)在末尾.另外,当…

python画国际象棋_python图形工具turtle绘制国际象棋棋盘

本文实例为大家分享了python图形工具turtle绘制国际象棋棋盘的具体代码,供大家参考,具体内容如下#编写程序绘制一个国际象棋的棋盘import turtleturtle.speed(30)turtle.penup()off Truefor y in range(-40, 30 1, 10):for x in range(-40, 30 1, 10)…

谷歌地图的全球森林监察系统,揭秘中国雾霾的惊天秘密!

来源:老牛时评谷歌公司最近推出的全新交互式地图——“全球森林监察”它可以实时显示全球森林的覆盖情况。该幅地图的数据来源有多个,其中包括了NASA的森林面积覆盖率的分析数据。于是我们选取了中国及中国周边的部分,看完后的感受只能是比悲…

dbref java_查询mongodb dbref内部字段

我需要隐藏其isActive标志设置为false的所有用户相关数据 . 有许多集合我使用了DBRef类型的用户集合(大约14个集合),每个集合包含超过1000万条记录 .让我借助例子更恰当地解释一下 .假设我有两个集合:用户联系用户集包含以下字段:名字(字符串…

qt显示rgba8888 如何改 frame_Qt开源作品17-IP地址输入控件

一、前言这个IP地址输入框控件,估计写烂了,网上随便一搜索,保证一大堆,估计也是因为这个控件太容易了,非常适合新手练手,一般的思路都是用4个qlineedit控件拼起来,然后每个输入框设置正则表达式…

web.xml文件头出错

原先将web.xml文件头设置为如下格式 <?xml version"1.0" encoding"UTF-8"?><web-app version"3.1" xmlns"http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:sche…

Nature子刊超越诺贝尔经典理论:神经科学研究路漫漫...

科学家正在观察一台用于记录小鼠脑细胞活动的双光子显微镜。图片来源&#xff1a;艾伦研究所来源&#xff1a;中国生物技术网 北京时间12月17日&#xff0c;发表在《Nature Neuroscience》上一项针对小鼠视觉系统中近6万个神经元活动的新研究显示&#xff0c;要想了解大脑如何计…

java 替换多个字符串_Java一次(或以最有效的方式)替换字符串中的多个不同子字符串...

小编典典如果你要处理的字符串很长&#xff0c;或者你要处理许多字符串&#xff0c;那么使用java.util.regex.Matcher可能是值得的(这需要花很长时间进行编译&#xff0c;因此效率不高) (如果你的输入很小或搜索模式经常更改)。以下是一个完整的示例&#xff0c;基于从地图中获…

python输出子列表_python利用递归函数输出嵌套列表的每个元素

递归函数实现&#xff1a;defgetitem(l):for item inl:ifisinstance(item,list):getitem(item)else:print(item)getitem(l)输出:12345678910变式1&#xff1a;遇到类表就缩进一次&#xff1a;def getitem(l,level0):for item in l:if isinstance(item,list):getitem(item,level…

偏见与人类大脑结构有关

来源&#xff1a;科技日报偏见是如何产生的&#xff1f;据英国《自然神经科学》16日发表的一项脑科学研究发现&#xff0c;内侧前额叶皮质后部&#xff08;pMFC&#xff09;会促进人类产生确认偏误。具体而言&#xff0c;对于那些不会让自己更加相信已有观念的意见&#xff0c;…

java 设计方法_java 中如何处理设计一个方法

java 中我们很常见的设计 API 的例子是对一个对象进行增, 删, 查,改.比如Object addObject(Object obj);Object delObject(Object obj);Object modifyObject(Object obj);成功返回 obj, 不成功(参数不合法,或已经存在, 或不存在)抛出异常还是int addObject(Object obj);int del…

python获取mac窗口坐标_[代码全屏查看]-Python3根据IP地址获取MAC地址

[1].[代码] [Python]代码#!/usr/bin/env python3# -*- coding: utf-8 -*-import osimport platformimport reclass IP2MAC:def __init__(self):self.patt_mac re.compile(([a-f0-9]{2}[-:]){5}[a-f0-9]{2}, re.I)def getMac(self, ip):sysstr platform.system()if sysstr Wi…

PLECS软件学习使用(一)简单的RLC电路搭建

PLECS软件学习使用&#xff08;一&#xff09;简单的RLC电路搭建 1相关操作总结&#xff1a; 旋转&#xff1a;CtrlR 翻转&#xff1a;CtrlF 从连线中引出线&#xff1a;Ctrl鼠标左键 设置元件参数&#xff1a;双击元件&#xff0c;进行设置&#xff0c;若要显示参数&#xff0…

《自然》公布年度十大杰出论文

来源&#xff1a;科技日报 英国《自然》杂志网站日前公布了2019年十大杰出论文&#xff0c;接近室温的超导体、精确编辑基因技术、海王星新卫星等纷纷入选。其中&#xff0c;中国研究占到两席&#xff0c;分别是来自复旦大学的亨廷顿舞蹈症新疗法&#xff0c;与中科院上海有机化…

python 加密方法总结

MD5 def md5(str):import hashlibm hashlib.md5()m.update(str)return m.hexdigest() base64 import base64s 我是字符串a base64.b64encode(s)print a print base64.b64decode(a)输出结果&#xff1a; ztLKx9fWt/u0rg 我是字符串 转载于:https://www.cnblogs.com/superxuez…

中国电子信息工程科技发展十大趋势(2019)发布

来源&#xff1a;新浪科技17日&#xff0c;中国工程院信息与电子学部、中国信息与电子工程科技发展战略研究中心在中国工程院召开发布会&#xff0c;发布“中国电子信息工程科技发展十大趋势&#xff08;2019&#xff09;”。中国工程院副院长陈左宁院士表示&#xff0c;中国工…

如何用python画转盘_如何用ppt做一个抽奖转盘 看完你学会了么

现在抽奖转盘是很常见的&#xff0c;有时候公司办活动也会有抽奖活动&#xff0c;如果让自己做一个抽奖转盘&#xff0c;应该怎么做&#xff1f;操作方法01打开ppt&#xff0c;把幻灯片版式设置成空白的&#xff0c;然后点击插入&#xff0c;选择图表。02选择饼图&#xff0c;用…

java实现对大文件切割下载_Java实现大文件的切割与合并操作示例

Java实现大文件的切割与合并操作示例发布时间&#xff1a;2020-09-27 02:25:08来源&#xff1a;脚本之家阅读&#xff1a;99作者&#xff1a;HiBoyljw本文实例讲述了Java实现大文件的切割与合并操作。分享给大家供大家参考&#xff0c;具体如下&#xff1a;这里实现对大文件的切…