话题公司 › 知乎

公司:知乎

知乎是一家中国大陆的问答网站,创立于2011年1月26日,产品形态与美国在线问答网站Quora类似。“知乎”在文言文中意为“知道吗”。2012年2月底,知乎使用“发现更大的世界”作为其宣传口号。截至2017年9月20日,知乎注册用户数超1亿,日活跃用户量达2600万,人均日访问时长1小时,月浏览量180亿。截至2016年5月,知乎累计产生了1000万个提问、3400万个回答和3500万个赞同。2021年至纽交所上市,在挖掘优质创作会员与投入自有内容的同时,随着多样性的社群文化增加,知乎越来越类似于reddit等同好论坛。

知乎由北京智者天下科技有限公司(法律性质为有限责任公司)所持有,其法律代表人是李大海。智者天下亦开发了包括Android、iOS平台的手机“知乎客户端”、“知乎群组”、“知乎日报”与“公益壹点通”四款手机应用程序。

kids:知乎日志系统

这篇文章介绍了一个名为Kids的日志系统,它是为了构建一个方便实时订阅应用日志的anti-spam系统而开发的。Kids系统具有分布式收集、集中存储、实时订阅、不丢失数据和对应用性能影响小等特点。文章提供了Kids的样例配置文件和发布订阅的简单操作方法。Kids系统的配置文件可以通过不同类型的store来实现日志的写入、丢弃和转发等功能。同时,Kids系统还支持远程节点和备用文件存储,以确保数据不丢失。该系统的协议与Redis协议兼容,可以通过Redis客户端进行订阅操作。

Yet another Sketch Mirror App for Android

Sketch是一种设计产品交互原型的主流工具,但在Android手机上无法使用官方提供的Sketch Mirror。文章介绍了三种在Android上预览Sketch文件的方式,并推荐了一个实现了实时预览功能的Sketch Mirror App for Android。使用时需要注意良好的WIFI环境、分辨率适配以及不支持横屏/分屏模式等问题。连接Sketch的原理是通过WebSocket传输数据,第三方软件可以读取这些数据实现实时预览功能。

Spark 在反作弊聚类场景的实践

知乎最近开始尝试使用聚类的方式去发现和挖掘spam用户。聚类的目的是将相似的内容和行为聚集在一起。常见的聚类方法有k-means、层次聚类以及基于密度和图的聚类分析方案。相似度的度量是聚类的关键之一,常用的相似度算法有edit distance、cosine similarity、Jaccard相似度和pearson相关系数等。本次聚类使用了Jaccard和sim-hash算法,其中sim-hash适用于数据量较大的场景。sim-hash的计算过程包括词的hash值计算、加权、合并、降维和相似度比较。相似度比较使用hamming distance来衡量。

Wukong 反作弊系统缓存的优化

知乎反作弊系统Wukong进行了局部重构,主要解决了重复查询和大数据量查询对Mongodb读压力过大的问题。重复查询指的是相隔时间很短的多个相同类型的Action,而大数据量查询则是查询结果的一大部分是相同的。这些问题只存在于某些策略中,对于其他策略并不适用。重构的目标是减轻对Mongodb的读压力,放开读的条数限制,提高系统性能。

知乎服务化的实践与思考

知乎在服务化过程中遇到了服务数量不可控、RPC分拆的发布风险和性能问题。他们发现基于SSO机制对HTTP接口进行垂直拆分是可行的,可以灰度控制风险,并对客户端透明。新项目与主站的耦合较低,只需要少量RPC接口,并且对外暴露的接口也很少。这种拆分方式可以降低主站联动的发布频率,减少发布风险。他们得到的启发是,服务的分拆应该减少RPC,增加内聚,以实现更稳定的接口和较小的服务边界。

知乎 SiriKit 实战

本文介绍了苹果在WWDC 2016上开放的SiriKit,以及其设计理念和实践。SiriKit是一款智能语音助手软件,开发者可以利用其API将自己的服务提供给用户。SiriKit可以实现语音和视频通话、发送消息、发送或接收付款、照片搜索、打车和管理健身等功能。使用SiriKit可以为应用增加系统级的入口,提升用户体验,并且能够在系统应用中使用自己的服务。同时,文章还详细介绍了SiriKit的Intent处理流程,包括Speech、Intent和Action三个步骤,以及不同意图下的信息采集。

反作弊基于左右信息熵和互信息的新词挖掘

这篇文章讲述了团队通过挖掘未登录词来应对站内的恶意营销问题。为了确定一个词是否可以成为新词,团队使用了信息熵和互信息这两个指标。信息熵用来衡量词语在不同语境中的出现频率,互信息则衡量两个词之间的共享信息量。通过计算候选词的左右信息熵和互信息,团队可以判断是否可以形成新词。这种方法取得了良好的效果。简而言之,团队通过分析词语的特点和关联性来解决恶意营销问题。

RxLifecycle: 绑定你的 Observable 到生命周期上

