作者 | mczhao,攜程資深研發經理,專注於自然語言處理技術領域。
概覽
隨著消費熱點和網紅新梗的不斷湧現,在電商平台的NLP任務中,經常會出現一些之前沒有見過的字。這些字不在系統已有的字庫中,稱為"未登入詞"。
一方面,詞庫中詞的缺失影響了一些基於詞庫的分詞器的分詞質量,間接影響了文本召回質量和高亮提示的質量,即用戶文本搜尋的準確性和搜尋結果的可解釋性。
另一方面,在主流NLP深度學習演算法BERT/Transformer等等中,對中文處理時常使用字向量來取代詞向量。理論上使用詞向量的效果應是更好的,但是由於未登錄詞的原因,在實踐過程中使用字向量的效果更好。如果詞庫更加完善,那麼使用詞向量的效果將優於使用字向量的效果。
綜上,新詞發現是我們當下需要解決的問題。
一、傳統無監督的方法
中文新詞發現這個問題,在業界已經有了較成熟的解法。輸入是一些語料,將這些文字做NGram切分以後,產生候選片段。計算這些片段的一些統計特徵,再根據這些特徵判斷這個片段是不是一個字。
業界主流的做法是統計和觀察這三個面向的指標:熱度、內聚度、左右鄰字豐富度。描述這三個指標的文章網路上也有很多,這裡簡單介紹一下,細節可以參考Hello NLP和Smooth NLP的兩篇新詞發現文章。
1.1 熱度
使用詞頻來表示熱度。統計所有語料的所有片段的出現次數,那些高頻的片段往往就是一個字。
1.2 內聚度
使用點互資訊來衡量內聚度:
例如,我們判斷漢庭是不是一個詞,log(P("漢庭")/P("漢")P("庭"))。漢庭成詞的機率,和"漢庭"的熱度成正比,和"漢"、"庭"的單字熱度成反比。這個很好理解,像是漢字中最常出現的字"的",隨便一個漢字和"的"搭配的機率非常高,但是並不意味這"x的"或者"的x"就是一個詞,這裡"的"的單字熱度就起了一個抑制的作用。
1.3 左右鄰字豐富度
#左右鄰接熵來表示左右字的豐富程度。左右鄰接熵就是候選詞片段左邊或右邊出現的字的分佈的隨機性。可以拆開看左邊的熵和右邊的熵,也可以把兩個熵合併成一個指標。
例如,"香格里拉"這個片段其熱度和內聚度都非常高,對應其子片段"香格里"的熱度和內聚度也很高,但是因為"香格里"後面大部分情況都出現"拉"字,它的右鄰接熵很低,對其成詞起抑製作用,可以判斷出"香格里"三字不能單獨成詞。
二、經典方法的限制
經典方法的問題在於需要手動設定閾值參數。一個NLP專家在了解當前語料中片段的機率分佈以後,將這些指標透過公式組合或獨立使用,然後設定閾值來作為判斷標準,使用這個標準判斷的結果也可以做到很高的準確度。
但機率分佈或說詞頻並不是一成不變的,隨著語料庫越來越豐富,或者語料的加權熱度(通常是對應的商品熱度)波動變化,專家設定的公式中的參數和閾值也需要不斷調整。這就浪費了很多人力,讓人工智慧工程師淪為調參俠。
三、基於深度學習的新詞發現
3.1 詞頻機率分佈圖
上述業界已有演算法的三個指標,根本來源的特徵只有一個,就是詞頻。在統計學的方法中,通常會把一些簡單又關鍵的統計量以圖片的方式展示,比如直方圖、箱線圖等等,即使沒有模型介入,光憑人看,還是能夠一眼做出正確的判斷。可以把語料切出所有長度限定的片段,把片段的詞頻歸一化為0-255,映射為二維矩陣,行表示起始的字符,列表示終止的字符,一個像素點就是一個片段,像素點的明暗程度就是這個候選詞片段的熱度。
#上圖是"浦東機場華美達飯店"這個短句的詞頻機率分佈圖,我們驚喜地發現,光憑我們的肉眼,也大致可以分出一些較為明亮的、等腰直角三角形的區塊,例如:"浦東"、"浦東機場"、"機場"、"華美達酒店"等等。這些區塊可以判斷對應的片段正是我們所需要的字。
3.2 經典影像分割演算法
#透過觀察詞頻機率分佈圖,我們可以把一個短句分詞問題轉換成一個影像分割問題。早期的影像分割演算法,和上述的新詞發現演算法差不多,也是基於閾值的偵測邊緣灰階變化的演算法,隨著技術發展,現在一般使用深度學習演算法,其中比較著名的是U-Net影像分割演算法。
U-Net的前半部分使用卷積下取樣,提取多層不同粒度的特徵,後半部分上採樣,將這些特徵在同一解析度下concat起來,最後透過全連接層Softmax得到像素層級的分類結果。
3.3 基於卷積網路的新詞發現演算法
#對詞頻機率分佈圖的切分和對圖的切分類似,都是將位置相鄰且灰階相近的部分切出來。所以對短句的切分,也可以參考影像分割演算法,使用全卷積網路來做。使用卷積來做的原因是,無論我們在切割短句或影像的時候,都更多的關注局部訊息,就是靠近切割邊緣那些像素點。使用多層網路的原因,多層的池化可以表現出對不同層特徵的閾值判斷,例如我們對地圖地形切割的時候既要考慮坡度(一階導/差分)還需要考慮坡度的變化(二階導/差分),兩者分別取閾值並且組合方式不僅僅是簡單的線性加權而是串行的網路。
對於新詞發現場景我們設計如下的演算法:
- #先把短句的詞頻分佈圖用0填充到24x24;
- 先有兩個3x3的捲積層,並輸出4通道;
- 把兩個卷積層concat起來,再做一次3x3的捲積,並且輸出單通道;
- 損失函數使用logistic=T,所以最後一層不用做softmax輸出即可用於分類;
##相比於U-Net,有以下差異:
#1)放棄了下取樣和上取樣,原因是一般用來分割的短句比較短,詞頻分佈圖的解析度本來就不高,所以模型也隨之簡化了。
2)U-Net是三分類(分塊1、分塊2、在邊緣上),此演算法只需要二分類(像素點是否為單字)。所以最後輸出的結果也是不一樣的,U-Net輸出一些連續的分塊和分割線,而我們只需要某個點是不是陽性的。
下圖是訓練完模型以後,用模型預測的結果。我們可以看到輸出結果中,"上海"(上這一行、海這一列)、"虹橋"、"商務區"這三個詞對應的像素點被識別了出來。如果想探究模型是怎麼生效的,可以看中間層的捲積核。我們先將模型捲積層的捲積核數從4簡化到1,訓練以後,透過TensorFlow的API檢視中間層:model.get_layer('Conv2').__dict__。我們發現Conv2層的捲積核如下:
可以看到第一行和第二行對模型的效果是相反的,對應了該像素點的上一行減掉當前行的差分(帶權重),如果灰度差異越大,這個像素點代表的字串越有可能成詞。
也可以看到第一行第二列0.04505884的絕對值比較小,可能是因為第一行減第二行的正向參數和第三列減第二列的負向參數相互抵消。
五、最佳化空間
本文描述的是一個結構非常簡單的全卷積網路模型,還有很大的提升空間。
一是擴充特徵選取範圍。 例如,本文中輸入特徵只有詞頻,如果把左右鄰接熵也納入輸入特徵,切分的效果會更加精準。
二是增加網路深度。 透過模型分析,發現第一層卷積主要是為了因應那些用0填滿的像素點產生的case,實際關注真實熱度的捲積只有一層,如果是3x3的捲積核只能看到一階差分結果,目前像素的前後第二行和第二列就沒有考慮到。可以適當擴大卷積核大小或加深網絡,來使模型的視野更大。但加深網路也會帶來過度擬合的問題。
最後,這個模型不僅可以用來補充詞庫以提高分詞效果,並且可以直接用作分詞的參考,在分詞流程的候選詞召回和分詞路徑打分這兩個步驟中都可以應用這個模型的預測結果。
以上是基於CNN的新詞發現演算法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

