伯克利提出使用随机搜索训练线性策略 可提高强化学习的性能表现

原文来源:arXiv

作者:Ben Recht、Horia Mania、Aurelia Guy

「雷克世界」编译:嗯~是阿童木呀、EVA

一般来说,无模型强化学习中存在着这样一个基本观点,即基于随机搜索的方法在策略的参数空间中所表现出来的样本复杂性要比那些探索行为空间的方法差得多。为了纠正这一观点,我们引入了一种随机搜索方法,用以对连续控制问题的静态、线性策略进行训练,并在基准MuJoCo运动任务中与最先进的样本效率相匹配。与此同时,我们的方法还为线性二次调节器的一个具有挑战性的实例找到了一个近似最优的控制器,当动力学还不为人熟知的时候,线性二次调节器是控制理论中的经典问题。从计算上看,我们随机搜索算法的效率要比这些基准测试中最快的、最具竞争力的无模型方法至少高15倍。我们利用这种计算效率对我们的方法在数百个随机种子以及每个基准任务中各种超参数配置上的性能表现进行评估。我们的仿真强调突出了这些基准测试任务中性能的高度可变性,表明常用的样本效率估计并不能对强化学习算法的性能进行充分地评估。

首先,我们先来了解一下线性化原理的反面知识。我们已经看到,随机搜索在简单的线性问题上很有效,而且比策略梯度等一些强化学习方法效果更好。那么,当我们遇到更困难的问题时,随机搜索会崩溃吗?答案是否定的。

让我们把随机搜索应用到与强化学习社区密切相关的问题上。据悉,深度强化学习社区已经花费了大量的时间和精力在一套由OpenAI维护并以MuJoCo模拟器为基础的基准上,。在此,最优控制问题是让一个足式机器人的模拟在一个方向上尽可能远和快地走。有些任务非常简单,但有些任务相当困难,比如具有22个自由度的复杂人形模型。足式机器人的动力学特性由哈密顿方程(Hamiltonian Equations)明确规定,但从这些模型中对移动进行规划是具有挑战性的,因为模型是分段线性的,使得我们目前尚不清楚该如何最好地设计目标函数。只要机器人的一部分接触到固体物体时,模型就会发生变化,因此引入了一种以前没有作用于机器人的正向力(normal force)。因此,对于强化学习范式来说,让机器人无需处理复杂的非凸非线性模型就能工作,似乎是一个坚实而有趣的挑战。

最近,Salimans和他在Open AI的合作者指出,随机搜索在这些基准中表现的很好。特别是,它们可以通过使用具有一些算法改进的随机搜索(他们将这种随机搜索称为“进化策略”,但我坚持使用我的命名约定)来适应神经网络控制器。在另一篇著作中,Rajeswaran等人表明,自然策略梯度可以学习线性策略从而完成这些基准。也就是说,他们表示静态线性状态反馈,就像我们在线性二次调节器中所使用的那种,也足以控制这些复杂的机器人模拟器。这自然留下了一个开放的问题:简单的随机搜索能为这些MuJoCo任务找到线性控制器吗?

我的学生Aurelia Guy和Horia Mania对这个问题进行了测试,编写了一个相当简单的随机搜索版本。令人惊讶(或者不令人惊讶)的是,这个简单的算法学习了关于Swimmer-v1、Hopper-v1、HalfCheetah-v1、Walker2d-v1和Ant-v1任务的线性策略,达到了以前在文献中所提出的奖励阈值。

但是随机搜索并不是完美的。Aurelia和Horia无法让人形模型做任何有趣的事情。在尝试了许多参数设置之后,他们决定试着去增强随机搜索以使其训练得更快。Horia注意到,许多强化学习论文都使用了各种状态的统计数据,并在把它们传递到对状态到动作的映射进行定义的神经网络之前,对这些状态进行了白化处理。所以他开始在网上对这些状态进行估算,并在把它们传递给线性控制器之前将它们进行白化处理。有了这个简单的技巧,Aurelia和Horia现在在人形机器人上获得了最高水准的性能。事实上,他们可以获得超过11000的奖励,这比我所看到过的一切记录都要高。它实际上几乎是Salimans等人所使用的用来确定基准的“成功阈值”的两倍。

有这么简单的事情是很好的,因为这个代码比OpenAI进化策略报告中报告的快了15倍。我们可以用较少的计算获得更高的回报。在一个具有18个核心的标准EC2实例上,我们可以在一个小时内训练一个高性能的人形模型。

现在,随着在线状态的更新,随机搜索不仅超越了人形机器人的最高性能表现水准,而且还在Swimmer-v1、Hopper-v1、HalfCheetah-v1上有所突破。但它在Walker2d-v1和Ant-v1上的性能表现还没有那么好。但我们可以对这种混合再加一个技巧。我们可以去掉那些没有得到好的奖励的采样方向。这增加了一个超参数(要保留这部分的方向),但是有了这一个额外的微调,随机搜索实际上可以匹配或超过OpenAIGym中所有MuJoCo基线的最高水准表现。注意,我并没有限制与策略梯度的比较。就我从我们的文献检索中所知,这些策略要比任何将无模型强化学习应用到这个问题所取得的结果都要好,无论是演员批评家方法(Actor Critic Method)、价值函数估计方法(Value Function Estimation Method),还是更深奥的东西。看起来,对于这些MuJoCo问题来说,纯粹的随机搜索要比深度强化学习和神经网络能够更好地将其解决。

有一些很小微调的随机搜索在这些MuJoCo任务上做得比其他所有方法都要好,而且速度要快得多。我们有一篇展现这些结果和更多信息的完整论文(文末有链接),以及相关代码(文末有链接),感兴趣的可以点击查看。

强化学习能够从随机搜索中学习什么?

这里囊括了若干个要点:

·基准非常难