RxJava 是 Android 开发中的一件神器,但要注意在 Activity 或 Fragment 里使用 RxJava 时可能导致内存泄漏。文章提供了一个解决方案,即在 Activity 销毁时手动切断 Observable 与 Observer 的联系。然而,这种方法不够优雅,需要保存 Disposable 的引用并手工进行 Dispose。文章介绍了一种更优雅的方法,即使用 Rx 官方提供的操作符 TakeUtil,可以提前中止 Observable 与 Observer 的联系。通过创建一个变换操作符,可以实现自动释放对 Observer 的引用。

Matisse Android 图片选择器

本文介绍了一款名为Matisse的图片选择器,它可以帮助开发者方便地在Android应用中选择图片。与系统组件相比,Matisse具有更符合业务场景的界面和交互,并且支持日夜间模式。Matisse的调用非常简单,只需传入一些参数即可实现图片选择功能。它支持多种图片类型的选择,可以有序选择图片并指定最大可选数量,还可以定义筛选规则和缩略图的缩放比例。此外,Matisse还支持横竖屏切换,并且可以与不同的图片加载库一起使用。

Python 缓存框架 Tache 使用介绍

Tache是一个Python的缓存框架,支持Python2和Python3。它能缓存不同类型的函数和方法,并支持基于标签的缓存和失效。文章提供了两个使用案例:一是使用标签实现批量失效,只需失效一个对象变更处;二是使用标签控制分页操作的缓存,保证增加和删除评论时的缓存一起失效。同时,文章介绍了批量缓存的使用,可以对列表中的多个元素进行批量缓存。针对分页操作,文章提供了get_comments函数的重构示例,使用标签来缓存评论数据。

算法在社区氛围的应用(一):识别垃圾广告导流信息

为了维护社区氛围,知一声通过使用BILSTM-CRF模型识别和控制垃圾广告。该模型结合了LSTM和CRF的优点,在序列标注任务上表现优异。模型的目标函数由最后一层决定,通过最小化负对数似然来优化参数。训练数据需要标记,并且可能需要考虑导流信息的前后缀。CRF层利用viterbi解码算法从状态分数和转移矩阵中解码输出状态序列。通过分析导流样本,模型在识别导流内容方面表现出色。

算法在社区氛围的应用(二):深度学习在不友善文本识别中的应用

知乎通过深度学习算法辅助审核不友善内容,提高了举报处理效率。每天收到约25,000条举报,其中大约7,000条关于不友善内容。如果算法预测某条内容为不友善,会在0.3秒内删除并发送私信通知。非不友善内容会被忽略,其他内容会进行多次人工审核。知乎重视每一个举报,根据举报增强算法的准确度,并每天全量审核新产生的内容。由于数据不均衡和词语分布的特点,全量内容模型的准确率要达到98%以上非常困难,因此采取适当的阈值来维持召回内容的处理准确率在80%以上,并进行人工审核。知乎的不友善内容处理系统使用深度学习模型,其中采用了Google的word2vec词向量模型。

算法在社区氛围的应用(三):机器学习在答非所问识别上的运用

这篇文章介绍了使用随机森林算法来识别答非所问的内容。随机森林通过多棵分类树的投票来确定分类结果。文章还提到了特征工程和训练样本集的生成。对于Random Forest的实现,作者使用Spark中的Random Forest完成了模型的迭代,取得了不错的结果。此外,文章还分析了与时间和回答的暴光有关的特征对识别的影响。根据图表显示,经过一天的时间累积,准确率达到90%,但召回率只有40%。随着时间的增加,准确率和召回率有所提升。

知乎客户端内测和灰度方案演进

知乎进行内测和灰度的方式有所不同。在内测阶段,他们会将新功能的安装包发布到知乎内测平台供用户下载,同时也会在内网提供给内部员工试用。内测用户的邀请策略经历了两个阶段:邮件和私信邀请内部员工,以及App内邀请内部员工和线下活动邀请外部用户。在灰度阶段,他们会将新版本发布给少部分用户,以降低质量风险。至于如何让用户下载内测/灰度版本以及持续收集用户反馈的问题,将在后文中详细说明。

知乎反作弊系统「悟空」架构演进

知乎采取了立体防御策略来应对问答社区的内容和行为作弊垃圾问题。他们通过策略反作弊、产品反作弊和模型反作弊等手段来解决问题。在事前阶段,他们加强风险教育、业务决策参与、监控报警和同步拦截。在事中阶段,他们针对不同嫌疑程度的行为与账号,进行不同层级的处理。在事后阶段,他们处理那些非常低频或影响较小的行为。通过人工审核和合理的模型算法来控制风险。

Fastlane实战(一):移动开发自动化之道

文章介绍了团队在移动开发过程中,使用Fastlane来解决ITC提包、Meta内容管理、签名、证书管理等繁琐任务的经验。起初,他们只是将Fastlane用于iOS团队内的证书同步和上传ITC的问题,但随后发现Fastlane在私有Pod发布、代码静态检查、UIAutomation测试等场景中也非常实用,并逐步推广到Android平台。Fastlane可以与Jenkins、Circle等CI系统良好集成,简化配置复杂度。文章简要介绍了Fastlane的特点,它是一套用Ruby语言编写的自动化工具集和框架,每个工具对应一个Ruby脚本,用于执行特定任务。

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-23 16:31
浙ICP备14020137号-1 $Map of visitor$