得物社区是一大批年轻人获取潮流信息、分享日常生活的潮流生活社区。其中用户浏览的信息,进行个性化的分发,是由推荐系统来决策完成的。目前得物社区多个场景接入了推荐算法,包括首页推荐双列流、沉浸式视频推荐、分类tab推荐流、直播推荐流等多个场景,为了给用户提供更好的服务和体验,我们从整个推荐系统维度为相关服务做了大量优化。现在主流的推荐系统都会有召回、粗排、精排和机制等多个模块组成,本文主要介绍我们在精排层面演进过程中做的一些工作和思考。
数据驱动理念已被各行各业所熟知,核心环节包括数据采集、埋点规划、数据建模、数据分析和指标体系构建。在用户行为数据领域,对常见的多维数据模型进行信息提炼和模型整合,可以形成一套常见的数据分析方法来发现用户行为的内在联系,能更好洞察用户的行为习惯和行为规律,帮助企业挖掘用户数据的商业价值。 行业内最早可追溯到Google Analytics埋点分析工具,国内较早开始这方面研究的是百度大数据分析平台;随着15年后国内大数据兴起,神策的用户行为分析平台、GrowthingIO的增长平台等独立数据分析平台公司相继成立;18年后一些发展较快的大厂经过几年数据积累也有了自己的分析平台,例如美团点评的Ocean行为分析平台、字节的火山引擎增长分析平台等等。 只有当数据达到一定规模才更适合用科学化的方法来提升数据分析效率,如前面所述,虽然Google和百度在这块最早探索,但后面一些互联网公司也是过几年才有自己的产品,即数据产品的发展需要与实际数据规模和业务发展相符。B站最早从19年开始关注大数据建设,到现在已经有一套较为成熟的数据产品——北极星,可以实现对用户行为数据进行埋点采集、埋点测试、埋点管理
在 12 月 10 日举办的字节跳动技术沙龙首期『抖音 Android 基础技术大揭秘』专场上,来自抖音基础技术 Android 团队的工程师们体系性地向业界分享了包括《抖音大型应用架构演进与思考》《抖音稳定性优化思路和疑难案例实战分析》《抖音启动优化实践》《抖音包体积优化体系建设》《抖音端智能优化用户体验的探索和实践》在内的技术实践,受到了广大 Android 工程师们的好评。 然而关于 Android 基础技术的难题仍未穷尽——内存优化怎么做?网络体验如何极致优化?播放体验优化如何畅享丝滑?功耗优化如何解决用户电量焦虑?线上容灾体系又该如何建设?
目前闲鱼行业产品有回收、寄卖、验货宝等,这些产品在基础交易模式上引入附加玩法规则,其状态机相比于普通交易模型更加灵活复杂。基础交易模型订单状态只包含:创建订单->付款->发货->确认收货 。以回收举例,在中台基础交易模型之上,又附加了诸多行业业务状态,如服务商收货、质检、用户确认质检等。这些状态,是通过用户或服务商等多种角色推进的,而业务状态的维护也需要闲鱼自己来负责。
trpc-go 是目前公司里非常火热的一个开发框架,集成了很多开箱即用的功能,非常方便。trpc-go 代码量不算太多,但是写得还是有点绕,直接阅读可能会比较晕。因此本文主要对 trpc-go 的模块设计进行一个分享,帮助大家构建一个整体视图,后续有需要再针对性的去阅读各模块源码即可。 做后端开发的同学肯定接触过不少的框架,就拿 Go 来说,比较常见的框架比如:gin beego echo iris martini 等等。除了 Go,Python 也有著名的 Django Tornado,PHP 中的 Laravel 以及 nodejs 的 express。这些耳熟能详的框架都有个共同的名字,叫“Web 框架”。Web 框架主要是面向 web 开发,业务处理的默认都是 HTTP 请求。而 trpc-go 则有些不同,它是一个 rpc 框架。由于客观历史原因,客户端和服务器的直接交互大多还是 http 请求,但是系统内部大量的微服务之间的交互则并不局限于 http 协议。从性能和可读性的角度来说,thrift dubbo 等协议显然是比 http 更好的选择。trpc-go 作为一个全
微信作为月活过10亿的国民级应用,经常面临特殊节点消息量暴增的问题,服务很容易出现过载。但微信的服务一直比较稳定,是如何做到的呢?本文邀请到了腾讯WXG后开开发工程师alexccdong以微信 2018 年发表于Socc会议上的文章《Overload Control for Scaling Wechat Microservices》 为基础,介绍微信大规模微服务的过载保护策略,其中很多方法很有借鉴意义。欢迎继续阅读。
钉钉单元化从2018年开始到今年已经是第五个年头了,五年的时间,钉钉单元化迭代了三个版本,从最初的毛头小子,到达今年已经小有成就。今天想借这个场来和大家分享我们单元化的心路历程和一些最佳实践。本文要分享的内容只涉及部分内容,无法做到面面俱到,主要是想在同路人中形成共鸣,进而能复用一些架构或者系统。在我们单元化建设过程中,除了网上仅有的文章外,其可以直接使用的系统乏善可陈,使我们不得不从最基础的系统开始,极大的影响建设效率。幸运最近几年云原生技术的兴起,让我们能复用很多基础设施,进而快速的提升我们单元化能力,助力钉钉的发展。
非洲是世界上面积第二大的大洲,也是世界上第二个人口大洲,其大陆上存在 2146 种语言——约占世界语言总数的三分之一。广袤的面积、繁多的种族,还有宗教传播和殖民统治的影响,使其成为世界上语言最复杂的一个大陆。然而,随着英语、法语等语言在非洲的普及,这些承载着多样文化的两千多种语言正在逐渐无声消亡。 在过去的几年里,低资源语种的机器翻译质量得到了很大提升,这得益于多语言机器翻译的跨语种知识共享、语料挖掘还有大语言模型的应用。然而还是有很多语言,特别是上述的非洲语言,进展并不顺利。去年的多语言机器翻译任务上,以爱尔兰语和威尔士语为代表的印欧语系获得了平均 19.3 BLEU 的大幅提升,而以富拉尼语和伊博语为代表的非洲语种的平均提升只有 3.5 BLEU。究其原因,一是相比于其他语言,非洲语言鲜被重视;二是非洲语言种类繁多,大多数语言使用人数不到百万,其中有些甚至只以口语形式流传,这两者导致缺乏足够的非洲语言语料数据,非洲语种的机器翻译效果也难以提升。
2022 年,大淘宝前端团队进行了调整:重新组织生产关系,按业务线拆分整合进对应的业务技术团队,同时保留了大前端虚线组织,确保研发基建的一致性、技术的持续投入以及推进人员的成长。 整个变化涉及超过三百人的前端团队,经过了半年多的运转,整个团队在技术上也进行了对应的聚焦和收敛。 新的组织协作形态下,大淘宝 Web 领域的工程师们正在做哪些技术工作、有什么技术产品,特在 2023 年开年之际向行业前端同学进行分享。