我认为从所有这一切能够得到的唯一合理的结论就是这些MuJoCo演示很容易。这并没有什么不妥。但是,针对这些基准测试中的性能表现,去决定NIPS、ICML或ICLR论文似乎不再值得。这确实给一个非常重要的问题:对于强化学习来说,什么是一个良好的基准?显然,我们需要的不仅仅是山地车。我认为,具有未知动态的线性二次调节器是一个合理的任务,因为它很容易指定新实例,并且容易理解可实现性能所存在的局限性。但社区应该花更多的时间来了解如何建立不容易应用的基线和基准。

·永远不要过分相信你的模拟器

这些基准之所以很容易的部分原因是MuJoCo不是一个完美的模拟器。MuJoCo非常快,对于概念的验证也非常有用。但为了保证能够快速,它必须在接触体周围进行一些平滑处理(请记住,接触体的不连续性使腿部运动变得困难)。因此,仅因为你可以让其中一个模拟器行走,但这并不意味着你可以让一个真正的机器人行走。的确,这里有四种步态,达到了神奇的6000步临界值。这些看起来都不太现实:

即使是表现最好的模型(奖励为11,600),它的步态看起来也是非常的愚蠢,可能在现实中无法运作:

·力求算法简单

将超参数和算法小部件添加到简单算法中,可以在足够小的一组基准测试中提高其性能表现。我不知道如果放弃表现最好的方向或状态正则化是否会对新的随机搜索问题起作用,但它对于这些MuJoCo基准来说是很有用的。通过添加更多的可调参数,甚至可以获得更高的奖励。

·在使用之前进行深入探索

请注意,由于我们的随机搜索方法很快,我们可以在许多随机种子上对它的表现进行评估。这些无模型方法在这些基准上都表现出惊人的高度差异。例如,就人形机器人任务而言,即使提供了我们自认为是好的参数的模型,该模型的训练也几乎是慢了四分之一的时间。对于那些随机的种子,它会发现相当奇特的步态。将一个人的注意力限制在随机搜索的3个随机种子上通常是非常具有误导性的,因为你可能会将你的性能表现调整为随机数生成器的特性。

·存在变化

这种行为也出现在线性二次调节器中。我们可以对我们的算法调整一些随机种子,然后将会在新的随机种子上看到完全不同的行为。Henderson等人用深度强化学习方法观察了这种现象,但我认为如此高的变异性将成为所有无模型方法的一个症状。仅通过模拟的话,就会有太多的边界情况需要考虑,而有时则会考虑不全。正如我所说的:“通过抛弃模型和知识,我们不确定是否可以从少数情况和随机种子中进行足够充分的学习从而进行泛化” 。

原文链接:http://www.argmin.net/2018/03/20/mujocoloco/

论文链接:arxiv.org/abs/1803.07055

代码资源链接:github.com/modestyachts/A

Google采取措施限制令人反感和不准确的搜索结果

PingWest品玩425报道,Google今天宣布对其搜索引擎进行一系列更改,以提供更高质量的结果并限制假消息。该公司在今天发布的博客文章中概述了其搜索排名,反馈工具和透明度实践的变化。为了限制令人反感和不准确的搜索结果,Google最近更新了“搜索质量评估指南”,用于人工衡量搜索结果的质量。

更新的指南提供了更为清晰的低质量结果示例,包括“误导性信息,意外的攻击性结果,恶作剧和不支持的阴谋论。Google还调整了其算法来优先显示权威的搜索结果。

谷歌因为提供非常不准确或令人反感的搜索结果,在最近几个月里面受到批评,。12月份,用户在谷歌当中搜索“大屠杀发生了吗?”,搜索结果排在第一的是一个宣传白人至高无上的网站。谷歌表示,在本周更新搜索方法之后,这种情况以后不大可能出现。

Google还为用户提供了一个新的反馈机制来报告不完整的自动填充建议或特色摘要。谷歌的特色摘要功能近几个月来遭遇阴谋论和恶作剧网站的滥用。用户现在可以直接从结果页面报告不准确或令人反感的片段和自动填充建议。

用Python实现一个大数据搜索及源代码

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。

布隆过滤器 (Bloom Filter)

第一步我们先要实现一个布隆过滤器。

布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。

让我们看看以下布隆过滤器的代码:

classBloomfilter(object):

“””

A Bloom filter is a probabilistic data-structure that trades space for accuracy

when determining if a value is in a set. It can tell you if a value was possibly

added, or if it was definitely not added, but it can’t tell you for certain that

it was added.

“””

def __init__(self,size):

“””Setup the BF with the appropriate size”””

self.values= [False]* size

self.size= size

def hash_value(self,value):

“””Hash the value provided and scale it to fit the BF size”””

returnhash(value)% self.size

def add_value(self,value):

“””Add a value to the BF”””

h= self.hash_value(value)

self.values[h]= True

def might_contain(self,value):

“””Check if the value might be in the BF”””

h= self.hash_value(value)

returnself.values[h]

def print_contents(self):

“””Dump the contents of the BF for debugging purposes”””

print self.values

基本的数据结构是个数组(实际上是个位图,用1/0来记录数据是否存在),初始化是没有任何内容,所以全部置False。实际的使用当中,该数组的长度是非常大的,以保证效率。

利用哈希算法来决定数据应该存在哪一位,也就是数组的索引

当一个数据被加入到布隆过滤器的时候,计算它的哈希值然后把相应的位置为True

当检查一个数据是否已经存在或者说被索引过的时候,只要检查对应的哈希值所在的位的True/Fasle

看到这里,大家应该可以看出,如果布隆过滤器返回False,那么数据一定是没有索引过的,然而如果返回True,那也不能说数据一定就已经被索引过。在搜索过程中使用布隆过滤器可以使得很多没有命中的搜索提前返回来提高效率。

我们看看这段 code是如何运行的:

bf= Bloomfilter(10)

bf.add_value(‘dog’)

bf.add_value(‘fish’)

bf.add_value(‘cat’)

bf.print_contents()

bf.add_value(‘bird’)

bf.print_contents()

# Note: contents are unchanged after adding bird – it collides

