计算机视觉(CV)方向今年招聘情况怎么样?是否已经人才过剩?

2023-11-18

编辑:Amusi

https://www.zhihu.com/question/293700785

本文仅作为学术分享,如果侵权,会删文处理

计算机视觉(CV)方向今年招聘情况怎么样?是否已经人才过剩?

https://www.zhihu.com/question/293700785

本人大四计算机本科生,想读研究生。比较喜欢cv领域,但是听说今年开始cv领域有人才过剩的趋势,好多发了一些文章的也找不上工作?请问真的是这样吗?是不是nlp方向要好一些呢?请各位大佬说说自己的看法吧。

知乎高质量回答

作者:玺哥

https://www.zhihu.com/question/293700785/answer/499916574

谢邀,本人机器人&无人驾驶研发从业两年,个人感觉这个CV行业供求关系是不平衡的。其次发文章不代表你的工程和产品能力好,不发文章也不能证明你的工程能力差。所以我的建议是在读研期间先把技能掌握好,比如CV的基本算法。

从基本的图像处理开始,二值化--光留---霍夫变换

识别,roi--各种算子

直到CNN网络

自己把知识网络渣扎扎实实的建立好,不怕没有工作找。

作者:Lancet Liu

https://www.zhihu.com/question/293700785/answer/662841216

泻药。

我之前做CV和NLP的结合方向,去年开始做NLP(中文)。怎么说呢,表面看上去CV确实比NLP好入门,但实际上是在深度学习没出来前,CV比NLP的门栏高太多了好吗?现在搞CV都不需要看《数字图像处理》那本恶心书了。因为现在DL大行其道,这本书里面的算法确实用不上。记得当时手撸一个光流法,写得吐血。现在至少 1/3 自称搞CV的同学,都不懂啥是光流法吧。

但你说那玩意有用吗?我不知道,因为我之前搞CV真没用过这方面的知识。

其实对于计算机科班同学来说,在CV领域还存在一个很尴尬的问题。那就是 通讯、电子、自动化的研究生很多都在搞CV,而且搞的还很不错。因为从信号处理的角度来说,这几个专业甚至更有优势。我们学校,我知道的 通讯在搞三维建模、电子很多都在搞点云,这样的情况也客观造成了CV领域的扎堆。加上本身在深度学习领域,CV的进步比之 NLP和语音进步更大,好发论文,毕竟对于老师来说paper才是王道。所以CV竞争更加激烈也很好理解了。

至于说是否人才过剩,这个我真不敢预言,因为现在DL的领域确实存在泡沫。需求量不如开发那些岗位。但是从长远看(5-10年),我觉得还是一个很有发展潜力的方向。

至于说NLP,情况是这样的,NLP现在面临很多瓶颈,其中语义问题的解决便是深坑,我个人觉得知识图谱救不了语义理解问题。而且NLP本身就是一种人类抽象信息的表达,也就是说,不同于图像,语言本身已经被抽象过一层了,有了很多的信息损失,这一部分是真正影响NLP的因素。从研究角度,NLP不如CV好出成果。去年最牛逼的玩意也就是bert,这点比之成果频出的CV领域,还是有差距NLP创业公司远少于CV也客观说明了这个问题。

从就业情况考虑,NLP领域人数少于CV是肯定的,甚至可以说少很多。大概是1/2 - 1/3 的样子。如果搞NLP,尤其是中文NLP,就会发现,国内的团队搞去搞来都是老面孔,HIT,中科院,北大这类的,深度学习出来以后,经过一轮洗牌,HIT的优势没有之前那么强了,复旦和苏大倒是有很多亮点。当然THU也是很不错的。总之团队确实不如CV的多。但是社会需求量也不如 CV 啊。毕竟工资水平只取决于供求,真不取决于你搞的东西是否牛逼。所以从就业的市场情况,我觉得两者差距并不大。需要说明的一点是,不同于CV, 一般情况 通讯、电子、自动化这些专业的好像很少会去做 NLP,至少我暂时没见过。

至于说CV和NLP区别问题,从研究角度,换方向其实不需要很高,至少没有想象得那么高,的沉没成本。但是如果你是做NLP的,招聘CV的人,真的不会去看你的简历

