產生候選字是建議的第一個階段。查詢後, 系統會產生一組相關的候選文字。下表顯示兩個 產生候選人的常見做法:
類型 | 定義 | 範例 |
---|---|---|
依據內容篩選 | 依據項目的相似度推薦項目 跟使用者喜歡的品差不多 | 如果使用者 A 看了兩部可愛貓咪影片,系統就會判定 可以向該使用者推薦可愛的動物影片 |
協同過濾 | 同時使用查詢和項目的相似性 以便提供建議 | 如果使用者 A 和使用者 B 相似,而使用者 B 喜歡影片 1, 系統就能向使用者 A 推薦影片 1 (即使使用者 A 觀看過與影片 1 類似的任何影片)。 |
嵌入空間
無論是內容篩選或協同篩選功能,都會對應各個項目和每項查詢 對應到嵌入向量 \(E = \mathbb R^d\)。一般而言,嵌入空間是低維 (也就是 \(d\) 比語料庫的大小小很多),而且擷取 項目或查詢集的潛在結構。類似項目,例如 YouTube 同一位使用者通常能收看的影片,最後由同位觀眾一起觀看 嵌入空間「關閉」的概念取決於相似度量
相似度評估
相似度量測量指的是 \(s : E \times E \to \mathbb R\) 會採用一對嵌入,並傳回用於測量相似度的純量。 您可以用下列方式產生待候選項目: 查詢嵌入 \(q \in E\)時,系統會尋找項目嵌入 \(x \in E\) 接近 \(q\), 也就是高值嵌入 相似度 \(s(q, x)\)。
大多數推薦系統為了判斷相似度 重複下列一或多項操作:
- 餘弦
- 內積
- 歐幾里德距離
餘弦
這是兩者間角的餘弦 向量, \(s(q, x) = \cos(q, x)\)
點產品
兩個向量的內積 \(s(q, x) = \langle q, x \rangle = \sum_{i = 1}^d q_i x_i\)。 它也是由 \(s(q, x) = \|x\| \|q\| \cos(q, x)\) ( 角度乘以常態乘積)。因此,如果嵌入 正規化,然後是點積和餘弦。
歐幾里德距離
這是歐幾里德的平時距離 空格 \(s(q, x) = \|q - x\| = \left[ \sum_{i = 1}^d (q_i - x_i)^2\right]^{\frac{1}{2}}\)。 距離越短表示相似度越高。請注意,在嵌入 的平方距離與內積相等 (和餘弦) 達到常數,因為 案件 \(\frac{1}{2}\|q - x\|^2 = 1 - \langle q, x \rangle\)。
比較相似度指標
請參考右側圖中的範例。黑色向量說明瞭 查詢嵌入其他三個嵌入向量 (項目 A、項目 B、項目 C) 代表候選項目視所用的相似度量而定 項目排名可能不同。
使用該圖片,試著使用上述三種 相似度測量指標:餘弦、內積和歐幾裡距離。
哪些相似度測量的資料?
與餘弦相比,內積的相似度可判斷 解碼器的常態值也就是說 相似度越高 (適用於具有銳角的項目) 推薦商品的機率也越高這可能會影響 請參考以下建議:
在訓練集內非常頻繁出現的項目 (例如 熱門 YouTube 影片) 通常含有大型規範的嵌入項目。 如果需要擷取熱門程度資訊 偏好中階產品但要是不小心 項目可能會導致系統優先顯示推薦內容。實務上 可使用其他相似度量的變化版本, 一直以來都是如此舉例來說 \(s(q, x) = \|q\|^\alpha \|x\|^\alpha \cos(q, x)\) 範圍 部分 \(\alpha \in (0, 1)\)。
在極少出現的項目中,系統無法頻繁更新 訓練而成因此如果一開始使用較大的常態進行初始化, 所以系統可能優先推薦較不相關的商品。為了避免這種情況 請謹慎考慮嵌入初始化 一般化我們會在第一個練習中詳細說明這個問題。