forterm in[‘dog’,’fish’,’cat’,’bird’,’duck’,’emu’]:

print'{}: {} {}’.format(term,bf.hash_value(term),bf.might_contain(term))

结果:

[False,False,False,False,True,True,False,False,False,True]

[False,False,False,False,True,True,False,False,False,True]

dog: 5True

fish: 4True

cat: 9True

bird: 9True

duck: 5True

emu: 8False

首先创建了一个容量为10的的布隆过滤器

然后分别加入 ‘dog’,‘fish’,‘cat’三个对象,这时的布隆过滤器的内容如下:

然后加入‘bird’对象,布隆过滤器的内容并没有改变,因为‘bird’和‘fish’恰好拥有相同的哈希。

最后我们检查一堆对象(’dog’, ‘fish’, ‘cat’, ‘bird’, ‘duck’, ’emu’)是不是已经被索引了。结果发现‘duck’返回True,2而‘emu’返回False。因为‘duck’的哈希恰好和‘dog’是一样的。

分词

下面一步我们要实现分词。 分词的目的是要把我们的文本数据分割成可搜索的最小单元,也就是词。这里我们主要针对英语,因为中文的分词涉及到自然语言处理,比较复杂,而英文基本只要用标点符号就好了。

下面我们看看分词的代码:

def major_segments(s):

“””

Perform major segmenting on a string. Split the string by all of the major

breaks, and return the set of everything found. The breaks in this implementation

are single characters, but in Splunk proper they can be multiple characters.

A set is used because ordering doesn’t matter, and duplicates are bad.

“””

major_breaks= ‘ ‘

last= -1

results= set()

# enumerate() will give us (0, s[0]), (1, s[1]), …

foridx,ch inenumerate(s):

ifch inmajor_breaks:

segment= s[last+1:idx]

results.add(segment)

last= idx

# The last character may not be a break so always capture

# the last segment (which may end up being “”, but yolo)

segment= s[last+1:]

results.add(segment)

returnresults

主要分割

主要分割使用空格来分词,实际的分词逻辑中,还会有其它的分隔符。例如Splunk的缺省分割符包括以下这些,用户也可以定义自己的分割符。

] < >( ) { } | ! ; , ‘ ” * s & ? + %21 %26 %2526 %3B %7C %20 %2B %3D — %2520 %5D %5B %3A %0A %2C %28 %29

def minor_segments(s):

“””

Perform minor segmenting on a string. This is like major

segmenting, except it also captures from the start of the

input to each break.

“””

minor_breaks= ‘_.’

last= -1

results= set()

foridx,ch inenumerate(s):

ifch inminor_breaks:

segment= s[last+1:idx]

results.add(segment)

segment= s[:idx]

results.add(segment)

last= idx

segment= s[last+1:]

results.add(segment)

results.add(s)

returnresults

次要分割

次要分割和主要分割的逻辑类似,只是还会把从开始部分到当前分割的结果加入。例如“1.2.3.4”的次要分割会有1,2,3,4,1.2,1.2.3

def segments(event):

“””Simple wrapper around major_segments / minor_segments”””

results= set()

formajor inmajor_segments(event):

forminor inminor_segments(major):

results.add(minor)

returnresults

分词的逻辑就是对文本先进行主要分割,对每一个主要分割在进行次要分割。然后把所有分出来的词返回。

我们看看这段 code是如何运行的:

forterm insegments(‘src_ip = 1.2.3.4’):

print term

src

1.2

1.2.3.4

src_ip

3

1

1.2.3

ip

2

=

4

搜索

好了,有个分词和布隆过滤器这两个利器的支撑后,我们就可以来实现搜索的功能了。

上代码:

classSplunk(object):

def __init__(self):

self.bf= Bloomfilter(64)

self.terms= {}# Dictionary of term to set of events

self.events= []

def add_event(self,event):

“””Adds an event to this object”””

# Generate a unique ID for the event, and save it

event_id= len(self.events)

self.events.append(event)

# Add each term to the bloomfilter, and track the event by each term

forterm insegments(event):

self.bf.add_value(term)

ifterm notinself.terms:

self.terms[term]= set()

self.terms[term].add(event_id)

def search(self,term):

“””Search for a single term, and yield all the events that contain it”””

# In Splunk this runs in O(1), and is likely to be in filesystem cache (memory)

ifnotself.bf.might_contain(term):

return

# In Splunk this probably runs in O(log N) where N is the number of terms in the tsidx

ifterm notinself.terms:

return

forevent_id insorted(self.terms[term]):

yield self.events[event_id]

Splunk代表一个拥有搜索功能的索引集合

每一个集合中包含一个布隆过滤器,一个倒排词表(字典),和一个存储所有事件的数组

当一个事件被加入到索引的时候,会做以下的逻辑

为每一个事件生成一个unqie id,这里就是序号

对事件进行分词,把每一个词加入到倒排词表,也就是每一个词对应的事件的id的映射结构,注意,一个词可能对应多个事件,所以倒排表的的值是一个Set。倒排表是绝大部分搜索引擎的核心功能。

当一个词被搜索的时候,会做以下的逻辑

检查布隆过滤器,如果为假,直接返回

检查词表,如果被搜索单词不在词表中,直接返回

在倒排表中找到所有对应的事件id,然后返回事件的内容

我们运行下看看把:

s= Splunk()

s.add_event(‘src_ip = 1.2.3.4’)

s.add_event(‘src_ip = 5.6.7.8’)

s.add_event(‘dst_ip = 1.2.3.4’)

forevent ins.search(‘1.2.3.4’):

print event

print’-‘

forevent ins.search(‘src_ip’):

print event

print’-‘

forevent ins.search(‘ip’):

print event

src_ip= 1.2.3.4

dst_ip= 1.2.3.4

src_ip= 1.2.3.4

src_ip= 5.6.7.8

src_ip= 1.2.3.4

src_ip= 5.6.7.8

dst_ip= 1.2.3.4

