本文介绍了T分布随机近邻嵌入算法,即一种十分强大的高维数据降维方法。我们将先简介该算法的基本概念与直观性理解,再从详细分析与实现该降维方法,最后我们会介绍使用该算法执行可视化的结果。
T分布随机近邻嵌入(T-DistributionStochasticNeighbourEmbedding)是一种用于降维的机器学习方法,它能帮我们识别相关联的模式。t-SNE主要的优势就是保持局部结构的能力。这意味着高维数据空间中距离相近的点投影到低维中仍然相近。t-SNE同样能生成漂亮的可视化。
当构建一个预测模型时,第一步一般都需要理解数据。虽然搜索原始数据并计算一些基本的统计学数字特征有助于理解它,但没有什么是可以和图表可视化展示更为直观的。然而将高维数据拟合到一张简单的图表(降维)通常是非常困难的,这就正是t-SNE发挥作用的地方。
在本文中,我们将探讨t-SNE的原理,以及t-SNE将如何有助于我们可视化数据。
t-SNE算法概念
这篇文章主要是介绍如何使用t-SNE进行可视化。虽然我们可以跳过这一章节而生成出漂亮的可视化,但我们还是需要讨论t-SNE算法的基本原理。
t-SNE算法对每个数据点近邻的分布进行建模,其中近邻是指相互靠近数据点的集合。在原始高维空间中,我们将高维空间建模为高斯分布,而在二维输出空间中,我们可以将其建模为t分布。该过程的目标是找到将高维空间映射到二维空间的变换,并且最小化所有点在这两个分布之间的差距。与高斯分布相比t分布有较长的尾部,这有助于数据点在二维空间中更均匀地分布。
控制拟合的主要参数为困惑度(perplexity)。困惑度大致等价于在匹配每个点的原始和拟合分布时考虑的最近邻数,较低的困惑度意味着我们在匹配原分布并拟合每一个数据点到目标分布时只考虑最近的几个最近邻,而较高的困惑度意味着拥有较大的「全局观」。
因为分布是基于距离的,所以所有的数据必须是数值型。我们应该将类别变量通过二值编码或相似的方法转化为数值型变量,并且归一化数据也是也十分有效,因为归一化数据后就不会出现变量的取值范围相差过大。
T分布随机近邻嵌入算法(t-SNE)
JakeHoare的博客并没有详细解释t-SNE的具体原理和推导过程,因此下面我们将基于GeoffreyHinton在2008年提出的论文和liamschoneveld的推导与实现详细介绍t-SNE算法。如果读者对这一章节不感兴趣,也可以直接阅读下一章节JakeHoare在实践中使用t-SNE进行数据可视化。
liamschoneveld推导与实现地址:https://nlml.github.io/in-raw-numpy/in-raw-numpy-t-sne/
论文地址:http://www.jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf
因为t-SNE是基于随机近邻嵌入而实现的,所以首先我们需要理解随机近邻嵌入算法。
随机近邻嵌入(SNE)
假设我们有数据集X,它共有N个数据点。每一个数据点x_i的维度为D,我们希望降低为d维。在一般用于可视化的条件下,d的取值为2,即在平面上表示出所有数据。
SNE通过将数据点间的欧几里德距离转化为条件概率而表征相似性(下文用p_j|i表示):
如果以数据点在x_i为中心的高斯分布所占的概率密度为标准选择近邻,那么p_j|i就代表x_i将选择x_j作为它的近邻。对于相近的数据点,条件概率p_j|i是相对较高的,然而对于分离的数据点,p_j|i几乎是无穷小量(若高斯分布的方差σ_i选择合理)。
其中σ_i是以数据点x_i为均值的高斯分布标准差,决定σ_i值的方法将在本章后一部分讨论。因为我们只对成对相似性的建模感兴趣,所以可以令p_i|i的值为零。
现在引入矩阵Y,Y是N*2阶矩阵,即输入矩阵X的2维表征。基于矩阵Y,我们可以构建一个分布q,其形式与p类似。
对于高维数据点x_i和x_j在低维空间中的映射点y_i和y_j,计算一个相似的条件概率q_j|i是可以实现的。我们将计算条件概率q_i|j中用到的高斯分布的方差设置为1/2。因此我们可以对映射的低维数据点y_j和y_i之间的相似度进行建模:
我们的总体目标是选择Y中的一个数据点,然后其令条件概率分布q近似于p。这一步可以通过最小化两个分布之间的KL散度(损失函数)而实现,这一过程可以定义为:
因为我们希望能最小化该损失函数,所以我们可以使用梯度下降进行迭代更新,我们可能对如何迭代感兴趣,但我们会在后文讨论与实现。
使用Numpy构建欧几里德距离矩阵
计算p_i|j和q_i|j的公式都存在负的欧几里德距离平方,即-||x_i-x_j||^2,下面可以使用代码实现这一部分:
defneg_squared_euc_dists(X):
"""Computematrixcontainingnegativesquaredeuclidean
distanceforallpairsofpointsininputmatrixX
#Arguments:
X:matrixofsizeNxD
#Returns:
NxNmatrixD,withentryD_ij=negativesquared
euclideandistancebetweenrowsX_iandX_j
"""
#Math?Seehttps://stackoverflow.com/questions/37009647
sum_X=np.sum(np.square(X),1)
D=np.add(np.add(-2*np.dot(X,X.T),sum_X).T,sum_X)
return-D
为了更高的计算效率,该函数使用矩阵运算的方式定义,该函数将返回一个N阶方阵,其中第i行第j列个元素为输入点x_i和x_j之间的负欧几里德距离平方。
使用过神经网络的读者可能熟悉exp(?)/∑exp(?)这样的表达形式,它是一种softmax函数,所以我们定义一个softmax函数:
defsoftmax(X,diag_zero=True):
"""TakesoftmaxofeachrowofmatrixX."""
#Subtractmaxfornumericalstability
e_x=np.exp(X-np.max(X,axis=1).reshape([-1,1]))
#Weusuallywantdiagonalprobailitiestobe0.
ifdiag_zero:
np.fill_diagonal(e_x,0.)
#Addatinyconstantforstabilityoflogwetakelater
e_x=e_x+1e-8#numericalstability
returne_x/e_x.sum(axis=1).reshape([-1,1])
注意我们需要考虑p_i|i=0这个条件,所以我们可以替换指数负距离矩阵的对角元素为0,即使用np.fill_diagonal(e_x,0.)方法将e_x的对角线填充为0。
将这两个函数放在一起后,我们能构建一个函数给出矩阵p,且元素p(i,j)为上式定义的p_i|j:
defcalc_prob_matrix(distances,sigmas=None):
"""Convertadistancesmatrixtoamatrixofprobabilities."""
ifsigmasisnotNone:
two_sig_sq=2.*np.square(sigmas.reshape((-1,1)))
returnsoftmax(distances/two_sig_sq)
else:
returnsoftmax(distances)
困惑度
在上面的代码段中,Sigmas参数必须是长度为N的向量,且包含了每一个σ_i的值,那么我们如何取得这些σ_i呢?这就是困惑度(perplexity)在SNE中的作用。条件概率矩阵p任意行的困惑度可以定义为:
其中H(p_i)为p_i的香农熵,即表达式如下:
在SNE和t-SNE中,困惑度是我们设置的参数(通常为5到50间)。我们可以为矩阵p的每行设置一个σ_i,而该行的困惑度就等于我们设置的这个参数。直观来说,如果概率分布的熵较大,那么其分布的形状就相对平坦,该分布中每个元素的概率就更相近一些。
困惑度随着熵增而变大,因此如果我们希望有更高的困惑度,那么所有的p_j|i(对于给定的i)就会彼此更相近一些。换而言之,如果我们希望概率分布p_i更加平坦,那么我们就可以增大σ_i。我们配置的σ_i越大,概率分布中所有元素的出现概率就越接近于1/N。实际上增大σ_i会增加每个点的近邻数,这就是为什么我们常将困惑度参数大致等同于所需要的近邻数量。
搜索σ_i
为了确保矩阵p每一行的困惑度perp(p_i)就等于我们所希望的值,我们可以简单地执行一个二元搜索以确定σ_i能得到我们所希望的困惑度。这一搜索十分简单,因为困惑度perp(p_i)是随σ_i增加而递增的函数,下面是基本的二元搜索函数:
defbinary_search(eval_fn,target,tol=1e-10,max_iter=10000,
lower=1e-20,upper=1000.):
"""performabinarysearchoverinputvaluestoeval_fn.
#Arguments
eval_fn:Functionthatweareoptimisingover.
target:Targetvaluewewantthefunctiontooutput.
tol:Float,onceourguessisthisclosetotarget,stop.
max_iter:Integer,maximumnum.iterationstosearchfor.
lower:Float,lowerboundofsearchrange.
upper:Float,upperboundofsearchrange.
#Returns:
Float,bestinputvaluetofunctionfoundduringsearch.
"""
foriinrange(max_iter):
guess=(lower+upper)/2.
val=eval_fn(guess)
ifval>target:
upper=guess
else:
lower=guess
ifnp.abs(val-target)<=tol:
break
returnguess
为了找到期望的σ_i,我们需要将eval_fn传递到binary_search函数,并且将σ_i作为它的参数而返回p_i的困惑度。
以下的find_optimal_sigmas函数确实是这样做的以搜索所有的σ_i,该函数需要采用负欧几里德距离矩阵和目标困惑度作为输入。距离矩阵的每一行对所有可能的σ_i都会执行一个二元搜索以找到能产生目标困惑度的最优σ。该函数最后将返回包含所有最优σ_i的Numpy向量。
defcalc_perplexity(prob_matrix):
"""Calculatetheperplexityofeachrow
ofamatrixofprobabilities."""
entropy=-np.sum(prob_matrix*np.log2(prob_matrix),1)
perplexity=2**entropy
returnperplexity
defperplexity(distances,sigmas):
"""Wrapperfunctionforquickcalculationof
perplexityoveradistancematrix."""
returncalc_perplexity(calc_prob_matrix(distances,sigmas))
deffind_optimal_sigmas(distances,target_perplexity):
"""Foreachrowofdistancesmatrix,findsigmathatresults
intargetperplexityforthatrole."""
sigmas=[]
#Foreachrowofthematrix(eachpointinourdataset)
foriinrange(distances.shape[0]):
#Makefnthatreturnsperplexityofthisrowgivensigma
eval_fn=lambdasigma:
perplexity(distances[i:i+1,:],np.array(sigma))
#Binarysearchoversigmastoachievetargetperplexity
correct_sigma=binary_search(eval_fn,target_perplexity)
#Appendtheresultingsigmatoouroutputarray
sigmas.append(correct_sigma)
returnnp.array(sigmas)
对称SNE
现在估计SNE的所有条件都已经声明了,我们能通过降低成本C对Y的梯度而收敛到一个良好的二维表征Y。因为SNE的梯度实现起来比较难,所以我们可以使用对称SNE,对称SNE是t-SNE论文中一种替代方法。
在对称SNE中,我们最小化p_ij和q_ij的联合概率分布与p_i|j和q_i|j的条件概率之间的KL散度,我们定义的联合概率分布q_ij为:
该表达式就如同我们前面定义的softmax函数,只不过分母中的求和是对整个矩阵进行的,而不是当前的行。为了避免涉及到x点的异常值,我们不是令p_ij服从相似的分布,而是简单地令p_ij=(p_i|j+p_j|i)/2N。
我们可以简单地编写这些联合概率分布q和p:
defq_joint(Y):
"""Givenlow-dimensionalrepresentationsY,compute
matrixofjointprobabilitieswithentriesq_ij."""
#Getthedistancesfromeverypointtoeveryother
distances=neg_squared_euc_dists(Y)
#Taketheelementwiseexponent
exp_distances=np.exp(distances)
#Filldiagonalwithzeroessoq_ii=0
np.fill_diagonal(exp_distances,0.)
#Dividebythesumoftheentireexponentiatedmatrix
returnexp_distances/np.sum(exp_distances),None
defp_conditional_to_joint(p):
"""Givenconditionalprobabilitiesmatrixp,return
approximationofjointdistributionprobabilities."""
return(p+p.T)/(2.*p.shape[0])
同样可以定义p_joint函数输入数据矩阵X并返回联合概率p的矩阵,此外我们还能一同估计要求的σ_i和条件概率矩阵:
defp_joint(X,target_perplexity):
"""GivenadatamatrixX,givesjointprobabilitiesmatrix.
#Arguments
X:Inputdatamatrix.
#Returns:
p:Matrixwithentriesp_ij=jointprobabilities.
"""
#Getthenegativeeuclidiandistancesmatrixforourdata
distances=neg_squared_euc_dists(X)
#Findoptimalsigmaforeachrowofthisdistancesmatrix
sigmas=find_optimal_sigmas(distances,target_perplexity)
#Calculatetheprobabilitiesbasedontheseoptimalsigmas
p_conditional=calc_prob_matrix(distances,sigmas)
#Gofromconditionaltojointprobabilitiesmatrix
p=p_conditional_to_joint(p_conditional)
returnp
所以现在已经定义了联合概率分布p与q,若我们计算了这两个联合分布,那么我们能使用以下梯度更新低维表征Y的第i行:
在python中,我们能使用以下函数估计梯度,即给定联合概率矩阵p、Q和当前低维表征Y估计梯度:
defsymmetric_sne_grad(p,Q,Y,_):
"""EstimatethegradientofthecostwithrespecttoY"""
pq_diff=p-Q#NxNmatrix
pq_expanded=np.expand_dims(pq_diff,2)#NxNx1
y_diffs=np.expand_dims(Y,1)-np.expand_dims(Y,0)#NxNx2
grad=4.*(pq_expanded*y_diffs).sum(1)#Nx2
太厉害!腾讯又发钱了,万人瓜分40亿,人均39万
腾讯又发钱了,万人瓜分40亿,A股有些股权激励对象要哭了
作者:证券时报网
一种幸福叫腾讯的员工。
腾讯控股10日公告称,发行1787万新股奖励10800名员工。按照7月10日腾讯控股收盘价271.6港元计算,这笔奖励价值48.5亿港元(42.2亿元人民币),平均每人超过39万元。
注意,是“奖励”,不是“激励”,不用员工出钱购买,由腾讯直接送给员工。
而在2016年11月11日,腾讯18周年纪念日当天,腾讯向全体员工每人送上300股腾讯股票,作为公司成立18周年的特别纪念,按今天的收盘价计算,这300股价值约8.3万元。
相比于腾讯员工面对股权奖励时满满的幸福感,A股多家公司股权激励方案被迫终止,员工空欢喜一场不说,有的还惨遭被套。
A股的股权激励方案主要有两种:
1、股票期权
比如现在股价是10元,公司发行一批股票替激励对象留着,如果以后股价涨到15元,那么激励对象可以按10元买入再15元卖出;如果股价跌到9元,那么激励对象就不买了,到时公司把这些股份注销就行了。可见,这种是不见兔子不撒鹰的策略,对激励对象来说,不会产生任何损失。
2、限制性股票
比如现在股价10元,公司向激励对象发行一批股票,价格是6元(规定不能低于5折),既然这么便宜,当然就不是马上能卖的,只有当激励对象完成特定目标(如利润增幅达到特定比例),才可以解锁卖出。一般来说,锁定期为三年,被授予对象将根据行权条件分三期按规定比例行权。时报君的朋友参加公司的股权激励计划,三期黄了两期,都是因为净利润不达标。
这两种方案的特点也就意味着,终止股权激励的公司中采取股票期权方案的较多,毕竟没有实质性损失,顶多是空欢喜一场。限制性股票方案因为当初投入了真金白银,如果终止限制性股票激励还要公司花钱回购注销,愿意这样做的企业不多,也是像咱大多数散户一样,死扛着等解套,当然一般折扣高,有安全垫,亏损的可能性不高。
据不完全统计,今年以来,共有14家公司停止实施股权激励方案,终止原因主要包括股价倒挂和业绩不达标。因行权价和转让价出现倒挂被迫终止的情况更多一些,如果购买价高于现行股价,对于激励对象来说,不如直接到二级市场买股票,认购动力明显不足。本来公司推行股权激励的目的就是捆绑核心团队,股价倒挂还强推下去难达激励目的不说,还容易造成员工被套影响士气。
浪潮信息2015年以20.55元的价格向50名激励对象授予股票期权的方式实施股权激励,当时股价高达40多元,看似安全垫很高,然而到今年3月份的时候,股价已跌破20元,公司最终在4月底宣布因业绩不达标终止实施股权激励方案,之后股价最低回落至16.01元。
众信旅游近日宣布,鉴于公司2016年限制性股票激励计划推出后,公司股票价格在二级市场发生了较大的变动,原激励计划较难达到预期的激励效果,经审慎论证后公司决定终止实施2016年限制性股票激励计划,并回购注销已获授但未解锁的全部限制性股票。
聚龙股份7月公告称将终止股权激励方案,原因系资本市场政策发生重大变化,且激励对象自有资金有限,未在规定期限内未完成缴款认购。
德尔未来也宣布终止推出近一年的限制性股票激励计划,公司解释称,A股市场持续低迷导致公司股票在二级市场中的价格出现大幅度下跌,继续实施不利于充分调动公司高层管理人员及核心骨干员工的积极性。
东方通信由于业绩未达标导致激励方案中途折戟,由于未同时满足第三个行权期的相应业绩考核指标,其首次授予股票期权对应的第三个行权期的股票期权和计划授予的剩余股票期权全部失效。
思维列控3月份推出股权激励方案,5月26日即公告终止。公司称,鉴于当前市场环境及公司股价发生较大变化,公司今年3月份推出的限制性股票激励计划继续实施的条件尚未成熟,若继续推进将很难达到预期的激励目的,因此决定终止实施该激励计划。
股权激励向来被喻为绑住高管的“金手铐”,不过在接连下跌的股市中,这一副“金手铐”已经成色暗淡。但换一个角度来看,行权价低于或相当于现价,将激励董监高更努力经营公司,维护市值,而一旦市场转暖,这些公司也具有更强的反弹力。此外,大盘尤其是中小创板块调整到现在的位置,对很多上市公司来说,是一个实施股权激励的良好时点,安全垫会更高,据时报君统计,仅7月份以来,已有20家公司推出了股权激励的预案。
(来源:证券时报)
(编辑:梁宇芳)
第一赢销网.上一篇:“功能饮料大王”红牛陷商标权之争下一篇:贾跃亭:悲情大佬TAG:腾讯信息转载自网络,更多相关信息请点击:整合营销培训http:///wlyx/zhyx/
相关文章
-
黑客叫卖数千个被盗Disney+账户 每个售价3美元
其他媒体如BBC也报道称,在暗网上,黑客窃取的一些Disney+帐户正在被叫卖。,Disney+目前在包括美国和加拿大在内的几个选定国家推出。,迪士尼的股价周一在纽约证券交易所上涨了超过2%,较过去52周最高点下跌不到3美元。
2024-03-22 09:18 -
为降网络压力,迪士尼降低Disney+欧洲地区视频码率
IT之家3月22日消息据外媒报道,由于新冠病毒疫情影响,迪士尼宣布,将于3月24日开始,暂时减少其流媒体平台Disney+的带宽使用,并降低视频质量。,此外,外媒称,应法国政府要求,迪士尼将推迟至4月7日在法国上线Disney+,比原定计划晚两周。,”Disney+是美国即将推出的在线流媒体OTT服务视频点播平台,由华特迪士尼公司的华特迪士尼直接面向消费者和国际分部掌管和运营。
2024-03-22 08:25 -
在线观众人数激增 迪士尼将在欧洲推出流媒体服务
新浪科技讯北京时间3月24日晚间消息,据外媒报道,由于新冠病毒疫情使数百万人宅在家中,流媒体和电视观看量出现激增,迪士尼周二开始在英国和西欧推出其流媒体服务Disney+,以挑战Netflix在该领域的地位。,迪士尼将在英国、爱尔兰、西班牙、意大利、德国、奥地利和瑞士等国推出Disney+。,该公司计划将推出在线节目,包括热播的《星球大战》真人秀、《曼达洛人》以及《冰雪奇缘2》等。
2024-03-22 08:24 -
Netflix砸1亿美元救助金,底气从何来?
文/麦柯编辑/许伟来源:锌刻度(ID:znkedu)全球疫情形势严峻,对电影业冲击巨大,好莱坞、宝莱坞停摆了。,光是在3月,Netflix就陆续上线了《恶魔城第三季》《斯宾塞的机密任务》《王国第二季》《饥饿站台》等剧集。,市场研究公司Omdia认为,迪士尼流媒体服务及时上线,恰逢其时,预计到今年底,“Disney+”在西欧地区能够获得500万付费用户,直接贡献1.6亿美元的营收。
2024-03-22 08:15 -
Netflix会员数净增长1577万 “负重”的 Disney+更急了
希望接下来大家都能慢慢走出家门,第二季度的用户增长速度应该会下降,预估750万。,值得一提的是,正是在2018年年底,迪士尼正式宣布将业务扩展到流媒体板块,一年之后Disney+上线。,在疫情期间,唯一能够让迪士尼感到欣慰的消息大概只剩下其流媒体平台Disney+了。
2024-03-22 08:09 -
好音质低延迟 vivo TWS Neo真无线耳机即将发布
2020年5月22日,vivo智能终端微博发布一段视频,虽然时长仅有短短10秒,但信息量颇大:一款命名为vivoTWSNeo的真无线耳机即将发布,并且主打好音质+低延迟。,从2018年开始,TWS真无线耳机市场就进入了百花齐放的时代。,从视频中我们可以看出,vivoTWSNeo真无线耳机整体采用圆润的流线造型,时尚且科技感十足,蓝色和白色双配色可选,可以满足不同用户对于外观的需求。
2024-03-22 07:55 -
迪士尼宣布重组旗下娱乐业务 流媒体业务为发展重点
DoNews10月13日消息(记者翟继茹)据外媒报道,迪士尼宣布将把旗下媒体业务统一为一个部门,以便更好践行直接面向消费者的战略。,报道称,这一新部门将负责内容分发、广告销售和Disney+等业务。,数据显示,因《花木兰》将在Disney+上映,从而使某周末下载量达到了89万次,增加68%。
2024-03-21 21:34 -
迪士尼对旗下串流平台Disney+播放的《小飞侠》《森林王子》等6部经典动画加注免责声明
DoNews10月20日消息(记者程梦玲)美国娱乐影视公司迪士尼(Disney)已对旗下串流平台Disney+播放的《小飞侠》(1953年)、《森林王子》(1967年)、《小姐与流浪汉》(1955年)、《猫儿历险记》(1970年)、《小飞象》(1941年)、《海角乐园》(1960年)等6部经典动画加注免责声明,警告观众这些电影内含贬损少数族裔的刻板印象。,加注内容写道:这个节目包含负面描写以及/或
2024-03-21 21:25
热门标签
-
世界上毒性最大的天然水体无人超市 是蛋糕 还是迷幻药?
2024-03-21 15:54
-
这家美国创企用VR训练机器人,灵活度堪比人手葵花药业老板离婚保住33亿 女方是否净身出户?
2024-03-21 15:54
-
正确使用阴性强化方法,直击用户的痛点贾跃亭:悲情大佬
2024-03-21 15:54
-
美的是如何成了美好生活的象征雅百特业绩10亿造假细节遭曝光 数百名投资者拟索赔
2024-03-21 15:54
-
创业中文艺青年还活在梦里?请远离光线影业连续三年裁员 多元化受挫如何“过冬”?
2024-03-21 15:54
-
股价一年上涨两倍,汽车之家高增速背后的故事揭秘华君系600亿资产虚实:文旅公司已人去楼空
2024-03-21 15:54
-
文案策划不要只看指标,打败竞争对手是目的网红饼店雇人排队,20人队伍有7个托!
2024-03-21 15:54
-
如何策划文案中的方案策略国民男神吴秀波财富版图:2家上市公司股东、7参投企业
2024-03-21 15:54
-
用户的四种典型的心理及激活用户心理的三个方法《写给上铺兄弟一封信》走红 原来青春不止北上广
2024-03-21 15:54
-
宝安联手德企创佳绩 隐形冠军论坛吹号角创业必看:中国七大草根富豪发家史
2024-03-21 15:54
-
道德经与企业家人生智慧国学论坛隆重召开共享经济下的联合办公泡沫:一味跟风 用户体验差
2024-03-21 15:54
-
零杀吃鸡,每个人都有一个挥之不去的主角光环年轻人的生意经:汉服控徐娇19岁当上了老板娘
2024-03-21 15:54
-
AI预测准确率提高后,亚马逊或转为“先送货再购物”老干妈,有多牛!一年狂卖45亿
2024-03-21 15:54
-
天文学家发现一颗会制造“反物质”的超新星,理应早已绝迹摩根大通CEO:去过中印等国后,觉得当美国人简直丢人
2024-03-21 15:54
-
机器人行业的“独角兽”企业一定会诞生老板骂走一半员工 原因竟是它!
2024-03-21 15:54
-
智慧门店+盒马鲜生是近创新的活样本网络文学资本局:顶级Ip标价5千万 90%作者月入千元
2024-03-21 15:54
-
商业太空公司崛起的背后,NASA或成最大赢家迷你KTV融资高达数亿元 收费较高影响用户体验
2024-03-21 15:54
-
腾讯的围墙,搜狗的花园“羽绒服大王”波司登主业承压 转战女装
2024-03-21 15:54
-
王小川要找女朋友了 单身跑在创业路上的你呢?李嘉诚投资的那家人造蛋企业,董事会集体出走为哪般?
2024-03-21 15:54
-
印尼社会支付金融不断增长“网红餐厅”一笼小确幸上海闭店整顿 难逃食品安全
2024-03-21 15:54