珍爱网算法总监黄鑫:用算法帮人们找到幸福

2023-12-27 17:40

本文主要是介绍珍爱网算法总监黄鑫:用算法帮人们找到幸福,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

黄鑫,珍爱网算法和数据挖掘部技术总监。黄鑫大学的时候一直做.NET方向的Web开发,他做过ERP、做过互联网,而后机缘巧合地做了爬虫,来到算法领域。他在豆瓣算法组做了三年的算法,从初级算法工程师一直到后来的算法组Tech Leader。黄鑫现在加入了珍爱网,他希望能在这里实现自己的愿望,并让更多的人获得幸福。

图片描述

你是什么时候开始编程的?

如果严格地说开始编程应该是大三上学期。大一的时候我是法律系的学生,然后大二转到了计算机。但是我发现这里和想象中的计算机系完全不一样,我以前一直认为学计算机是学Windows操作,所以大二的时候几乎一行代码都没写过。到了大三,我发现我宿舍的哥们都已经可以写简单的JSP页面了,我还连Hello world都写不顺。当时我就请教一个当时在哈工大读软件的朋友,他说他现在在学.NET,我觉得特别高级(因为当时我只知道C, C++和Java,第一次听说.NET),然后他寄给了我几张学习的光盘,于是我就开始真正地写代码了。

大学学习的最大收获是什么?有什么建议吗?

我觉得可以分成两个层面来说,大学给我最重要的能力是自学的能力。因为大学的主要专业方向是Java,但是我学的是C#,所以几乎所有编程相关的知识,包括Web开发这些都是我自己学的,这些是留给我最大的财富。

其次就是一些专业的基础课,现在每当有一些学弟学妹让我给一些建议的时候,我都会给他们讲,在校所有的课都是非常有用的,你觉得没有用只是因为你还没有站在一定的高度去来看这些。比如说编译原理,数据结构,操作系统,甚至汇编语言。这也是我近几年才认识到的,当然,我觉得这也算是中国教育的一些瑕疵吧。

是一个什么样的机会让你进入到算法领域?为什么决定把数据挖掘和算法坚持做下去?

刚刚毕业的前两年一直是做Web开发,后来换了一份工作是在一个外包公司做Python,但是刚刚做了半个多月就觉得特别不适应这种气氛,我还是对互联网更感兴趣。然后前同事和我说他们需要用Python来做爬虫,就把我叫回了以前的公司。做了几个月的爬虫后,我觉得蛮无聊的,恰巧公司需要做一个商品的关联推荐,我就自告奋勇地做了。我去看了一些数据挖掘的基本知识,觉得特别有趣,这也是我第一次觉得大学学的数学原来是真的有用,于是就把自己的方向定位到了算法和数据挖掘。

至于为什么坚持,这个简要地说有两个方面,第一就是自己真正的兴趣,另外,我喜欢做互联网的初衷就是希望能帮助到更多的人,我觉得这比技术重要得多。我觉得推荐系统能够帮助更多的人找到合适的东西,发现他原本不知道的事,这很有成就感。

作为一个数据挖掘和算法方面的资深工程师,你的学习秘诀是什么?

这个和算法无关,任何领域学习的秘诀都是两个。第一是努力,第二是思考。其实就是学而不思则罔,思而不学则殆。聚焦到算法上,就是要多看paper,多读书,不仅仅是数据挖掘的书,而是整个技术,甚至心理学领域的书。然后多思考,思考每个模型背后的意义。

你是如何在3年中从豆瓣的初级算法工程师变成算法组的Tech Leader的?你认为自己的过人之处在哪里?

我觉得首先要感谢我在豆瓣的mentor阿稳吧。我刚刚进豆瓣的时候,连协同过滤都讲不清楚,他教会了我如何去做一个项目,然后每个项目需要如何去推进。然后其他的同事教会了我如何去读一篇paper,如何去学习一个model,然后去深入一个领域。如果没有那些同事,也就没有今天的我,我很感谢他们。

