搜索

搜索和推荐的需求猜测

最近去围观了几场年会, 刨开文化的差异, 从不同公司里领导层和员工更关注更强调的点也是可以看出来不同产品的差异. 把自己看过做过的一些东西揉进去连起来看, 有一些关于 “需求满足” 的想法, 抛砖引玉, 请大家提供更多的观察角度和建议.

搜索和推荐, 以及计算广告

我不知道业界对 “搜索” 和 “推荐” 的定义分别是什么, 我自己的定义是
推荐: 对一个特定的用户, 根据其历史行为, 推测其可能的需求, 推送满足潜在需求的内容给用户
搜索: 对一次特定的请求, 推送满足该请求的内容给用户

这么一分, 搜索就可以看成是推荐的一个真子集. 搜索相对发展的比较成熟一些, 个人觉得现在的发展重点更多在 “理解需求本身”, “内容丰富度” 以及 “内容时效性” 几个方向上. 而推荐, 现在更多的问题应该都在 “推测需求” 这个环节.

计算广告, 则是在搜索和推荐的内容中加入商业结果, 本质是一样的, 只是需要额外考虑商业收益和可持续性. 任意一家商业公司都需要收入来维持整个公司运作和发展, 在资源受限的情况下, 一般都会先考虑商业结果接入, 毕竟活下去才是王道, 死了就啥都没得搞了.

搜索中的需求

搜索的需求都更直接, 而且相对独立, 比如我搜 “西二旗地铁站附近的饭馆” 或 “北京到上海的机票代理”, 直接给结果就行了. 而一些比较复杂的搜索, 因为事件本身需要更多考虑, 或是因为需求比较难用文字表达, 则会引起一系列的搜索, 但是这一堆搜索请求也都是可以比较容易将其黏合在一起成立一个系列事件. (各搜索引擎的个性化搜索中的短期行为个性化)

因为搜索需求是如此的直接暴力, 用户就是需要某物品或服务, 所以广告也可以直接暴力的给出, 效果还很好 (稍微好点的广告应该都可以做到百分之几的点击率, 转化率也不低)

也因为搜索需求的独立性, 偏搜索的产品在考核时更多都用 PV (Page View, 页面访问数) 说话, 用户黏度不大, 流失风险也不低 (甚至压根就没有用户概念, 只有请求的定义). 个人感觉这就是百度推新首页, 阿拉丁, 开放平台等产品的目的, 留住用户, PV 至上向 UV (User View, 独立用户访问数) 转换, 而且还能降低系统消耗并提升效率 (变现/搜索结果满足需求等效率)

推荐的需求猜测

和推荐有关的东西很多, Netflix 的影片推荐, douban 的读书推荐, 各种个性电台的音乐喜好推荐, 电商网站的商品推荐, Web 2.0/SNS 的内容推荐. 其中有一些是能比较直接带来收入的, 比如影片推荐, 商品推荐, 做的人很多且深入, 而另一些变现能力不明朗的产品, 比如个性化电台, 大部分都还只是玩票, 公司有人的情况下做着玩玩, 攒点技术.

Web 2.0/SNS 的内容推荐在推荐中的位置比较尴尬, 一方面用户需要更多更好的内容推荐 (用户需求强烈), 另一方面变现比较难 (公司投入回报比低). 为了留住用户显然要做推荐, 从中能挤出点商业需求弄点钱让自己活下去也是很多推荐团队要考虑的事.

回到推荐的需求判断, 一般推荐系统都是在根据历史行为猜用户的未来需求 (实时的直接需求那都是搜索, 不管是通用搜索还是站内搜索), 所以最朴素的想法就是用户过去看过啥, 喜欢啥, 关注啥, 买过啥, 就给 TA 推荐类似的东西. 这种简单粗暴的方法在影片推荐什么的会比较有用, 效率高, 相关性也好, 用户的个人喜好一般不会变化太快, 而且会一直有相关需求, 如果需要维持内容丰富度, 可以做一些随机化, 或用用户的朋友的喜好来推荐.

但是其他行业中, 就会有是否是 “持续性需求” 的差异. 电影我看了这部还会看别的, 吃饭我吃过这家店还会考虑别的类似的店, 但是有一些需求一次完成很久不会变, 比如我买了个路由器, 只要不坏或脑子抽了要骚包下, 一般不会去买第二个 (帮别人买这种行为应该分开考虑, 或者现在这种行为也很多?), 再比如学英语我报了个老罗英语后, 至少短时间内我不会再考虑去报个新东方或别的.

