2020 圖算法工程師面試基礎、要點

2020-12-01 騰訊網

來源:圖與推薦

本文約2700字,建議閱讀5分鐘。

為你總結面試必備的知識要點,助你面試成功。

這段時間面試連連,幾輪下來的感受就是,好點兒的公司對細節摳的很細,希望求職者能夠對使用的算法以及這個算法的其它觸類旁通的領域都能夠有系統的理解。

本文原創作者知乎連結為:

https://www.zhihu.com/people/he-he-he-he-77-19-21

GNN 是近年來 AI 領域最熱門的話題之一,但很多人都忽視了基礎。

本文參照之前的:我們如何通過圖算法來幫助提高機器學習算法的性能?以及【圖算法:概覽(https://zhuanlan.zhihu.com/p/64984300)】以及之前劉教授出的GNN系統介紹的書的基礎知識部分進行總結。

圖是一種數據結構,它對一組對象(節點)及其關係(邊)進行建模。近年來,利用機器學習分析圖形的研究越來越多,由於圖的巨大表現力,即圖可以作為包括社會科學(社會網絡)、自然科學(物理系統、蛋白質-蛋白質相互作用網絡、知識圖譜)在內的各個領域的大量系統的外延。圖作為機器學習的一種獨特的非歐幾裡得數據結構,在 nodes 層面的分析中引起了人們的注意——包括了 node prediction、link prediction 和圖聚類。圖神經網絡(GNNs)是一種基於深度學習的在圖域上工作的方法,由於其令人信服的性能和高可解釋性,GNN 近年來已成為一種廣泛應用的圖數據分析方法。在下面的段落中,我們將說明 GNN 的基本動機。

首先,GNNs 是由卷積神經網絡(CNNs) LeCun 等人驅動的。CNN 能夠提取和組合高解析度特徵的多尺度局部空間特徵,這導致了幾乎所有機器學習領域的突破和深度學習的革命。當我們深入到 CNN 和計算機視覺應用時,我們發現CNN 的成功之處在於:局部連接、權值共享和多層的使用。這些對於解決圖域問題也是非常重要的,因為:

圖是最典型的局部連接結構;

與傳統的譜圖理論相比,權值共享降低了計算成本;

多層結構(這裡的意思是不同尺寸的卷積核)是處理不同層次模式的關鍵,它捕捉了不同大小的特徵。

另一個動機來自圖嵌入,它學習在低維向量中表示圖節點、邊或子圖。在圖分析中,傳統的機器學習方法通常依賴於手工設計的特性,受到其不靈活和高成本的限制, 遵循表徵學習的思想和詞嵌入的成功,deepwalk,被認為是第一種基於表示學習的圖形嵌入方法,將SkipGram模型應用於生成的隨機遊走,類似的方法,如node2vec、LINE和TADW也取得了突破,然而,這些方法有兩個嚴重的缺點:

首先,編碼器中的節點之間沒有共享參數,這導致了計算效率低下,因為它意味著參數的數量隨著節點的數量線性增長。

第二,直接嵌入方法缺乏泛化能力,這意味著它們難以處理動態圖或被推廣到新圖。

關於GNN的部分暫時介紹到這邊,下面主要總結一下基礎知識:

圖論

圖通常用 G=(V,E) 來表示, 其中 V 是頂點集,E 是邊集,邊 e 有兩個頂點 u 和 v,被稱為 u 和 v 通過 e 連接。在這種情況下,u 被稱為 v 的鄰居,或者換句話說,這兩個頂點是相鄰的,請注意,邊可以是有向的,也可以是無向的, 如果所有邊都是有向圖,則圖稱為有向圖,如果所有邊都是無向圖,則稱為無向圖。V 的度(degree),用 d(v) 表示,是與 v 連接的邊數。

常見的graph的幾種分類:

有向無向;

有權無權;

同構異構;

當然還有有環無環等分類方式,這裡列出常見的分類方法,需要注意的是,graph 的這幾種分類之間是相互重疊而不是互斥的。詳細可見【圖算法:概覽

(https://zhuanlan.zhihu.com/p/64984300)】

關於基本的圖特徵的構造

total degree:即與節點 V 相鄰節點的數量,稱為節點 V 的度;

degree centrality:度中心性,即標準化的度,是使用節點 V 的度除以全圖節點的數量得到的用以衡量節點度的相對大小,類似於結構化數據中做 0-1 標準化的操作;

number of triangles:節點所在三角形的數量,即三個節點互相連通則稱為一個三角形;

local clustering score:局部聚類得分,2*v 節點所在三角形的數量/(節點 V 的度的平方-節點 v 的度),用於衡量節點 V 的兩個鄰節點互為鄰居的概率;

Eigenvector Centrality:特徵向量中心度(詳細可見:所謂特徵向量中心度 http://blog.sina.com.cn/s/blog_4c9dc2a10101b4y3.html)

pagerank:特徵向量中心度的一種變體,相對前者,pagerank 要出名多了。(詳細可見:機器學習經典算法之PageRankhttps://www.cnblogs.com/jpcflyer/p/11180263.html)。pagerank能夠實現的功能就是,「如果你的朋友很famous,那麼你也會famous」。

比如說脈脈這個社交軟體,它計算的就是個人在職場的影響力。如果你的工作關係是李開復、江南春這樣的名人,那麼你的職場影響力一定會很高。反之,如果你是個學生,在職場上被鏈入的關係比較少的話,職場影響力就會比較低。

同樣,如果你想要看一個公司的經營能力,也可以看這家公司都和哪些公司有合作。如果它合作的都是世界 500 強企業,那麼這個公司在行業內一定是領導者,如果這個公司的客戶都是小客戶,即使數量比較多,業內影響力也不一定大。

除非像淘寶一樣,有海量的中小客戶,最後大客戶也會找上門來尋求合作。所以權重高的節點,往往會有一些權重同樣很高的節點在進行合作。

betweenness centrality:中介中心性,中介中心性指的是一個結點擔任其它兩個結點之間最短路的橋梁的次數。一個結點充當「中介」的次數越高,它的中介中心度就越大。如果要考慮標準化的問題,可以用一個結點承擔最短路橋梁的次數除以所有的路徑數量。

closeness centrality:接近中心性,接近中心性需要考量每個結點到其它結點的最短路徑的平均長度。也就是說,對於一個結點而言,它距離其它結點越近,那麼它的中心度越高。一般來說,那種需要讓儘可能多的人使用的設施,它的接近中心度一般是比較高的。

最後是圖的代數表示

1. 領接矩陣A

對於一個簡單的圖 G=(V,E),具有 n 個頂點 V;可以用鄰接矩陣來描述圖:

顯然,當 G 是無向圖(實現的時候常當作雙向圖)時,這種矩陣是對稱矩陣,下圖中無向圖 G5 和有向圖 G6 的鄰接矩陣分別為 A1 和 A2。

注意區分有向和無向,如果帶權,則矩陣中的0-1就會被edge的權重所替代了。

2. 度矩陣D

一般來說,有向圖要分出度的度矩陣和入度的度矩陣,但是很多時候為了方便,我們把有向圖當作無向圖來做,因此常常可以看到,無論是有向還是無向,都是一樣計算所有的與節點相連的 edge 的權重之和,注意是權重不是直接計算節點,因為有權圖表示不服;(但是應該一些場景的應用下還是會劃分為出度和入度的度矩陣的)

3. 拉普拉斯矩陣

這裡有個比較直觀的例子:

給定一個graph:

其領接矩陣:

可以看出這是一個無向無權的graph;

則拉普拉斯矩陣為:

對稱歸一化拉普拉斯:

直接看上面的這個公式更好理解一些,可以看到對稱歸一化之後,對角元素全為1,之所以進行對稱歸一化主要是因為對稱歸一化之後的拉普拉斯矩陣有很多好的性質。

4. 隨機遊走標準化拉普拉斯矩陣

5. 關聯矩陣

關聯矩陣即用一個矩陣來表示各個點和每條邊之間的關係。

對於一個無向圖 G,p 為頂點的個數,q 為邊數。bij 表示在關聯矩陣中點 i 和邊 j 之間的關係。若點 i 和邊 j 之間是連著的,則 bij = 1. 反之,則 bij = 0.

編輯:文婧

相關焦點

  • 面向軟體工程師的面試準備–以Google為例的完整指南
    面試的難易程度取決於您在Google中應聘的軟體工程角色的水平。軟體工程師或SWE-II(3級)是入門級的全職軟體工程師。在這個級別上,有4或5個現場回合,L3和L4的風口浪尖(如下),他們可能會提出設計問題,但一般不會。SWE-III(4級)適用於博士學位等。在這個級別上,至少要進行4到5個現場回合,至少還要回答一個系統設計問題。
  • 算法工程師路線圖(經驗濃縮,純乾貨!)
    說起算法(Algorithm),需要值得注意的是,數據結構與算法,機器學習算法都可簡稱為算法,但兩者是完全不同的。數據結構與算法是計算機科學中的一門基礎課程,主要內容是關於如何設計電腦程式,使得程序能夠運行更快,佔用內存更少。通常所說的程式設計師面試要刷算法題,指的便是數據結構與算法中的算法。
  • 應聘機器學習工程師?這是你需要知道的12個基礎面試問題
    如果想應聘機器學習工程師崗位,你可能會遇到技術面試,這是面試官掂量你對技術的真正理解的時候,所以還是相當重要的。近日,JP Tech 發表了一篇文章,介紹了他們面試新人時可能會提出的 12 個面試問題。問題很基礎,但卻值得一看。這些問題是我在面試 AI 工程師崗位時常問到的問題。事實上,並非所有面試都需要用到所有這些問題,因為這取決於面試者的經驗以及之前做過的項目。
  • 一位硬體工程師的面試經歷
    一位硬體工程師的面試經歷 工程師吳畏 發表於 2018-10-18 10:13:00 今年就業形勢:今年形勢依舊不景氣,英特爾硬體部門基本不招人,思科硬體部門和信號完整性方面也不招人
  • 微軟、優步,老工程師告訴你哪些數據結構和算法最重要
    作者:Gergely Orosz機器之心編譯參與:小舟、杜偉數據結構和基礎算法作為計算機科學的必學課程,近幾年卻關注度越來越少。但?不僅如此,也有更多的人抱怨稱算法只是純粹的學術練習。在 Homebrew 作者 Max Howell 發表他的谷歌面試經歷之後,這樣的想法被進一步普及。
  • 五分鐘學編程:怎樣才能學好筆試面試最愛考察的算法
    本文思維導圖什麼是算法上回我們有一篇文章,講述了作為一個新人程式設計師,如何學習數據結構這門課程,其實呢,數據結構和算法是息息相關的,為什麼這麼說呢,因為數據結構本身只是一個載體,而在數據結構之上產生作用和輸出價值的東西其實是算法。
  • 算法中的微積分:5大函數求導公式讓你在面試中脫穎而出
    事實上,所有機器學習算法的本質都是數學問題,無論是支持向量機、主成分分析還是神經網絡最終都歸結為對偶優化、譜分解篩選和連續非線性函數組合等數學問題。只有徹底理解數學,才能正真掌握這些機器學習算法。Python中的各種資料庫能幫助人們利用高級算法來完成一些簡單步驟。
  • 《Python程式設計師面試算法寶典》PDF超清版開源了文末附下載方式
    、分類歸納,提煉出算法面試的各種應對技巧,是一本Python程式設計師算法面試的圖書寶典。√ 採用抽絲剝繭式分析,深入解釋計算機科學的底層邏輯——算法及原理。√ 包括60多個算法題目,針對性強,拿來就用。通過實戰學習解題思路。《Python程式設計師面試寶典》是一本介紹Python程式設計師面試的圖書寶典。
  • 關於圖算法 圖分析的基礎知識概覽
    今天內容很多,坐穩~目錄圖算法 & 圖分析圖基礎知識連通圖與非連通圖未加權圖與加權圖有向圖與無向圖非循環圖和循環圖圖算法路徑搜索算法DFS & BFS最短路徑最小生成樹隨機遊走中心性算法
  • 關於圖算法 & 圖分析的基礎知識概覽
    今天內容很多,坐穩~目錄圖算法 & 圖分析圖基礎知識連通圖與非連通圖未加權圖與加權圖有向圖與無向圖非循環圖和循環圖我們可以:查詢圖數據,使用基本統計信息,可視化地探索圖、展示圖,或者將圖信息預處理後合併到機器學習任務中。圖的查詢通常用於局部數據分析,而圖計算通常涉及整張圖和迭代分析。圖算法是圖分析的工具之一。圖算法提供了一種最有效的分析連接數據的方法,它們描述了如何處理圖以發現一些定性或者定量的結論。圖算法基於圖論,利用節點之間的關係來推斷複雜系統的結構和變化。
  • 2020山東教師招聘面試:海陸變遷《板塊的運動》教案
    2020山東教師招聘面試:海陸變遷《板塊的運動》教案 為了大家能夠更好的備戰山東教師招聘考試,中公教育小編特整理了山東教師招聘公共基礎知識備考資料,今天給大家帶來:2020山東教師招聘面試:海陸變遷《板塊的運動》教案,
  • 機械工程師聯盟(2016年-20201207)
    倍爽2017-09-21應該了解的尺寸公差的基本知識工程師必知的9種工裝夾具的設計要點!2017-09-23最詳細的汽車發動機PPT+動圖基準選擇不合理害死人!(轉給研發設計工程師看看)2017-09-24不懂基準,能說懂公差嗎?滾動軸承,你了解多少?
  • 機器人結構工程師薪資_中國機器學習工程師薪資 - CSDN
    這裡的「算法」和計算機CS的「算法」還不太一樣,AI算法是偏數學推導的,所以數學底子還是需要點的,學的越深,要求越高。面試的時候,很少讓手寫代碼,90%都是在問模型摳算法細節。在學校我是一個不愛記筆記的人,甚至是一個不愛上課的人。
  • 高效「背誦」面試題的三定法則
    先上圖,建議收藏。 不難發現: 題目1是有固定答案的封閉式面試題; 題目2開放式題目,側重考你的理解深度; 題目3就是典型的邏輯算法題了。 因此,在你「背誦」面試題的第一步,你首先要搞清楚的就是題目類型。
  • 算法工程師的數學基礎|如何理解概率分布函數和概率密度函數
    【算法工程師的數學基礎】系列將會從線性代數、微積分、數值優化、概率論、資訊理論五個方面進行介紹。《算法工程師的數學基礎》已更新:其實在之前的 算法工程師的數學基礎|概率論 章節中簡答涉及了一些變量類型和概率分布的內容,但並沒有進行單獨介紹,本章節將其單領出來進行說明。
  • 如何在12個月內從零基礎成為一個在舊金山工作的軟體工程師
    .Outco專門針對軟體工程師的面試過程,因為這個過程經常給許多甚至有經驗和熟練的工程師造成困擾.雖然我現在可以很好地寫JavaScript代碼,但我絕對不會在白板上解決任何算法問題.這正是Outco為學生做的一個特別的準備,因為不論好壞,白板仍然是科技公司最受歡迎的面試工具.此外,我還可以將Outco的帳單延期到找到工作之後.
  • 面試不再怕,程式設計師大佬教你20行Python代碼,搞懂LRU算法
    LRU算法在後端工程師面試中,是一個比較常出現的題目,這篇文章帶大家一起,理解LRU算法,並最終用Python輕鬆實現一個基於LRU算法的緩存。緩存是什麼先看一張圖,當我們訪問網頁,瀏覽器會給伺服器發請求,伺服器會經過一系列的運算,把頁面返回給瀏覽器。
  • 網際網路公司最常見的面試算法題大集合
    很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。LeetCode是一個美國的在線編程網站,收集了各個大廠的筆試面試題,對找工作的畢業生和開發者來說,非常有價值。不過LeetCode上面的題目很多都是考察應聘者對基礎知識的應用,適合進行練習編程基礎或者準備面試。
  • 硬體工程師面試概率最高的題目:晶振的匹配電容計算公式
    Author: Jackie Long很多硬體工程師面試官都會問一些"看似比較偏"的技術問題,比如,晶振的匹配電容計算公式。然而,看似偏的技術問題其實並不是真正的偏,是因為真正(去)理解的人比較少。其實,這就是普通工程師與優秀工程師之間的區別!有太多的東西實際應用起來差別並不大,優秀工程總會比普通工程師要懂得多一些,比如晶體,51、AVR、STC、PIC、STM32等單片機典型應用電路一大堆,照著畫原理圖就是了,無論是大牛還是菜鳥,使用起來大家都一樣!
  • 職場英語口語:面試實戰之應聘機械工程師 2
    新東方網>英語>英語學習>職場英語>職場百科>正文職場英語口語:面試實戰之應聘機械工程師 2 2012-12-19 14:28 來源:原版英語 作者: