搜索研发工程师需要掌握的一些技能
文章目錄
- 基礎(chǔ)
- 語言
- 數(shù)據(jù)結(jié)構(gòu)與算法
- 工程方面
- 搜索相關(guān)
- 搜索主要模塊
- 電商搜索流程
- 分詞相關(guān)
- 搜索召回
- 相似度算法
- 相關(guān)詞推薦
- 排序相關(guān)
- 國美搜索
- 搜索算法工程師需要掌握的技能
基礎(chǔ)
語言
數(shù)據(jù)結(jié)構(gòu)與算法
工程方面
搜索相關(guān)
搜索主要模塊
電商搜索流程
分詞相關(guān)
搜索召回
相似度算法
相關(guān)詞推薦
Fpgrow:你可以理解為統(tǒng)計詞的共現(xiàn)次數(shù),只是fpgrowth統(tǒng)計起來效率更高
word2vec:word2vec是語義層面的相關(guān)
排序相關(guān)
國美搜索
1.分詞:基于詞典和機器學(xué)習(xí)相結(jié)合的,其中機器學(xué)習(xí)部分用的CFR,條件隨機場來做的分詞
2.搜索分詞用的是最大后向匹配,用最大后向匹配主要是考慮人的正常輸入習(xí)慣,比如玻璃水杯,要是前向最大切分就是玻璃水 杯,后向就是玻璃 水杯
索引分詞:
全切分:最小正向切分又叫全切分
分類預(yù)測:fasttext + 分詞命名實體識別 + 型號詞庫結(jié)合的
精排:
pointwise:就是看成ctr(點擊率預(yù)估)來給出每個商品點擊的概率值,按照概率值的大小對候選的商品排序
pairwise 更關(guān)注同一搜索詞下面不同商品的是否和搜索詞相關(guān),樣本構(gòu)造起來比pointwise麻煩
召回:bm25
關(guān)鍵詞提取:tfidf、textrank
意圖識別:
對query做分類預(yù)測,預(yù)測商品所在分類
搜索算法工程師需要掌握的技能
以下內(nèi)容摘選自知乎
說說我對搜索算法工程師能力要求的理解。這個能力要求,與求職者應(yīng)聘面試時的能力要求可能不一樣。畢竟,“面試造火箭,入職擰螺絲”是很常見的。
搜索算法的掌握,分兩個方面,一個是掌握的深度,另一個是掌握的范圍。
深度可以分幾個等級:
搜索算法的范圍其實非常廣。在整個搜索系統(tǒng)中,與算法最強相關(guān)的,我理解是查詢理解/query分析和排序。
主要是NLU相關(guān)的技術(shù),包括:分詞、新詞發(fā)現(xiàn)、詞權(quán)重計算、核心詞識別、改寫、同義詞、緊密度分析、意圖識別、糾錯等。這里面多數(shù)都依賴機器學(xué)習(xí)算法,也有少量是依賴詞典、規(guī)則。
從倒排索引中,召回相關(guān)的網(wǎng)頁。包括相關(guān)性計算,在相關(guān)性基礎(chǔ)上的粗排序。 相關(guān)性計算,至少知道tf-idf,bm25及各種變種等,知道每種算法的優(yōu)劣。
使用機器學(xué)習(xí)模型對召回結(jié)果做精細(xì)化的排序,Learning To Rank(LTR)。這是搜索系統(tǒng)中最關(guān)鍵的算法,幾乎決定了最終的排序效果。常見的算法包括LambdaMart, RankNet, LambdaRank等,至少知道PointWise, PairWise, ListWise等幾種算法的分類。深入使用過其中某幾個算法。
在排序中,還涉及語義匹配和點擊調(diào)權(quán)等算法,使用過DSSM, DBN等常規(guī)的算法。
除了上述3個,其它的像倒排索引構(gòu)建、網(wǎng)頁搜索中的爬蟲、網(wǎng)頁分析、摘要計算等,也會涉及一些算法。
我個人感受,搜索算法工程師是對經(jīng)驗要求特別高的一個崗位。不太像有些搞機器學(xué)習(xí)的崗位,知道幾個機器學(xué)習(xí)模型,一直在調(diào)優(yōu)這幾個模型來改善效果就行。搜索的效果是由非常多的因素共同影響決定的,整個系統(tǒng)比較龐大。
從普通的搜索算法工程師角度,一般不太可能對上述所有算法都非常熟悉,所以如果能對某一兩個模塊的算法非常熟悉,或者說經(jīng)驗很豐富,個人覺得已經(jīng)不錯了。如果是對這些都很熟悉,那就是算法的總負(fù)責(zé)人之類的了。
總結(jié)
以上是生活随笔為你收集整理的搜索研发工程师需要掌握的一些技能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis主从搭建和分片集群搭建
- 下一篇: 汇编中的寄存器