基于机器学习的内容推荐算法及其心理学、社会学影响闲谈

基于机器学习的内容推荐算法目前在各类内容类APP中使用的非常普遍。在购物、时尚、新闻咨询、学习等领域,根据用户的喜好,进行较为精准的用户画像与内容推荐。此类算法不但可以较为准确的分析用户的特征,如年龄、性别等,还能通过长期的跟踪维护,大致确定用户的偏好。但过于精确的推荐,对用户的潜在心理学影响越来越受到科学界的重视。本文首先介绍推荐算法的基本原理,再介绍其对用户的心理学、社会学影响。

文章目录

  • 1. 推荐算法简介
    • 1.1 内容模型
    • 1.2 没有用户画像的直接预测
    • 1.3 基于用户模型的推荐
  • 2.精确推荐的负面影响
    • 2.1 信息茧房
    • 2.2 群体割裂
  • 3. 应对建议

1. 推荐算法简介

一个用户的浏览或者购买行为,以一定的颗粒度为单位,可以在历史时间轴上构成一串链条。但细分推荐场景,又大致可以分为两类。一是简单互动类,二是复杂互动类。

类别A,简单互动类:典型的是新闻、短视频。用户在一个内容上驻留的时间期望以分钟、秒计,以浏览为主,加以简单的弹幕、点赞等回复。用户在1天内可产生上百个颗粒的浏览行为。

类别B,复杂互动类:典型的是购物、学习。用户较为专注于一类内容,且在某几个单一内容的驻留时间很长,发生较为复杂的事务,如退货、结算、评价等。用户在1天内只会产生少量的颗粒。

尽管这两种类别的推荐算法在数据模型、训练方法上的侧重相当的不同,但依旧有一些共同点。

1.1 内容模型

要描述一个内容的属性,使得机器学习或者简单的模式分类算法可以对其进行处理,就要把内容转化为含有各类属性的向量。

如音乐,可能包含许多属性。既有流派、作曲、演唱、唱片集等枚举类型的标量,也有对波形进行处理后得到的变换域向量,往往体现了整个音轨的起伏、能量区间和频率组合关系。

在这里插入图片描述

典型的作品数据含有长度为16的标量区,长度为128的向量区,构成一个144的特征向量。在内容模型中,这个向量就代表确定的一首歌。

M ⃗ = [ M c ⃗ M v ⃗ ] \vec{M}=\begin{bmatrix} \vec{M_c} & \vec{M_v} \end{bmatrix} M =[Mc Mv ]

一个用户的浏览习惯,就是以向量 M ⃗ \vec{M} M 为单位的向量列表,代表了这个用户的n次历史浏览。
{ M ⃗ 0 , M ⃗ 1 , M ⃗ 2 , . . . , M ⃗ n − 1 } \{\vec{M}_0,\vec{M}_1,\vec{M}_2,...,\vec{M}_{n-1}\} {M 0,M 1,M 2,...,M n1}

1.2 没有用户画像的直接预测

对于类别A,由于存在海量的浏览链条,可以采取一种简单朴素的预测算法。这种算法通过输入K次浏览数据,试图对下一颗粒的标量进行预测。

{ M ⃗ t − K , M ⃗ t − K + 1 , . . . , M ⃗ t − 1 } = = > M c , t ⃗ \{\vec{M}_{t-K},\vec{M}_{t-K+1},...,\vec{M}_{t-1}\}==> \vec{M_{c,t}} {M tK,M tK+1,...,M t1}==>Mc,t

一旦获取了预测标量,则可以推荐标量中涉及的唱片集、歌手、风格给用户。

1.3 基于用户模型的推荐

用户模型是对内容受众的数学化描述。比如用户的性别、年龄等等,以及数字化的喜好数据。这类算法目前门类很多,也有不少开源的模型。比较有意思的是,基于用户模型的推荐,并不强调必须要准确获知可被自然人理解的用户特征,比如年龄、性别。比如某一类推荐算法,看起来更像是一种信息压缩与解压的生成式算法。

这种算法,分为用户的特征提取(学习)、基于特征的推荐两步骤。思路是随机从用户习惯中抽取K组特征串{M}输入模型,经过A区的NN网络,输出用户画像 P,并经过B区生成内容模型{M’}。训练的目的,是控制P的规模,并期待输出的内容集合与用户的历史数据集合最为吻合。

画像与推荐

