目前,Pinterest月平均活跃用户量达到1亿,这家以图片为主的公司是如何留住用户并盈利的呢?Pinterest的主要目标是向用户推荐相关的图片或内容,推荐的内容足够精确才能提高用户黏性。近期,《快公司》发文表示,Pinterest 正从机器学习切入,向用户推荐更精准的内容,并拓展新的在线业务。

在Pinterest 平台上,人们可以搜索、下载全网范围内的图片和文章,找到与自己喜好契合的内容自然能够增加他们的用户忠诚度。Pinterest 推荐的相关内容提高了30% 的参与度和 25% 的购买度。这些精准推荐都是依托尖端的数据驱动技术和大量实验的结果。

用户可以通过Pinterest 台的虚拟钉板收藏全网范围的在线商品、帖子、图片,就是说这个平台完全是基于用户兴趣偏好建立的。Pinterest 无需像其他社交网络一样,根据用户的点击模式或者特定页面停留时间来猜测其兴趣。这也意味着它的算法能推测到 750亿个收藏的内容数据库中相互关联的信息,因为相似的内容更容易被固定在同一个钉板上,从而轻易识别用户偏好。

Pinterest 可以说是一个社交图,由数十亿相互联系的用户、被不同用户收藏的同一个项目、收藏类似项目的虚拟钉板三部分构成,这样的组成结构同时决定了其用户量将会不断增长。

Pinterest 的高级发现科学工程师 Mohammad Shahangian 说,“我们通过数百次的实验对我们的算法做出微小修正,确定发现问题的方向“。简单地根据用户关注人群决定为其推荐内容的模型是不理想的,假设一个用户正在策划自己的婚礼,她的虚拟钉板添加了很多礼服款式的图片,而她的关注者并不一定需要这类服饰,为他们推荐礼服可能造成无意义的重复。而 Pinterest 所有的数据可以让 Pinterest 的用户获得 。

Shahangian 表示,“ 如果你的虚拟钉板收藏了一个厨房水槽的链接,我们是否需要向你推送一万多款厨房水槽,或启发你怎么能整体设计你的厨房呢?” 为了在这样的情况下做出正确判断,该公司的工程师们测试了多种机器学习算法,来研究不同公式如何执行对相似或不同的测试集的收藏,以及他们最终如何影响现实世界的用户的参与度。

然而,事实上,Pinterest 的技术研发缺乏实例测试,研究员无法通过给某个特定的用户付钱来测试他是否会接受一组新的推荐。虽然后面的测试过程无法进行,目前的算法已经基本可以实现通过用户的收藏内容来判定此人是否愿意担任人工测试者。Pintesrest 从自身的一路发展中收获了不少启发,个性化一直是提高用户参与度最大的影响因素之一。与此同时,该公司也一直致力于提高视觉搜索功能,帮助用户获取与目标图片相似的内容。 今年早些时候,Pinterest 的工程师们与来自伯克利加利福尼亚大学视觉与学习中心的研究人员一起开发了可自动检测图像内容的深度学习技术。

Pinterest 的高级视觉搜索工程师 Dmitry Kislyuk 说,当我们试图去分辩图片内容是一只猫还是一条狗时,这并不算一个分类任务,关键在于保证实时性的前提下寻找图像之间的视觉相似性。可视化搜索工具尤其适合收集家居装饰和时尚类商品的信息。未来,公司希望提高将目标内容映射到其类别的能力,举例来讲,当用户想找同一种食材的新食谱时,就不要只提供这种食材的类似照片。

高级视觉搜索工程师 Andrew Zhai 指出, “我认为我们的模型可以更语义化,有效地将深度学习应用于映射更加概念化的图像。与此同时,Pinterest 的的工程师们正在专注于完善目标的检测和搜索开发一款应用程序,让智能手机用户通过给现实世界中需求物品拍照,上传到平台后,得到相关的推荐。

