学习小计: Kaggle Learn Embeddings

 

Embedding表示map f: X(高维) -> Y(低维),减小数据维度,方便计算+提高准确率。

参看Kaggle Learn:https://www.kaggle.com/learn/embeddings

 

官方DNN示例:

 

user_id_input = keras.Input(shape=(1,), name='user_id')
movie_id_input = keras.Input(shape=(1,), name='movie_id')
user_embedded = keras.layers.Embedding(df.userId.max()+1, user_embedding_size, 
                                       input_length=1, name='user_embedding')(user_id_input)
movie_embedded = keras.layers.Embedding(df.movieId.max()+1, movie_embedding_size, 

 

官方Matrix Factorization示例:

movie_embedding_size = user_embedding_size = 8

# Each instance consists of two inputs: a single user id, and a single movie id
user_id_input = keras.Input(shape=(1,), name='user_id')
movie_id_input = keras.Input(shape=(1,), name='movie_id')
user_embedded = keras.layers.Embedding(df.userId.max()+1, user_embedding_size, 
                                       input_length=1, name='user_embedding')(user_id_input)
movie_embedded = keras.layers.Embedding(df.movieId.max()+1, movie_embedding_size, 
                                        input_length=1, name='movie_embedding')(movie_id_input)

dotted = keras.layers.Dot(2)([user_embedded, movie_embedded])
out = keras.layers.Flatten()(dotted)

 

两种类型对比如下,简单模型(蓝色)的表现也相当好,两个模型都有明显的过拟合。

 

Exploring Embeddings With Gensim: https://www.kaggle.com/colinmorris/exploring-embeddings-with-gensim

虽源于词向量模型,但是对于电影评价,电影向量模型仍然很实用。

可用于计算电影(或单词)的相似度,支持语义计算(+-),例如可用于求解如下问题:

  ‘Cars 2’:‘Brave’== '?':‘Pocahontas’,解释,‘Cars 2’相对于‘Brave’就如'?'相对于‘Pocahontas’,求电影'?'最佳匹配。

方程组:

Cars 2 = Brave + X
'?'  = Pocahontas + X

解方程得到:

'?' = Pocahontas + (Cars 2 - Brave)

Scripts关键语句:

kv.most_similar(
    ['Pocahontas', 'Cars 2'],
    negative = ['Brave']
)

 

Visualizing Embeddings With t-SNE,参考Kaggle Learn:   https://www.kaggle.com/colinmorris/visualizing-embeddings-with-t-sne

t-SNE是一种降维算法,一种数据探索和可视化技术,常用于高维数据可视化(降维到2D)

全称:随机邻近嵌入stochastic neighborhood embedding

其基本原理,参考:https://blog.csdn.net/scythe666/article/details/79203239, https://www.analyticsvidhya.com/blog/2017/01/t-sne-implementation-r-python/

 

posted @ 2018-12-27 13:34  xbit  阅读(410)  评论(0编辑  收藏  举报