是不是很赞!

更复杂的搜索

更进一步,在搜索过程中,我们想用And和Or来实现更复杂的搜索逻辑。

上代码:

classSplunkM(object):

def __init__(self):

self.bf= Bloomfilter(64)

self.terms= {}# Dictionary of term to set of events

self.events= []

def add_event(self,event):

“””Adds an event to this object”””

# Generate a unique ID for the event, and save it

event_id= len(self.events)

self.events.append(event)

# Add each term to the bloomfilter, and track the event by each term

forterm insegments(event):

self.bf.add_value(term)

ifterm notinself.terms:

self.terms[term]= set()

self.terms[term].add(event_id)

def search_all(self,terms):

“””Search for an AND of all terms”””

# Start with the universe of all events…

results= set(range(len(self.events)))

forterm interms:

# If a term isn’t present at all then we can stop looking

ifnotself.bf.might_contain(term):

return

ifterm notinself.terms:

return

# Drop events that don’t match from our results

results= results.intersection(self.terms[term])

forevent_id insorted(results):

yield self.events[event_id]

def search_any(self,terms):

“””Search for an OR of all terms”””

results= set()

forterm interms:

# If a term isn’t present, we skip it, but don’t stop

ifnotself.bf.might_contain(term):

continue

ifterm notinself.terms:

continue

# Add these events to our results

results= results.union(self.terms[term])

forevent_id insorted(results):

yield self.events[event_id]

利用Python集合的intersection和union操作,可以很方便的支持And(求交集)和Or(求合集)的操作。

运行结果如下:

s= SplunkM()

s.add_event(‘src_ip = 1.2.3.4’)

s.add_event(‘src_ip = 5.6.7.8’)

s.add_event(‘dst_ip = 1.2.3.4’)

forevent ins.search_all([‘src_ip’,’5.6′]):

print event

print’-‘

forevent ins.search_any([‘src_ip’,’dst_ip’]):

print event

src_ip= 5.6.7.8

src_ip= 1.2.3.4

src_ip= 5.6.7.8

dst_ip= 1.2.3.4

总结

以上的代码只是为了说明大数据搜索的基本原理,包括布隆过滤器,分词和倒排表。如果大家真的想要利用这代码来实现真正的搜索功能,还差的太远。所有的内容来自于Splunk Conf2017。大家如果有兴趣可以去看网上的视频。

来源:51CTO博客

作者:刚是程序员

学校:誉天教育

QQ:3200569443

微信:13487088610

微信做搜索 对手不是百度 而是苹果

4月24日晚间,有媒体称微信事业群架构调整,成立搜索应用部门。微信随后做出回复,表示确有其事。

不少人被微信的野心吓了一跳,认为微信想吃掉百度的市场。微信也被市场的热烈反应吓了一跳,直到昨晚收到大规模媒体问询后,官方才临时拟定了回复。

但与其说微信对标的对手是百度,还不如说是苹果。微信搜索的关键词在于“应用”,这件事情改变的,首先是这个有8亿用户超级App的生态。

一位接近微信的人士对36氪表示,微信团队做搜索的首要目的是优化小程序和公众号内容的分发。毕竟开发了小程序平台之后,微信已经不仅能承载信息,更能广泛地承载应用服务。对比小程序的重点打击对象应用商店,搜索正是APP最主流的入口路径。

微信原本就一直有搜索团队,但在微信推出小程序后,对搜索的需求大大加强,需要承担更多功能,战略地位提升,进而独立出一个部门是早晚的事。

这个搜索应用部门做得如何,将强烈地影响微信展开多种服务时的用户感受。根据一封腾讯的内部邮件,该部门下设的四个产品中心,不仅限于小程序,还包括阅读推荐业务、AI技术研究及落地,微信数据平台建设及数据能力的应用。

具体如下:

1.搜索产品中心,在充分运用微信数据能力的基础上,打造微信搜索服务及精准阅读推荐服务,由基础产品部下搜索产品中心整体平移而来。

2.广告用户技术中心,为微信广告业务建设完备的用户体验评价系统及对比试验系统,负责小程序及搜索、搜索生态的建设工作,由基础产品部下广告用户技术中心整体平移而来。

3.模式识别中心,负责语音识别、图像处理、对话机器人及自然语言处理等方向的技术研究及落地等工作,由技术架构下模式识别中心整体平移而来。

4.数据中心,负责微信数据平台的建设,为各相关业务提供用户画像及数据分析、数据挖掘能力的支持,由技术架构部下数据中心整体平移而来。

至于微信搜索会怎么做,很大可能会相仿同样基于自身生态做应用分发的苹果:

如下图。当你在苹果手机的搜索栏中输入“吃饭”,会出现一系列APP store中与餐饮相关的应用。但在目前的微信版本中,输入“吃饭”,无法检索到任何小程序,但输入“订餐”,则呈现的都是基于关键词,而不是基于服务内容呈现出的搜索结果。这些都是微信搜索未来的提升空间。

苹果搜索界面

微信小程序搜索界面

微信小程序搜索界面

也有很多人关注,腾讯的紧密合作方搜狗搜索的地位,会被微信搜索动摇吗?回答这个问题,需要厘清搜狗搜索和微信搜索在腾讯生态内的分工,以及搜狗和腾讯的合作究竟在什么层面。

自2013年,腾讯战略入股搜狗,并将自身搜搜与搜狗整合,后者获得腾讯不少红利。据36氪了解,腾讯至今是搜狗最大的流量来源。但搜狗从腾讯获取的流量,主要来自于QQ浏览器,而非微信。搜狗与微信之间的合作模式,并不是承包微信内的搜索栏,而是获取公众号等微信生态体系的内容,以在内容上跟百度形成差异化。

搜狗搜索中的微信内容搜索界面