这种情况下,P虽然代表用户特征,但其中向量的具体意义已经不再重要了。在具备大量用户的网站,无需对用户全集进行完整的训练,只需要收集到小规模向量P的类别,即可根据新用户的类别直接查表获得推荐内容。

2.精确推荐的负面影响

过于精确的内容推荐,会产生意想不到的心理学、社会学影响,典型的是信息茧房与群体割裂。

2.1 信息茧房

一种典型的影响是信息茧房。当一个用户在初次浏览某个内容网站时,获取的咨询的属性非常宽泛与随机,其首页展现的内容的概率分布是平缓的、均匀的。这段时间是算法收集用户习惯的阶段。

随着浏览次数的增加,推荐算法对用户喜好的掌握越来越精确,使得用户获得的内容集中于感兴趣的若干点上,算法收敛。

推荐喜好
对推荐算法不了解的用户尤其会受到影响,他们不会认为早晨起来每天都看到这些内容,是自己被“投其所好”造成的现象。用户获取的信息被算法束缚在一个狭窄的集合内,无法了解到潜在重要的信息。

这种情况对于学习、科学网站,是没有问题的。但对综合类的内容网站,则存在弊端。假设用户在某段时间心理压力大,搜索了负面的内容,则推荐算法可能会推波助澜。尤其是对有抑郁倾向的用户,可能加重病情。

2.2 群体割裂

算法依靠用户习惯为用户画像,并精确推送内容。而用户被画像后推送的内容影响,会产生群体聚集效应。从种群角度来说,各种符号形成的群落会在算法编织的信息茧房里聚集,吸引具备同样特征的个体,而加剧群体的割裂。
在这里插入图片描述
这使得整个群体被不断分割、强化,形成很多稳定而不包容的类。这些类无法站在对方的角度思考问题,因为各个类别都生活在算法编制的茧房里,一些统计学上显而易见的小概率事件在各自茧房中放大,一些需要注意的公共问题也无法在不同的群体中传播与取得共识。久而久之种群整体就会被分化,失去稳定性。

3. 应对建议

从算法角度,应该在涉及心理学、社会学的领域引入新的输入。比如在检获有抑郁倾向后,推送治愈系的内容,以及提高推荐算法的丰富程度。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

特征点Features2D类介绍

文章目录 Features2D类介绍1. cv::AgastFeatureDetector2. cv::AKAZE3. cv::BRISK4. cv::FastFeatureDetector5. cv::GFTTDetector6. cv::KAZE7. cv::MSER8. cv::SimpleBlobDetector9. cv::StarDetector10. cv::SIFT11. cv::SURF12. cv::FastFeatureDetector13. cv::AgastFeatu…

最喜爱的编程语言——Python

一、编程语言发展 编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种能够让程序员准确地定义计算机所需数据的计算机语言,并精确地定义在不同情况下所应当采取的行动。 编程语言处在不断的发展和变化中&…

【c语言】 -- 详解数组篇

📕博主介绍:目前大一正在学习c语言,数据结构,计算机网络。 c语言学习,是为了更好的学习其他的编程语言,C语言是母体语言,是人机交互接近底层的桥梁。 本章来学习数据的存储。 让我们开启c语言学…

考虑微网新能源经济消纳的共享储能优化配置(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

C#异步详解

异步编程是指在程序执行过程中,不需要等待某个操作完成,就可以继续执行后续的代码。比如我们开发了一个web页面中有一个上传文件功能,我们上传文件时使用异步操作,就不用等待文件的上传时间,可以先在网页上进行其他操作…

JAVA_HOME变量的详细配置(图文)

用到Java项目的时候,有时候要用到Java_home,这个需要在系统配置中配置一下。如何操作呢?以下为详细的图文步骤。 1)打开环境变量的窗口 2)打开新建系统变量 3)编辑JAVA_HOME 在变量名后输入JAVA_HOME,找到…

Ui自动化测试如何上传文件

前言 实施UI自动化测试的时候,经常会遇见上传文件的操作,那么对于上传文件你知道几种方法呢?今天我们就总结一下几种常用的上传文件的方法,并分析一下每个方法的优点和缺点以及哪种方法效率,稳定性更高 被测HTML代码…

centos直接部署express

