推荐系统中的推荐理由实现,有什么好的思路吗?

用一些生硬字符串拼接是我现在想到的办法。
关注者
1,062
被浏览
79,608

35 个回答

在美国亚马逊做推荐的时候,我们做过一些比较大胆的尝试,也是我自己看好的方向,虽然最后因为某些原因没有继续下去。我们那时做推荐是朝更人性化的方向,举些做过推荐理由的例子:

1. 推荐这部电影的原因是因为他得了Oscar。(根据过去发现你对得奖的片比较感兴趣)

2. 推荐Harry Potter第二集是因为你6天前买了第一集。(根据你过去看续集的习惯)

3. 推荐产品A是因为你朋友下周生日,而A是他喜欢的。(或许你可以买来送给他)

。。。等等。单独每个的覆盖率不会高,但转化率非常高。

每个物品都有它特殊的属性在,只要朝人性化的方向去想,挖掘一些比较有影响力的属性出来,对购买决策会有帮助。另,推荐应该是个一般人很可以容易理解的东西,这会影响用户的信任。

在我过去的个性化推荐实践经历里,一直认为显性的展示推荐理由是不那么“自然”、不那么有效的方式。这样的考虑主要是基于两个原因:

其一,无论是 CF,matrix factorization 还是 feature engineering, 基于统计机器学习的推荐算法基本都是“黑盒”模式的,虽然我们可以抽取出类似“75%购买了 A 商品的用户还购买了 B”,或者“影响购买 A 商品的因素是 F1,F2 和 F3” 这样从数据的角度来看很有说服力的结论,但这些是数据上的关联,相关性不等于因果性,相信大家都明白这个道理。用户对推荐理由的诉求是知其然还要知其所以然,而算法上,我们仅仅做到了前半部分。

其二,无论怎样拼接和构造推荐理由,它看起来都像是机器产生的,远达不到朋友之间的推荐那种自然而然的效果,更像是个蹩脚的店员徒劳的向你推销些你早已知道的东西。推荐理由,说到底,是个人机交互的问题,不够友好、自然的方式,不会起到太好的效果。

不过现在,我对这个问题的看法有些转变,过去几年 AI 领域的进展使得我们能够期待以更加“自然”、更加有效的方式来进行人机交互。说到这里插一句,CF 一直顶着经典个性化推荐算法的名头,但在我看来,它的实质其实是 collective intelligence,而非 personalization。如果我们能够以自然语言、对话的方式把待推荐的 item 传递给用户,那么就是真正的个性化的推荐,也是知其然而知其所以然的推荐。并且真正解决了个性化推荐的产品形态、用户认知、推荐理由等一系列问题。

这会不会是下一代推荐系统?