工程架构方向的程序员,看到推荐/搜索/广告等和算法相关的技术,心中或多或少有一丝胆怯。但认真研究之后,发现其实没有这么难。
今天给大家介绍下推荐系统中的“基于内容的推荐”,绝无任何公式,保证大伙弄懂。
什么是基于内容的推荐(Content-based Recommendation)?
答:通过用户历史感兴趣的信息,抽象信息内容共性,根据内容共性推荐其他信息。
比如,如何通过基于内容的推荐,来对求职者A进行职位推荐?
答:简要步骤如下:
(1)找到用户A历史感兴趣的职位集合;
(2)找到职位集合的具化内容;
(3)抽象具化内容的共性内容;
(4)由这些共性内容查找其他职位,并实施推荐;
具体实施步骤如何?
答:简要步骤如下:
(1)得到求职者A访问过三个职位,假设分别是{zw1, zw2, zw3},这些数据可以从历史日志得到。
(2)由职位集合得到职位具化内容
- zw1 -> {程序员, 北京, 月薪8000, 3年经验, 本科}
- zw2 -> {程序员, 北京, 月薪6000, NULL, 研究生}
- zw3 -> {程序员, 北京, 月薪6000, 5年经验, NULL}
这些数据可以从职位数据库里得到。
(3)由职位具化内容抽象出职位共性信息
例如,由上述职位1,职位2,职位3抽象出的共性职位信息为:
- {程序员, 北京, 月薪6000+, NULL, NULL}
(4)由这些共性内容查找其他职位并实施推荐
以{程序员, 北京, 月薪6000+, NULL, NULL}为查询条件,查询职位数据库,并按照一些规则进行排序
(例如,最新发布的职位先推荐,点击过的职位不推荐等),完成推荐。
如果查询的结果集过小,可以缩小条件召回,例如可以将查询条件缩小为{程序员, 北京, 月薪3000+, NULL, NULL}。
基于内容的推荐,原理如上,希望这1分钟,大家能有收获。
【本文为51CTO专栏作者“58沈剑”原创稿件,转载请联系原作者】