从社区到平台,从0到超2000万注册用户,小红书与成长背后的技术架构如何变迁?日前,小红书CTO郄小虎(Tiger)接受《腾讯云会客厅》及CSDN记者专访,介绍小红书在转型发展中遇到的技术挑战,和如何通过云计算来实现系统的扩容、安全,以及基于大数据和机器学习的个性化推荐应用。
小红书技术架构变迁及挑战
郄小虎介绍,小红技术架构的发展经历了三个阶段:
- 2013年创立初期,小红书是一个纯社区平台,主要的应用场景是用户分享他们的购物体验,这个阶段系统主要面临的挑战是从产品快速迭代,技术选型上更加偏重于灵活性和高效性,对事务性和一致性的要求不高。
- 引入了电商业务之后,事务性和一致性需求的解决成为迫在眉睫的问题。这个阶段的主要工作是在现有技术架构的基础上实现事务性、一致性的需求。这也是小红书后台技术经历的最重大的一次变化。
- 社区电商业务的飞速发展,带来了系统性能的瓶颈。这个阶段,小红书开始从存储层到逻辑层到服务层去对系统进行扩容,从一开始的集中式架构,慢慢地改造成服务化、模块化的分布式架构,整个技术体系能够变得更加独立、灵活,而且易于扩容。
系统可能面临的最大的挑战来自于规模和经验:
- 业务逻辑的完善。去年的“6.6周年庆”,在流量上并不是特别大的问题,但那是小红书第一次做大规模促销,支持电商业务的功能上有很多不到位的地方,比如秒杀系统最开始的在逻辑上是存在缺陷的。
- 高并发流量。到去年红五(红色星期五)的时候,小红书在业务逻辑的层面已经积累了相当多的经验,最大的考验转移到流量上。小红书历史上的最高峰值是在红五时候出现的,已经真正挑战到了系统的一些极限。
云计算实践
应对互联网业务挑战的关键,是架构的云化,小红书也选择了云计算服务。
选择云服务的考量
小红书在选择云计算技术时主要从以下三个层面来考量:
- 硬件资源。云平台作为一个基础的计算和存储的平台,当小红书需要更多的计算能力或者更多的存储容量时,这个平台能够很快地满足扩容的需求。
- 基础软件。业务系统的实现需要技术团队搭建很多的功能模块,可以在云基础架构平台上自己搭建,也可以去选用平台提供的一些现成服务,如数据库服务、Redis缓存、数据计算系统。
- 增值服务,包括了图象处理、CDN和安全相关的防DDoS攻击、防刷单、防恶意用户等等。
腾讯云的应用
基于上述理念,小红书尝试了不同的云服务组合,目前较为核心的业务系统部署在腾讯云上,硬件基础架构和增值服务依赖于腾讯云。基于支撑腾讯社交业务的技术打造的腾讯云,对满足小红书这两方面的需求没有压力;第二部分则是一个混合的模式——比如,数据库和Spark是自己搭建的。
存储系统
小红书现在采用的数据库技术是NoSQL,是初期打造社区应用时候做出的选择,因为NoSQL更适合大规模、高并发的社区场景,同时社区应用对事务性、数据一致性的要求没有那么强,NoSQL完全可以满足,而如果采用传统关系统数据库,开发成本也会变得比较高。
安全
小红书遇到的攻击,最常见的是简单粗暴的流量攻击,目的就是为了把网络带宽耗尽、阻塞,让其他有正常需求的用户没有办法访问小红书的服务,大型企业一般要投入很大的人力物力,才能把这类攻击化解掉。郄小虎表示,对于成长型公司,需要云服务平台能够在这些流量到达服务之前尽早地把它们过滤掉。这方面,腾讯云提供的大禹系统可以满足小红书的需求。他认为,大禹系统是一个立体的系统,在CDN层面上把攻击流量化解,小红书发现的一些比较执着的攻击也能被挡住。
实战心得
迁移到腾讯云使得小红书业务的开发和上线速度得到提升。尤其是对于突发性的一些需求,可以提高上线的速度。之如直播可以减少很多的开发工作量,前可能需要一个月的时间,现在一周就可以搞定了。
和腾讯云合作的另一个好处,是可以借助腾讯云技术团队共同进步。去年第二次大促销的时候,小红书系统面临很大的流量压力,已经做了数据分片,并且做了封测,对想得到的购物入口做了充分的准备,但开场时候系统仍然卡了一下,后来小红书和腾讯团队一起排查,才发现是出现了大量用户刷心愿单的情况(用户提前把物品加入到心愿单里),然后很快地扩容。
命脉:基于大数据的个性化推荐
无论是社区还是电商,个性化的分析和推荐,都是很重要的一个维度,并且要借助大数据、机器学习来实现。郗小虎认为这些技术小红书的生命线。但与纯粹的电商平台不同,小红书首先是一个信息发现和分享的平台,所以不仅要分析用户购物行为,还要处理数量远超商品数量的社区信息。
社区的激励机制,就是让优质的笔记得到更多的曝光、更多的用户点赞和收藏,并且是通过技术手段而非人工力量来实现。当用户发了一篇帖子之后,系统会对这篇笔记进行多个维度的分析。
- 根据历史数据建立的模型所提取出一些特征,来判断一篇笔记的质量。
- 根据笔记的内容推荐出一些标签,简化用户的操作的复杂度,同时避免UGC信息非常零乱的情况,让UGC的信息更加结构化,能够和后台系统对齐。
推荐背后的用户画像,依赖的是用户的基本属性和用户行为,郄小虎认为用户画像技术本身已经比较成熟,真正的难点在于如何去应用这个画像,怎么判断用户处在某个特定的场景下的意愿——即便对用户有360度的全方位了解,如何从丰富的信息中提取出对这个时间点、这个场景有价值的信息,仍然是一个难点。小红书会根据平台上大量的笔记信息和用户浏览的行为,从中提炼出哪一些信息对于于某个特定场景下的用户来说是有价值的,从而实现和传统的电商购物明显差异化的体验。
郄小虎介绍了小红书上个性化推荐的三重境界:
- 最基础的基于人口统计学的推荐,根据性别、年龄等基础信息,把一些和用户不相关的、不感兴趣的信息过滤掉,让用户能够看到更相关的推荐信息。例如男士可能不太会对这个化妆品感兴趣,推荐运动、健身、旅行等分类源的一些信息更加合适。
- 基于协同过滤的推荐。根据多维度的用户画像,把相似用户喜欢/已消费的一些信息作为推荐的来源。
- 场景化推荐引导消费。小红书现在有非常多的女性用户,她们来到小红书平台可能只是没有明确目标的“逛”,或者只有一个比较模糊的目标,小红书则可以引导这部分用户在不停的“逛”中发现惊喜,形成细化的消费需求。
第三重境界背后的技术支持,基础是用户行为大数据的分析,除了购买行为,还包括看什么帖子、看哪些场景分类的导航等行为,但更重要的是场景的提炼,在这个过程中,通过对这些用户行为大数据的分析,让这些系统变得越来越聪明。例如,用户要出国去日本的时候,想找一些关于日本零食的信息,但他并不知道具体的一些零食是什么,小红书的平台会自动推荐一些相关的链接:生巧克力、白色恋人、东京香蕉等,用户点开这些信息,会发现大量的用户分享的关于这个产品的笔记,用户就有了一个明确的概念。所以系统根据平台上大量的笔记信息和用户浏览的行为,可以从中提炼出哪一些信息对某个特定场景下的用户来说是有价值的,平台就成为了一个智能的小助手。
小红书会分析用户行为,也会判断用户长期的行为和短期的兴趣点,这是会变化的。例如,一个人会看很多健身器材、运动服装、健身器械的一些笔记,可能到了某一个阶段会突然开始关注一些出国的时候需要准备的东西,就表示这个用户近期有出国旅游的需求的,可以短期内针对他推荐一些出国相关的信息。而一些年轻的用户到了某一些阶段突然关注母婴用品、孕期维生素、玩具等,则表示这个用户可能开始做爸爸/妈妈了,就要针对他分享一些在人生中处在相似阶段的用户的生活笔记,这对于他们是有价值的信息。
除了上述用户行为,图像的理解、文本的分析也是小红书需要解决的问题。郄小虎表示,在小红书的应用上,图像很重要,因为很多时候用户的需求信息很难用文本来描述,这时候通过图像的相似度来找关联是一种更加有效的方式,尤其是在像穿搭,这个品类里面,就找到风格类似的,这样的一些图象,是有更大的,对用户来说有更大的发现价值。
文本方面,技术上的一个难点,需要对用户所描述的,整体的上下文有一个非常深入的了解,比如,用户笔记中出现“巧克力中的爱马仕”、“牙膏中的爱马仕”等等,这个时候,不能因为出现“爱马仕”一词就判断该笔记和爱马仕是相关的,还是要看它在上下文中是如何出现的,才能做到准确的推荐。
人工智能能够创造新的消费体验
谈到小红书的未来,郄小虎认为,目前小红书给用户提供的主要还是一种浏览的体验,小红书希望成为用户的一个智能助手,理解用户的需求并帮助用户完成他的心愿,整个需求的满足还有很大的提升空间,通过机器学习技术的应用,不断分析和学习用户的行为,可以使系统变得越来越聪明,能够让用户更加有效地找到想要的信息或者想买的商品。
来源:CSDN
链接:http://geek.csdn.net/news/detail/81597utm_source=tuicool&utm_medium=referral
本文采用「CC BY-SA 4.0 CN」协议转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请给「我们」留言处理。