Pinterest凭什么拥有那么多用户:机器学习是答案的更多相关文章

  1. 【机器学习】Google机器学习工程的43条最佳实践

    https://blog.csdn.net/ChenVast/article/details/81449509 本文档旨在帮助那些掌握机器学习基础知识的人从Google机器学习的最佳实践中获益.它提供 ...

  2. 7个最好的Java机器学习开发库

    摘要:现如今,拥有深度学习和机器学习领域的技术是科技界的趋势之一,并且企业则希望雇佣一些拥有良好的机器学习知识背景的程序开发工程师.本文将介绍一些目前流行的.强大的基于Java的机器学习库,希望给大家 ...

  3. 机器学习基石(台湾大学 林轩田),Lecture 1: The Learning Problem

    课程的讲授从logo出发,logo由四个图案拼接而成,两个大的和两个小的.比较小的两个下一次课程就可能会解释到它们的意思,两个大的可能到课程后期才会解释到它们的意思(提示:红色代表使用机器学习危险,蓝 ...

  4. WindowsError的错误代码详解

    0操作成功完成. 1功能错误. 2系统找不到指定的文件. 3系统找不到指定的路径. 4系统无法打开文件. 5拒绝访问. 6句柄无效. 7存储控制块被损坏. 8存储空间不足,无法处理此命令. 9存储控制 ...

  5. GetLastError()函数返回值及含义

    GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置.函数并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值, ...

  6. GetLastError返回值的含义

    [0]-操作成功完成. [1]-功能错误. [2]-系统找不到指定的文件. [3]-系统找不到指定的路径. [4]-系统无法打开文件. [5]-拒绝访问. [6]-句柄无效. [7]-存储控制块被损坏 ...

  7. 现代工程仿真CAE技术介绍

    随着现代科学技术的发展,人们正在不断建造更为快速的交通工具.更大规模的建筑物.更大跨度的桥梁.更大功率的发电机组和更为精密的机械设备.这一切都要求工程师在设计阶段就能精确地预测出产品和工程的技术性能, ...

  8. [python]WindowsError的错误代码详解

    转自:http://www.aichengxu.com/view/46906 WindowsError的错误代码详解 0操作成功完成. 1功能错误. 2系统找不到指定的文件. 3系统找不到指定的路径. ...

  9. Windows Error Code(windows错误代码详解)

    0 操作成功完成. 1 功能错误. 2 系统找不到指定的文件. 3 系统找不到指定的路径. 4 系统无法打开文件. 5 拒绝访问. 6 句柄无效. 7 存储控制块被损坏. 8 存储空间不足,无法处理此 ...

随机推荐

  1. 杭电2000----ASCII码排序

    #include<stdio.h> int main() { ]; int i,j,t; while(gets(a)!=NULL) { ; i<; ++i) ; j<-i; + ...

  2. web前端知识大纲:系列一 js篇

    web前端庞大而复杂的知识体系的组成:html.css和 javascript           一.js           1.基础语法 Javascript 基础语法包括:变量声明.数据类型. ...

  3. Your ApplicationContext is unlikely to start due to a @ComponentScan of the default

    问题:** WARNING ** : Your ApplicationContext is unlikely to start due to a @ComponentScan of the defau ...

  4. OI常用重载运算符

    用STL时经常用到 PS:这里有个巨坑,把重载写在STL里常数会爆炸,分分钟大数据TLE 所以就把重载放在结构体里啦 //以priority_queue的重载为例 //priority_queue默认 ...

  5. 潭州课堂25班:Ph201805201 django 项目 第七课 用户模型设计 (课堂笔记

    在 user 的应用中的 models.py: 导入 dango 自带的用户模型 from django.contrib.auth.models import AbstractUser,UserMan ...

  6. BZOJ3022 : [Balkan2012]The Best Teams

    将选手和询问按照年龄排序,即可去掉年龄的限制. 将所有选手按水平排序后维护线段树,显然最优解一定是从大到小贪心选择. 线段树上每个节点维护: $g[0/1]:r+1$不选/选的时候,$l$选不选. $ ...

  7. g++ 动态库的编译及使用

    #ifndef __HELLO_H_ #define __HELLO_H_ void print(); #endif #include "hello.h" #include < ...

  8. 华容道 [NOIP 2013]

    Describltion 小 B 最近迷上了华容道,可是他总是要花很长的时间才能完成一次.于是,他想到用编程来完成华容道:给定一种局面, 华容道是否根本就无法完成,如果能完成, 最少需要多少时间. 小 ...

  9. 三种进程和线程数据共享模块方法Queue》Pipe》manager

    >>>>线程中的queue import threading import queue def f(qq): print("in child",qq.qsi ...

  10. JS_高程3.基本概念(4)操作符

    ECMA-262用于操作数据值的操作符包括: 算术操作符 位操作符 关系操作符 相等操作符 ECMAScript操作符的不同之处在于:它能够适用于很多值,包括字符串,数字值,布尔值,甚至是对象.(在应 ...