java智能算法
java.util.Arrays中包含了很多算法你可以看一看,jdk安装的时候就有提供源代码的。
㈡ 北大青鸟java培训:人工智能开发常用的机器学习方法
随着互联网行业的不断发展,人工智能和AI技术得到更多人的热捧,那么在学习人工智能和AI技术时,应该掌握各种各样的机器学习方法。
下面四川java培训为大家介绍不同机器学习的具体方法。
什么是支持向量机?支持向量机是一种机器学习算法,可用于分类和回归问题。
它使用一种称为核心技术的方法来转换数据,并根据转换在可能的输出之间查找边界。
简单地说,北大青鸟发现它能够执行非常复杂的数据转换,并根据定义的标签或输出进行数据划分。
支持向量机的优势支持向量机不仅能够进行分类还能起到回归的作用,可以说是非线性支持向量机,也可以说是使用非线性核的支持向量机。
非线性支持向量机的算法计算边界不一定为直线。
四川UI设计认为好处是能够捕获数据点之间更复杂的关系。
因此,您不需要进行复杂的转换。
缺点是需要更多的计算,因此需要更长的训练时间。
核心技巧具体是什么呢?核技术可以转换得到的数据,具有几个优秀的特性,可以使用这些特性制作分类器,得出自己不知道的数据。
就像解开DNA的锁链一样。
首先,从这个不可见的数据向量开始。
使用核心提示时,会对其进行解密和自合成,从而创建一个连电子表格都无法理解的大型数据集。
但是,大数据开发发现随着数据集的扩展,类之间的边界变得清晰,SVM算法可以计算出更优化的超平面。
㈢ java中有没有专门为遗传算法等智能算法设计的包呢
JGAP(Java Genetic Algorithms Package -- Java遗传算法包)
㈣ 北大青鸟java培训:大数据跟人工智能的关系
现在不少的企业都在往大数据领域发展,而人工智能也是我们科技领域的一大热点。
我们在听到大数据的同时,也总能听到人工智能。
于是很多小伙伴就不清楚,大数据跟人工智能有什么关系,学哪个好一点?江苏计算机学院http://www.kmbdqn.cn/会详细讲讲,大数据跟人工智能有什么关系,学哪个好一点,这个问题,来解答大家心中的疑问。
1:大数据本质上是对海量数据进行归类分析,就像用筛子一样在筛选需要的东西,在对数据归类后,进行数据分析。
而现在主流人工智能算法用的都是深度学习,深度学习的作用就是从中把知识提取出来,大数据是人工智能的开始,大数据加深度算法,等于人工智能,要想实现人工智能,除开大数据技术之外,还需要其他元素的配合。
2:大数据和人工智能没有必然联系,但是基于大数据的各类信息处理技术,为更好的人工智能的实现提供了极大的可能。
数据越多,其塑造培养出的人工智能信息处理系统越聪明,这就是大数据之于人工智能的意义。
大数据是人工智能的基石,如果说人工智能是机器之心,那么大数据就是血液。
3:这二者谈不上说学哪个好一点,都是很有前景的行业,也都是薪资待遇十分可观的行业。
不过,想要进军人工智能领域,是首先要掌握大数据知识的哦!大家可以先接触一下大数据,然后再深入了解人工智能技术。
㈤ 北大青鸟java培训:人工智能开发机器学习的常用算法
我们在学习人工智能以及智能AI技术的时候曾经给大家介绍过不同的机器学习的方法,而今天我们就着重介绍一下,关于机器学习的常用算法都有哪些类型。
支持向量机是什么?支持向量机是一种有监督的机器学习算法,可以用于分类或回归问题。
它使用一种称为核技巧的技术来转换数据,然后根据这些转换在可能的输出之间找到一个边界。
简单地说,它做一些非常复杂的数据转换,然后根据定义的标签或输出来划分数据。
那么是什么让它如此伟大呢?支持向量机既能进行分类又能进行回归。
在本文中,我将重点介绍如何使用SVM进行分类。
我将特别关注非线性支持向量机,或者说是使用非线性核的支持向量机。
非线性支持向量机意味着算法计算的边界不一定是直线。
好处是您可以捕获数据点之间更复杂的关系,而不必自己做困难的转换。
缺点是训练时间更长,因为它需要更多的计算。
那么核技巧是什么?核技巧对你获得的数据进行转换。
有一些很好的特性,你认为可以用来做一个很好的分类器,然后出来一些你不再认识的数据。
这有点像解开一条DNA链。
你从这个看起来很难看的数据向量开始,在通过核技巧之后,它会被解开并自我复合,直到它现在是一个更大的数据集,通过查看电子表格无法理解。
但是这里有魔力,在扩展数据集时,你的类之间现在有更明显的界限,SVM算法能够计算出更加优化的超平面。
接下来,假设你是一个农民,你有一个问题-你需要设置一个围栏,以保护你的奶牛免受狼的攻击。
但是你在哪里建造篱笆?好吧,如果你是一个真正的数据驱动农民,你可以做的一件事就是建立一个基于你牧场中奶牛和狼的位置的分类器。
天津北大青鸟http://www.kmbdqn.cn/建议通过几种不同类型的分类器,我们看到SVM在从狼群中分离你的奶牛方面做得很好。
我认为这些图也很好地说明了使用非线性分类器的好处。
您可以看到逻辑和决策树模型都只使用直线。
㈥ java 算法
Java的运算符可分为4类:算术运算符、关系运算符、逻辑运算符和位运算符。
1.算术运算符
Java的算术运算符分为一元运算符和二元运算符。一元运算符只有一个操作数;二元运算符有两个操作数,运算符位于两个操作数之间。算术运算符的操作数必须是数值类型。
(1)一元运算符:
一元运算符有:正(+)、负(-)、加1(++)和减1(--)4个。
加1、减1运算符只允许用于数值类型的变量,不允许用于表达式中。加1、减1运算符既可放在变量之前(如++i),也可放在变量之后(如i++),两者的差别是:如果放在变量之前(如++i),则变量值先加1或减1,然后进行其他相应的操作(主要是赋值操作);如果放在变量之后(如i++),则先进行其他相应的操作,然后再进行变量值加1或减1。
例如:
int i=6,j,k,m,n;
j = +i; //取原值,即j=6
k = -i; //取负值,即k=-6
m = i++; //先m=i,再i=i+1,即m=6,i=7
m = ++i; //先i=i+1,再m=i,即i=7,m=7
n = j--; //先n=j,再j=j-1,即n=6,j=5
n = --j; //先j=j-1,再n=j,即j=5,n=5
在书写时还要注意的是:一元运算符与其前后的操作数之间不允许有空格,否则编译时会出错。
(2)二元运算符
二元运算符有:加(+)、减(-)、乘(*)、除(/)、取余(%)。其中+、-、*、/完成加、减、乘、除四则运算,%是求两个操作数相除后的余数。
%求余操作举例:
a % b = a - (a / b) * b
取余运算符既可用于两个操作数都是整数的情况,也可用于两个操作数都是浮点数(或一个操作数是浮点数)的情况。当两个操作数都是浮点数时,例如7.6 % 2.9时,计算结果为:7.6 - 2 * 2.9 = 1.8。
当两个操作数都是int类型数时,a%b的计算公式为:
a % b = a - (int)(a / b) * b
当两个操作数都是long类型(或其他整数类型)数时,a%b的计算公式可以类推。
当参加二元运算的两个操作数的数据类型不同时,所得结果的数据类型与精度较高(或位数更长)的那种数据类型一致。
例如:
7 / 3 //整除,运算结果为2
7.0 / 3 //除法,运算结果为2.33333,即结果与精度较高的类型一致
7 % 3 //取余,运算结果为1
7.0 % 3 //取余,运算结果为1.0
-7 % 3 //取余,运算结果为-1,即运算结果的符号与左操作数相同
7 % -3 //取余,运算结果为1,即运算结果的符号与左操作数相同
2.关系运算符
关系运算符用于比较两个数值之间的大小,其运算结果为一个逻辑类型的数值。关系运算符有六个:等于(==)、不等于(!=)、大于(>)、大于等于(>=)、小于(<)、小于等于(<=)。
例如:
9 <= 8 //运算结果为false
9.9 >= 8.8 //运算结果为true
'A' < 'a' //运算结果为true,因字符'A'的Unicode编码值小于字符'a'的
要说明的是,对于大于等于(或小于等于)关系运算符来说,只有大于和等于两种关系运算都不成立时其结果值才为false,只要有一种(大于或等于)关系运算成立其结果值即为true。例如,对于9 <= 8,9既不小于8也不等于8,所以9 = 9,因9等于9,所以9 >= 9的运算结果为true。
3.逻辑运算符
逻辑运算符要求操作数的数据类型为逻辑型,其运算结果也是逻辑型值。逻辑运算符有:逻辑与(&&)、逻辑或(||)、逻辑非(!)、逻辑异或(^)、逻辑与(&)、逻辑或(|)。
真值表是表示逻辑运算功能的一种直观方法,其具体方法是把逻辑运算的所有可能值用表格形式全部罗列出来。Java语言逻辑运算符的真值表如下:
逻辑运算符的真值表
A B A&&B A||B !A A^B A&B A|B
false false false false true false false false
true false false true false true false true
false true false true true true false true
true true true true false false true true
前两列是参与逻辑运算的两个逻辑变量,共有4种可能,所以表2.5共有4行。后6列分别是6个逻辑运算符在逻辑变量A和逻辑变量B取不同数值时的运算结果值。
要说明的是,两种逻辑与(&&和&)的运算规则基本相同,两种逻辑或(||和|)的运算规则也基本相同。其区别是:&和|运算是把逻辑表达式全部计算完,而&&和||运算具有短路计算功能。所谓短路计算,是指系统从左至右进行逻辑表达式的计算,一旦出现计算结果已经确定的情况,则计算过程即被终止。对于&&运算来说,只要运算符左端的值为false,则因无论运算符右端的值为true或为false,其最终结果都为false。所以,系统一旦判断出&&运算符左端的值为false,则系统将终止其后的计算过程;对于 || 运算来说,只要运算符左端的值为true,则因无论运算符右端的值为true或为false,其最终结果都为true。所以,系统一旦判断出|| 运算符左端的值为true,则系统将终止其后的计算过程。
例如,有如下逻辑表达式:
(i>=1) && (i<=100)
此时,若i等于0,则系统判断出i>=1的计算结果为false后,系统马上得出该逻辑表达式的最终计算结果为false,因此,系统不继续判断i<=100的值。短路计算功能可以提高程序的运行速度。
作者建议读者:在程序设计时使用&&和||运算符,不使用&和|运算符。
用逻辑与(&&)、逻辑或(||)和逻辑非(!)可以组合出各种可能的逻辑表达式。逻辑表达式主要用在 if、while等语句的条件组合上。
例如:
int i = 1;
while(i>=1) && (i<=100) i++; //循环过程
上述程序段的循环过程将i++语句循环执行100次。
4.位运算符
位运算是以二进制位为单位进行的运算,其操作数和运算结果都是整型值。
位运算符共有7个,分别是:位与(&)、位或(|)、位非(~)、位异或(^)、右移(>>)、左移(<>>)。
位运算的位与(&)、位或(|)、位非(~)、位异或(^)与逻辑运算的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值。
位运算示例
运算符 名称 示例 说明
& 位与 x&y 把x和y按位求与
| 位或 x|y 把x和y按位求或
~ 位非 ~x 把x按位求非
^ 位异或 x^y 把x和y按位求异或
>> 右移 x>>y 把x的各位右移y位
<< 左移 x<<y 把x的各位左移y位
>>> 右移 x>>>y 把x的各位右移y位,左边填0
举例说明:
(1)有如下程序段:
int x = 64; //x等于二进制数的01000000
int y = 70; //y等于二进制数的01000110
int z = x&y //z等于二进制数的01000000
即运算结果为z等于二进制数01000000。位或、位非、位异或的运算方法类同。
(2)右移是将一个二进制数按指定移动的位数向右移位,移掉的被丢弃,左边移进的部分或者补0(当该数为正时),或者补1(当该数为负时)。这是因为整数在机器内部采用补码表示法,正数的符号位为0,负数的符号位为1。例如,对于如下程序段:
int x = 70; //x等于二进制数的01000110
int y = 2;
int z = x>>y //z等于二进制数的00010001
即运算结果为z等于二进制数00010001,即z等于十进制数17。
对于如下程序段:
int x = -70; //x等于二进制数的11000110
int y = 2;
int z = x>>y //z等于二进制数的11101110
即运算结果为z等于二进制数11101110,即z等于十进制数-18。要透彻理解右移和左移操作,读者需要掌握整数机器数的补码表示法。
(3)0填充的右移(>>>)是不论被移动数是正数还是负数,左边移进的部分一律补0。
5.其他运算符
(1)赋值运算符与其他运算符的简捷使用方式
赋值运算符可以与二元算术运算符、逻辑运算符和位运算符组合成简捷运算符,从而可以简化一些常用表达式的书写。
赋值运算符与其他运算符的简捷使用方式
运算符 用法 等价于 说明
+= s+=i s=s+i s,i是数值型
-= s-=i s=s-i s,i是数值型
*= s*=i s=s*i s,i是数值型
/= s/=i s=s/i s,i是数值型
%= s%=i s=s%i s,i是数值型
&= a&=b a=a&b a,b是逻辑型或整型
|= a|=b a=a|b a,b是逻辑型或整型
^= A^=b a=a^b a,b是逻辑型或整型
<<= s<<=i s=s<<i s,i是整型
>>= s>>=i s=s>>i s,i是整型
>>>= s>>>=i s=s>>>i s,i是整型
(2)方括号[]和圆括号()运算符
方括号[]是数组运算符,方括号[]中的数值是数组的下标,整个表达式就代表数组中该下标所在位置的元素值。
圆括号()运算符用于改变表达式中运算符的优先级。
(3)字符串加(+)运算符
当操作数是字符串时,加(+)运算符用来合并两个字符串;当加(+)运算符的一边是字符串,另一边是数值时,机器将自动将数值转换为字符串,这种情况在输出语句中很常见。如对于如下程序段:
int max = 100;
System.out.println("max = "+max);
计算机屏幕的输出结果为:max = 100,即此时是把变量max中的整数值100转换成字符串100输出的。
(4)条件运算符(?:)
条件运算符(?:)的语法形式为:
? :
条件运算符的运算方法是:先计算的值,当的值为true时,则将的值作为整个表达式的值;当的值为false时,则将的值作为整个表达式的值。如:
int a=1,b=2,max;
max = a>b?a:b; //max等于2
(5)强制类型转换符
强制类型转换符能将一个表达式的类型强制转换为某一指定数据类型,其语法形式为:
()
(6)对象运算符instanceof
对象运算符instanceof用来测试一个指定对象是否是指定类(或它的子类)的实例,若是则返回true,否则返回false。
(7)点运算符
点运算符“.”的功能有两个:一是引用类中成员,二是指示包的层次等级。
6.运算符的优先级
以下按优先级从高到低的次序列出Java语言中的所有运算符,表中结合性一列中的“左右”表示其运算次序为从左向右,“右左”表示其运算次序为从右向左。
优先级 运算符 结合性
1 . [] () ; ,
2 ++ ―― += ! ~ +(一元) -(一元) 右左
3 * / % 左右
4 +(二元) -(二元) 左右
5 < >> >>> 左右
6 > = instanceof 左右
7 = = != 左右
8 & 左右
9 ^ 左右
10 | 左右
11 && 左右
12 || 左右
13 ?: 右左
14 = *= /= %= += -= <>= >>>= &= ^= |= 右左
㈦ 北大青鸟java培训:人工智能如何掌握核心技术
机器学习是掌握人工智能技术的其中一个学习环节,而今天我们就一起来了解一下,在学习机器学习的一些知识概念的时候都需要考虑哪些问题。
为什么一开始就需要梯度下降?在学习基本的机器学习概念时,你的脑海中是否出现过这个问题?梯度下降是我们在初期学习时一定会遇到的基本算法之一,并且已经证明该方法在ML中是非常有效的。
但是一旦你开始阅读这篇文章,你会对之前学习的内容产生疑问。
起初这个问题直截了当,后来变成了Reddit高层人士之间的大讨论。
我非常喜欢浏览这些评论,我相信如果你对这个领域感兴趣,对数学抱着严谨的态度,也一定会觉得它很有用的。
大规模神经网络的逆向工程当复杂庞大的神经网络的开发人员突然消失,而没有留下任何理解网络所需的文档时,你该怎么做?这可不是凭白无故的虚构,而是实实在在会发生的一个常见情况,提问者本人就遇到过。
这种情况经常发生在开发人员身上,但是当涉及到深度学习时,完全是一种新的境况。
这篇文章介绍了几种方法,科学家可以用于还原深度模型初的设计思路。
有些回答很实际,而有些则很荒谬,但每种回答都增加了一种视角。
或许某天当你也遇到这种情况时,它们会帮到你。
关于TensorFlow2.0API的争论这个话题下大量的评论吸引了我的注意力(撰写本文时有110条评论),世界上有什么话题能引起如此大的争议呢?但是,当你接着阅读时,辩论者之间完全不同的意见让人难以置信。
除了TensorFlow被嘲笑“不是好的框架”之外,还有很多人在点赞PyTorch(如果你使用过PyTorch就会明白这并不奇怪)。
这一切开始于FrancoisChollet将自己的想法发布到GitHub上,在机器学习社区点了一把火。
基于预测奖励的强化学习这篇文章中另一个OpenAI的项目,宁夏电脑培训http://www.kmbdqn.cn/认为是他们的又一个巨大突破。
标题看上去没那么特别,但是你要理解OpenAI团队做出了什么。
正如一位Reddit用户所指出的,OpenAI的工作让我们向模仿人类行为的机器更近了一步。
它耗费了大约一年的训练时间,以超越人类的水平通关了蒙提祖马的复仇游戏,这给人留下了十分深刻的印象!
㈧ Java可以开发人工智能吗
听说只有Python 是人工智能的唯一优势
㈨ 使用java来实现在智能组卷中的遗传算法(急急急)
题目好像是让你做个增强版的List ,简单的都实现了 程序架子大概是这样,排序查找什么的网络搜下 算法很多,套着每样写个方法就行了,测试就在main‘方法里写
publicclassMyList{
privateString[]arr;
privateintcount;
publicMyList(intcount){
arr=newString[count];
this.count=count;
}
publicMyList(int[]intArr){
arr=newString[intArr.length];
this.count=intArr.length;
for(inti=0;i<intArr.length;i++){
arr[i]=intArr[i]+"";
}
}
publicMyList(String[]stringArr){
arr=stringArr;
this.count=stringArr.length;
}
publicintgetLength(){
returncount;
}
//清空容器内的数组。
publicvoidclearAll(){
arr=newString[count];
}
//通过给定元素下标来删除某一元素
publicvoidremoveBySeqn(intseqn){
if(seqn>=0&&seqn<count){
arr[seqn]=null;
}
}
publicstaticvoidmain(String[]args){
MyListlist=newMyList(40);
MyListlist1=newMyList({3,2,125,56,123});
MyListlist2=newMyList({"123",""ad});
list2.removeBySeqn(0);
list1.clearAll();
}
}
㈩ 关于java新闻网站的算法
(一) 算法伦理的研究
1.算法内涵界定。算法源于数学,但现代算法又远远不止于传统数学的计算范畴。算法多被理解为是计算机用于解决问题的程序或步骤,是现代人工智能系统的运行支柱。《计算主义:一种新的世界观》(李建会等,2012)中将算法定义为能行的方法,在外界的常识性理解中所谓算法就是能感受到的一套运算规则,这个规则的特点在于运算时间的有限性、计算步骤的有穷性、输入结果的确切性,它是机械步骤或能行可算计程序。该定义点明了算法应具备的两个基本属性——有限性与有穷性。《用计算的观点看世界》( 郦全民,2016) 则从信息传播的角度解读算法,认为算法实质上是信息处理方法。
2.算法伦理研究
伦理关乎道德价值真理及其判断。存在于自然界、社会中的人,其行为应遵循一定的伦理道德规范。伦理的效应要导向善。伦理道德关注对个体存在的尊重、个体的自由、公平正义以及组织团体的延续与发展等问题。在一定程度上可以说,当今的人类社会已经不能脱离智能算法系统而运行了。
算法无时无处不在对世界产生影响,因而算法也会必然的触碰到伦理道德。和鸿鹏(2017)已指出,算法系统在人类社会生活中的广泛应用,会陷入诸多如人类面临且无法回避的伦理两难选择困境之中。而当算法与伦理发生关联时,学界一般认为会引出职业伦理和技术伦理两种伦理问题。
职业伦理主要与算法系统的开发者有关,指开发者是带有个性价值观、伦理道德观去研发算法系统的行为体,因而算法系统一开始便会掺杂着设计人主观性的伦理道德观。设计者出于何种目的开发某算法系统、面对不同问题设计者持有的伦理道德态度,这些都会在算法系统的运行中得到体现。
技术伦理是算法系统在一定意义上可称之为一种科学技术,这种技术自身及其运作结果都会负载着伦理价值。其实在一些情况下,职业伦理与技术伦理之间并没有很明确的界别,关于这一点,刘则渊跟王国豫已做过论述。
本文将主要从技术伦理的角度对算法关涉伦理这一问题尝试做深入研究。
(二)网络新闻传播的算法伦理研究
算法与技术的融合不断英语于网络新闻传播领域中,从数据新闻到机器写作,从算法推送到舆情到分析,国内新闻传媒领域的机器新闻和相关研究逐渐发展,金兼斌在《机器新闻写作:一场正在发生的革命》(2014),作者较早的将眼光聚焦于基于算法的新闻内容生产和编辑。认为在自动化新闻生产大发展的前提下,诸如新闻生产或分发中劳动密集型的基础性工作与环节都将被技术取代。张超、钟新在《从比特到人工智能:数字新闻生产的算法转向》(2017) 认为算法正在从比特形式走向人工智能阶段,这种转向使得数字新闻与传统新闻的边界进一步明晰,促使数字新闻生产也产生了变革。胡万鹏在《智能算法推荐的伦理风险及防范策略》中总结了从算法推送方面:针对新闻的价值观所受到的负面影响;以及新闻的公共性、客观性和真实性受到的削弱进行分析;从受众方面:将具体对信息茧房现象以及受众的知情权和被遗忘权展开探讨;从社会影响方面,则针对社会群体、社会公共领域和社会文化所受到的消极影响展开论述。
根据以上文献的梳理可以看出,国内目前对网络新闻传播的算法伦理研究主要集中在新闻业态算法伦理失范的相关问题,因为与其他失范问题相比,这是比较容易发现的。但目前关于网络新闻传播的算法伦理的国内研究还存在不足:国内算法伦理和网络新闻传播算法伦理的研究还是在起步阶段,比较成熟的系统性研究还未出现;关于算法开发人员和平台的责任机制的研究都比较薄弱,总上所述,算法推送新闻的伦理问题研究是有必要继续加强的。
2.新闻推荐算法的兴起、发展与原理
2.1 新闻推荐算法的兴起
随着计算机技术的信息处理的维度越来越高,信息处理的能力不断提升,算法技术可以从大数据中筛选出用户最关心最感兴趣的信息,改变了原有的新闻信息传播方式,重塑了新的媒介生态和传播格局。
但反过来看,在人人都能生产信息的背景下,信息的生产、传播和反馈的速度都是呈几何倍数增长,用户面对的信息越来越多。由于设备的局限性和信息海量,用户无法集中注意力看自己感兴趣的内容,也无法及时抓取对自己有用的信息,于是出现了“注意力经济”。美国经济学家迈克尔·戈德海伯(1997)认为,当今社会是一个信息极大丰富甚至泛滥的社会,而互联网的出现,加快了这一进程,信息非但不是稀缺资源,相反是过剩的。相对于过剩的信息,只有一种资源是稀缺的,那就是人们的注意力。换句话说,信息不能够一味追求量,还要有价值,价值就在于用户对信息的注意力,谁获得了用户的注意力就可以有市场的发展空间,通过“贩卖”用户的注意力能够使新媒体聚合平台获得利润,维持发展。再加上现在生活节奏越来越快,人们对信息获取的量和效率要求提高,不想把时间浪费在自己不感兴趣的信息,从而用户获取信息的“个性化”特征变得明显起来。
基于此背景下,算法推送新闻的传播机制应运而生,用户不需要特意搜索自己需要的信息,而是海量的信息会自行“找到”用户,为用户节省搜索时间之余,又能做到真正为用户提供有用的信息。
2.2新闻推荐算法的发展现状
算法推荐是依据用户数据为用户推荐特定领域的信息,根据受众使用反馈不断修正并完善推荐方案。目前主要有两类新闻机构使用算法推送,其一是新型的互联网新闻聚合类平台,国内主要是以今日头条和一点资讯等算法类平台为代表,在我国新闻客户端市场上拥有极高的占有率。张一鸣创建今日头条是依靠大数据和算法为用户推荐信息,提供连接人与信息的服务,算法会以关键词等元素判断用户的兴趣爱好,从全网抓取内容实现个性化推荐。国外则是以Facebook、Instagram等平台为代表,这些APP都是通过算法挖掘用户的数据,以用户个性化需求为导向对用户进行新闻推送。另一种则是专业新闻生产的传统媒体,为积极应对新闻市场的竞争和提高技术水平而转型到新闻全媒体平台,如国内的“人民日报”等,国外利用算法推送向用户推送新闻的传统媒体则有美国的美联社、华盛顿邮报和英国的BBC等,他们利用算法监督受众的数量还有阅读行为,使他们的新闻报道能够更加受受众的喜欢,增加用户的粘性。
2.2 新闻推荐算法的原理
2.2.1 新闻推荐算法的基本要素
算法推送有三个基本要素,分别是用户、内容和算法。用户是算法推送系统的服务对象,对用户的理解和认知越是透彻,内容分法的准确性和有效性就越准确。内容是算法推送系统的基本生产资料,对多种形式内通的分析、组织、储存和分发都需要科学的手段与方法。算法是算法推送技术上的支持,也是最核心的。系统中大量用户与海量的信息是无法自行匹配的,需要推送算法把用户和内容连接起来,在用户和内容之间发挥桥梁作用,高效把合适的内容推荐给合适的用户。
2.2.2 新闻推荐算法的基本原理
算法推送的出现需要具备两个条件:足够的信息源和精确的算法框架。其中,算法的内容生产源与信息分发最终效果密切相关:是否有足够多的信息可供抓取与信息是否有足够的品质令用户满意都将对信息的传播效果产生影响。与此同时,分发环节也在向前追溯,改变着整个传播的生态。目前,国内新闻传播领域所使用的算法推送主要有三大类——协同过滤推送、基于内容推送和关联规则推送。
协同过滤推送分为基于用户的协同过滤和基于模型的协同过滤。前者主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的新闻文章类别,并预测目标用户对该文章的喜欢程度,就可以将其他文章推荐给用户;后者和前者是类似的,区别在此时转向找到文章和文章之间的相似度,只有找到了目标用户对某类文章的喜爱程度,那么我们就可以对相似度高的类似文章进行预测,将喜爱程度相当的相似文章推荐给用户。因此,前者利用用户历史数据在整个用户数据库中寻找相似的推送文章进行推荐,后者通过用户历史数据构造预测模型,再通过模型进行预测并推送。
基于内容的推送即根据用户历史进行文本信息特征抽取、过滤,生成模型,向用户推荐与历史项目内容相似的信息。它的优点之一就是解决了协同过滤中数据稀少时无法准确判断分发的问题。但如果长期只根据用户历史数据推荐信息,会造成过度个性化,容易形成“信息茧房”。
关联规则推送就是基于用户历史数据挖掘用户数据背后的关联,以分析用户的潜在需求,向用户推荐其可能感兴趣的信息。基于该算法的信息推荐流程主要分为两个步骤,第一步是根据当前用户阅读过的感兴趣的内容,通过规则推导出用户还没有阅读过的可能感兴趣的内容;第二是根据规则的重要程度,对内容排序并展现给用户。关联规则推送的效果依赖规则的数量和质量,但随着规则数量的增多,对系统的要求也会提高。
2.2.3 算法推送的实现流程
在信息过载的时代,同一个新闻选题有很多同质化的报道,因此分发前需要对新闻内容进行消重,消重后的新闻内容便等待推送,此时的推送有三个类别:启动推送、扩大推送和限制推送。
第一类是启动推送,先对用户精准推送,即将其订阅账号的更新内容第一时间向用户推荐;然后根据用户的历史浏览数据,把相似的文本特征归类后推送给其他用户;最后是给关注用户的相似人群进行推荐。第二类扩大推送是指对于某个点击率、阅读时长都明显高于平均水平的新闻内容,系统会将它自动筛选出来,并向更多的人进行推荐。但在扩大推荐的过程中,系统会依据用户的反馈进行调整。第三为限制推送,指某个点击率、阅读时长都明显低于平均水平的新闻内容,会被系统自动筛选出来,遏制推送,这样的内容会被缩小推荐范围。
3. “今日头条”新闻推荐算法分析
“今日头条”是国内一款资讯类的媒体聚合平台,每天有超过1.2亿人使用。从“你关心的,才是头条!”到如今的“信息创造价值!”,产品slogan的变化也意味着今日头条正逐渐摆脱以往单一、粗暴的流量思维,而开始注重人与信息的连接,在促进信息高效、精准传播的同时注重正确的价值引导。
在2018年初,“今日头条”的资深算法架构师曹欢欢博士在一场分享交流会上公开了其算法运行原理。在他的叙述中,非常详细地介绍了“今日头条”的算法推荐系统概述以及算法推荐系统的操作原理。
3.1.1-1 曹欢欢博士的今日头条算法建模
上图用数学形式化的方法去描述“今日头条”的算法推送,实际上就是一个能够得出用户对内容满意程度的函数:即y为用户对内容的满意度,Xi,Xc,Xu分别是今日头条公开的算法推送的三个维度:Xi是用户,包括用户的性别、年龄、职业和兴趣标签,还有其他算法模型刻画的隐形用户偏好等;Xc是环境,这也是移动互联网时代新闻推送的特点,由于用户随时随地在不停移动,移动终端也在移动,用户在不同的工作场合、旅行等场景信息推送偏好也会不同;Xu是内容,今日头条本身就是信息聚合类平台,平台上涵盖各种不同形式的内容。本章将以该函数为基础,逐一分析今日头条的推荐算法。
3.1 推荐维度之一:内容分析
内容分析原指第二次世界大战期间,传播学家拉斯韦尔等研究学家组织了“战士通讯研究”的工作,以德国公开出版的战时报纸为分析研究对象,弄清报纸内容本质性的事实和趋势,揭示隐含的隐性情报内容,获取了许多军情机密情报并且对事态发展作出情报预测。在“今日头条”中,内容分析则是对文章、视频内容提取关键要素,通过对文本、视频标题关键字进行语义识别,给内容进行分类。“今日头条”的推送系统是典型的层次化文本分类算法,来帮助每篇新闻找到合适的分类,比如:第一大分类是政治、科技、财经、娱乐、体育等,体育类可以下分篮球、足球、网球等,足球又可以下分中国足球和国际足球,中国足球最后下分为甲、中超、国家队等。这一步是对文章进行对这个工作主要目的是对文章进行分类,方便以后对客户推荐。
想要内容分析实现效果,则需要海量的内容信息给算法系统提供有效的筛选和分类。“今日头条”既然是依赖于算法推送新闻,那它背后的数据库必然是强大的,“网页蜘蛛”和“头条号”就是支撑今日头条平台消息来源的重要渠道,其消息来源极其丰富,何时何地有何新鲜事,都能高效率抓取信息。
第一个消息来源的渠道是“网页蜘蛛”,“网页蜘蛛”又叫网页爬虫,头条使用的就是搜索引擎爬虫叫“Bytespider”。它能按照一定的规则,自动爬行抓取互联网的信息或脚本,就像蜘蛛通过蛛网进行捕食,当发现新的信息资源,蜘蛛会立刻出动抓取信息内容并将其收入自己的数据库中。和微信的垂直搜索不同,Bytespider是能够抓取全网内容的全新搜索引擎,因此“今日头条”的搜索引擎功能很全面,搜索的资源很广,资源包容性极高。
Bytespider信息抓取的基本流程如下:首先是网页抓取。Bytespider顺着网页中的超链接,从这个网站爬到另一个网站,通过超链接分析连续访问抓取更多网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。第二步是处理网页。搜索引擎抓到网页后,还要做大量的预处理工作,才能提供检索服务。其中,最重要的就是提取关键词,建立索引库和索引。其他还包括消除重复网页、判断网页类型、分析超链接、计算网页的重要度、丰富度等。第三步提供检索服务。用户输入关键词进行检索,搜索引擎从索引数据库中找到匹配该关键词的网页,为了用户便于判断,除了网页标题和URL外,还会提供一段来自网页的摘要以及其他信息。
第二个消息来源渠道是“头条号”。与“今日头条”不同,它是今日头条针对媒体、国家机构、企业以及自媒体推出的专业信息发布平台。致力于帮助生产者在移动互联网上高效率地获得更多的曝光和关注。简单来说头条号是媒体在上面撰写并发布文章、视频后,会在今日头条(包括今日头条极速版)平台展示。通过头条号后台,媒体可以看到具体文章推荐量、阅读量、粉丝阅读量、评论量、转发量和收藏量,最后通过这些可以量化的用户阅读行为的反馈,算法系统进一步对目标用户进行内容推荐。
3.2 推荐维度之二:用户分析
用户分析通过提取用户的有效数据,如用户经常浏览的文字类型、经常搜索的关键字、注册时登记信息的内容等,算法系统可以将每个用户的浏览记录、浏览时间、留言、评论和转发等行为进行关键字提取,最终形成用户画像,以便之后对用户进行文章和视频的精准推送。举个例子,给喜欢阅读“体育”的用户标上“体育”标签;给喜欢“娱乐”的用户标上“娱乐”的标签,这一步的作用是给用户的兴趣进行建模,包括用户对文章和视频的全局热度、分类热度,主题热度,以及关键词热度等。热度信息在大的推荐系统能够解决新闻冷启动问题,帮助新闻实现推送。
用户分析还具有协同特征,它可以在部分程度上帮助解决所谓算法越推越窄的问题。协同特征也就是“联想式”的推送方法,并非只考虑用户已有历史,而是通过用户行为分析不同用户间相似性,比如点击相似、兴趣分类相似、主题相似、兴趣词相似,甚至向量相似,从而扩展模型的探索能力。根据用户之间计算数据的相似程度,把用户细化分类成为不同的目标群体,再向目标群体集中的推送其感兴趣的新闻内容
内容分析和用户分析是相辅相成的,如果没有分析的文本标签,无法得到用户兴趣标签,没有用户的兴趣标签就无法给用户定位实现精准推送。
3.3 推荐维度之三:环境分析
环境分析就是根据文章的时效性和接近性推送给相应的用户,比如获取用户当前所在位置是否在旅游区,这个可以通过获取用户的实时位置来实现。还会不断与用户之前经常出现的所在地进行对比等方式确认当前状态,分析出用户是在常住地区还是在旅行。这时若系统检测到用户正在泰山及周边游玩,则可能会相应推送泰山的相关文章、周边的交通新闻和天气信息等等。
通过上面三个推荐维度可以作为数据基础,分析当前用户处于什么环境,结合用户画像以及文章的内容分类来推荐,尽量做到推送的内容都是用户所感兴趣的。算法系统还会通过内容分类、分析抽取,把文本相似度高的文章,包括新闻主题、内容相似的文章进行消重,解决推送重复的问题,进一步对目标用户进行精确且不重复的内容推荐。最后过滤质量低俗色情的内容,以免造成平台会有负面倾向。
3.4 “今日头条”新闻推荐算法的价值取向
3.4.1 “用户为上”
“今日头条”的算法推送是站在用户的立场上的,以满足用户个性化和推送的精准性,“今日头条”也重新衡量了新闻价值标准:以用户为上,用户对新闻内容和阅读方式的满意度便是平台推送新闻的价值宗旨。传统媒体时代,只有报纸和电视,有什么受众就得看什么,而如今“今日头条”根据用户兴趣去进行推送。算法推送平台用户范围广,很多用户热衷关注负面,也有许多用户都有窥视欲和好奇心,喜欢无聊八卦和无聊新闻,而且在好奇心作用下用户都有从众心理。这使得生产者过度去迎合受众,只要是用户喜欢看就可以发表在“今日头条”上。
3.4.2 “算法主导”
“今日头条”更注重技术分发,生产者是用户,受众者也是用户,这样一来内容监管和分发就很困难。算法推送机制根据用户爱好进行推送,这样生产的内容快、也无疑会加速内容配送效率。在算法推送模型中,用户点击频率、阅读时间、点赞评论以及转发在算法时代都是可以进行量化的目标。在这样情况下生产的内容,想要获得较大点击率和推送率,需要标题才能吸引用户,因为用户在平台一眼能看到的就是标题和配图。标题和配图决定用户是否会打开你的内容,这导致许多内容生产者在编辑新闻标题时陷入标题党的怪圈,还有导致低俗内容的呈现,以制造冲突制造悬念贴标签等方式引用户点击,意图把自己的文章做成爆文。对于海量的信息内容,即使今日头条数据和智能推荐做的再好,目前来说也难以抵挡海量的垃圾信息。
4.算法推送新闻引发的伦理问题
在如今网络时代的传播思维中,“用户为上”、“算法主导”的新闻价值取向已经在算法聚合类平台成为了普遍,算法推送技术作为吸引用户的手段,搭建起一个充满诱导的媒介环境,以此增加用户对平台的粘性。算法推送技术在获取信息、传播速度等方面与以往相比有着跨时代的进步,但与此同时,由于算法推送技术的加入,衍生出新的伦理问题,并且日渐复杂化。
4.1 算法推送引发的伦理问题
4.1.1 算法推送过于机械化,没有思考能力
单向的算法推荐对用户来说经常会带来内容杂乱无章、信息量过大、信息价值低等问题。从逻辑讲,算法只是从关键字的检索匹配来完成统计推荐,但对新闻报道或文学作品具有艺术性、专业性的内容来说,是不能保证推送的质量的。算法方面,目前主要基于匹配检索与统计,大部分都是个人关注的信息类型和标签,难以达到较好的推送效果。一千个人眼里有一千个哈姆雷特,但是计算机只有只有一个。算法技术过于注重机械化的统计,只根据关键词来推荐用户,对我们中国具有博大精深的中国文字文化底蕴,推荐算法是远远不够的。整个新闻客户端显得像是一个菜市场,没有态度、没有风格,阅读感受单一化,呈现了碎片化的特点。新闻不只是让用户能够了解身边发生的新鲜事,还有宣传正面思想和传播正能量的作用,新闻应该还要给人们带来新的思考。让机器做出正确判断很简单,但是让机器综合心理学、社会学、乃至某细分领域内的规则做出判断还要正确地引导受众则很难,正如现在算法技术还不能完成一篇富有人文性、文学性和批判性的深度报道,它止步在了碎片式的、表层的传播范畴。
4.1.2 容易引起“信息茧房”效应
“信息茧房”这一概念是凯斯.桑斯坦在《信息乌托邦》一书中提出的。意指受众在过度的信息自我选择之中,这样会降低接触外界其他信息的可能,从而将自己的生活桎梏于蚕茧一般的“蚕房”中的现象。人们的信息领域会习惯性被自己的兴趣引导,信息窄化带来了受众对信息接收的单一性,这种单一性的可能会使受众陷入循环,加重受众信息同质化。
在互联网的普及初期,受众主要是从主流媒体和门户网站获取新闻信息,主流媒体能够保障新闻的质量;对于其他资讯的获取,由于技术的限制,此时的茧房并没有过度被放大,受众是有适当的自主选择性阅读新闻的。但到了如今以智能技术的互联网时代,情况发生了改变,信息茧房的现象越来越明显,用户被标签的情况下,算法系统进行大量的主动推送,使受众被动地成为信息的接收者。用户的阅读兴趣不可能涵盖所有的知识领域,算法分发的核心逻辑是根据用户的行为数据来进行精确推荐的,但同时算法又会自动过滤掉“不感兴趣”“不认同”的信息,实现“看我想看,听我想听”。在此过程中,因为算法技术的力量将用户的信息选择效果放大了倍数,进而将受众困住在信息茧房当中,受众也很难凭借自身力量打破茧房,甚至在不知觉中受到更多负面的影响。
4.1.3 算法推送的“伪中立性”
客观和全面是新闻伦理的基本要求,新闻从业者必须从可好信息源来获取真实的信息,以客观的态度反应现实。我们惯常认为,互联网技术服务商是技术中立者,不需要承担约束大众媒体的社会责任,然而当信息把关人又新闻编辑转变为算法工程师,传统的媒介伦理似乎已经失效。算法具有商业倾向性,“中立性”是算法平台用以逃避媒体责任的理由,给大众媒介造成传播乱象,如此一来更像是一场算法平台“肆意妄为又不想负责”的诡辩。
算法平台的信息源是经过选择和过滤的,“头条号”的内容占“今日头条”整个信息系统的绝大部分,然而在“人人都可以做新闻人”的时代,头条号平台是一个开放的网络媒介环境,存在大量的偏见和错误的认知。无论是“今日头条”平台设立的算法规则,还是其他爬虫的抓取的关键词,算法系统的信息源很多是具有目的性的、有偏见和非客观的信息,所以信息源不能直接作用于用户。因此,筛选算法系统的信息源与传统的人工编辑相比较,范围极广且很难把关,若算法被恶意利用,那么使整个传播系统将会被轻易控制。
4.1.4 算法推送里的“议程设置”
原议程设置功能揭示的重要内涵是:“受众对新闻的看法虽然被大众媒体议程设置功能所主导,但其更深刻的是议程设置给大众媒体新闻带来放大与延伸,从而使受众对新闻选择做出能动性修正,让受众在满足需求和媒介依赖中逐渐培养出的潜在认同感”。
推送算法技术在互联网平台的运用,使原来传统媒体主导的议程设置过程发生了变化,伴随着传播权的转移、公众参与度的提高和信息量剧增等原因导致议程设置功逐渐能减弱。过往传统新闻的内容是由编辑有选择地进行报道后再呈现在受众面前的,而个性化新闻推送是用户自己来选择看哪一方面的内容,而这一环节中,天然的技术赋权将传播权从传统媒体下放至平台的用户,使得受众和社会的连接无需依赖传统媒介,新闻媒体作为把关人的作用和议程设置功能都在减弱。
4.2 算法新闻治理缺陷下的算法权利异化
算法作为人工智能的基石之一,是“一种有限、确定、有效并适合用计算机程序来实现的解决问题的方法,是计算机科学的基础”。近年来,伴随人工智能深度学习算法取得的重大突破和大数据时代的到来,人工智能的应用场景不断拓展,人工智能时代正逐渐从想象成为现实。借助于海量的大数据和具备强大计算能力的硬件设备,拥有深度学习算法的人工智能机器可以通过自主学习和强化训练来不断提升自身的能力,解决很多人类难以有效应对的治理难题。伴随人工能算法在国家和社会治理中重要性的日渐凸显,国家和社会对于算法的依赖也逐渐加深,一种新型的权力形态——算法权力也随之出现。
可以把算法权利分为四种:数据主权、算法设计权、研发的资本权和算法控制权。由于前三种权利都是单向的、算法开发者赋予算法的权利,是属于算法开发者的,与算法分发平台呈现的效果没有直接的影响,所以本文将着重论述算法控制权。
算法控制权是双向的,用户是算法技术数据行为的提供者,同时又是被算法技术控制的受害者。例如我们看到“今日头条”会通过推送算法来监管用户的发布和浏览行为,同时平台会通过算法决策系统来实现内容的发布去引导用户。算法控制权当然是一种天然技术赋予的权利,但算法控制权是在用户提供数据行为的情况下才得以实现的,因此算法控制权既存在内容生产权,同时有要尊重和保护算法相对人的义务。
正因为如此,算法技术被认为是一种双刃剑,一方面算法能够做出精准的行为预测,可以为管理者提供非常好的循环干预机制;对于公共行为主体来说,可以通过对大数据的应用来解决社会治理问题,对于私人主体来说可以借助数据来提供个性化和定制化的服务;另一方面,算法技术存在着诸如利益和风险不对称等问题,而且由于算法技术发展的超前性,新科技的创造者具备不对称的信息和技术优势,能够按照自身利益的需求来塑造在平台上的算法推送逻辑和社会系统,这带来了监管的不确定性。人们要通过集体行为去承担社会责任,通过这样的方式规制算法权利,可以让我们能够对算法分发系统的意义和价值得到更深刻的思考。