# embedding

## embedding

* [返回顶层目录](https://github.com/luweikxy/machine-learning-notes/tree/994efe9a1942533ce4f543c98b52dec4b6225352/SUMMARY.md)
* [返回上层目录](/machine-learning-notes/advanced-knowledge.md)
* [Embedding方法的学习路径](https://luweikxy.gitbook.io/machine-learning-notes/advanced-knowledge/pages/-LpO5vHsPLgHl_M8oQXi#Embedding方法的学习路径)
* Word2vec基础
* Word2vec的衍生及应用
* [NetworkEmbedding](/machine-learning-notes/advanced-knowledge/embedding.md#GraphEmbedding)
  * [LINE: Large-scale Information Network Embedding](/machine-learning-notes/advanced-knowledge/embedding.md#LINE)

## Embedding方法的学习路径

这篇文章来自[王喆的机器学习笔记](https://zhuanlan.zhihu.com/wangzhenotes)中的[《Embedding从入门到专家必读的十篇论文》](https://zhuanlan.zhihu.com/p/58805184)。

这里&#x662F;**「王喆的机器学习笔记」**&#x7684;第十篇文章，今天我们不分析论文，而是总结一下**Embedding方法的学习路径**，这也是我三四年前从接触word2vec，到在推荐系统中应用Embedding，再到现在逐渐从传统的sequence embedding过渡到graph embedding的过程，因此该论文列表在应用方面会对推荐系统、计算广告方面有所偏向。

### 第一部分 Word2vec基础

**1.** [\[Word2Vec\] Efficient Estimation of Word Representations in Vector Space (Google 2013)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BWord2Vec%255D%2520Efficient%2520Estimation%2520of%2520Word%2520Representations%2520in%2520Vector%2520Space%2520%2528Google%25202013%2529.pdf)

Google的Tomas Mikolov提出word2vec的两篇文章之一，这篇文章更具有综述性质，列举了NNLM、RNNLM等诸多词向量模型，但最重要的还是提出了CBOW和Skip-gram两种word2vec的模型结构。虽然词向量的研究早已有之，但不得不说还是Google的word2vec的提出让词向量重归主流，拉开了整个embedding技术发展的序幕。

**2**. [\[Word2Vec\] Distributed Representations of Words and Phrases and their Compositionality (Google 2013)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BWord2Vec%255D%2520Distributed%2520Representations%2520of%2520Words%2520and%2520Phrases%2520and%2520their%2520Compositionality%2520%2528Google%25202013%2529.pdf)

Tomas Mikolov的另一篇word2vec奠基性的文章。相比上一篇的综述，本文更详细的阐述了Skip-gram模型的细节，包括模型的具体形式和 Hierarchical Softmax和 Negative Sampling两种可行的训练方法。

**3**. [\[Word2Vec\] Word2vec Parameter Learning Explained (UMich 2016)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BWord2Vec%255D%2520Word2vec%2520Parameter%2520Learning%2520Explained%2520%2528UMich%25202016%2529.pdf)

虽然Mikolov的两篇代表作标志的word2vec的诞生，但其中忽略了大量技术细节，如果希望完全读懂word2vec的原理和实现方法，比如词向量具体如何抽取，具体的训练过程等，强烈建议大家阅读UMich Xin Rong博士的这篇针对word2vec的解释性文章。惋惜的是Xin Rong博士在完成这篇文章后的第二年就由于飞机事故逝世，在此也致敬并缅怀一下Xin Rong博士。

### 第二部分 Word2vec的衍生及应用

**4**. [\[Item2Vec\] Item2Vec-Neural Item Embedding for Collaborative Filtering (Microsoft 2016)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BItem2Vec%255D%2520Item2Vec-Neural%2520Item%2520Embedding%2520for%2520Collaborative%2520Filtering%2520%2528Microsoft%25202016%2529.pdf)

这篇论文是微软将word2vec应用于推荐领域的一篇实用性很强的文章。该文的方法简单易用，可以说极大拓展了word2vec的应用范围，使其从NLP领域直接扩展到推荐、广告、搜索等任何可以生成sequence的领域。

**5**. [\[Airbnb Embedding\] Real-time Personalization using Embeddings for Search Ranking at Airbnb (Airbnb 2018)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BAirbnb%2520Embedding%255D%2520Real-time%2520Personalization%2520using%2520Embeddings%2520for%2520Search%2520Ranking%2520at%2520Airbnb%2520%2528Airbnb%25202018%2529.pdf)

Airbnb的这篇论文是KDD 2018的best paper，在工程领域的影响力很大，也已经有很多人对其进行了解读。简单来说，Airbnb对其用户和房源进行embedding之后，将其应用于搜索推荐系统，获得了实效性和准确度的较大提升。文中的重点在于embedding方法与业务模式的结合，可以说是一篇应用word2vec思想于公司业务的典范。

### 第三部分 Graph Embedding

基于word2vec的一系列embedding方法主要是基于序列进行embedding，在当前商品、行为、用户等实体之间的关系越来越复杂化、网络化的趋势下，原有sequence embedding方法的表达能力受限，因此Graph Embedding方法的研究和应用成为了当前的趋势。

**6**. [\[DeepWalk\] DeepWalk- Online Learning of Social Representations (SBU 2014)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BGraph%2520Embedding%255D%2520DeepWalk-%2520Online%2520Learning%2520of%2520Social%2520Representations%2520%2528SBU%25202014%2529.pdf)

以随机游走的方式从网络中生成序列，进而转换成传统word2vec的方法生成Embedding。这篇论文可以视为Graph Embedding的baseline方法，用极小的代价完成从word2vec到graph embedding的转换和工程尝试。

[Graph embedding: 从Word2vec到DeepWalk](https://zhuanlan.zhihu.com/p/59887204)

**7**. [\[LINE\] LINE - Large-scale Information Network Embedding (MSRA 2015)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BLINE%255D%2520LINE%2520-%2520Large-scale%2520Information%2520Network%2520Embedding%2520%2528MSRA%25202015%2529.pdf)

相比DeepWalk纯粹随机游走的序列生成方式，LINE可以应用于有向图、无向图以及边有权重的网络，并通过将一阶、二阶的邻近关系引入目标函数，能够使最终学出的node embedding的分布更为均衡平滑，避免DeepWalk容易使node embedding聚集的情况发生。

**8**. [\[Node2vec\] Node2vec - Scalable Feature Learning for Networks (Stanford 2016)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BNode2vec%255D%2520Node2vec%2520-%2520Scalable%2520Feature%2520Learning%2520for%2520Networks%2520%2528Stanford%25202016%2529.pdf)

node2vec这篇文章还是对DeepWalk随机游走方式的改进。为了使最终的embedding结果能够表达网络局部周边结构和整体结构，其游走方式结合了深度优先搜索和广度优先搜索。

**9**. [\[SDNE\] Structural Deep Network Embedding (THU 2016)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BSDNE%255D%2520Structural%2520Deep%2520Network%2520Embedding%2520%2528THU%25202016%2529.pdf)

相比于node2vec对游走方式的改进，SDNE模型主要从目标函数的设计上解决embedding网络的局部结构和全局结构的问题。而相比LINE分开学习局部结构和全局结构的做法，SDNE一次性的进行了整体的优化，更有利于获取整体最优的embedding。

**10**. [\[Alibaba Embedding\] Billion-scale Commodity Embedding for E-commerce Recommendation in Alibaba (Alibaba 2018)](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/blob/master/Embedding/%255BAlibaba%2520Embedding%255D%2520Billion-scale%2520Commodity%2520Embedding%2520for%2520E-commerce%2520Recommendation%2520in%2520Alibaba%2520%2528Alibaba%25202018%2529.pdf)

阿里巴巴在KDD 2018上发表的这篇论文是对Graph Embedding非常成功的应用。从中可以非常明显的看出从一个原型模型出发，在实践中逐渐改造，最终实现其工程目标的过程。这个原型模型就是上面提到的DeepWalk，阿里通过引入side information解决embedding问题非常棘手的冷启动问题，并针对不同side information进行了进一步的改造形成了最终的解决方案EGES（Enhanced Graph Embedding with Side Information）。

注：由于上面十篇论文都是我之前整理的paper list里面的内容，所以没有再引用原文链接，希望大家见谅。想偷懒的同学也可以star或者fork我的github paper list：[wzhe06/Reco-papers](https://link.zhihu.com/?target=https%3A//github.com/wzhe06/Reco-papers/tree/master/Embedding)

这里&#x662F;**「王喆的机器学习笔记」 ，**&#x5173;于Embedding的这十篇论文包括了从基础理论、模型改造与进阶、模型应用等几个方面的内容，还是比较全面的，希望能帮助你成为相关方向的专家。但一个人的视野毕竟有局限性，希望大家能够反馈给我其他embedding相关的著名文章，我可以进行补充和替换。

## Network\_Embedding

什么时候更新graph embedding的文章啊，最近在做这一块，很期待 还是找几篇论文看看吧 deepwalk note2vec line 都不难实现

[深度学习中不得不学的Graph Embedding方法](https://zhuanlan.zhihu.com/p/64200072)

[网络表示学习综述：一文理解Network Embedding](https://www.jiqizhixin.com/articles/2018-08-14-10)

[关于Network embedding的一些笔记(内含数据集）](https://blog.csdn.net/ZhichaoDuan/article/details/79570051)

### LINE

LINE的介绍见：[LINE: Large-scale Information Network Embedding](/machine-learning-notes/advanced-knowledge/embedding/network-embedding/line-large-scale-information-network-embedding.md)

## 论文

#### Applying word2vec to Recommenders and Advertising

[《Applying word2vec to Recommenders and Advertising》](http://mccormickml.com/2018/06/15/applying-word2vec-to-recommenders-and-advertising/)

## 参考资料

* [Embedding从入门到专家必读的十篇论文-知乎王喆](https://zhuanlan.zhihu.com/p/58805184)

"Embedding方法的学习路径"一节参考了此知乎专栏文章。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://luweikxy.gitbook.io/machine-learning-notes/advanced-knowledge/embedding.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