虽然2016年下半年,腾讯已经通过增持搜狗股份至45%,成为后者第一大股东。但搜狐仍通过掌握最大投票权,牢牢把握住搜狗。换言之,搜狗对于腾讯,不能被完全掌控。送出微信搜索跟在微信钱包里开个第三方入口,不是一个级别的资源倾斜,因此将微信搜索全盘托付给搜狗,可能性原本就不大。更何况,张小龙治下的微信,在腾讯内部是个享有较大独立权的存在。

但最终微信搜索是否会打到百度和搜狗的后院,取决于张小龙会不会做站外搜索。有媒体报道称,微信已经在小规模测试站外搜索功能。在微信搜索栏,已经可以搜到来自微信站外新闻网站的信息。

但不论站外搜索是否成型,微信显然会先扑在站内搜素。任何一家公司都会根据团队的精力,分出做事的步骤。这意味着,短时间内并不会与百度和搜狗短兵相接。

至于微信的站外搜索,能否在中国的搜索市场,成为百度和搜狗之外的第三极?还取决于微信这款超级APP的辐射能力究竟能放射到多大。这就好比讨论,微信小程序能否取代Native APP,成为人们获取信息和服务的垄断性大入口,是一个逻辑。

微信能否实现这个终极梦想,还不好说。但眼下在移动端时代,对于微信,连接信息与人的想象空间,显然没有连接服务与人那么性感,前者从PC时代就有人前赴后继地做了十几年,而后者还是一片蓝海。

这条路目前还没有一个玩家跑顺,对移动端反应略显迟缓的百度搜索,此前做的轻应用,不温不火。搜狗已经通过输入法入口,尝试着嫁接O2O服务,但虽然输入法虽然很高频,却并未显现出作为服务入口的强关联性。

微信搜索在连接服务与人上,具备了强大的场景优势,这个后来者,或许反而会在服务搜索上反超前辈。

微信上周刚刚因为“赞赏”这个功能,跟苹果进行了一次对决,一种看法是,苹果正对微信越来越警惕。谁都能看出,这超级App正越来越像一个系统。

谷歌将拆分搜索网站数据库

谷歌正准备将它存储的用于搜索的网站数据库索引拆分为移动版和桌面版。这种分拆将会促使出版商丰富和优化其移动网站。现在,绝大多数搜索活动都发生在智能手机上。谷歌已开始将移动版数据库索引的重要性放到了桌面版索引的前面。

谷歌已开始将移动版数据库索引作为重点

谷歌正准备将它存储的用于搜索的网站数据库索引拆分为移动版和桌面版。在这个过程中,将会出现几家欢喜几家愁的局面。一些出版商为了迎合智能手机用户,专门对其移动网站进行了简化处理。因此,相对来说,他们的移动网站将少了很多可能被谷歌搜索引擎搜索到的关键词,从而导致其移动网站在手机搜索结果中的排名出现下滑。

谷歌网站管理趋势分析师加里?伊耶斯(Gary Illyes)称,这一改变将会在未来几个月内发生。

谷歌经常会调整它的索引,但是此次调整幅度算是很大的。移动版索引将变为主要的索引,更新速度将会超过桌面版索引。这就是说,如果你进行相同的搜索活动,那么你在智能手机上看到的结果可能与你在台式电脑上看到的不一样。

搜索专业网站The SEM Post的创始人詹尼弗?斯莱格(Jennifer Slegg)和网络设计公司Overit的首席营销官莉萨?巴萝妮(Lisa Barone)也参加了谷歌进行主题演讲并宣布分拆索引消息的Pubcon大会。他们解释了这一改变将如何影响搜索结果。

谷歌希望智能手机用户的搜索体验不再差于台式电脑用户。通过优先发展移动版索引,这个搜索巨头将能够有效地促使网站所有者停止简化他们的移动网站。

谷歌搜索索引中一直就只有桌面版网站

直到现在,谷歌的搜索索引中也只列出了桌面版网站。Overit公司的一名员工称,“谷歌素来偏向于提交桌面版网站到其索引中。”

因此,当你在智能手机上搜索的时候,谷歌仍然会当你是在使用台式电脑,并返回搜索结果。

如果移动网站的内容与桌面版网站的内容是一样的,这倒没有什么问题。但是,在很多情况下,移动版网站与桌面版网站的内容并不一致。

一些网站所有者为了让其网站在移动设备中更快地载入,于是简化了其移动网站的内容,删除了一些网页和文字。

而谷歌并不希望网站所有者简化移动版网站。这就是谷歌推行这个变革的主要原因。

谷歌瞄准简化移动网站

在谷歌分拆其索引后,当你在智能手机上搜索的时候,谷歌在返回给你搜索结果的时候将不会再提到完整的桌面版网站。相反,它将会在单独的移动索引中列出简化的移动网站。由于简化的移动网站内容更少,因此它出现在搜索结果中的概率将小于桌面版网站。

但是,并非所有网站都简化了它们的移动网站,因此这些网站将不会受到影响。如果一个网站具有较为灵活的设计,例如它的移动版和桌面版内容一样,而且在载入内容的时候可以自动适应各种设备的屏幕大小,那么谷歌拆分索引的做法将不会对它们产生任何影响。

鉴于移动设备已成为用户进行搜索活动的优先选择,谷歌此举也算是合情合理的。而且,除了搜索活动外,用户的购物活动也在向移动设备转移。据相关统计结果显示,在2016年上半年,英国61%的在线零售额来自于移动设备。

巴萝妮称,“谷歌优先发展移动索引,是因为用户现在会优先使用移动设备,而不是台式电脑。移动设备已不再是第二屏,它们已成为了主要的设备。”

加拿大皇家银行(RBC)的分析师马克?马哈尼(Mark Mahaney)称,“我想,谷歌这样做的大背景是‘移动革命’已发生多年。消费者现在越来越习惯于使用智能手机来使用各种互联网服务和应用程序。市场营销人员正在努力追随消费者的脚步,谷歌通过分拆搜索索引等做法将能够让市场营销人员更容易锁定自己的目标消费群体。”