centos直接部署express 以下是在CentOS上部署Express应用程序的一般步骤: 1.安装Node.js 在CentOS系统上安装Node.js。可以使用以下命令安装Node.js: sudo yum install nodejs2.安装npm 安装完Node.js后,还需要安装npm(Node.…

Python爬虫被封ip解决方案

在使用 Python 程序进行网络爬虫开发时,可能因以下原因导致被封 IP 或封禁爬虫程序: 1、频繁访问网站 爬虫程序可能会在很短的时间内访问网站很多次,从而对目标网站造成较大的负担和压力,这种行为容易引起目标网站的注意并被封禁…

数据结构-队列

数据结构之队列 队列的概念顺序队列循环队列 顺序循环队列的ADT定义1、简单结构体定义2、初始化3、队列的清空4、计算队列的长度5、判断队列是否为空6、插入新的元素7、元素的删除8、遍历输出队列内的所有元素 链队列的ADT定义1、链队列简单结构体定义2、初始化链队列3、判断链…

神秘的临时对象

下面的程序输出什么?为什么? 程序意图: 在 Test() 中以 0 作为参数调用 Test(int i) 将成员变量 mi 的初始值设置为 0 运行结果: 成员变量 mi 的值为随机值 构造函数是一个特殊的函数 是否可以直接调用? 是否可以…

LVS+KeepAlived高可用负载均衡集群

LVSKeepAlived高可用负载均衡集群 1. 高可用群集的相关知识1.普通群集2.高可用群集(HA)3.Keepalived及其工作原理4.Keepalived体系主要模块及其作用5.健康检查方式(学名:探针) 二、脑裂的形成和解决1.产生脑裂的常见原因及解决方法2.脑裂预防…

谈找工作线上途径

谈找工作 目录概述需求: 设计思路实现思路分析1.51job2.拉勾网 猎聘网站智联招聘网站后记 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait…

新能源汽车保养vr仿真教学软件为职业培训带来新的思路和方法

电动车电池更换VR虚拟体验是一种利用VR虚拟现实技术实现对电动车电池更换进行模拟仿真演示和实操训练的虚拟仿真实验教学课件,相比传统教学模式,有效提高学生的实践能力和技能水平。 通过VR技术模拟现场,使培训人员可以身临其境滴观摩操作过程…

在 PyTorch 中实现可解释的神经网络模型

动动发财的小手,点个赞吧! 目的 深度学习系统缺乏可解释性对建立人类信任构成了重大挑战。这些模型的复杂性使人类几乎不可能理解其决策背后的根本原因。 ❝ 深度学习系统缺乏可解释性阻碍了人类的信任。 ❞ 为了解决这个问题,研究人员一直在…

c++Qt Creator调用 python 完整版 + 解决bug过程

文章目录 创建项目配置python环境导入Python库其他坑点Python.h 头文件报错ModuleNotFoundError: No module named encodings’ 完美解决找不到python文件 成功! 文章首发于我的个人博客:欢迎大佬们来逛逛 创建项目 选择创建 qmake 项目: …

【C++】vector的模拟实现

目录 1.vector的结构2.构造函数2.1 无参构造2.2 以迭代器区间作为参数的构造函数2.3 构造n个value值 3.拷贝构造3.1 传统写法3.2 现代写法 4.赋值重载5.迭代器失效问题5.1 reserve和resize5.2 insert 5.3 erase4. 整体代码(包含迭代器、析构函数等) 1.ve…

springboot实验室管理系统-计算机毕设 附源码86757

springboot实验室管理系统 摘 要 验室管理系统是将实验室的分析仪器通过计算机网络连起来,采用科学的管理思想和先进的数据库技术,实现以实验室为核心的整体环境的全方位管理。它集用户管理,实验室信息管理,实验室预约管理&#x…

Java设计模式——策略模式

1. 策略模式简介 策略模式: 策略模式是一种行为型模式, 它将对象和行为分开, 将行为定义为一个行为接口和具体行为的实现 策略模式最大的特点是行为的变化, 行为之间可以相互替换 每个if判断都可以理解为一个策略. 本模式是的算法可独立于使用它的用户而变化 2. 模式结构 策略…

Flink 学习七 Flink 状态(flink state)

Flink 学习七 Flink 状态(flink state) 1.状态简介 流式计算逻辑中,比如sum,max; 需要记录和后面计算使用到一些历史的累计数据, 状态就是:用户在程序逻辑中用于记录信息的变量 在Flink 中 ,状态state 不仅仅是要记录状态;在程序运行中如果失败,是需要重新恢复,所以这个状态…