我从CV和NLP的结合方向(估计都猜到了,没错就是图文匹配!),换到纯NLP方向原因有两点:

0、结合方向吃不消,CV和NLP同时搞,还要搞出点名堂很费劲,我还是一个转专业的,理解一下吧。

1、刚开始入门的时候觉得CV有意思,后来觉得NLP更好玩。

作者:匿名用户

https://www.zhihu.com/question/293700785/answer/658798108

在AI,尤其是CV领域,目前的情况就是:企业招不到人,个人找不到工作。

一个新兴领域的发展必然分为两个阶段:

  1. 粗暴式的快速增长阶段。

  2. 更加精准的系统优化阶段。

在粗暴式的快速增长阶段,企业最紧迫的是以超越同类公司的速度推出最新的AI相关产品,快速把业界最先进的模型在线上搭建起来,把模型的准确率从很低的百分率涨到90%。这个阶段对应的时间是2012年到2017年。

而从2017年之后,各大公司的AI平台已经搭建成型,AI模型的准确率也达到了一个比较可观的效果,所以企业在这个阶段的主要需求是使用更先进的技术把线上模型的准确率提高到一个更加可观的数字。

拿我们公司举例,公司从2014年开始开发一些AI技术与AI产品,进而利用这些AI技术来代替人力,从而节约人力成本,以及通过推广一些AI产品来获得盈利。目前已经步入使用的有:各类票据识别,评论文字/图片/视频审核,内部使用的人脸识别系统,基于CV与NLP技术的商品推广,人流量分析等等。目前我们各类AI产品模型的准确率大部分已经达到90%以上,极少数在90%以下,

但是我们公司对于AI人才仍然非常的渴求,希望能来一些人才,让线上的模型准确率进一步提高。我们部门每月都能收到成百上千份简历,但是我们一个都没录用。

那么现在问题来了:如果你是公司老板,根据公司的当前情况,你会招什么人?

所以你说人才紧缺也对,说人才过剩也对。只不过公司在不同时间的所处的具体情况不同,对于人才的要求也就当然不一样了。

作者:李济深

https://www.zhihu.com/question/293700785/answer/700094530

回国创业已经一年有余,一直埋头于技术和产品研发,逛知乎的时间少了很多,这个问题还是好朋友老刘推给我的,上周六晚上一起在“一鱼”吃饭,当时我跟他抱怨过视觉研发招聘进展缓慢的事。

老刘说『你看你那边招不到人,这边都有人感到人才过剩了』......我大概看了一下前面几个的回答,觉得大家都说得各有道理,我也结合自身这一年多的经历说一点感受吧。