转载请保留本文地址:www.linuxprobe.com/Google-split-database.html编辑员:倪家兴,审核员:逄增宝

只有你想不到 没有你搜不到 超实用的谷歌搜索使用指南 | 技能打磨

关于Google搜索,我们应该掌握哪些基本常识?

关于Google搜索

Google搜索是由Google公司推出的一个互联网搜索引擎,它是互联网上最大、影响最广泛的搜索引擎。Google每日通过不同的服务,处理来自世界各地超过2亿次的查询。

除了搜索网页外,Google亦提供搜索图像、新闻组、新闻网页、视频的服务。2005年6月,Google已存储超过80亿的网页,1亿3千万张图片,以及超过1亿的新闻组消息 – 总计大概10亿4千万个项目。它也缓存了编入索引中的绝大多数网页的内容。

维基百科

如果你想一步掌握本文精髓

“孤独的阅读者”门下的所有课程都会为新船员配备相关课程的“课程大纲”,这份课程大纲里,有一部分是教新船员如何使用工具的,谷歌搜索方法也在其内。

摘自“孤独的阅读者”课程大纲(点开图片看大图)

当时刚加入孤阅的我,看到这个的第一想法是:

-为什么我的老师没教我这个?

第二想法是:

-这样的话什么东西是我搜索不到的?

第三想法是:

-互联网时代不会这个技能真是low爆了。

于是我把这张图收藏在手机相册里。

帮你总结

上图的例子已经能够充分展现Google的基本搜索命令了。总结一下(下文所有的指令符号都为英文半角状态下的符号)

文件格式“filetype”:

用于搜索特定文件格式。

如果搜索filetype:pdf metaphor,那么结果就是包含“metaphor”这个关键词的所有pdf文件。

标题搜索“intitle”:

这个指令到达的是页面title中包含关键词的页面。

该指令的搜索结果只能是title中的词跟所搜的关键词匹配。如果关键词只出现在页面可见的文字中,而没有出现在title中,那就不是该指令的搜索结果。

波浪号“ ~ ”:

这个指令意味着除了给出的关键词之外,还要搜索与波浪号~ 后面的关键词相关的结果。

使用这个指令时波浪号前有空格,后无空格并紧跟需要排除的词。

减号“ – ”:

减号指令是搜索不包含减号后面的词的页面。

使用这个指令时减号前有空格,后无空格并紧跟需要排除的词。

双引号“ “” ”:

双引号代表完全匹配搜索。

双引号内输入的关键词的内容和顺序完全决定了搜索结果。

回答问题:你怎么才能学会谷歌搜索技巧呢?

第一步:筛选关键词

谷歌搜索技巧,对应英语是how to use Google(用英文搜索比较好);

第二步:进入网站(先翻墙)

http://www.google.com/ncr;

第三步:搜索

输入”how to use Google”——完全匹配搜索;

或者Google ~tips——关键词为Google,搜索与Google使用tips相关的结果。

第四步:筛选需要的信息。

搜索方式一

搜索方式二

于是,我还知道了Google搜索其他的技巧。

补充版Google搜索技巧

基本技巧补充

空格 “ ”:

当我们在Google搜索的输入栏里输入时,所有的空格都代表加号” + “,那么搜索结果跟每一个有意义的关键词都相关。

如:

搜索how to use Google,在这种情况下,搜索的结果是how+to+use+Google(这过程中,Google可能会自动忽略无实际意义的词汇“to”),那么出现的结果里,会有Google,有how,也有use,每个关键词都可以单独存在或者随意组合。

星号“ * ”:

星号是常用的通配符,搜索时用星号” * “来代替任意字符。

如:

搜索 “the power of *”,搜索的结果有: the power of habit, the power of open, the power of positive thinking等等。

高级技巧补充

站内搜索“site”:

在指定网站中搜索与关键词相关的网页。

比如:

输入”the power of art”site:www.youtube.com,搜索结果是让Google返回指定网站www.youtube.com中含有”the power of art”的相关网页

相关搜索“link”:

该指令返回的结果是与某个网站有关联的网页。

比如搜索link:www.amazon.com,意思是列出链接到网站www.amazon.com的网页清单。

除此之外,还有related, inurl, allintext等等指令等待各位自己探索。

| | |

2年后Apple App Store搜索 进化还是革命

当有人需要找到应用时,他们如何寻找?最可能的答案是他们会搜索它。 根据传感器塔,56%的游戏应用程序安装是由搜索驱动的。而对于非游戏应用程序,这个数字还会增加13%到69%的安装量。

这有助于将App Store搜索广告转变为广告商和平台持有者的大型企业。 伯恩斯坦分析师Toni Sacconaghi预测,苹果公司的搜索广告业务可能会在2020年产生20亿美元的收入,此前有消息称,仅在今年就已经产生了5亿美元。

但是什么推动了App Store广告的增长?它对App Store搜索广告的未来日益普及是什么?

在大多数情况下,我们认为,短期内会看到空间的实际增长,这是由当前服务的温和但必要的迭代所驱动的。这将有助于营销人员通过搜索推动价值,减少他们对其他平台和成本的依赖。但随着搜索本身的性质发生变化,我们相信个人在商店中搜索应用程序的方式可能会发生变化,从而奖励那些认为比同行更先行的App Store搜索营销商。

App Store搜索广告的诞生

为了能够理解付费搜索的未来,重要的是要知道为什么(以及如何)进化。2016年将移动搜索广告引入App Store生态系统的原因有很多。

首先,由于商店中列出了近200万个应用程序,因此已经存在普遍存在的可发现性问题。这使得公司难以在商店中发现他们的应用程序,并导致整个行业的广告费用膨胀。

其次,App Store Optimization(ASO)作为一个专门的独立学科的出现和发展向营销人员展示了通过商店发现的价值。

第三,苹果公司作为其商店看门人的角色受到移动广告公司的压力,这些广告公司从他们的平台或商店中获取大量流量。例如,AdAge报告称,2017年初57%的移动广告流量是由Facebook和谷歌推动的。这意味着苹果对其应用的分发控制较少,尽管它正在努力做到这一点。

