原创 TF-IDF原理及spark使用

TF-IDF(Term Frequency/Inverse Document Frequency,詞頻-逆文檔頻率)是一種統計方法,旨在反映關鍵詞(Term)對集合或語料庫中的文檔的重要程度。它經常被用作搜索信息檢索,文本挖掘和用

原创 基於隨機遊走的PersonalRank

《推薦系統實戰》中介紹了基於圖的推薦算法,將用戶行爲數據表示成圖的形式。Standford的Haveliwala於2002年在他《Topic-sensitive pagerank》一文中提出了PersonalRank算法。原理上與

原创 經典論文閱讀(二)--DIN:深度興趣網絡

DIN(Deep Interest Network)是由阿里媽媽精準定向廣告算法團隊在KDD2018提出的針對電商場景深入理解用戶興趣的預估模型,也可適用於其他場景。 主要貢獻: 指出了使用固定長度的向量來表達用戶多樣性的興趣的

原创 Kafka源碼閱讀-Controller(二)

上一篇kafka源碼(一)correspond to/explain Kafka設計解析(二) 中的3.2、3.3。以前一直用kafka 0.8.2.x,那時候redis開始風靡,hadoop方興未艾,一晃四五年過去了,終於老得可

原创 Kafka源碼閱讀-Controller(一)

源碼版本:0.10.2.x 引用 Kafka Controller Internals: In a Kafka cluster, one of the brokers serves as the controller, whic

原创 spark RDD和streaming的容錯機制

1. RDD Lineage容錯 分佈式系統中,常通過副本機制通過數據冗餘,來提供高可用性HA。個人認爲RDD主要是通過冗餘計算的方式來容錯的。 RDD並不提供副本機制。 RDD的分佈式是指,一個RDD可以切分多個分區(parti

原创 HDFS架構設計和讀寫流程

HDFS是一種分佈式文件系統,具有高度的容錯能力,旨在部署在低成本硬件上。 設計目標: 考慮硬件故障,檢測故障並快速、自動地從故障中恢復是HDFS的核心目標。 HDFS設計用於批處理,而不是用戶交互使用。重點在於數據訪問的高吞吐

原创 spark實現pagerank算法解析

網上有這樣一個題目: PageRank是執行多次連接的一個迭代算法,因此它是RDD分區操作的一個很好的用例。算法會維護兩個數據集:一個由(pageID,linkList)的元素組成,包含每個頁面的相鄰頁面的列表;另一個由(pag

原创 Delaunay三角剖分算法初探

Delaunay三角網在空間鄰近分析上是一種較好的支持模型, 廣泛應用於空間聚類、多邊形羣的合併、人像關鍵點提取、形態分析中。 問題:一堆二維點中尋找一個與目標點最近(歐氏距離最小)的點。 1. 三角剖分與Delaunay剖分的

原创 經典論文閱讀(一)--NCF: Neural Collaborative Filtering

NCF是神經網絡版本的協同過濾,推薦算法的經典的方法之一。本文回顧一下NCF論文的要點。 摘要(What) NCF是一種通用的框架,它可以表達和推廣矩陣分解。 爲了提升NFC的非線性建模能力,我們提出了使用多層感知機去學習用戶-項

原创 深度協同過濾NCF實踐

修改官網代碼 去掉了不方便直接引用的from official.utils.*代碼,關鍵處理處添加了註釋。 從official.utils.flags扒出一個有用的小函數: def get_gpus_num(): """ 獲取

原创 spark(十)RDD的groupByKey和reduceByKey實現

先上源碼: /** RDD.scala * Return an RDD of grouped items. Each group consists of a key and a sequence of elements

原创 tensorflow提升樹實踐

以決策樹爲基函數的提升方法稱爲提升樹(boosting tree)。提升樹採用前向分步算法,根據每輪迭代的殘差值,學習得到一個迴歸樹,用加法模型得到提升樹的結果。迴歸問題採用平方誤差損失函數,分類問題用指數損失函數。 指數損失通過

原创 glibc中memcpy和memmove函數的實現

兩三年前的一篇筆記,挺有意思的。 [ glibc-2.12.2 ] 中memcpy()的源碼,加上個別中文註釋: // 位於 string/memcpy.c #include <string.h> #include <memcopy.h

原创 spark SQL(11)sql語句執行流程源碼

spark通常這樣開始執行一條SQL語句: val spark_sess = SparkSession .builder() .appName("Spark SQL basic example")