自去年四月份到现在,我们一直都在寻找视觉研发工程师,但是最终只发出去5个Offer,3个来了,另外2个里一个拿了大公司的offer,另外一个被原来公司领导大幅涨薪挽留住了。这5个Offer是面试近30人的结果,而我们最开始的计划是一年内要招至少8个视觉研发,最终的结果距离预期差距较大,所幸的是我们创始团队每个人的代码能力都不错,视觉部分我和王朝阳教授( https://sites.google.com/cardinalmail.cua.edu/wangz/ )每天基本上埋在了代码里,所以技术和产品一直稳步推进,再过一个月我们的两款产品也会浮出水面了,但这个过程中因为缺人带来的辛苦是实实在在的,有一段时间我们基本都是凌晨一两点才离开公司。

投资人偶尔过来深圳,每次都会关心一下招人的进度,同时也让他们的HR帮我们在网上找简历,推送了很多,但老实说质量和效果都不是那么好。这件事我跟邱强( 知乎用户)讨论过,邱强是我们机器人技术研发负责人,那边的情况相反好很多。很多人是因为在机器人圈子里先知道了他,才有意投简历到我们公司的,所以我们总结视觉招聘进度慢的其中一个原因是……我们在视觉圈子里没有知名度。当然一方面是我们几乎没有做过任何PR,网站也没有介绍过任何技术和产品;另外一方面还是我们的人在国内视觉圈子里缺乏知名度,其实王哥在光学那个领域是很有知名度的,你想啊一个清华本硕博,钻研一门技术,写代码写了二十多年……但在国内视觉圈子里……。我有一次跟王哥调侃这个事情,他哈哈笑起来,说可能还是缺乏那个天赋,他说『你看学术圈子里能写代码的就……,我觉得还是写代码比较有意思……』,话音还没落,他接着就说『对了!咱们之前做实验的时候,那个镜头畸变模型是不是用的13个参数?……』

当然,另外一个重要原因是方向不够热门。虽然我们研发的是标定算法、三维成像、重建,目标检测识别等视觉里非常核心的技术和产品,但是因为落脚点在工业自动化方向,和当下比较火的自动驾驶之类的比起来严重缺乏吸引力,这也导致投过来的简历会少一些。我记得有一次我收到一个简历,很优秀的一个小伙,做了很多SLAM方面的工作,第一次电话面试,我问他了解如本吗,他说不了解,我说你知道我们在做什么吗?他说不知道,我说你想做什么?他说他想做导航方向的,然后他噼里啪啦富有激情的说了他之前做的导航方面的工作,我听完嗯了一声,我说你很优秀,应该继续往导航方面做,我们如本不做导航,然后互相Best Wishes后挂了电话。

还有些不一样的情况:有一次面试一个在DJI做旋翼设计方面的的小伙,本硕都是北航飞行器专业的,在DJI也做得很好,来我们公司面试视觉研发。我看了简历很困惑,聊了一段时间,发现是一个很聪明的人,而且对他本行谈起来也是自信热情,但是因为担心行业就业面窄,待遇不如视觉,所以想转行到视觉这边……后来那场面试基本上我一直在苦口婆心劝他不要轻易放弃一个做了那么久的专业……我说视觉圈水很浑,今年就业好,也许明年就业就差了云云...小伙回去后不久给我们HR发来信息,说还是决定留在岗位上...,HR说干了十几年没有见过我这样『赶人走』的……。世界其实很小,优秀的人很少,相逢的人还会再相逢……扯远了。

我们内部讨论视觉招聘问题的时候还分析了一个原因,就是待遇的问题。我们招人过程中看到很多简历,因为公司也招嵌入式,机器人,图形学等方面的,相比之下视觉岗位对待遇的期望是明显偏高的。随便一个视觉研发的期望待遇基本都在月薪25K以上,嵌入式和机器人则一般是15K左右,经验多一些的在20K。而我们拿到的大部分视觉研发的水平基本上是没有多少视觉经验的,比如刚毕业,会使用Tensorflow或者Caffe训练一些模型的,比如学历比较差在工业领域干得比较苦经常出差,中途报名了某些深度学习的网上课程,学成归来,想找个好工作的;另外,我们也收到过一些来自腾讯,阿里,商汤之类大公司的简历,这些人的期望基本都30K往上了。

期望待遇高是没有问题的,我们是完全给得起的。我们的面试环节是先电话技术面试,然后是三天的开放式视觉算法笔试题。题目其实都是很基础的视觉知识点,但极少有人能给出让人满意的答案。这就造成了让人非常困惑的局面,一个期望25K,30K水平待遇的人,技术水平却还达不到基础要求。点解?

我们招的机器人工程师,基本上都有机械/自动化/控制方面的背景,从本科就开始学习相关理论基础知识,其中很大一部分都是数学类的,在面试的过程中就明显感觉到其扎实的理论基础。反观视觉这边,普遍的现象是,没有人知道最简单的图像处理算法的数学原理和实现,大部分其实都是搞深度学习,自诩『调参侠』,半路出家,或即便当初学过一些信号处理的,后面也几乎遗忘干净。另外一部分是风尘仆仆地来自于工业一线的朋友,熟悉Halcon, VisionPro的使用,懂得如何运用一些算子……。

我们的Computer Vision是缺乏系统的教育支撑的。大学本科大部分学校没有相关课程,硕士期间可能会有图像处理和模式识别之类的课,然后有没有缘分学到扎实的视觉基础知识,还得看导师在做什么项目。这过去一年多面试过的人里,看过冈萨雷斯,MVG这样经典但是又基础的书的人极少,而这极少的人里有机会动手实现的又是极少,所以我们遇到的优秀视觉研发,几乎全是靠长时间自学......。

回国创业之前,我曾在知乎上回答过一个帖子( 计算机视觉算法工程师笔试主要什么内容?) 结合过去一年招聘过程中看到的现实情况,对比起来是有些伤感的。我们拿到的简历80%以上都是做不那么深的深度学习……深度学习与视觉只是有一些交叉的部分,不等同于视觉,深度学习框架的使用门槛很低,不代表视觉的门槛低,计算机视觉的目的是通过图像等感知器数据去更好的理解世界以推动社会的进步,这是一个远远没有达到预期目的的领域,还有很长很长的路要走,是一个可以把一生都投放进去的方向。这个领域虽然突然多出来很多新人朋友,但是对真正的人才仍然处于极度饥饿的状态,非常需要更多有决心、有毅力的朋友加入。

共勉。

推荐阅读:(点击下方标题即可跳转)

170 道 Python 爬虫面试题(2019 版)

为什么 Python 3  把 print 改为函数?

640?wx_fmt=jpeg

麻烦给我一个在看

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机视觉(CV)方向今年招聘情况怎么样?是否已经人才过剩? 的相关文章

  • BeyondCompare4破解

    转自 跳不出循环了 原文链接 https blog csdn net weixin 39298366 article details 84390224 将以下操作保存为bat文件 然后双击运行即可 reg delete HKEY CURRE
  • Flask数据库插件安装与配置教程

    Flask数据库插件安装与配置教程 数据插件安装 Flask使用数据库之前需要在python中安装额外的插件 这里主要用到Flask script 命令扩展解释器 PyMySQL 数据库驱动 Flask SQLAchemy ORM映射 和F
  • 【python实现网络爬虫22】唯品会商品信息实战步骤详解

    唯品会商品信息实战 1 目标网址和页面解析 2 爬虫初探 3 爬虫实操 3 1 进行商品id信息的爬取 3 2 商品id数据url构造 3 3 商品id数据格式转化及数量验证 3 4 商品详细信息获取 4 全部代码 手动反爬虫 原博地址 知
  • 可以用filament的示例material_sandbox来调整obj的pbr渲染参数,也有个gltf_viewer读取gltf模型

    如题 说不准以后导出文件就不用cesiumlab了 具体待查
  • 编程获取图像中的圆半径

    版权声明 本文为博主原创文章 转载请在显著位置标明本文出处以及作者网名 未经作者允许不得用于商业目的 即将推出EmguCV的教程 请大家还稍作等待 之前网友咨询如何获得图像中圆形的半径 其中有两个十字作为标定 十字之间距离为100mm 如下
  • 【每日运维】U盘启动盘安装 ESXi 6.7.0 安装卡在 loading /bnxtroce.v00

    问题描述 ESXi 6 7 0 安装进度卡在loading bnxtroce v00 进度处 处理方法 重新制作启动盘 写入方式改为 USB ZIP v2 设置服务器的 bios设置 启动方式改为 UEFI 重启开机安装即可
  • 打印数字三角及蛇形矩阵(C语言)

    题目描述 从键盘输入N 输出如下图所示的N行的数字三角 例如 N 5 那么输出如下 输入格式 输入一个整数N 1 lt N lt 45 输出格式 输出如题所示的数字三角形 为了输出美观 每个数字栈5个字符位 右对齐 即 5d 解题的思路 1
  • ISP(五) RGB、YUV与YCbCr的概念详解

    一 概念 首先要说明RGB YUV和YCbCr都是人为规定的彩色模型或颜色空间 有时也叫彩色系统或彩色空间 它的用途是在某些标准下用通常可接受的方式对彩色加以描述 1 RGB 红绿蓝 是依据人眼识别的颜色定义出的空间 可表示大部分颜色 但在
  • 浅谈逻辑漏洞中的越权访问漏洞

    越权漏洞 越权访问漏洞示意图 一 越权访问漏洞简介 1 类型 水平越权 通过更换的某个ID之类的身份标识 从而使A账号获得 增删查改 B账号的数据 垂直越权 使用低权限身份的账号 发送高权限账号的请求 获得其高权限的操作 未授权访问 通过删
  • Vue--ElementUI组件库

    1 概述 Element官网 ElementUI是饿了么前端团队推出的一款基于Vue桌面端UI框架 和Boostrap一样对原生的HTML标签进行了封装 美化 让我们能够专注于业务逻辑而不是UI界面 默认情况下无论我们有没有使用到某个组件
  • JVM类加载器的urlclassloader和appclassloader

    package kite jvm import java net URL 首先为什么 1 可以 因为OneURLClassLoader在加载Constant的时候发现需要加载 OneInterface 因为他是其接口 因为OneURLCla
  • merkle tree

    merkle tree 是用来存储hash值的一棵树 其叶子是数据块的hash值 非叶子节点是其对应子节点的串联字符串的hash hash是一个把任意长度数据映射成固定长度的函数 对于数据完整性校验 最简单的方法是对整个数据做Hash运算得
  • elasticsearch对数组进行搜索

    写在前面 我们在进行全文建搜的时候往往会添加很多前置条件 比如地区 时间 以及知识点树 我们需要在搜索之前先进行过滤在进行搜索 Array索引 es的数据类型中实际上是不包含数组类型的 在默认的情况下任何字段都可以包含0或者是更多的值 并且
  • docker配置nginx

    docker配置nginx 1 首先安装nginx镜像 docker pull nginx 安装好可以选择测试 也可以跳过 测试命令两行 docker run name nginx test p 80 80 d nginx docker s
  • OC 6702升压型恒流驱动芯片, ESOP8 封装,内置 100V 功率 MOS

    概述 OC 6702 是一款内置 100V 功率 NMOS 高效率 高精度的升压型大功率 LED 恒流驱动芯片 OC6702 采用固定关断时间的控制方 式 关断时间可通过外部电容进行调节 工作频率可根据用户要求而改变 OC6702 通过调节
  • 判断一个对象是否有空的属性值

    直接上代码 const trim str gt const newStr str 0 str str toString return newStr newStr replace s s g str 判断一个对象是否有空的属性值 const
  • 树莓派配置wifi做热点方法

    http wiki jikexueyuan com project raspberry pi wifi html
  • Java JDK8 Stream 使用详解

    Stream 流 的 筛选 去重 截取跳过映射 合并多个流 匹配 归约 简单示例 1 什么是流 2 流的特点 3 流的操作种类 4 流的操作过程 5 使用流 1 什么是流 流是Java8引入的全新概念 它用来处理集合中的数据 暂且可以把它理
  • [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL s

    背景 想导入一个别人的项目 却发现使用navicat运行数据库批次文件时出现了错误 爆出了这样的错误 Err 1064 You have an error in your SQL syntax check the manual that c
  • uniapp的tab切换自定义组件封装

    一 创建组件 在存放组件的文件夹新建一个 vue文件 二 使用子组件

随机推荐

  • 并不是所有的程序员都适合做技术管理

    CSDN记者 张勇 写在之前 在CSDN博客闲逛时无意间进入一个博客 博客地址 博客里的文章质量很高 文章话题主要涉及程序员素养和管理 文章有翻译也有原创 看了几篇文章之后 突然很想和这篇博名为 呦呦鹿鸣 签名则引用孟子 穷则独善其身 达则
  • js 字符串与二维数组间的转化

    1 字符串转二维数组 var a 1 2 3 4 5 a b c d e y1 y2 y3 y4 y5 var str eval a alert str 0 3 结果 4 2 二维数组转字符串 var b 1 2 a b function
  • 云原生之使用Docker部署Dashdot服务器仪表盘

    云原生之使用Docker部署Dashdot服务器仪表盘 一 Dashdot介绍 二 检查本地系统环境 1 检查本地系统版本 2 检查docker状态 3 检查docker版本 三 下载Dashdot镜像 四 部署Dashdot应用 1 创建
  • oracle存储过程----存储过程执行简单的增删改查sql

    存储过程执行简单的增删改查sql 上一篇文章 oracle存储过程 变量的介绍及使用 PL SQL 下边是一个简单的数据库表 为了方便 我都定义成了varchar 类型 1 存储过程执行增加sql 首先写一个增加的存储过程 create o
  • MQTT学习笔记——MQTT协议使用

    http mosquitto org files source mosquitto 1 4 5 tar gz 安装出错时openssl等 需要更改 cd mosquitto 1 4vi config mk可以选择去掉SSL的功能 可以参考h
  • ES相关随手记

    ES相关随手记 一 基本操作 1 es三大属性 索引 映射 文档 1 1 索引 查看 es 中所有的索引信息 GET cat indices v 创建 索引 PUT products 创建 索引 指定库信息 PUT products set
  • 记一次关于MySQL分页查询的优化方案(聚集索引与非聚集索引)

    最近在工作中 有一段逻辑需要从一张大约70W数据的表中分页查询 最开始写的SQL是 SELECT FROM table name WHERE 1 1 ORDER BY time column DESC LIMIT 600000 10 查询时
  • 编译QT5.12.12版本WebEngine模块支持H264视频播放

    qt自带的QtWebEngine模块无法播放HTML5中的mp3 mp4 需要重新编译 提供编译好的下载 环境 QT5 12 12 VS2017 Python2 一 在64位windows系统下编译32位MSVC选择VS2017如下命令 右
  • Redis的五大数据类型(一)

    1 字符串类型 string 1 添加 查询 添加数据 set key value 如果key已存在 之前的value将会被覆盖 查询指定key的值 get key 127 0 0 1 6379 gt set name zhangsan O
  • XSS之xss-labs-level11

    文章目录 0x01 XSS Labs 0x02 实验工具 0x03 实验环境 0x04 实验步骤 0x05 实验分析 0x06 参考链接 0x01 XSS Labs XSS 跨站脚本攻击 是指恶意攻击者往Web页面里插入恶意Script代码
  • Java打印流

    java io Printstream 打印流 PrintStream为其他输出流添加了功能 使它们能够方便地打印各种数据值表示形式 Printstream特点 只负责数据的输出 不负责数据的读取 与其他输出流不同 Printstream永
  • Linux/Centos : gcc __attribute__关键字之visibility

    visibility用于设置动态链接库中函数的可见性 将变量或函数设置为hidden 则该符号仅在本so中可见 在其他库中则不可见 g 在编译时 可用参数 fvisibility指定所有符号的可见性 不加此参数时默认外部可见 参考man g
  • git上传文件到github

    通过git工具上传本地文件夹 1 下载git工具 2 安装 3 打开git bash exe 4 在打开的GIt Bash中输入以下命令 用户和邮箱为你github注册的账号和邮箱 git config global user name C
  • 虚拟机架云服务器,云服务器 虚拟机架设

    云服务器 虚拟机架设 内容精选 换一换 通过云服务器或者外部镜像文件创建私有镜像时 如果云服务器或镜像文件所在虚拟机的网络配置是静态IP地址时 您需要修改网卡属性为DHCP 以使私有镜像发放的新云服务器可以动态获取IP地址 本节以Windo
  • 安卓基础之Intent的用法

    Intent的用法 意图的分类和用法 隐式意图 通过指定一组数据或者动作实现 Intent intent new Intent intent setAction intent addCatogary intent setDataAndTyp
  • cim系统 是什么_CIM和IBM i:它是什么以及它如何工作

    什么是CIM 如果您对IBM i知识不熟悉CIM 那么您来对地方了 CIM提供了一种建模和公开管理信息的标准方法 从V5R4开始 通过加载IBM通用可管理性启用 UME 许可程序 在IBM i上提供了CIM 并且在IBM i 6 1和IBM
  • JavaScript 等待 body,frame,frameset,iframe,img,link,script,style加载完成操作

    body frame frameset iframe img link script style 标签有 onload事件 通过监听以上的 onload事件 可以达到 对于标签加载完成后在做一些事情 查看图片的所有属性 以及事件 conso
  • uniapp的那些坑

    1 selectedColor不起作用 1 查看位置是否写对 与lis同级 2 是否为16进制 selectedColor写的rgb不支持 3 是否被其他样式覆盖 其他地方也设置过selectedColor 可以全局搜索一下 2 pages
  • VSCode远程连接ubuntu服务器

    1 打开VSCode 安装插件 安装插件 汉化 方法如下 重启之后界面就都是中文了 因为我之前弄过了 如果你的已经是中文了 可以省去这一步 安装remote development插件 如下图 用于远程连接服务器 安装好之后 左侧多了一个
  • 计算机视觉(CV)方向今年招聘情况怎么样?是否已经人才过剩?

    编辑 Amusi https www zhihu com question 293700785 本文仅作为学术分享 如果侵权 会删文处理 计算机视觉 CV 方向今年招聘情况怎么样 是否已经人才过剩 https www zhihu com q