如果说我有过人之处的话,可能是这几点吧。第一,我觉得自己可能是比较努力的人,我一般每天只睡4个小时左右,然后剩下的时间除了吃饭几乎都是泡在技术上(当然我承认,这是因为我单身啦,哈哈,图灵可以打征婚广告么?)。另外,我觉得自己比较喜欢天马行空地思考一些问题。最后,可能我最大的优点是比较全面,无论是工程,算法,产品,运营,甚至行政和人事都有一些涉及,所以我可以和其他部门的同事比较顺畅地沟通,我觉得这是做Leader的必备素质。

你在豆瓣最大的收获是什么?

除了在上面讲的技术上的提高外,豆瓣给我最大的收获就是让我知道了什么叫做精英团队,也许这会影响我一辈子的职业生涯。包括现在在珍爱,我也依旧希望把我的团队打造成一个精英团队。

为什么要去珍爱网?吸引你的是什么?

总体来说珍爱网有几点吸引我的地方:

第一,从技术的角度上,我觉得婚恋网站是个特别适合做算法的地方,因为与传统的人和物的单向匹配不同,婚恋网站注重的是人与人之间的双向匹配。在豆瓣,我可以给无数个人都推荐热门的书籍,这本书可以是《红楼梦》,但是在珍爱网,我不可能给所有人都推荐林志玲,即使他们都喜欢她,因为需要考虑双向匹配的问题。

第二,从产品的角度上,我觉得在最近的几年内,有两个产品形态一定是热点,一个是移动互联网,这个自然不必多说,一个就是O2O。关于移动互联网,珍爱有自己的珍爱实验室,会产出很多有趣的移动项目,珍爱网本身也在关注移动互联网上的推进。另外,珍爱网是婚恋市场上最注重O2O的公司,所以这也是最吸引我的两点。

第三,从团队的角度上,和数据部门的VP以及创始人李松博士聊过之后,我被赋予了很多权力,公司也提供给我很大的支持让我来建立一支我心目中优秀的算法团队,这也是我自己的一个理想。因为我一直觉得我的能力不仅仅局限在技术上,可能在管理上我会有更大的发挥空间。

第四,从梦想的角度上,当初选择做互联网而不是传统软件行业,最大的原因就是我希望自己能利用自己的技术帮助到更多人。在豆瓣我很开心的是帮助用户发现了更多生活中的乐趣,比如图书,电影,同城活动。那么在珍爱网,让我更有成就感的就是也许我能利用自己的算法帮助人们找到属于他们自己的幸福,如果用户因为我的成功匹配而幸福一生,也许这会是我最大的满足了。

最后,和李松博士在酒店聊了几个小时之后,我感觉自己第一次遇到了一个真的懂数据的老板,而且松哥也提出了很多对于数据部门的畅想,这些都让我相信,这是一家值得我为之奋斗的公司。

从豆瓣到珍爱网,工作环境和公司文化有很大的差别,这对你是个挑战么?

说到差别是一定会有的,因为珍爱网毕竟建立了很多年,而且最初的珍爱网一直都是一个以线下为主的公司。所以严格地说,珍爱网还算不上一个互联网公司。但是我也说到,其实公司的管理层也意识到了这样的问题,希望公司能够完成到互联网公司的转变。

在到公司之前,我也知道公司会有这样的问题,也想过这对于我的挑战。但是我恰恰觉得,一个人真正的能力不是在一切都很优秀的团队做出成果,而是在一个原本并不足够优秀的公司,把不好的事情给变好,这才是我真正的能力的体现。这种挑战本身也是我选择珍爱网的理由之一。

有人说婚恋网站普遍的用户数据挖掘能力不够,这是你去珍爱网想要努力提高的东西么?

婚恋网站在过去的若干年,无论是珍爱还是世纪佳缘这样的公司,一直都处于粗放式发展的扩张阶段,所以确实没有把数据和算法很好地给利用起来。如今成熟的婚恋公司都已经遇到了发展的瓶颈期,所以需要数据和算法为其提供更好的支持。也就是说进入到了一个精细化比拼的时代,所以这也是我工作的最大职责所在。

