一、aribnb global context 代码实现
通过修改原始WORD2VEC算法,实现ARIBNB中将order商品作为全局上下文。
可以通过运行embedding下的AribnbOrdPredict实现。运行代码中给定例子可以看出,对于序列为: 9744_81732,2679_372273,2679_411245,2679_593370,4833_-1,4833_0,9434_19306,9434_7623,9434_89486,9435_12310,9435_26909,9435_422036,-1
如:
----中心词为:9744_81732,随机数为:b=2 则0 的窗口大小为3的词下标为:1 ,2 ,3 ,11 ,
----中心词为:2679_372273,随机数为:b=4 则1 的窗口大小为1的词下标为:0 ,2 ,11 ,
的seesion,尾部字符为-1,说明该序列的倒数第二个商品为下单的商品,因此当前面每个词作为中心词的时候,其窗口词中都应该含有9435_422036,即下标为11的商品。
二、glove 分布式训练
通过结合原始的WORD2VEC代码和https://github.com/petro-rudenko/spark-glove 这篇的单机GLOVE实现,实现GLOVE的分布式训练。