因此,Apple于2016年10月推出了其首个App Store搜索产品,该广告客户有机会在App Store搜索页面的顶部放置他们的应用程序,等待竞标过程。广告客户谈判时遇到了一些问题。

它仅在一个地区推出,仅在美国App Store运营,广告创意选项也受到限制,因为媒体仅来自元数据。正如AdWeek 报道的那样,该公司对“征服”的一些偏好也受到了批评,这使得预算较低的广告商能够使用主要品牌作为关键词将其跳入搜索列表中。

但是,这些好处超过了这些限制。来自Arc Intermedia的一篇 关于推出后期的博客文章对苹果公司的产品赞不绝口,无论是设置广告系列的容易程度如何,其CPI成本都低至88美分,同时仍在提供强的50%的转化率。

这一成功帮助Apple进一步推进并扩展了其广告产品的推出。2017年底,它将其主要搜索广告产品重新命名为“搜索广告高级版”,并推出了一种易于设置的低成本替代方案,称为“搜索广告基本”,以帮助小型企业。它还添加了功能,例如广告系列重复和广告系列管理选项,以消除与商店广告流程相同的摩擦。

此外,该公司开始在更多地区推出,首先扩展到英语国家(加拿大,英国,新西兰和澳大利亚),然后扩展到法国,日本,意大利,墨西哥,德国等进一步的主要市场。韩国

进化……

这种温和的演变有助于推动Apple App Store搜索广告业务的显着增长。

例如,扩展App Store搜索广告可用的区域数量可以带来重大胜利。Redbox Mobile在德国的付费搜索广告业务取得了非凡的增长。在短短六周内,我们的德国业务与我们相对历史悠久的美国业务的销售量相近。

因此,我们对搜索广告未来的首次预测必须是,苹果将尽可能多地获得快速获胜,从而获得良好的服务增长。

我们预计,地理扩张和次要产品改进将最初推动格式向前发展,App Store搜索广告的成本相对较低,吸引广告商寻求降低AppsFlyer确定的增加安装价格和支出的趋势。

然而,我们还预测,苹果可以通过发展其搜索机制和其活动报告的质量来推动其产品的增长,从而进一步推动其产品的增长。

就前者而言,我们预计Apple将超越关键词方法,以加深向相应用户提供相关广告的尝试。与Snap和Pinterest等公司的Mooted集成可以扩展App Store搜索广告系列的覆盖范围,并通过在第三方数据的帮助下改进其方法来改进Apple的内部搜索机制。

就后者而言,不断发展的竞选报道,我们预计苹果将继续朝着正确的方向迈出这一步。虽然可以通过一些第三方归因提供商评估App Store搜索广告系列的质量,但我们希望Apple改进其第一方报告流程,以帮助使用其基本产品的小型企业了解它们如何影响应用内应用指标等作为注册或购买。

……还是革命?

但是,虽然我们认为苹果公司将采用付费搜索广告的方式采取“稳定前进”的方式,但我们可以看到一种可能出现严重变化的潜在领域:语音搜索。

从iOS 12开始,Siri(Apple的AI语音激活助手)和App Store Search之间的集成程度更高。此外,亚马逊和谷歌的声控扬声器的销售量激增,使消费者接受语音搜索作为混合物的一部分。

因此,可以合理地预测Apple可以开始研究通过语音创建搜索广告的选项。许多事情必须先发生才能发生。Apple必须改进其关键字搜索方法,以适应自然语言搜索,而不是文本输入。

在看到它的需求之后,它可能还必须创建自己的智能扬声器单元。虽然围绕语音搜索有很多炒作,但苹果公司决定忽视VR的炒作,这表明该公司将花时间采取行动。但是,如果语音搜索确实成为用户搜索应用程序和其他相关项目的主要方法,那么期望Apple会注意到这一点是合理的。

由于苹果公司通过将Siri置于其下一代Airpod耳机中,在这方面做出了谨慎的行动,该公司可以很好地永久改变搜索游戏。

结论

Apple的App Store搜索广告产品在短短两年内就证明了它对广告商的价值。通过响应广告商的需求,创建广告服务以满足这种需求并轻轻地迭代它,Apple已经设法在用户主导的,尊重的广告方法和业务需求之间取得平衡。

正是在这些基础上,Apple将发展其付费搜索广告产品。期望Apple改进搜索语义,广告系列分析工具并扩大其地理覆盖范围以推动增长,而不是重新发明轮子。

但是,广告客户还应该关注语音搜索以及将来可能在应用商店中扮演的角色。如果消费者的习惯发生变化并且商业需求随之而来,苹果公司可能会进一步发展其搜索 – 这可能会带来革命性的新方式来打击消费者

历史上被搜索最多的艺术类院校排名 简直匪夷所思啊

嚯啦,按照昨天说的,以下是被历史上搜索次数最多、人气最高的艺术类院校排名。

依然请注意,被搜索的量级越多,人气越高,并非等于学校越好。最多说明一点,该校特别「事儿逼」。

还是再说三点,希望大家注意:

壹。若是院校人气极高,填报志愿或许竞争难度等比放大,容易翻车。更准确的排名点击参考,当然,个性的你也可以逆向思维,反其道而行之,没准有意外收获。

贰。昨天榜单上的院校中,小编发现,有部分大家关心且耳熟能详的院校,其实是野鸡大学,文凭不被国家、社会承认。在此可以点击链接访问,以确保你心目中的院校是正规合法,避免临了耽误填报计划。

叁。昨晚不少人问浙传,实际上该校大部分时候,是不被归结于艺术类的。考虑到可能会有人拿同样模棱两可的中传怼小编,小编很怕怕啊。于是乎,按照浙传的人气,在相应的位次做了添补。如果还有别的院校想要咨询,可以在底部留言,小编查询到了就会告诉你。

排名

学校名称

地区

人气值

1