不同的持续性, 也应该有不一样的做法. 电影, 音乐等已经有良好分类标签的持续性需求, 可以直接提关键属性来做推荐 (主演, 主唱, 导演, 词曲作者, 风格等), 还会有一些影评乐评等用来辅助标记, 还有排行榜, 感觉相对比较容易, 至少做个原型出来要容易, 同时, 用户兴趣的相似度也是可以考虑的, 比如看了电影 A 的人都看了电影 B, 那现在有一个人说他看了电影 A, 我们也可以推荐他去看电影 B. 视频等没有明确分类标签的持续性需求, 计算被推荐条目和用户的相关性比较麻烦, 也不够准确, 这时候用户之间以及被推荐条目之间的相似度似乎是一个更可以考虑的点, YouTube 曾经发过两篇 paper, 其中 08 年的 paper 有很多很炫的方法, 但是同样的那批人在 10 年发的 paper 就回归到最朴素的相关浏览算法了, 而且还特别说了, 数据量大是一个非常明显的优势, 另外展示位置和展现样式的影响因子也非常非常大 (除非算法有天翻地覆的差异, 位置和样式才是最大的影响因子吧 :P). 而像衣服等 “有搭配的持续性需求”, 除了用户购买的相似度, 是否可以考虑从搭配需求上去做? 比如有 MM 买过一件大衣, 除了继续推荐类似的大衣 (通过所有用户的查看/收藏序列), 其实更应该去推荐可搭配的帽子/围巾/靴子什么的才对? 比如笨狗前年脑抽买了个大显示器, 过了一段就攒了台电脑主机, 然后还买了一个音箱… 这就是典型的可搭配持续性需求. 有关搭配性的持续性需求还没去找相关的 paper, 如果有麻烦告诉我一下.

人人的推荐需求

回到人人或其他生活平台级的推荐系统, 因为信息源过多且不集中, 所以简单的文本提取关键词然后按这些关键词推荐的方式绝对不会工作的很好. 在 NLP/IR/DM 支持下, 我们可以识别出用户讨论的内容, 如果能再识别出 TA 是在说需求还是在提供反馈评论, 那接下来需要一个需求转换图, 按这个有向图的下游节点来推荐就好了. 一个已经买了智能机的用户你给他看无线路由的评测或购买信息是顺理成章的 (当然前提是他还没买路由), 一个正在找留学信息的用户你除了推荐留学中介, 外语培训应该也是可以的, 甚至一些出国教程, 必需品购买等都是可以的 (教人打包行李的日志视频等等)

一个好的推荐系统最大的问题在于怎么识别或预判出一个合理的需求. 大概流程如下

1. 提取用户目前的兴趣点或兴趣方向
2. 判断用户是在 seek 阶段还是 review 阶段
-a. 如果还在 seek, 直接按搜索的方法做推荐, END
-b. 如果是在做 review, 转 3
3. 判断 review 的内容是否有重复性
-a. 如果有重复性, 直接按经典相似度的方法做推荐, END
-b. 如果没有重复性, 但是有搭配延续性, 转 4
4. 离线挖掘有搭配延续性需求的转换图, 按图指导推荐方向, END

在一个信息充分度足够的平台上, 应该更容易做 4 中的那个转换图, 否则平台太过垂直, 就只能做到 2.a 或 3.a 那个地步. 比如京东如果没有商品评论, 他只能知道我现在在京东上找什么, 买过什么, 然后在同类别内做推荐. 但是如果换到一个非常大的平台上, 可以根据一些蛛丝马迹来推荐更多相关的东西 (当然因为信息量更大, 推荐的准确度会下降, 但是整体来最后的成功数应该会接近或更高). 比如知道我买了机票后, 除了可以向我推荐相关酒店, 旅游等资源 (目前 qunar, kuxun 等已经做到的), 当地的纪念品 (以前在百度, 有出差回来带当地小吃给大家分享的传统), 甚至旅行用的拉杆箱 (今天在电梯里看到一个实际案例), 这些都谁可以推荐?

如果推荐靠谱, 而且有更多的信息提交渠道, 用户可以继续提供更丰富的信息, 形成良性循环. (说提交是从数据的角度来看, 产品上包装下可能就是用户非常愿意做的分享, 比如人气之星, 分享送礼等)