特斯拉是一个典型的AI公司,过去一年训练了75000个神经网络,意味着每8分钟就要出一个新的模型,共有281个模型用到了特斯拉的车上。接下来我们分几个方面来解读特斯拉FSD的算法和模型进展。01 感知 Occupancy Network特斯拉今年在感知方面的一个重点技术是Occupancy Network (占据网络)。研究机器人技术的同学肯定对occupancy grid不会陌生,occupancy表示空间中每个3D体素(voxel)是否被占据,可以是0/1二元表示,也可以是[0, 1]之间的

译者 | 朱先忠审校 | 孙淑娟在我之前的博客中,我们已经了解了如何使用因果树来评估政策的异质处理效应。如果你还没有阅读过,我建议你在阅读本文前先读一遍,因为我们在本文中认为你已经了解了此文中的部分与本文相关的内容。为什么是异质处理效应(HTE:heterogenous treatment effects)呢?首先,对异质处理效应的估计允许我们根据它们的预期结果(疾病、公司收入、客户满意度等)选择提供处理(药物、广告、产品等)的用户(患者、用户、客户等)。换句话说,估计HTE有助于我

译者 | 朱先忠审校 | 孙淑娟引言模型超参数(或模型设置)的优化可能是训练机器学习算法中最重要的一步,因为它可以找到最小化模型损失函数的最佳参数。这一步对于构建不易过拟合的泛化模型也是必不可少的。优化模型超参数的最著名技术是穷举网格搜索和随机网格搜索。在第一种方法中,搜索空间被定义为跨越每个模型超参数的域的网格。通过在网格的每个点上训练模型来获得最优超参数。尽管网格搜索非常容易实现,但它在计算上变得昂贵,尤其是当要优化的变量数量很大时。另一方面,随机网格搜索是一种更快的优化方法,可以提供更好的