中国传媒大学

北京

6051309

补位

浙江传媒学院

浙江

3238398

2

中国传媒大学南广学院

江苏

1722823

3

首都师范大学科德学院

北京

1476396

4

北京电影学院

北京

1015936

5

南京艺术学院

江苏

845205

6

河北传媒学院

河北

819947

7

四川传媒学院

四川

800293

8

广州美术学院

广东

775527

9

重庆艺术工程职业学院

重庆

738140

10

大连艺术学院

辽宁

719177

11

上海音乐学院

上海

695511

12

上海戏剧学院

上海

663538

13

四川音乐学院

四川

621166

14

山东艺术学院

山东

523857

15

中央音乐学院

北京

426658

16

中央美术学院

北京

421870

17

中央戏剧学院

北京

407816

18

河北美术学院

河北

400325

19

四川美术学院

重庆

366126

20

四川文化艺术学院

四川

362774

21

广西艺术学院

广西

351526

22

中国美术学院

浙江

349943

23

天津美术学院

天津

340089

24

武汉传媒学院

湖北

335029

25

沈阳音乐学院

辽宁

331994

26

吉林动画学院

吉林

322763

27

上海视觉艺术学院

上海

317819

28

山东工艺美术学院

山东

310205

29

西安美术学院

陕西

301110

30

吉林艺术学院

吉林

295316

31

鲁迅美术学院

辽宁

293524

32

云南艺术学院

云南

292252

33

星海音乐学院

广东

275026

34

辽宁传媒学院

辽宁

272771

35

湖北美术学院

湖北

271453

36

上海工艺美术职业学院

上海

236798

37

新疆艺术学院

新疆

219196

38

天津音乐学院

天津

208961

39

西安音乐学院

陕西

208120

40

北京舞蹈学院

北京

192995

41

成都艺术职业学院

四川

187869

42

广东文艺职业学院

广东

166285

43

武汉音乐学院

湖北

161740

44

中国音乐学院

北京

156471

45

中国戏曲学院

北京

153359

46

无锡工艺职业技术学院

江苏

152575

47

苏州工艺美术职业技术学院

江苏

145710

48

珠海艺术职业学院

广东

144489

49

解放军艺术学院

北京

143480

50

北京戏曲艺术职业学院

北京

132103

51

云南艺术学院文华学院

云南

131510

52

江西服装学院

江西

125057

53

浙江横店影视职业学院

浙江

123809

54

天津艺术职业学院

天津

110291

55

北京电影学院现代创意媒体学院

山东

105794

56

北京舞蹈学院继续教育学院

北京

104544

57

香港演艺学院

香港

102599

58

四川国际标榜职业学院

四川

102360

59

湖南艺术职业学院

湖南

99353

60

广东亚视演艺职业学院

广东

97705

61

河北艺术职业学院

河北

94105

62

上海电影艺术职业学院

上海

89011

63

湖南工艺美术职业学院

湖南

87384

64

天津广播影视职业学院

天津

86057

65

天津工艺美术职业学院

天津

84714

66

四川艺术职业学院

四川

84120

67

江南影视艺术职业学院

江苏

83846

68

江西陶瓷工艺美术职业技术学院

江西

76479

69

山西戏剧职业学院

山西

74414

70

福建艺术职业学院

福建

73429

71

北京现代音乐研修学院

北京

72572

72

天津商业大学宝德学院莱佛士设计学院

天津

72016

73

江西艺术职业学院

江西

70711

74

安徽广播影视职业技术学院

安徽

69590

75

河南艺术职业学院

河南

68952

76

南京视觉艺术职业学院

江苏

68847

77

浙江艺术职业学院

浙江

67424

78

山西艺术职业学院

山西

64008

79

湖北艺术职业学院

湖北

63173

80

厦门演艺职业学院

福建

62722

81

辽宁广告职业学院

辽宁

60554

82

北海艺术设计学院

广西

57297

83

江汉艺术职业学院

湖北

56108

84

华南师范大学凤凰国际学院

广东

55592

85

黑龙江艺术职业学院

黑龙江

54461

86

安徽艺术职业学院

安徽

52122

87

广东舞蹈戏剧职业学院

广东

48005

88

昆明艺术职业学院

云南

44888

89

云南文化艺术职业学院

云南

44690

90

泉州工艺美术职业学院

福建

41953

91

四川电影电视职业学院

四川

41297

92

北京电影学院继续教育学院

北京

35838

93

黑龙江三江美术职业学院

黑龙江

35412

94

中法艾蒙时尚学院

北京

34282

95

广西演艺职业学院

广西

33996

96

陕西艺术职业学院

陕西

31163

97

山东艺术设计职业学院

山东

27571

98

科尔沁艺术职业学院

内蒙古

27341

99

首都师范大学科德学院高教自考

北京

21004

100

内蒙古美术职业学院

内蒙古

19573

编 导 艺 考 ≡

本微信为公益服务|版权归原作者所有

微信号:biandaozixun

WOKO!艺考网|www.woko.cc

微软将为Win10搜索框带来智能搜索体验 基于Microsoft Graph技术

IT之家9月26日消息 利用Microsoft Graph的强大功能,微软今天宣布将为企业客户提供新的智能搜索功能和体验。

除了将这种改进的搜索体验带入Office 365应用程序和服务之外,微软也将其带入Windows 10任务栏的搜索框。用户可以在本地设备和Office 365上搜索应用程序、文档、电子邮件、公司资源或者人员。

企业用户现在可以直接使用Windows找到他们的同事,例如,他们可以通过名字搜索,以快速找到他们最常联系的人。另一个例子就是用户可以直接搜索位于OneDrive或者SharePoint中的文档,而不局限于本地。

微软还将为邮件搜索提供自然语言查询功能,例如,用户可以使用搜索命令“带有附件的来自萨提亚的电子邮件”来查询具有附件的来自特定用户的电子邮件。

这一新的功能和体验将在未来几个月内提供给企业客户。