2020-05-05

关于Instagram

最近花了点时间在Instagram上,发觉有几点蛮有意思的.

一个是它的推荐反馈.

本来觉得冷启动的过程会比较漫长,但是意外的给人的感觉是实时反馈的.
也就是你在下滑的时候会发现前面的一些反馈动作在后续的瀑布流里面的权重已经有所提升.

这个挺有意思的.

按说如果是实时反馈的话,一个是对于网络质量其实并没有太大的信心.
而且是不太觉得会有这么高频的交互.

因为如果是实时高频交互的响应时间的保证和瀑布流的流畅性两个方面要做的事情会比较复杂.
推荐结果的响应效率,失败/超时的fallback,render的及时性和候选可替换性等.

很容易长时间的blank page.

所以估计是有一个基础的预处理推荐的集合,ranking之后preload/streaming到客户端.
然后在瀑布流的时候用一个local的ranker去重新排序和反馈/反应当前的偏好序列.

按体验上来说,估计这一个preload的recommend set会有至少7-8屏的量.
因为在之后确实容易出loading的状态.

而如果关掉重新启动app的话,除了首次loading会稍微肉眼可见的长一些之后,后续的几乎是无缝的.

另外一点就是点击推荐图片之后展开的列表项目,后续也是几乎是instant的.
但是交互比如like/save to collection,尤其follow会有一个相对明显的UI层面的状态翻转时间.

估计确实preload的部分会比较多,不然相对follow这种交互的延迟性来说的话,应该会比较惨不忍睹.

然后就是它的throttle/降级机制.

有那么一段时间调教的瀑布流都是各种妹子,日系美甲美发服装美妆.
即使比较倾向性的去激励其他种类的图片的话也很难出后续的推荐.

一个可能自然可能是前面的preload的原因,但另一个也应该是特征太dominant的情形.
一时走不出来.

正要感叹推荐系统的脆弱性的时候,短时间内尝试了比较频繁的整体下拉刷新刷新.

然后发觉貌似各系列的倾向性衰减了.
瀑布流的多样性明显回退 ,或者说丰富了起来.

也就是说,估计这种下拉刷新信号反馈进去了.
或者至少penalty了当前的ranker.

这点倒是意外地蛮实用的.

因为很多时候在其他地方其实很难去做这种explore.
数据的偏向性已经bias在一些高频的所谓兴趣点上了.

而且这个某种程度上是用户可控的.

理论上来说可以用一些自定义个collection去做这种不同的profile.
通过对某一类内容的集中反馈来切换不同的推荐profile形成不同的瀑布流.

当然,如果Instagram来做类似功能的话应该是不会这么生硬的.
就像它的商家橱窗导流交互.

虽然疑心这个可能更早是在Pinterest开创的.

Instagram的一类服饰类商家的图会有一种相对固定风格的摆盘.
也就是以成套服饰包括随身饰品等的形式摊放在一张图里.
然后点击图会对各个成分有个价签label.

一些非商家的话则可能是一些铭牌标签.

总之就是在点击这个二级兴趣反馈之后,会列出这种嵌入度很深的导购方式.

说嵌入式很深是指可能一般人不怎么想的话,去做这种由图片展开的二阶导购的话,会选择直接出一个列表.
然后列举各个部分的链接之类的.

这种做法的也给问题就是在App上需求一个布局空间.
有需求就意味着在有限的移动屏幕上需要从其他地方腾挪/干掉一些元素来做这种布局.
而对于这种图片为主的应用来说,如果采用列表方式的话,就意味着可能整个屏幕只能容下这一张图片.

也就是实际上减少了其他的曝光信道.

这个很明显的例子就是Instagram的第三级导购的效果.

在商家图片上一般左下会有一个小的view list的按钮.
点击之后就是商家的其他跟当前不太相关的商品图列.
也就是更接近传统的商品列表的模式.

在这种模式下是几乎直接占据了一半的空间的.

当然以Instagram本身的层次来说倒是没什么太大的问题.
因为这已经是三级兴趣过滤了.

对于大多数第一级来说,后面的存在并不影响explore的效率或者说体验.

所以如果是Instagram来做不同profile的切换的话,可能会选择一种更符合直觉展开或者说破坏感没那么明显的方式.

比如通过信号反馈的连续性/偏差分布来看是处于一种专注某类的状态,还是更aggressive的探索浏览方式.
然后隐性地调整ranker.

聊聊卡布里尼

最近看了部片叫卡布里尼,算是可能这段时间来比较有意思的一部电影. 故事也不算复杂,就是一个意大利修女去美国传教,建立慈善性质医院的故事. 某种程度上来说,也很一般的西方普世价值主旋律. 但是如果换一套叙事手法,比如共产国际的社会主义革命建立无产阶级广厦千万间的角度来看的话,也不是...