导读:因果推断是数据科学的一个重要分支,在互联网和工业界的产品迭代、算法和激励策略的评估中都扮演者重要的角色,结合数据、实验或者统计计量模型来计算新的改变带来的收益,是决策制定的基础。然而,因果推断并不是一件简单的事情。首先,在日常生活中,人们常常把相关和因果混为一谈。相关往往代表着两个变量具有同时增长或者降低的趋势,但是因果意味着我们想要知道对一个变量施加改变的时候会发生什么样的结果,或者说我们期望得到反事实的结果,如果过去做了不一样的动作,未来是否会发生改变?然而难点在于,反事实的数据往往是

SimCLR(Simple Framework for Contrastive Learning of Representations)是一种学习图像表示的自监督技术。 与传统的监督学习方法不同,SimCLR 不依赖标记数据来学习有用的表示。 它利用对比学习框架来学习一组有用的特征,这些特征可以从未标记的图像中捕获高级语义信息。SimCLR 已被证明在各种图像分类基准上优于最先进的无监督学习方法。 并且它学习到的表示可以很容易地转移到下游任务,例如对象检测、语义分割和小样本学习,只需在较小的标记

一、盒马供应链介绍1、盒马商业模式盒马是一个技术创新的公司,更是一个消费驱动的公司,回归消费者价值:买的到、买的好、买的方便、买的放心、买的开心。盒马包含盒马鲜生、X 会员店、盒马超云、盒马邻里等多种业务模式,其中最核心的商业模式是线上线下一体化,最快 30 分钟到家的 O2O(即盒马鲜生)模式。2、盒马经营品类介绍盒马精选全球品质商品,追求极致新鲜;结合品类特点和消费者购物体验预期,为不同品类选择最为高效的经营模式。盒马生鲜的销售占比达 60%~70%,是最核心的品类,该品类的特点是用户预期时

译者 | 李睿 审校 | 孙淑娟随着机器学习成为人们每天都在使用的很多应用程序的一部分,人们越来越关注如何识别和解决机器学习模型的安全和隐私方面的威胁。 然而,不同机器学习范式面临的安全威胁各不相同,机器学习安全的某些领域仍未得到充分研究。尤其是强化学习算法的安全性近年来并未受到太多关注。 加拿大的麦吉尔大学、机器学习实验室(MILA)和滑铁卢大学的研究人员开展了一项新研究,主要侧重于深度强化学习算法的隐私威胁。研究人员提出了一个框架,用于测试强化学习模型对成员推理攻击的脆弱性。 研究

1.线性回归线性回归(Linear Regression)可能是最流行的机器学习算法。线性回归就是要找一条直线,并且让这条直线尽可能地拟合散点图中的数据点。它试图通过将直线方程与该数据拟合来表示自变量(x 值)和数值结果(y 值)。然后就可以用这条线来预测未来的值!这种算法最常用的技术是最小二乘法(Least of squares)。这个方法计算出最佳拟合线,以使得与直线上每个数据点的垂直距离最小。总距离是所有数据点的垂直距离(绿线)的平方和。其思想是通过最小化这个平方误差或距离来拟合模型。例如


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器