人工智慧(AI)用到的大數據是收集到的?
AlphaGo勝利後,大家對人工智慧的熱情只增不減,聽說AlphaGo是分析了三千萬盤對弈的大數據,總結出一套下圍棋的最優解。海量數據是人工智慧的基礎,這個結論毫無異議。生活中其實我們已經有了很多人工智慧的應用,比如今日頭條的個性化推薦,百度的無人駕駛等,大大小小的企業都希望能夠通過人工智慧將業務升級,可數據究竟是怎麼採集上來的?可以說大部分的場景還是要主動來收集的,部分的場景可能是自我創造的,比如說AlphaGo Zero就是通過自我對弈,不依賴與人類的知識,然後生成的數據。
因為我是主要在做用戶行為分析,用戶行為可以用於個性化推薦、精準廣告、風控等場景,這裡就講一講用戶行為分析中的數據收集問題。用戶行為數據基本可以用於兩種場景,驅動決策和驅動產品智能,驅動決策就是我們說的BI,而驅動產品智能就是我們說的AI。這裡涉及到埋點與不埋點兩種方式。
企業追求數據驅動產品與運營,數據基礎夯實與否,取決於數據的採集方式。埋點方式多種多樣,按照埋點位置不同,可以分為前端(客戶端)埋點與後端(伺服器端)埋點。行業差異性明顯、企業實際需求不同,我們接觸過很多企業對於怎麼選擇數據採集方式還沒有明朗的觀念,這也是我們這份總結的由來。
適合前端埋點的企業業務需求
無論是自建數據分析平台,還是採用第三方數據分析工具,梳理企業需求是第一步,隨後按照企業需求完成事件和埋點方案的設計,這也正是神策數據為客戶提供多維度數據分析的根基與前提。一般而言,以全埋點(無埋點)為典型代表的前端埋點方案,適合有以下需求的企業。
1.處於運營初級階段,產品功能相對簡單
如閱讀類、詞典類工具性 APP 的企業客戶,在其發展初期的產品運營階段,產品功能較為基礎,無明確業務數據、交易數據,僅通過 UV、PV、點擊量等基本指標分析即可滿足需求。由於神策分析(Sensors Analytics)支持全埋點,SDK 支持默認採集 APP 或者網頁瀏覽頁面、激活、啟動等前端數據,這類客戶可以基於此衡量用戶留存以及活躍度。
2.需要分析與後端沒有交互的前端行為
若運營人員工作需要判斷前端界面設計是否合理,是必須採用前端埋點方案的。這也是後端代碼埋點無法完全代替全埋點的原因。
強烈建議後端埋點的業務需求
除了支持「前端埋點」(全埋點)方式,為了保證數據採集做到「大、全、細、時」,我們更推薦「後端埋點」:當前後端都可以實現數據採集時,應優先考慮後端(代碼)埋點,尤其在各行業中有特殊業務需求的數據,更是強烈建議通過後端(代碼)埋點方式採集。總的來說,「後端(代碼)埋點」,或者「後端(代碼)埋點+全埋點」方案,適合有以下需求的企業。
1.追求精細化運營,需要進行多維數據分析的企業
更多的企業有精細化運營的訴求,科學埋點為運營人員後續進行多維度分析提供保障。以神策數據客戶為例,《迷城物語》的技術負責人馬宗驥,公開分享數據驅動遊戲設計中介紹:在遊戲領域想實現實現精準運營,進行多維數據分析應該優先考慮後端埋點,單純依賴前端數據採集有許多弊端。
例如,有時玩家已經退出遊戲,但是鏈接還在,則前端採集不準,此時PCU數據無法正確衡量伺服器的負載情況、資料庫的壓力情況等,而通過後端代碼埋點解決了這一問題。再如,他介紹:「NPC(非玩家控制角色)狀態、副本狀態、經濟系統實時狀態等統計類數據,這些是前端埋點無法統計到的,而在後端採集數據可根據實際情節靈活完成數據統計工作。」
如下圖,在神策分析平台上,幫助運營人員精準找到遊戲流失點。在100~110級流失的玩家所操控的角色大多停留在「打怪」動作上,機械地打怪練級,玩家開始感覺枯燥甚至疲憊。找到這一「流失點」後,《迷城物語》運營人員可以適當調整該關卡的怪物數量,並增加新鮮因素,從而平衡遊戲趣味性和玩家精力。
2.包含用戶資產數據、用戶賬戶體系相關數據、風控輔助數據等重要業務數據的網站或 APP 的企業
如電商客戶、互聯網金融包含用戶認證身份信息、手機號碼、充值賬戶信息等數據,前端數據無法進行深入分析。再如,在互聯網金融企業,最大痛點莫過於揪出「羊毛黨」了。「羊毛黨」手裡握著大量的代理IP、手機虛擬號。這一群體特徵十分明顯,通常經過註冊、領取福利、流失的流程。這就需要運營人員從 IP、設備信息、註冊信息、活躍度等進行多維度分析。用戶留存是互聯網金融企業判斷客戶是否是「羊毛黨」的方式之一。
如下圖,一般用戶完成新手項目(領取福利後),未進行第二次投資,則可能是「羊毛黨」成員,在該平台上點擊相關數字,將人員明細會詳細展示,可以一定程度上解決「羊毛黨」的問題。
3.對數據安全要求比較高的企業
從後端採集數據,例如採集後端的日誌,實質上是將數據採集的傳輸與加密交給了產品本身,認為產品本身的後端數據是可信的。而後端採集數據到分析系統中則是通過內網進行傳輸,這個階段不存在安全和隱私性問題。同時,內網傳輸基本不會因為網路原因丟失數據,所以傳輸的數據可以非常真實地反應用戶行為在系統中的真實體現。基於後端採集此優勢,神策分析目前提供了 Java、PHP、Python、Ruby 等後端語言的 SDK,以及 LogAgent、BatchImporter、FormatImporter 等導入工具,支持在後端採集。
綜上所述,沒有任何一種通用數據採集方式,是適合所有企業業務訴求的。根據行業領先企業實踐來看,後端代碼埋點才是距精細化運營最近的數據採集方式;不從行業特性、自身實際需求出發的數據採集方案,都是耍流氓。
前面的例子場景,是偏向BI的說明,有了這些基礎數據,只要給機器去使用,套上一定的演算法,就可以實現個性化推薦、精準廣告等AI場景了。
謝邀~我因為學習機器學習並且想要做一些實踐項目而打算收集一些數據來做機器學習,但是發現,數據不是你想找,想找就能找的。在機器學習方面,用於訓練的數據對於整個機器學習進程的重要意義自然不言而喻,而數據問題涉及到收集、存儲、表示以及規模和錯誤率等多個方面。
如何收集數據呢?我們絕大部分情況下,收集數據的途徑無非以下幾種:
一、在網上收集下載公開的免費數據
這是很多人的第一反應,當然,這是很正常的,既免費又好的數據誰不想要?然而實際情況並不樂觀,免費數據要麼是難以尋找,要麼是數據量太小,要麼就是不符合需求。比如,我想做中文的自然語言處理方面的一些機器學習,然而瀏覽了大量的網站之後,發現所能找到的僅有的數據都是關於英文的數據,而用來做中文方面的中文數據難以尋找。有些網站寫著免費下載中文數據,然而那裡並沒有數據。
如果是純文本的數據還好說,自己寫一個爬蟲程序,然後運行。比如,如果是實現新聞文本分類的,那麼從各大新聞網站直接爬取即可。即使這樣,很多想要的功能還是難以實現,比如做機器翻譯,需要中英文文本對照,自然狀態下並沒有這樣的數據。
二、購買專業數據公司的數據
這種方法的優劣我不做評價,畢竟你有數據我有錢,大家都高興。專業的數據公司國內互聯網上就有一家算得上是挺知名的,還有各個大公司大企業等,他們自身因為在所在行業的地位,通過各種手段能夠收集到大量的數據。他們有足夠的人手來管理數據,所以數據的質量一般都是有保證的。這個方法其實當然是很不錯的,只要你有錢就行。
我看過那家數據公司的數據購買價格,數據量稍微量多一點就是上萬元的價格,作為一名普通的程序猿,購買數據的話基本上可以幾個月不吃不喝了。
不過,在語音識別方面的大多數數據集都是有版權的,收集的公司因為這些數據獲得了大量的利益,但在這一領域裡,許多可用的數據集都是比較舊的。
三、自己根據需要和實際情況製造或從身邊收集數據
既然購買數據辣么貴,辣么我們自己搞定行不行?O(∩_∩)O
在所需數據量不大的情況下,比如只是幾十或者幾百個,完全可以通過這種方法來獲得數據,然後自己就安心地去訓練機器去吧。優點很明顯,成本低,隨意性高;但是缺點也是很突出的,一個人的精力是有限的,個人的力量不可能收集成千上萬乃至幾十萬幾百萬的數據量,而實際機器學習的應用往往就是需要如此之多的數據。少量的數據做一些簡單的模型(如線性回歸或者特徵較少的對數幾率回歸等)尚可,對於類似於使用神經網路實現圖像識別的機器學習任務,這種方法顯然不合適。
四、自己出錢讓別人根據需求一起幫你收集所需要的數據
這種方法相比上面那一種來說,最重要的一點就在於人多力量大,眾人拾柴火焰高嘛。當然別人不是白白幫你的,你需要給他們一些報酬,不過相比於購買數據,如果你給每個人的報酬合適的話,成本也算很低了。
這樣子確實比較興師動眾,你一個人為了做一些實驗,然後讓一大群人來幫你,前提也是能有一群人願意幫你,只要你人緣好,然後能說動他們,不過缺點也正是在於此,而且還需要注意數據的質量。不過這種方法綜合下來算是成本較低的,但是需要付出多種類型的成本,除了錢以外,還有比如時間成本、人力組織成本以及人際關係網路等。
五、網上有部分免費的數據集可以供下載,具體的我就不一一列舉了。
我們還有其他的收集數據的方法,只不過一般情況下並不可行。比如,我們自己開發一款瀏覽器或者新聞APP來收集用戶的閱讀偏好,通過這些數據來實現一個推薦系統,或者拍照APP收集用戶拍攝的照片,並分類,實現一個圖像識別和分類的系統等。為了做語音識別,通過已有的可用API和軟體,進行文字轉語音或者語音轉文本從而得到訓練數據,再用這些數據來訓練機器學習模型。類似的方法還有很多,但是基本上要麼是不現實(如通過有大量用戶的APP收集數據),要麼是不太正義(比如APP收集數據很多情況下侵犯個人隱私),要麼就是不符合「科研精神」(數據是造出來的而不是來源於真實世界中)。
但是,長期下去僅僅依靠以上的方法也總歸不是個事啊。開源軟體是一個大社區,那裡有著來自世界各地的計算機軟體高手寫的各種各樣的代碼,只要我們遵守開源協議,將程序下載、編譯、安裝,然後我們就可以盡情的自由使用了,這個過程很容易,然而在人工智慧方面卻遇到了問題。
人工智慧是數據驅動的,我們有開源的TensorFlow, Caffe, CNTK, Torch等人工智慧引擎,但是,沒有數據就沒有機器學習模型,也就等於沒有了軟體,因為引擎僅僅是引擎,不能成為成品,而且軟體的定義是程序+數據,二者缺一不可。我們通常所理解的軟體僅僅指程序,那是狹義的軟體,這也是以前數據「不重要」的特性導致的,然而現在不同了,僅僅有代碼我們的程序無法發揮作用,所以我們需要新的開源模式,將數據也包含進來,其相關的信息也需要一同開源。
本文內容最初發表於我的個人博客:AI檸檬 (2017-02-17 《在數據為王的人工智慧時代如何收集機器學習數據》)
三種途徑
免費公開數據(沒啥大參考價值)
自身產品產出數據(質量最高)
全網爬取數據(讀書人的事能叫偷嗎)
利用Google這種不存在的搜索引擎,然後用爬蟲。
當時有名的一篇李飛飛組的論文《The Unreasonable Effectiveness of Noisy Data for Fine-Grained Recognition》 ,把當時85左右的finegrain結果直接刷上了90多。
論文地址:https://arxiv.org/pdf/1511.06789.pdf
大意:我們從Google收集了大量數據(鳥/狗/蝴蝶/飛機),分別提升了多個數據集上的結果。雖然有雜訊但是大多數數據是related,所以學出來模型還是效果很好。
我研究出來一個簡單的方法就是:用chrome的插件(Fatkun Batch Image Download)來下載圖片。不過還是要手動輸入關鍵詞,然後扒整個網頁的。
歡迎點擊我的其他文章:
醬油哥:用GAN生成的圖像做訓練?Yes!
醬油哥:2017年GAN 計算機視覺相關paper匯總
2017 ICCV 對抗生成網路GAN接收論文
真正對業務有幫助的核心數據,大致有三種來源:
- 業務積累,這是最有效的數據,比如網易雲反垃圾系統,就基於網易十多年反垃圾經驗積累的特徵庫訓練的,準確率就很高。現在大家都有大數據應用的意識,了解要分析哪些數據,用好桑文鋒總答案中說的埋點,就是很好的收集方法。
- 數據交易,現在我國有一些數據交易所,但數據交易市場還在探索中,不是很成熟。
- 大平台建設生態開放的數據。
如果是用於學習或研究,有三種途徑:
- 現有免費數據集,包括一些演算法大賽提供的數據。
- 爬蟲爬取互聯網公開數據,不用多說。
- 演算法生成,比如 Deepmind 就干這事。
當然,工作和學習採用的數據收集方式,並沒有嚴格的區別。
推薦閱讀:
※星際爭霸AI研究相關工具資料整理
※洗車房,無人車的噩夢?
※關於人工智慧+自動化的後果
※從神經學角度看邊緣計算、霧計算與互聯網雲腦之間的關係
※探索「意識」的起源:從RNA世界假說到人類大腦糾纏網路