你认为豆瓣和珍爱网在推荐系统上最大的区别是什么?

如之前提到了,在豆瓣的推荐更多的是人与物之间的单项匹配,而在珍爱网更多的是人与人之间的双向匹配,这本身是一个非常具有挑战的事情。此外,我们更需要通过各种渠道来挖掘数据。我举个例子,如果我们在街上拉到一个行人问,你希望的另一半是什么样子?他给你的描述多半与他的伴侣是不一样的,也就是说,我们很难根据一个人显式填出的条件去来为一个人做婚姻的匹配,我们更需要通过各种渠道来挖掘出用户真正的喜好。 最后,在豆瓣最常用的推荐算法是协同过滤,但是在婚恋匹配中,至少这还不是一个常用的方案,当然,目前我们团队也在做协同过滤的在婚恋匹配中的研究和尝试。

在技术上,珍爱网和match.com有什么样的合作?

在技术上,match.com是非常以数据为导向的公司,所以他们作为支持方会提供给我们很多他们的经验,比如A-B Test框架,数据魔方等产品的思路,以及一些技术和产品方案的支持。除了日常的线上邮件沟通外,每年match.com都会有技术专家来珍爱网做一些技术培训,或者是我们一些同事去美国工作一段时间学习他们的先进经验。

珍爱网创始人李松博士说过,正在努力把珍爱网上升成一个更加以数据为导向的公司,你认为珍爱网和其他婚恋网站相比在技术上的最大区别是什么?

首先,珍爱网有着其他婚恋网站所不具备的线下优势,这要求推荐算法除了面向用户做传统的线上推荐系统之外,还需要面向红娘,这也是O2O模式下推荐算法的应用,这是在技术上其他婚恋网站触及的比较少的点。

第二,珍爱网更像是一个集团公司,除了珍爱网这个品牌外,还有着很多移动类的实验产品,这些产品都很新奇有趣,所以我们除了婚恋匹配外,还会有很多关于社交网络的文本挖掘,情感分析等工作需要做。

第三,就我个人的理解,珍爱网也许是几家婚恋网站中最重视数据和算法的一家,在珍爱网,数据部作为公司的一级事业部,有着二十多人的团队,而且团队现在还在继续招聘。如李松博士所讲,我们希望珍爱网能成为一家以数据为产品导向的公司。


更多精彩,加入图灵访谈微信!

图片描述

这篇关于珍爱网算法总监黄鑫:用算法帮人们找到幸福的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/543893

相关文章

使用雪花算法产生id导致前端精度缺失问题解决方案

《使用雪花算法产生id导致前端精度缺失问题解决方案》雪花算法由Twitter提出,设计目的是生成唯一的、递增的ID,下面:本文主要介绍使用雪花算法产生id导致前端精度缺失问题的解决方案,文中通过代... 目录一、问题根源二、解决方案1. 全局配置Jackson序列化规则2. 实体类必须使用Long封装类3.

Springboot实现推荐系统的协同过滤算法

《Springboot实现推荐系统的协同过滤算法》协同过滤算法是一种在推荐系统中广泛使用的算法,用于预测用户对物品(如商品、电影、音乐等)的偏好,从而实现个性化推荐,下面给大家介绍Springboot... 目录前言基本原理 算法分类 计算方法应用场景 代码实现 前言协同过滤算法(Collaborativ

openCV中KNN算法的实现

《openCV中KNN算法的实现》KNN算法是一种简单且常用的分类算法,本文主要介绍了openCV中KNN算法的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录KNN算法流程使用OpenCV实现KNNOpenCV 是一个开源的跨平台计算机视觉库,它提供了各

springboot+dubbo实现时间轮算法

《springboot+dubbo实现时间轮算法》时间轮是一种高效利用线程资源进行批量化调度的算法,本文主要介绍了springboot+dubbo实现时间轮算法,文中通过示例代码介绍的非常详细,对大家... 目录前言一、参数说明二、具体实现1、HashedwheelTimer2、createWheel3、n

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1