Press enter to see results or esc to cancel.

【Knowledge-Driven Event Embedding for Stock Prediction】

也是对于股价预测任务的一个Embedding的方法,这里的Embedding的方法是对于事件进行Embedding,和普通的Embedding不同,Event Embedding是基于三元组所进行的。举个例子,”Microsoft profit rises 11 percent”,可以写成一个三元组(A,P,O)的形式,在这里的A = “Microsoft profit”,这里的P = “rise”,这里的O = “11 percent”.A指的是Agent,P指的是Predicate ,O指的是Objective,

Event Embedding的方法是基于Word Embedding的,神经网络将这三个Components同时丢进一个Embedding之中。但是这种方法极大的受限于其Word Embedding,比如说在这里,如果两个事件之中并没有相同的词向量的话,那么很难将这两个事件认为是相似的事件。比如说”Steve Jobs quits Apple”和”John leaves Starbucks”这两个语义是非常的类似的,但是由于这里面的单词没有一个相同的,那么自然不会存在有什么很高的相似度。

所以在这里,作者除了使用了Word Embedding之外,还使用了其他的东西,比如说比较先进的技术-知识图谱放在模型之中。这里存在两种知识图谱分别是关系和种类,前者代表相关,后者代表归属。

Approach

我们做Event Embedding的方式是为了对于每一个Event Tuple都构建一个低维度的向量表示。所使用的架构当然是神经网络的架构。

神经网络的输入是A,P,O的Word Embedding的表示,而输出的是Event的表示。文章之中使用Skip-Gram的方式从大范围的财经新闻中得到了一个一百维的单词的向量化的表示。对于一个输入里面的超过一个单词的时候,我们就对于其取平均得到整体的表示。

根据上图我们可以将$S_1$利用公式表示为

$$S_1 = g(A,P) = f(A^T T_{1}^{[1:k]}P +W[A^T,P^T]^T+b  )$$

这里有一个东西很奇怪,叫做$T_{1}^{[1:k]} \in R^{d\times d\times k}$,是一个张量表达的工具矩阵。所以$A^T T_{1}^{[1:k]}P$就可以表达成为一个向量$r\in R^{k}$。后面的两个就是参数了。通过激活函数tanh之后得到最后的表达的形式。而右边的$S_2$也是相同的计算的方式。

文章的训练的方法是什么呢?也同样是基于负采样的思路,生成一个Negative Sample $E^{r} = (A^r , P, O)$这里的$A^{r}$表示是要将原来的$A$之中的所有的单词全部通过随机在词典之中寻找一个单词的方式进行替换。然后将目标函数写成是

$$\begin{split} L_{\epsilon}  &=loss (E,E^r)\\ & = \max(0,1 – g(E) +g(E^{r})) +\lambda ||\Phi||^2_2\end{split}$$

如果将$g(\cdot)$看成是打分的话,这里的意思就是尽可能的使得$g(E)$的分数比$g(E^r)$要更高。但是这里的具体的计算的方法我也有些迷糊,根据上面的网络图的输出是得到了一个向量啊,怎么是Score呢?然后通过BP算法优化就OK了。

With Knowledge Graph

上面的是没有知识图谱这个东西存在的算法,如果我们选择加入知识图谱会怎么样呢?知识图谱算法的目的是为了将两个Entity之间的关系也进行Embedding,这里的操作和上面的非常非常的类似,大家看公式就可以看出来了

和上面的表示几乎是一模一样,只不过在这的中间的那个矩阵是有实际的物理意义的,上面的那个模型不存在实际的物理意义罢了。同理对于Knowledge Graph Embedding之中的元素也是同样的使用负采样的方式进行处理,知识图谱的目标函数的形式可以写成是

然后就是将这两个组合起来了

而通过上图的这种方式就可以同时使用Knowledge Graph,真的是非常的Neat也非常的干净利索。而通过将上面的两个Loss进行组合的方式就可以使得模型正式的运作起来。

$$ L = \alpha L_{\epsilon} + (1- \alpha)L_{K}$$

然后使用BP算法进行优化就好了。

Comments

整个的算法的流程非常的清晰,做的也非常的干净,有一个地方没有说清楚的就是其打分的标准到底是什么,在图中的表示显示的是输出一个向量,可是现在又和标量做加减法,这个我就有点看不懂了。我估摸着应该是使用一个神经网络做评分吧,通过Sigmoid做映射。

Reference

Knowledge-Driven Event Embedding for Stock Prediction

Comments

Leave a Comment