【原】一个小小的筛选思路
in 随笔 with 0 comment

【原】一个小小的筛选思路

in 随笔 with 0 comment

只要有坚强的意志力,就自然而然地会有能耐、机灵和知识。-- 陀思妥耶夫斯基

今天,说起推荐算法的时候,我不得不好好斟酌,因为这真的是一个很复杂的事情,要么就是推荐出一个关联性很差的对象,要么就是非常消耗资源的去真正的精确的匹配出合适的对象,但是对于推荐这种事情,对于很差关联性的结果肯定是不可以的,但是,如果真的那么精确,也没有必要,难就难在“度”,这个模棱两可的东西上。

说个例子,在你的家族族谱中推荐出一个和你最亲的人。这个推荐出来的人可能是任何人,比如我们认为血缘关系是一个影响因素,那么推荐出的可能是你的父母,如果我们认为年龄差是一个因素,那么可能是你的堂兄,如果我们综合考虑以上两个因素,那么可能是你的亲兄弟,当然如果推荐出和你亲进度前10的人,那么这个变数将更大,在综合考虑两个因素的时候,如果你的亲兄弟足够多,推荐的就可能全是你的亲兄弟,如果亲兄弟比较少,那么可能会从众多堂兄弟之间随机几个来补位。那么,还有一种情况,比如你有个亲兄弟和你相差10岁,而一个堂兄弟和你同岁,我们在综合考虑两个因素的时候,究竟会推荐出你的亲兄弟还是堂兄弟,这又变得不可预测。

在上面这个小小的例子中,我们不难发现如果让我们去处理这样一个问题,将变得焦头烂额,无从下手。原因很简单,就是规则太泛,对于这样的问题,既然需求方没有给出明确的规则,同时推荐的答案本身就没有一个固定的答案,这样的话,我们只要将规则合理的处理下,让它变的可执行,这样给出一个相对靠谱的答案就可以啦。

我们认为血缘关系高于年龄差,但是只是在一个相对的条件下,我们选取你所有亲属中和你相差年龄小,并且血缘近的人,如果这个人数达到我们需要推荐的人数的话,那么就可以结束了,如果不够,那么我们就从血缘近的,但是年龄差稍微大点的人中找,补位!就这样不断的填充起来,够人数就不管了。

当然还有一个更好的办法,就是我们认为评估各个因素的重要程度,给每个因素打个分,比如同岁的在年龄方面就是10分,亲兄弟在血缘关系上就是10分,这样给不同程度的因素都赋予数值,我们综合计算一个总分,分高的就是亲近的喽~

最后说两句,今天主要谈的是想法,纯文字为主,有点单调,但是你真的看完,还真有那么点意思,不信~你试试!!

Comments are closed.